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
startnode. - At least one
endnode. - All edge endpoints must resolve to declared node IDs.
- Every non-
startnode must have at least one predecessor. - Every non-
endnode must have at least one successor. - Every node must be reachable from
start. - Every node must be able to reach at least one
endnode. decisionnodes 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flo_lang-0.1.0.tar.gz.
File metadata
- Download URL: flo_lang-0.1.0.tar.gz
- Upload date:
- Size: 44.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
019a2e98907d847b44994121898ff32672144025b9735dec76ef6f24f9470595
|
|
| MD5 |
d2b2975d77613a86b8858658c8231846
|
|
| BLAKE2b-256 |
dcead6039d5e19bfba0521a7a6a5dde7a982c002bee4fae1ab41f1aea067508d
|
File details
Details for the file flo_lang-0.1.0-py3-none-any.whl.
File metadata
- Download URL: flo_lang-0.1.0-py3-none-any.whl
- Upload date:
- Size: 60.0 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e44375667c28d62e520ba3944d56a10e5a16ce5fa6ccc25cc563021391b6a277
|
|
| MD5 |
f85a846d4fd2e189743e6a112358ccbe
|
|
| BLAKE2b-256 |
aae5c4f2def8af9b10a8a15e9ed22348fa2ef1ccea92aece59b00d129e9109db
|