papa-hq reads 01 research -> 03 decision -> 02 design. The order is a scar, not a choice: 02-DESIGN existed from its initial commit, and when adr/ was finally promoted on 2026-07-13 it took the next free number rather than its place in the sequence. By then design was too settled to renumber. hal-hq was three commits old, so it is not. adr/ becomes 02-DECISIONS and 02-DESIGN becomes 03-DESIGN, and following the folder numbers now walks the process in the order it happens: research produces a decision, the decision authorises a design. 00-GENESIS becomes 00-META, matching papa's rename from the same restructure. Every path reference rewritten across documents, frontmatter, playbooks and skills. All links resolve; all 58 frontmatter blocks parse and their path fields still point at files that exist.
1.5 KiB
1.5 KiB
Playbook 04 — Build handoff
Trigger. A to-be design is settled and work is about to start in a code repository.
Who runs it. Whoever starts the build.
Steps
- Confirm the design is settled. Its frontmatter reads
status: designed, and every claim in it traces to a record in02-DECISIONS/. An open question in the text is a reason to run playbook 01, not to start building around it. - Name the owner. Set
code:in the design's frontmatter to the repositories fromrepos.md. If the repository does not exist yet, add it torepos.mdin the same change. - Check the as-is. Read the matching
03-DESIGN/00-as-is/document. What is being replaced is stated there; if it is not, write it before changing it. Building against an undocumented as-is is how a shipped behaviour gets lost. - Flip the status.
status: in-progress,updated:today. - Build in the code repository. hal-hq is not a code repository and never carries implementation.
- On completion, run the "when something ships" section of playbook 02.
Rules
- Every merge is a human checkpoint, without exception.
- Never open a pull request unprompted. A permissions list saying it is allowed is not a request.
- Work in an isolated worktree, never a shared checkout. A failed
cdin a shared checkout commits to the wrong branch, and the error scrolls past.