ADR-000: The Score -- Roadmaps as PRDs
Date: 2026-03-28 Status: Active Decision: The product roadmap is a PRD. Milestones are PRDs. The hierarchy is PRDs all the way down.
Context
The .orchestra/ folder is named for a reason -- agents are the orchestra, the founder is the conductor, and the work needs a score to play from. Without a score, ticket creation is reactive and milestone planning lives in the founder's head.
The PRD format already contains the shape of a milestone: an objective (what "done" looks like), success criteria (checkboxes), a materials table (the nodes/deliverables), and references to content files in the repo. A roadmap is just the top-level PRD whose materials table lists milestones instead of deliverables.
Decision
The hierarchy
Roadmap PRD (the score)
+-- Milestone PRD (a movement)
+-- Deliverables (the notes)
+-- Content files in the repo
-
The roadmap is
.orchestra/roadmap.md-- the score. It is not a work item; it is the thing that generates work items. Its objective is the product vision. Its materials table lists milestones with status. One roadmap per project. -
Each milestone is a PRD in
.orchestra/work/{name}/prd.md. Its objective defines what "done" looks like for that milestone. Its materials table lists the deliverables/tickets needed to reach it. -
Deliverables are the content files that already live in the repo. They are referenced by path in the milestone PRD's materials table.
-
Tickets are generated from the gap between a milestone's materials table and current state -- rows marked "Not Started" or "Needs Refresh" become tasks.
Roles
The Composer (human) writes the score -- defines the roadmap, sets the milestones, decides what "done" looks like.
The Conductor interprets the score -- reads the active milestone, identifies what's not done, keeps tempo, and directs the orchestra (agents).
The Orchestra (agents) performs the music -- reads the score for context, picks up tickets as contracts, executes the work, and updates the score as part of closing the contract.
The workflow
- Compose: Define a milestone as a PRD -- objective, done-conditions, materials table
- Conduct: Read the milestone PRD, identify what's not done, propose or generate tickets
- Perform: Each ticket becomes an agentic session. The agent reads the milestone PRD for context, executes the work, and the deliverable is created or updated in the repo
- Progress: Status rolls up through the materials tables -- deliverable status updates in the milestone PRD, milestone status updates in the roadmap PRD
Rationale
- No new artifact types. The PRD format already works. Reusing it at every level keeps the system simple.
- Machine-readable by convention. Materials tables are structured enough for agents to parse and generate tickets from.
- Matches the orchestra metaphor. The roadmap is the score. Milestones are movements. Deliverables are the notes.
Consequences
.orchestra/roadmap.mdmust exist as the top-level score -- one per project- Every milestone must have a PRD in
.orchestra/work/{name}/prd.md - Agents proposing work should trace it back to a milestone
- The agent session loop is: read the score -> perform -> update the score