Skip to main content

FLO

FLO is a declarative plain-text language for process-improvement professionals modeling business processes.

It allows you to define processes in a minimal, versioned format and compile them into a canonical graph representation (FLO IR) for visualization and analysis.

The same model can serve visual review and downstream analysis tools without being trapped in a proprietary modeling application.

Start here: docs/Quickstart.md

Complete reference: docs/User_Manual.md

Supported platforms and trust assumptions: docs/SUPPORT.md


Development Workflow (uv)

FLO uses uv as the canonical developer tool for environment management, dependency sync, running commands, builds, and publish.

From the repository root:

npm ci --ignore-scripts --no-audit --no-fund
uv sync --dev

Run FLO locally:

uv run flo render examples/reference/linear.flo --diagram sppm

Run quality gates:

uv run pre-commit run --all-files

Build distributions:

uv run python scripts/vendor_elkjs.py
uv build

Publish (token auth):

uv publish dist/flo_lang-<version>*
# username prompt: __token__
# password prompt: pypi-<token>

Example

spec_version: "0.1"

process:
  id: onboarding_v1
  name: Client Onboarding
  version: 1
  owner:
    id: ops_mgr
    name: Ops Manager
  business_units:
    - id: sales
      name: Sales
    - id: ops
      name: Operations

steps:
  - id: start
    kind: start
    name: Start

  - id: collect_docs
    kind: task
    name: Collect Documents
    lane: sales

  - id: verify
    kind: task
    name: Verify Documents
    lane: ops

  - id: approved
    kind: decision
    name: Approved?
    outcomes:
      yes: finish
      no: collect_docs

  - id: finish
    kind: end
    name: Complete

What FLO Provides

  • Deterministic compilation to FLO IR\
  • Structural and semantic validation\
  • Graph projections: swimlane, spaghetti map, SPPM, and value stream map\
  • SVG and JSON exports\
  • Ingredients list and movement report exports\
  • Stable foundation for analytics

What FLO Does Not Provide

  • Workflow execution\
  • Task scheduling\
  • Orchestration\
  • Simulation engines (v0.x)

Architecture

  • src/flo/ --- compiler, validators, renderers, and CLI\
  • schema/ --- JSON schemas for FLO IR and types\
  • examples/ --- canonical reference examples\
  • tests/ --- unit, integration, and conformance tests\
  • docs/ --- user manual and design documents

Downstream projects depend on FLO IR.


Governance And Sources Of Truth

FLO assigns authority by domain rather than using one total document hierarchy:

  • product outcomes and release commitments: docs/requirements/
  • language, CLI, diagram, and public-interface meaning: docs/specs/
  • serialized structure: schema/
  • scope and privacy boundaries: docs/policy/
  • durable decision rationale: docs/design/adr/
  • user workflows: docs/Quickstart.md and docs/User_Manual.md

The complete governance model and change classes are defined in docs/GOVERNANCE.md.


Current Semantic Constraints (v0.1)

This is a summary only. Normative semantics live in docs/specs/core_language.md.

  • Exactly one start node.
  • At least one end node.
  • All edge endpoints must resolve to declared node IDs.
  • Every non-start node must have at least one predecessor.
  • Every non-end node must have at least one successor.
  • Every node must be reachable from start.
  • Every node must be able to reach at least one end node.
  • decision nodes must have at least two outgoing transitions.
  • wait_time is valid only on queue nodes.

Versioning

FLO follows semantic versioning at the spec level.

  • v0.x: rapid iteration\
  • v1.0: language stability

Philosophy

FLO treats processes as first-class artifacts:

  • Explicit\
  • Versioned\
  • Portable\
  • Validatable

It is a small language by design.


Schema Contract & Migration

As of v0.1 the compiler emits a schema-shaped canonical IR and the runtime enforces that contract. The compiler must set IR.schema_aligned to True and IR.to_dict() will produce the top-level mapping with process, nodes, and edges fields required by the authoritative JSON Schema in schema/flo_ir.json.

If you are upgrading from an earlier development version that relied on an internal IR translator, update any custom compiler integrations to emit the schema-shaped IR directly. The translator was intentionally removed; CI now validates example outputs using the same schema and will fail when the contract is violated.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flo_lang-0.3.0.tar.gz (653.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flo_lang-0.3.0-py3-none-any.whl (704.1 kB view details)

Uploaded Python 3

File details

Details for the file flo_lang-0.3.0.tar.gz.

File metadata

  • Download URL: flo_lang-0.3.0.tar.gz
  • Upload date:
  • Size: 653.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for flo_lang-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7b572264e69f4d96b36501728290a4f1f675142789df3fde892fa627f14fcd94
MD5 1b6d1d2da91711fb20abff3424a52e91
BLAKE2b-256 e5804296b079f1a559afcab6d85fd203d09e78fc2ee1e6f7ad98a3c9cec6cb30

See more details on using hashes here.

Provenance

The following attestation bundles were made for flo_lang-0.3.0.tar.gz:

Publisher: publish.yml on shanewilkins/FLO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flo_lang-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: flo_lang-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 704.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for flo_lang-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f07ab76b359514f5d38e9e9f85bfd4456d38d82cbb36e9d9be41dd3099791df7
MD5 8ab5188b15132bb3f90fbd0bb8e0ecf6
BLAKE2b-256 2d2c0a7fe561c39f982ae6373ae7057fd043872d7701b5ce57dc6119cb72cfec

See more details on using hashes here.

Provenance

The following attestation bundles were made for flo_lang-0.3.0-py3-none-any.whl:

Publisher: publish.yml on shanewilkins/FLO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page