Skip to main content
This guide walks you through creating a minimal, conforming Ready product tree from scratch. By the end you will have a working ready/ directory with a root manifest, your first primitive record, and governance stubs — ready to commit and review in Git.
1

Create the ready/ directory structure

Start by scaffolding the required directories. The root 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.
Your tree should now look like this:
Stage directories can use any project-specific name — alpha, client-pilot, v2, and so on. Ready tools read stage identity from manifest.yaml, not from the directory name itself. Pick names that are meaningful to your team.
2

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 ready/manifest.yaml with the following content, replacing the placeholder values with your own product id and stage details:
Key fields to understand:
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.
You also need a stage-level manifest for m1. Create ready/m1/manifest.yaml:
3

Write your first primitive record

Primitive records are the heart of a Ready tree. Each .ready.yml file describes one unit of product truth. Create your first premise record at ready/m1/premises/p-001-initial-premise.ready.yml:
The fields to know:
Use a consistent id prefix per type — p- for premises, i- for intents, st- for standards, sv- for services. Numeric suffixes (001, 002) keep files sorted predictably in any file explorer.
Never commit secrets, API keys, credentials, or personal data inside a .ready.yml file. Product trees are often committed to shared or public repositories. Use your project’s secrets management system for sensitive values, and reference them by name only if needed.
4

Set up governance

Governance documents live in ready/governance/ and define how product truth is created, reviewed, changed, and handed to agents. Create the four standard stubs:
Populate each file with a minimal header so they are recognisable. Here is a starter for each: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.
Even stub governance files are valuable from day one. They make the tree’s rules explicit to agents and new contributors, and they give you a clear place to evolve process decisions without burying them in chat or wikis.
5

Validate your tree

Before committing, run a validator or importer against your tree to check structural integrity. A conforming validator will verify that:
  • ready/manifest.yaml exists and uses a recognised schema.
  • Every stage listed in the root manifest has a corresponding directory and stage manifest.
  • Every .ready.yml file has the required fields (schema, kind, id, type, title, milestone, status, summary, refs, artifacts).
  • All refs entries point to id values that exist in the tree.
  • No primitive id is duplicated within a stage.
  • Generated views are marked as generated and not treated as source records.
If you are using Ready Room, the importer runs automatically when you open the tree and surfaces validation errors in the UI.For CI pipelines, you can invoke the validator directly:
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.
Do not skip validation before merging a pull request that changes ready/manifest.yaml or adds a new stage. An invalid stage entry can prevent tools from resolving the default stage correctly and break agent workflows that depend on the stage registry.
Once your tree passes validation, commit the whole 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.yml pattern 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.