Skip to content

docs: adopt L0 PURPOSE, and make the backlog no bee can take visible - #4606

Merged
gHashTag merged 1 commit into
masterfrom
docs/law-l0-and-boundary
Sep 23, 2026
Merged

gHashTag merged 1 commit into
masterfrom
docs/law-l0-and-boundary

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

The law the board cited before it existed

QueenRoadmap.tsx:2 and roadmap-stack.mjs:5 both cite "trios CLAUDE.md, law L0". That file carries L1–L9 — no .sh files, Closes #N, clippy, tests, port 9005, a GB fallback, an experience log, push-first. There is no L0 in it, in this repository, or anywhere else. The citation did not resolve, which is precisely what the honesty rule removes.

The cause is a real gap rather than a typo. L1–L7 govern how work enters the repository — traced, generated, ASCII, tested — and each has a live gate. None of them says what the work is for. The .t27 rewrite is the stated goal, measured on ROADMAP and named as the win condition in onboarding.t27, and it had no constitutional standing at all. So a law was cited into existence to fill the hole.

L0 PURPOSE — an addition, not a rewrite

L1–L7 work and hold real gates; nothing is removed or reordered.

Everything below the interface is written once, in .t27, and generated to its target — Rust for servers, Zig, C and Verilog for the core and silicon. Two exceptions, both named: the seed (t27c itself stays hand-written Rust) and the interface (Swift for trios, TSX for the web).

It sits outside the Asimov ordering on purpose and may never be cited to excuse breaking L1–L7: work that reaches the goal faster by merging untraced, hand-editing generated files or shipping an untested spec has not reached it.

A law nobody can check is decoration, which the honesty rule forbids — so enforcement is a measurement that already exists rather than a new one: the .t27 share of the stack, computed by roadmap-stack.mjs from the GitHub tree API and published at /roadmap/stack.json. The share must not fall. It is 5.6% today.

The backlog was unreachable, not empty

Measured 2026-09-23: 563 of 654 open issues carry no ## Boundary section, so the Queen can reserve nothing for them and skips every one. Her tick reported missingBoundary for 565 candidates while the swarm sat at 2 of 20 lanes.

  • .github/ISSUE_TEMPLATE/swarm-task.md carries the section and explains why it is not paperwork — the class stops growing.
  • tools/queen/needs_boundary.py + needs-boundary.yml label the ones missing it. Live dry run: 553 to label, 10 roadmap goals and epics held back, because a goal is not a task. Self-test passes; the parser is the Queen's own rule (boundaryPathsOf), not a wider one, so the label cannot say "dispatchable" about an issue she will keep skipping.

Neither writes a boundary into an issue body. Which paths a task may touch is a judgement about the work, and a wrong boundary is worse than a missing one because it reserves the wrong files and blocks whatever really owns them.

The existing issue-template config is added to, not replaced: blank_issues_enabled stays false and the SOUL.md link stays, because an issue opened outside a template is an issue with no boundary.

Still to do, in trinity

The two citations point at the wrong document and will be corrected to name the constitution.

Closes #4605

🤖 Generated with Claude Code

The board's source cited "trios CLAUDE.md, law L0" in two places. That file
carries L1-L9 about shell scripts, Closes #N, clippy, tests, port 9005, a GB
fallback, an experience log and push-first. There is no L0 in it, in this
repository, or anywhere else - the citation did not resolve.

The cause is a real gap rather than a typo. L1-L7 govern how work ENTERS the
repository and each one has a live gate; none of them says what the work is
FOR. The .t27 rewrite is the stated goal, measured on the ROADMAP view and named
as the win condition in onboarding.t27, and it had no constitutional standing.

So L0 PURPOSE is adopted as an ADDITION, not a rewrite: everything below the
interface is written once in .t27 and generated to its target, with two named
exceptions - the seed (t27c stays hand-written Rust) and the interface (Swift
for trios, TSX for the web).

It sits OUTSIDE the Asimov ordering on purpose and may never be cited to excuse
breaking L1-L7. Work that reaches the goal faster by merging untraced,
hand-editing generated files or shipping an untested spec has not reached it.

Enforcement is a measurement that already exists rather than a new one: the
.t27 share of the stack, computed by roadmap-stack.mjs from the GitHub tree API
and published at /roadmap/stack.json, must not fall. A law nobody can check is
decoration, which the honesty rule forbids.

THE BACKLOG WAS UNREACHABLE, NOT EMPTY. Measured today: 563 of 654 open issues
carry no `## Boundary` section, so nothing can be reserved for them and the
Queen skips every one - her tick reported missingBoundary for 565 candidates
while the swarm sat at 2 of 20 lanes.

  .github/ISSUE_TEMPLATE/swarm-task.md carries the section, so the class stops
  growing, and explains why it is not paperwork.

  tools/queen/needs_boundary.py labels the ones missing it: 553 to label, with
  the 10 roadmap goals and epics held back, because a goal is not a task. Its
  self-test passes and its dry run was taken against the live repository.

Neither writes a boundary into an issue body: which paths a task may touch is a
judgement about the work, and a WRONG boundary is worse than a missing one
because it reserves the wrong files.

The existing issue-template config is added to, not replaced:
blank_issues_enabled stays false and the SOUL.md link stays, because an issue
opened outside a template is an issue with no boundary.

Closes #4605

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-23 06:10:19 UTC

Summary

Status Count
Total Open PRs 29
PRs with Failing Checks 25
PRs with All Checks Green 4
READY 3
FAILING 25
PENDING 0
NO CHECKS YET 0

These columns do not partition: 3 + 25 + 0 + 0 = 28, and there are 29 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=403499176a5d != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit fba9509 into master Sep 23, 2026
25 of 30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The constitution has no law for the goal, and the board cites one that does not exist

1 participant