.ready.yml file per primitive — and every view your team uses (PM summary, developer brief, designer spec, customer doc) compiles from that single source. The tree behaves like a healthy codebase: fragmented enough to review in a pull request, explicit enough to validate, and structured enough to compile into anything.
The source-of-truth model
Each primitive owns its durable truth in exactly one.ready.yml file. That file is the machine contract. Apps, compilers, validators, search indexes, and agents all read the YAML directly.
Stable IDs are identity
The
id field — such as I-001 or P-003 — is the durable handle. Paths and titles are refactorable without breaking references.Generated views are projections
PM summaries, developer briefs, designer specs, and customer docs compile from the tree. They do not replace it, and they must not duplicate record truth.
Markdown is still useful for navigation, governance docs, and generated views — but it is not the primitive source format. Top-level index files are allowed for navigation, but they must not duplicate record truth.
Stage registry
The rootready/manifest.yaml owns the stage registry. A stage is a named slice of the product tree — a milestone, a rollout phase, or an experimental branch. Give stages project-specific IDs like m1, alpha, or client-pilot. Tools should read manifest metadata rather than infer meaning from directory names or sort order.
Stage kinds
| Kind | Purpose |
|---|---|
normal | A buildable product stage available for default selection. |
horizon | A future product concept shelf — not claimable implementation work. |
experiment | An alternative branch or product plan under evaluation. |
archive | A historical stage no longer selectable as the default. |
template | A reusable starter shape for new stages. |
Default selection algorithm
Tools pick the default stage using this deterministic order:- Use
default_stagewhen it points to a valid stage. - Otherwise choose the highest-
orderstage wherekind: normalanddefault_candidate: true. - Otherwise choose the highest-
orderstage wherekind: normal. - Only fall back to
horizon,experiment,archive, ortemplatewhen nonormalstage exists.
Primitive types
Five core types cover the full product truth surface:premise
Why the product, milestone, or feature should exist. Carries evidence confidence and provenance so you can trace every decision back to validated insight.
intent
What the product promises to do. Defines actor, action, expected end state, value, scope, failure behavior, and operating envelope.
standard
How the product must be built, measured, judged, or maintained. Applied globally via workspace refs or per-primitive via
governed_by refs.service
What the product depends on to build, prove, run, or monitor. Captures readiness by environment, failure modes, and simulation rules.
question_card
Unresolved product-shaping ambiguity. When answered, you apply the resulting primitive edits or flags and close the card. History lives in Git.
Governance and artifacts
ready/governance/
Project-specific files constraining how product work happens — agent guidelines, orchestrator charters, process docs, authority and access policies.
ready/**/artifacts/
Supporting material attached to primitives, flags, proof, generated views, or handoff — samples, snippets, design assets, screenshots, and handoff notes.