Onboard
onboard when neededDiscover the repository's own instructions, policies, locations and local capabilities — and name what is still unknown. Runs before a workstream exists, because its findings serve many later ones.
Five stages, each ending in a written artifact. The artifact — not the conversation — is what carries the work forward, so a fresh session can pick up where the last one stopped without being told what happened.
Each stage reads the artifact above it and writes the one below. Read the writes column downward and you have the whole handoff: that column is the workflow's actual interface.
Discover the repository's own instructions, policies, locations and local capabilities — and name what is still unknown. Runs before a workstream exists, because its findings serve many later ones.
Establish the intended outcome, acceptance criteria and risk, collaboratively and code-light. Scope decides how much workflow the work deserves, selects only the specialists it needs, and offers an isolated branch or worktree where repository policy permits.
Turn acceptance criteria into executable authority, including the verification map that Verify will later execute. Every plan records a design disposition: locked into existing architecture, localized design, or structural design required. Only the last one earns a standalone design artifact.
Execute the accepted plan phase by phase, autonomously. Each phase whose automated success criteria are green gets its own commit, and a checkpoint records where the work stands.
verify skill and runs it immediately, in the same parent session.
Invoking Verify by hand is recovery guidance, not a gate a person operates.
Execute the plan's verification map, then run code review over the exact implementation scope — a commit range or commit list, never an approximation. Three lanes read the change in fresh context: Correctness and Risk, Standards and Maintainability, Spec Fidelity. Confirmed P0 and P1 findings block; P2 does not.
Make proportionate closeout decisions with the developer: what documentation the change actually earned, what was learned, and how it is delivered. Close is collaborative by design — it is the stage where the work rejoins the team.
A workstream is one bounded piece of work from Scope through Close. Everything it produces lives in one directory, so its progress is visible without mixing it into older work.
<workstream-root>/ └── <workstream-id>/ ├── workstream.md index + current state ├── lifecycle/ │ └── events.jsonl authoritative journal ├── feedback/ │ └── events.jsonl private, never synced upward ├── scope/ alignment ├── research/ when a specialist was used ├── design/ only when structural ├── plan/ implementation authority ├── verify/ validation + review evidence ├── close/ delivery record └── handoffs/ temporary bookmark
They are evidence about the work, so by default they live outside the repository, under
~/.myflow, optionally pushed to a private Git remote you own. Sandboxed agents
fall back to .myflow/workstreams/ in the checkout and say so; myflow artifacts
import moves them home later.
It names the ID, the current stage, the authoritative current artifact and the related ones. It is a projection of the journal — the stage artifacts remain authoritative for decisions.
A fresh session normally resumes at a stage boundary from the manifest and the current artifact.
handoff exists only for an interruption inside a stage, and points back at
the authoritative artifact rather than replacing it.
Maps, onboarding records and workstreams travel. Configuration, credentials and raw observations
stay on the machine — enforced by both the store's .gitignore and the sync command.
No skill assembles journal events or invents an idempotency key. Every boundary goes through
stage-boundary.mjs, which validates the transition, digests the artifact, links the
previous event, takes an append lock and returns a receipt.
Each stage runs the same edge commands, so the journal reads the same way whichever stage wrote it.
An attempt opens at stage.entered and closes exactly once. Overlapping open attempts are illegal.
Sometimes something unexpected surfaces in a later stage and the work has to return to an earlier one to adjust. This is expected, and it often points to an opportunity for improvement. So the owner, the stages involved, the fix and the evidence are captured for learning.
Accepted artifacts and completed attempts stay as they were, even when later evidence forces a return. A retry that would change history fails; an idempotent retry returns the original receipt.
Each boundary asks one optional question about how the stage went. The answer lands in the
workstream's feedback/ folder. Only its coverage status ever reaches the journal, and a
declined answer never blocks the work.
Lifecycle writes depend on no host and no external service. Where a skill would rather ask a structured question, it uses the host's facility if there is one and plain text if there is not — the wording and the choices never change with the host.
Five stage orchestrators, a navigator, and the specialists Scope draws on only when the work needs them. Selection is a decision, not a default.