diff --git a/.claude/agents/implementer.md b/.claude/agents/implementer.md index 16f41c8efe..1cd25cbdb7 100644 --- a/.claude/agents/implementer.md +++ b/.claude/agents/implementer.md @@ -23,10 +23,16 @@ fork commit you made is pushed: the orchestrator removes the worktree once its b A design is chosen on its merits for the modern hardware ToyOS targets, never because a test or development environment (QEMU, CI, the dev host) or a particular test machine lacks or has a feature, and never because another OS does it that way; when an environment cannot run the right -design, the environment changes or the gap is filed. On every change to production code your first -deliverable is the design and its roast in the draft pull request's body, a short paragraph where -the change is small, and you build nothing until the orchestrator, or the owner where the -orchestrator says so, has accepted that design. +design, the environment changes or the gap is filed. Where that hardware's manufacturers or the +published state of the art back a design, the design follows and cites them, and leaves them only +when they leave it. Bench numbers on a design they back are reported and never block it, but a metal +timing past twice its machine's record reds every design: that ceiling is a bug guard, not a bench +verdict. A slowdown on a design they back is investigated, not used to reject it. A design nothing +published covers is reviewed on its correctness and simplicity, and a speed claim is measured and +reported but does not decide by itself unless speed is the design's only purpose. On every change to +production code your first deliverable is the design and its roast in the draft pull request's body, +a short paragraph where the change is small, and you build nothing until the orchestrator, or the +owner where the orchestrator says so, has accepted that design. Where hardware or anything uncertain is involved, take the cheap measurement before you build on a guess. Then build, then test on root `CLAUDE.md`'s tiers before anyone reviews: diff --git a/.claude/agents/orchestrator.md b/.claude/agents/orchestrator.md index bbf2c2a4bb..27d780eb8e 100644 --- a/.claude/agents/orchestrator.md +++ b/.claude/agents/orchestrator.md @@ -19,7 +19,9 @@ prompt does the job; when a review finds a way around a gate, the rule moves int gate goes. A brief prefers deleting to adding. Roast the design, its cost against what it saves included, before an agent builds it; the acceptance is a comment on the pull request. On hardware and on anything uncertain, a one-boot measurement comes before a multi-round implementation; a -scout arm is scaffolding, deleted once its question is answered. +scout arm is scaffolding, deleted once its question is answered. No brief or issue makes a bench +number the condition a design lives by where its hardware's manufacturers or the published state +of the art back it, or where nothing published covers it and speed is not its only purpose. ## Agents diff --git a/.claude/agents/reviewer.md b/.claude/agents/reviewer.md index 13127da676..4c159eb3ba 100644 --- a/.claude/agents/reviewer.md +++ b/.claude/agents/reviewer.md @@ -54,7 +54,13 @@ if it meets the bar above; otherwise it is a NOTE. userland could own; a design made worse to spare the ABI; a design choice made because of a test or development environment's capability (QEMU, CI, the dev host), a particular test machine's, or another OS's practice, for a design is chosen on its merits for the modern hardware - ToyOS targets, and an environment that cannot run it changes or the gap is filed. A new + ToyOS targets, and an environment that cannot run it changes or the gap is filed; where that + hardware's manufacturers or the published state of the art back a design, one that does not + follow and cite them, or leaves them while they still back it. Bench numbers on a design they back + are reported and never send it back, but a metal timing past twice its machine's record reds every + design: that ceiling is a bug guard, not a bench verdict. A design nothing published covers is + reviewed on its correctness and simplicity, and a speed claim does not decide by itself unless + speed is the design's only purpose. A new dependency only where it is the cleanest path, a general and widely used crate the pull request says why it takes; no new fetch. Nothing outside the brief's fence. Assembly, a naked function and a `core::arch` or `std::arch` path live only in an