Examples charter: the portfolio is the product demo, and it must not be only CI
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 9
- Forks
- 0
- Avg merge
- 3h 3m
- Merged PRs (30d)
- 509
Description
The examples directory is where the system's power and ergonomics have to be self-evident — from authoring, to reading, to running flow for the first time and getting the feel of the whole thing in minutes. Right now the portfolio under-demonstrates: partly because some plugins and built-ins are still landing, but also because it skews toward developer/CI shapes when the system is designed for much more.
Principles
- An example is a product surface, not a test fixture. Each one earns its place by making a reader think "I have exactly that problem" — and its Flowfile should read as the obvious way to express it. If expressing a real use case feels awkward, that's a language finding to fix, not something to paper over in the example (the "capability isn't done until reachable from a Flowfile" rule, applied to ergonomics).
- Breadth across domains, not variations on CI. Development workflows stay (release pipelines, the git/github/codex plugins will make those shine) but the portfolio must also cover operations (incident runbooks, scheduled health checks with escalation), business processes (approvals via durable signals, onboarding, invoice/order flows with compensation), data work (fan-out enrichment with bounded parallelism, tolerated partial failure), and agentic graphs (multi-agent loops with signals, once repeat_until and the codex plugin land).
- Each example demonstrates durability as the point, not a footnote. The reason these aren't shell scripts: a wait that survives a restart, a saga that takes back what it did, a retry policy that matches production, an approval that arrives three days later. Every example's README should name the one durability property it shows off.
- Runnable in CI, honest in CI. Examples run through the local driver in CI (and
flow fix --checkcovers them). Waits use timeouts so CI completes; READMEs show the durable variant beside it. - The protobuf IR is the client-neutral layer. YAML+CEL is one authoring client. A future visual/low-code builder (explicitly not now) authors the same
Workflowmessage and gains everything — validation, both drivers, policy, LSP-grade diagnostics via the same RPCs. The examples' job today is to keep the IR honest: nothing an example needs should exist only as a YAML-parser trick, because that would orphan every other future client. This is a design constraint the portfolio silently enforces. - Meets people where they are. A first-run path (
flow run local examples/...) that works with zero infrastructure, no Temporal, no server — then the same file, unchanged, run durably. That contrast is the pitch, and every README should make it in two commands.
Acceptance shape
- Every example:
workflow.yaml+ README (what real problem, which durability property, the two-command local→durable contrast), passesflow validateandflow fix --check, runs in CI via the local driver. - Portfolio-level test: a table-of-contents test that fails when an example directory and the top-level examples README disagree (the drift-pin mechanism, pointed at the portfolio).
- A reader who knows nothing about flowstate can go from
git cloneto a successful durable-feeling run in under five minutes following only the top-level examples README.
Near-term slices
- Now (capabilities on main): approval-gate via
wait_for_signal+ timeout escalation; scheduled ops check with tolerated failure + structured outputs; data fan-out with boundedparallel+continue_on_error+ declared run outputs; provisioning saga narrative polish (undo already shipped). - After call: lands: a library workflow called from two different callers — the composition/reuse story (teams/modules per the collaboration thread).
- After git/github/codex plugins land: release pipeline; agentic patch loop with run-to-run signals (#162).
- After repeat_until (#157): polling/convergence shapes.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the existing examples directory and its top-level README, then review the acceptance shape and the near-term slices. Add the specified workflow.yaml and README coverage, including the local-to-durable path, and use flow validate plus flow fix --check before checking the local-driver CI behavior. Done means the portfolio test prevents README drift and a new reader can complete the documented run in under five minutes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- yaml
- Domain
- cli, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100