On 2026-11-04 a small fix (issue 1748, the builder's retake) put a new seat type into mesh-sdk, against the design section Where a seat's code goes (mesh-sdk takes no seat-specific type; a seat's types live in its contract in its domain's contracts module). The rule to ask the knowledge base first was in place, but each step let it pass:
playbook 08 asked the knowledge base only "if a design question is open", and the lead treated placement as its own choice;
the developer built the lead's handover, which said where the code goes;
the code reviewer checked against the handover's rulings, not against the designs;
the preparer still said mesh-sdk holds seat contracts;
the mesh-sdk test that refuses a seat type comes only with the registry milestone.
This change:
playbook 08 step 1 and playbook 07's prepare (answer 3): where each new piece of code goes is always a design question. Before any code, the lead asks the knowledge base and reads the section Where a seat's code goes; the note names the line that places every new exported type, field, constant, package or module. A handover quotes those lines and never decides a placement itself.
mesh-preparer: carries the section's split (contract in the domain's contracts module or the seat-set package, logic over a seat in its client package, mesh-sdk only the runtime and seat-neutral parts) and names the placing line for each new identifier.
mesh-developer: checks each new exported identifier against that section; a handover that places it elsewhere is reported, never built.
mesh-code-reviewer: the handover and the lead's rulings are claims to check, never limits; a misplaced identifier is a finding, checked by the reviewer itself.
No record is named by number in the new lines (discover-knowledge-eagerly). go test ./... at the root: pass.
Reviewed-by: review-515@shanks at b525f1059b
Pushed-by: fix-1965@shanks
On 2026-11-04 a small fix (issue 1748, the builder's retake) put a new seat type into mesh-sdk, against the design section *Where a seat's code goes* (mesh-sdk takes no seat-specific type; a seat's types live in its contract in its domain's contracts module). The rule to ask the knowledge base first was in place, but each step let it pass:
- playbook 08 asked the knowledge base only "if a design question is open", and the lead treated placement as its own choice;
- the developer built the lead's handover, which said where the code goes;
- the code reviewer checked against the handover's rulings, not against the designs;
- the preparer still said mesh-sdk holds seat contracts;
- the mesh-sdk test that refuses a seat type comes only with the registry milestone.
This change:
- **playbook 08 step 1 and playbook 07's prepare (answer 3):** where each new piece of code goes is always a design question. Before any code, the lead asks the knowledge base and reads the section *Where a seat's code goes*; the note names the line that places every new exported type, field, constant, package or module. A handover quotes those lines and never decides a placement itself.
- **mesh-preparer:** carries the section's split (contract in the domain's contracts module or the seat-set package, logic over a seat in its client package, mesh-sdk only the runtime and seat-neutral parts) and names the placing line for each new identifier.
- **mesh-developer:** checks each new exported identifier against that section; a handover that places it elsewhere is reported, never built.
- **mesh-code-reviewer:** the handover and the lead's rulings are claims to check, never limits; a misplaced identifier is a finding, checked by the reviewer itself.
No record is named by number in the new lines (discover-knowledge-eagerly). `go test ./...` at the root: pass.
Reviewed-by: review-515@shanks at b525f1059b6914b078079f6eb009fd5412e51274
Pushed-by: fix-1965@shanks
https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
A small fix's lead placed a seat's type in mesh-sdk by its own handover (issue 1748), against design 26;
the developer built the handover and the reviewer checked against it, so it passed review and its check.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
Deliverynovox/hq@b525f1059b69 — merged since 2026-11-04T22:23:47Z
Source — source.main moved to novox/hq@f0c05d1edb. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-04 22:21 (new) → proposed (announced): novox/hq#515's head announced
2026-11-04 22:21 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
2026-11-04 22:23 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/hq@b525f1059b69` — **merged** since 2026-11-04T22:23:47Z
**Source** — source.main moved to novox/hq@f0c05d1edb84. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-04 22:21 (new) → proposed (announced): novox/hq#515's head announced
- 2026-11-04 22:21 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
- 2026-11-04 22:23 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
On 2026-11-04 a small fix (issue 1748, the builder's retake) put a new seat type into mesh-sdk, against the design section Where a seat's code goes (mesh-sdk takes no seat-specific type; a seat's types live in its contract in its domain's contracts module). The rule to ask the knowledge base first was in place, but each step let it pass:
This change:
No record is named by number in the new lines (discover-knowledge-eagerly).
go test ./...at the root: pass.Reviewed-by: review-515@shanks at
b525f1059bPushed-by: fix-1965@shanks
https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
Delivery
novox/hq@b525f1059b69— merged since 2026-11-04T22:23:47ZSource — source.main moved to novox/hq@f0c05d1edb. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.