Skip to main content
Ready product trees use four distinct manifest files to describe structure, stage layout, governance, and artifact organization. Each manifest has a unique schema value that tools use to distinguish it from primitive source records and other YAML in the tree. This page documents every field in every manifest type.

Root manifest (ready/manifest.yaml)

The root manifest is the single source of truth for stage discovery. Every tool that loads the product tree must read this file first. Do not infer stage order, default selection, or stage meaning from directory names — read them from this manifest. Schema: readyroom/product-tree-root/v1
schema: "readyroom/product-tree-root/v1"
product: "{{PRODUCT_ID}}"
source_root: "ready"
default_stage: "{{DEFAULT_STAGE_ID}}"
governance_directory: "ready/governance"
ready_standard:
  repository: "https://github.com/seanbhart/ready-standard"
  docs_source: "https://github.com/seanbhart/ready-standard/tree/main/docs"
  skill_package_source: "https://github.com/seanbhart/ready-standard/tree/main/skills"
  templates_source: "https://github.com/seanbhart/ready-standard/tree/main/templates"
stages:
  - id: "m1"
    title: "M1"
    path: "ready/m1"
    manifest: "ready/m1/manifest.yaml"
    kind: "normal"
    status: "active"
    order: 10
    default_candidate: true
    coding_claims_enabled: false
  - id: "end-state"
    title: "End State"
    path: "ready/end-state"
    manifest: "ready/end-state/manifest.yaml"
    kind: "horizon"
    status: "horizon"
    order: 9999
    default_candidate: false
    coding_claims_enabled: false

Root manifest fields

schema
string
required
Always readyroom/product-tree-root/v1.
product
string
required
A stable identifier for this product. Used by tools to namespace ids and compiled outputs.
source_root
string
required
The root directory of the product tree relative to the repo root. Always ready for standard trees.
default_stage
string
The id of the stage that tools should load when no stage is specified. If absent, tools apply the deterministic fallback order: highest order normal default_candidate, then highest order normal stage, then non-normal stages.
governance_directory
string
Path to the governance directory. Defaults to ready/governance.
ready_standard
object
References to the Ready standard package. Includes repository, docs_source, skill_package_source, and templates_source URLs.
stages
array
required
The ordered list of stage descriptors. Each entry is a stage object documented below.

Stage object fields

id
string
required
The stable stage identifier — for example m1, m2, alpha, or end-state. Must be unique within the stages list.
title
string
required
Human-readable label for the stage, used in compiled views and navigation.
path
string
required
Repo-relative path to the stage directory — for example ready/m1.
manifest
string
required
Repo-relative path to the stage manifest file — for example ready/m1/manifest.yaml.
kind
enum
required
The stage kind. Valid values:
  • normal — a buildable product stage
  • horizon — a future product concept shelf, not claimable implementation work
  • experiment — an alternative branch or product plan
  • archive — a historical stage, not eligible for default selection
  • template — a reusable starter shape
status
string
required
The current stage status. Common values: active, complete, horizon.
order
integer
required
Numeric sort order used for default-stage selection and display. Higher numbers come later. The end-state horizon stage conventionally uses 9999.
default_candidate
boolean
required
Set true for stages that are eligible to be selected as the default when default_stage is absent. Horizon, archive, and template stages should be false.
coding_claims_enabled
boolean
required
Set true only for stages where seed and delta flags are actively gating coding claims. Leave false until the stage is ready for implementation work.

Stage manifest (ready/m1/manifest.yaml)

Each stage directory contains its own manifest. The stage manifest records per-stage metadata, pointers to primitive directories, flag directories, artifact directories, and governance doc paths. Schema: readyroom/product-tree/v1
schema: "readyroom/product-tree/v1"
product: "{{PRODUCT_ID}}"
milestone: "{{MILESTONE_ID}}"
stage:
  id: "{{MILESTONE_ID}}"
  title: "{{MILESTONE_TITLE}}"
  kind: "normal"
  status: "active"
  order: 10
  default_candidate: true
  coding_claims_enabled: false
source_model: "file_per_record_ready_yaml"
source_root: "ready/{{MILESTONE_ID}}"
governance_docs:
  root: "../governance/"
  agent_guidelines: "../governance/agent-guidelines.md"
  product_orchestrator_charter: "../governance/product-orchestrator-charter.md"
  product_process: "../governance/product-process.md"
  workspace_authority_and_access: "../governance/workspace-authority-and-access.md"
ready_standard:
  repository: "https://github.com/seanbhart/ready-standard"
  docs_source: "https://github.com/seanbhart/ready-standard/tree/main/docs"
  skill_package_source: "https://github.com/seanbhart/ready-standard/tree/main/skills"
  templates_source: "https://github.com/seanbhart/ready-standard/tree/main/templates"
primitive_directories:
  premises: "premises/"
  intents: "intents/"
  standards: "standards/"
  services: "services/"
flag_directories:
  seed: "flags/seed/"
  delta: "flags/delta/"
  discovery: "flags/discovery/"
artifact_directories:
  index: "artifacts.md"
  manifest: "artifacts/manifest.yaml"
  samples: "artifacts/samples/"
  resources: "artifacts/resources/"
  snippets: "artifacts/snippets/"
  designs: "artifacts/designs/"
  manifests: "artifacts/manifests/"

Key stage manifest fields

schema
string
required
Always readyroom/product-tree/v1.
milestone
string
required
The stage id. Matches the id value in the root manifest’s stages list and the milestone field on every primitive in this stage.
stage
object
required
A copy of the stage descriptor from the root manifest. Allows the stage manifest to be loaded independently.
source_model
string
required
Always file_per_record_ready_yaml for standard trees. Tells importers how to discover primitives.
source_root
string
required
Repo-relative path to the stage directory.
governance_docs
object
Relative paths to each governance document. Tools use these to link primitives to the governing policy documents.
primitive_directories
object
Relative paths to each primitive type directory within the stage. Tools scan these directories for .ready.yml files.
flag_directories
object
Relative paths to the seed, delta, and discovery flag directories.
artifact_directories
object
Relative paths to the artifact index file and each artifact subdirectory.

Governance manifest (ready/governance/)

The governance manifest describes the project-specific governance documents stored under ready/governance/. Schema: readyroom/governance-tree/v1
schema: "readyroom/governance-tree/v1"
governance_root: "ready/governance"
documents:
  - id: "GV-001"
    path: "ready/governance/agent-guidelines.md"
    role: "agent_behavior_guidelines"
  - id: "GV-002"
    path: "ready/governance/product-orchestrator-charter.md"
    role: "product_orchestrator_charter"
  - id: "GV-003"
    path: "ready/governance/product-process.md"
    role: "source_product_process"
  - id: "GV-004"
    path: "ready/governance/workspace-authority-and-access.md"
    role: "workspace_authority_policy_seed"
rules:
  - "Project-specific governance documents are first-class product-tree records."
  - "Reusable Ready standard resources live in the Ready standard package rather than ready/governance."
  - "Governance documents are not artifacts."
schema
string
required
Always readyroom/governance-tree/v1.
governance_root
string
required
Repo-relative path to the governance directory.
documents
array
required
List of governance document entries. Each entry has an id, a path, and a role that classifies the document’s function.
rules
array
Enforcement rules that validators and importers apply to governance content.

Artifact manifest (ready/m1/artifacts/manifest.yaml)

The artifact manifest describes the artifact families available within a stage and the rules that govern them. Schema: readyroom/artifact-tree/v1
schema: "readyroom/artifact-tree/v1"
artifact_root: "ready/m1/artifacts"
artifact_index: "ready/m1/artifacts.md"
artifact_types:
  sample_data:
    id_prefix: "SA"
    directory: "samples/"
    validation: "json_parse"
    privacy: "sanitized_fixture_or_explicit_user_stub"
  resource:
    id_prefix: "RE"
    directory: "resources/"
    validation: "markdown_json_yaml_or_external_ref"
    privacy: "safe_ref_or_public_resource"
  snippet:
    id_prefix: "SN"
    directory: "snippets/"
    validation: "markdown_or_text"
  design:
    id_prefix: "DA"
    directory: "designs/"
    validation: "external_or_binary_ref"
  manifest:
    id_prefix: "MA"
    directory: "manifests/"
    validation: "json_or_yaml_parse"
rules:
  - "Artifacts support primitives, flags, proof, or generated views; they are not product primitives."
  - "Governing docs and standard resources do not live under artifacts."
schema
string
required
Always readyroom/artifact-tree/v1.
artifact_root
string
required
Repo-relative path to the stage’s artifact directory.
artifact_index
string
required
Repo-relative path to the human-readable artifact index Markdown file.
artifact_types
object
required
A map of artifact family keys to their configuration. Each family specifies:
  • id_prefix — the prefix used for artifact ids in this family
  • directory — the subdirectory within artifact_root
  • validation — the parse or format check applied by validators
  • privacy — the required privacy classification for artifacts in this family
rules
array
Enforcement rules applied to artifact content.
Artifact ids must be unique within their artifact family. The validator checks SA-* ids across all samples/ entries, RE-* ids across all resources/ entries, and so on. See Validator Rules for the full list of checks.