ready/ directory with a root manifest, your first primitive record, and governance stubs — ready to commit and review in Git.
Create the ready/ directory structure
Start by scaffolding the required directories. The root Your tree should now look like this:
ready/ directory lives at the top level of your repository. Inside it you need at least one stage directory (this guide uses m1) and a governance/ directory.Initialize ready/manifest.yaml
The root manifest is required in every conforming tree. It declares the stage registry, the default stage, and the location of your governance directory. Create Key fields to understand:
You also need a stage-level manifest for
ready/manifest.yaml with the following content, replacing the placeholder values with your own product id and stage details:| Field | Purpose |
|---|---|
default_stage | The stage tools open by default. Must match an id in the stages list. |
kind: normal | A buildable product stage — eligible for default selection. |
kind: horizon | A future concept shelf. Not claimable as implementation work. |
default_candidate | When true, this stage is a candidate for automatic default selection. |
coding_claims_enabled | When true, coding work can be claimed against this stage’s primitives. |
order | Numeric sort order used when resolving the default stage automatically. |
The
end-state stage is excluded from the default selection path because it is kind: horizon and default_candidate: false. Its high order value of 9999 does not promote it — stage kind takes precedence over order.m1. Create ready/m1/manifest.yaml:Write your first primitive record
Primitive records are the heart of a Ready tree. Each The fields to know:
.ready.yml file describes one unit of product truth. Create your first premise record at ready/m1/premises/p-001-initial-premise.ready.yml:| Field | Required | Description |
|---|---|---|
schema | ✅ | Always readyroom/primitive/v1 for primitive records. |
kind | ✅ | Always primitive for primitive source records. |
id | ✅ | Stable, unique identifier. Never change this after a record is published. |
type | ✅ | One of premise, intent, standard, service, or question_card. |
title | ✅ | Human-readable name. Refactorable — the id is the durable identity. |
milestone | ✅ | The stage id this primitive belongs to. |
status | ✅ | Lifecycle state, e.g. active, draft, deprecated. |
summary | ✅ | A concise explanation in plain language. |
refs | ✅ | Directed references to other primitive id values. Use [] when empty. |
artifacts | ✅ | References to supporting samples or resources. Use [] when empty. |
Set up governance
Governance documents live in Populate each file with a minimal header so they are recognisable. Here is a starter for each:
ready/governance/ and define how product truth is created, reviewed, changed, and handed to agents. Create the four standard stubs:agent-guidelines.md — Rules and constraints for any AI agent that reads or writes the product tree. Define what an agent may propose, what it must never modify directly, and how it should signal uncertainty.product-orchestrator-charter.md — Defines the role of the product orchestrator (human or agent) responsible for maintaining the integrity of the tree and resolving conflicts between competing primitives.product-process.md — Documents the team’s process for proposing, reviewing, and merging product records — including branching conventions, review requirements, and how question_card primitives get resolved.workspace-authority-and-access.md — Defines who (or which agent role) has authority to read, write, or approve changes to each part of the tree.Validate your tree
Before committing, run a validator or importer against your tree to check structural integrity. A conforming validator will verify that:Once your tree passes validation, commit the whole
ready/manifest.yamlexists and uses a recognised schema.- Every stage listed in the root manifest has a corresponding directory and stage manifest.
- Every
.ready.ymlfile has the required fields (schema,kind,id,type,title,milestone,status,summary,refs,artifacts). - All
refsentries point toidvalues that exist in the tree. - No primitive
idis duplicated within a stage. - Generated views are marked as generated and not treated as source records.
See Validator Rules for the complete list of structural rules a conforming tree must satisfy. The reference includes the exact error codes the importer emits and how to resolve each one.
ready/ directory and open a pull request. Your product tree is now live in Git and ready to review.Next steps
You now have a minimal conforming Ready tree. From here you can:- Add more primitive records (
intents/,standards/,services/) using the same.ready.ymlpattern from Step 3. See Writing Primitives for field-by-field guidance on each type. - Explore the full Directory Layout reference to understand every optional directory and file.
- Read the Product Tree Standard to understand stage kinds, default selection logic, and how generated views must be structured.
- Learn about Flags & Claims to understand how
seed,delta,coverage_gap,blocker, and other flag types signal work-readiness state across the tree. - Load the Ready Product Leader Skill Pack to give an AI agent structured task modules for reviewing and extending your tree.
- Browse the Governance & Manifest Templates to copy conforming starters for root manifests, stage manifests, and governance documents.
- Connect Ready Room to your repository to get a UI for authoring, reviewing, and compiling your tree.