Implement design_docs/006-the-coders-front-door.md nf-6lm ← Beads

open priority 2 task unassigned activesession:dev-py-feedback

Twinned from https://github.com/cfsh/ninefold/issues/768 by tools/beads/import_github.py's reconcile pass.

Implements [design_docs/006-the-coders-front-door.md](https://github.com/cfsh/ninefold/blob/main/design_docs/006-the-coders-front-door.md) — the design round for #733. Doc PR: #767.

The recommendation, in two lines. The workflow is the output of a generating process: an incident produces a paragraph in an always-loaded file instead of a refusal in a tool, and CLAUDE.md regrew 67% in the three days after the last de-bulking. Split the coder's manual from the operator's, give the coder one front door (./dev.py) that owns every session-specific value, delete the dev's poll looping outright — @aedanpope, 2026-08-09: *"lets delete all the poll looping first, and only add it back when we need it. I can rely on CTO's own loop in the interim"* — with the box-level backstop a contingency, not a prerequisite, and budget the always-loaded file so the next incident has to buy its way in.

⚠️ Read design_docs/006 §8.1 first — the execution order. It is argued from docs/DEV_PRINCIPLES.md and runs deletions → cheap fixes that stop an active loss → class-killers → the front door → contingent. §8.2's table is the dependency truth and wins where the two conflict. The largest wins are Wave 0 and are pure deletion with no prerequisites, so a session that only ever does Wave 0 has still done the most valuable part.

Shape of the work. 22 pieces in the doc's §8, roughly 10–14 PRs. They are not all one stack:

Nothing needs @aedanpope. ✅ All three questions are resolved: §7.6 by measurement — ruleset 20540766 is enforcement: active as of 2026-08-09, so there is no decision, and the live consequence is #763 (piece 8) rather than a governance call; §7.3 is answered (delete first, rebuild on demonstrated need) and §7.2 is resolved by default — his S7a point (the existing 5-line refusal should teach the trade) dissolves the number question, and S7b is deferred: it is a second gate for an anticipated need, so B4 says ship S7a, measure, and build S7b only if CLAUDE.md grows anyway. ⚠️ An implementing session should not set a budget number on its own authority — §5.4 objection 3 is that the budget mostly binds @aedanpope.

⚠️ The work breakdown is deliberately in the doc rather than filed as separate issues (.claude/commands/design.md §6; the precedent design 005 set with #686). Whoever takes this chunk may split it then, holding the whole thing and in the right order.

Unclaimed and unlabelled — backlog, for a triage round.

Dependencies

None.

Comments

No comments.

Add a comment