Skip to main content

FLO reference implementation

Project description

FLO

FLO is a declarative language for modeling organizational flow.

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.

User documentation: docs/User_Manual.md


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: flowchart, swimlane, spaghetti map, SPPM\
  • DOT 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.


Source of Truth Hierarchy

  • Structural contract SSOT: schema/flo_ir.json
  • Semantic SSOT: docs/design/IR.md
  • User-facing summary: README.md

Hierarchy policy and update workflow are defined in docs/design/SSOT_Hierarchy.md.


Current Semantic Constraints (v0.1)

  • 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.

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.

Project details


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.1.1.tar.gz (46.5 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.1.1-py3-none-any.whl (62.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flo_lang-0.1.1.tar.gz
  • Upload date:
  • Size: 46.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.5 {"installer":{"name":"uv","version":"0.10.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for flo_lang-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b7c1a6fde3f6f42861968d0235a63e881e3762283707b445ad4557cf1ccf5f2a
MD5 f2992cc9e4c28a197f204431a014ca41
BLAKE2b-256 73699cfa7bdf0d5d7f800d4d621570317ab0dcc1ee5580a9c89ff14ad9edaffa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flo_lang-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 62.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.5 {"installer":{"name":"uv","version":"0.10.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for flo_lang-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a34b59a13d914e8b14746fcb2bb0bde129407178cd27d1828e79bf82552440c
MD5 52f2e300fd5f19c41bcd103d2f920b69
BLAKE2b-256 0f8061a41b2b6eee3d4741a9136279b8731eaf94cd951ba3cf6b2b949b2e5ba3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page