Novox Playbooks
+How work is done on the mesh, from an idea or a symptom to a delivered change. Drawn from hq's 00-META/process/ at main f269e83, 2026-10-19, including playbook change hq #433 (try before the review).
The development cycle
+Work enters as an idea or a symptom. An idea becomes a decision, a design and then milestones; a symptom becomes an issue. Both end as code delivered to the machines, and the as-is design is updated. No design without a decision; no development without a design or an issue that sends it.
+A feature, step by step (playbook 07)
+One milestone is one release: one branch name in every repository it touches, one worktree per repository, one fixing agent per repository kept for the whole milestone, one reviewer, and one pull request per repository, opened once. Since hq #433 the branches are tried before the review, so the reviewer reads real integration results.
+Step 0 · what the lead writes before any agent starts
+-
+
- Every open question settled: on the issue, in the knowledge base, or by the operator. +
- Into each issue: every file and test it touches (file:line), how it is checked and delivered, a group's merge order. +
- newEvery other reader and writer of each value the change touches, each with a criterion. +
- Acceptance criteria: given / when / then, each naming its test level. +
- Release orders hidden in the milestone, said to the operator, never built around. +
- Fixtures copied from what the other side really writes, never from memory. +
- An issue sized over an hour is split before work starts. +
Step 1 · the fixing agent's brief
+-
+
- One commit per issue, naming it; tests cite their criterion (
// 1217/AC3).
+ - newA test fails first on what the code does. A compile error is no failure: take out the change's effect and see an assertion fail. +
- The whole unit suite before every commit; each test well under a second. +
- Integration tests are compiled only: never run on the machine. +
- Never push, open or merge; never move an issue; never ssh. +
- Code that differs from the context file: stop and report, file:line. +
When tests run
+Two levels. Unit tests run all the time on the machine; integration tests (a bus, a store or a process started) never run there: mesh-controller.try runs them on the pushed branch, and the forge's merge check runs them again as the gate.
The review loop
+What a round may ask
+Only what makes the change wrong against its issues, their acceptance criteria and its decisions. Anything more (hardening, a further case, a nicer form) becomes a new issue, and the round does not wait for it.
+What every round reads
+-
+
- Every criterion against its test: a test at its level that would fail without the change. +
- Every new integration test traced through the code, and its try's result. +
- That each integration test enters by the path the live trigger takes. +
An issue's life (playbook 03)
+The issue tracker (seat issue-tracker) holds every issue's number, status, owner, fix and links. Its move refuses a wrong move at the write.
take-over with a reason. An issue about a condition is linked to it, so the alert names the issue.Where things live
+| What | Lives in | Written with | Never |
|---|---|---|---|
| Decisions (ADRs) and research efforts | the knowledge base (seat knowledge-base) | reserve, then propose the record whole | a file in hq |
| Issues: status, owner, fix, links | the issue tracker | open, move, note, link | a status key in a report |
| An issue's narrative (design or governance only) | hq 04-ISSUES/NNN-…/ | a pull request | its status |
| Designs, as-is and to-be | hq 03-DESIGN/, status in frontmatter | a pull request | the two layers mixed |
| Playbooks, glossary, how-we-build | hq 00-META/ | a pull request | a copy in a session's memory |
| The rules every session keeps | instruction sections (module claude-code) | claude_code_instructions_propose, the operator's Approve | a hand-edited file |
All playbooks
+Open a card for its steps, what it produces and how it is checked.
+ + + + +