Skip to content

Add simplicity-reviewer, a counterweight to over-engineering - #12

Merged
troldal merged 2 commits into
masterfrom
claude/simplicity-reviewer
Oct 4, 2026
Merged

troldal merged 2 commits into
masterfrom
claude/simplicity-reviewer

Conversation

@troldal

@troldal troldal commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Why

Every reviewer in the process pushes the same way: each finds a gap, and each gap becomes another check, overload, trait or reason text. No agent asks whether an addition earns its cost. Recent examples:

  • phase 1 grew from 0.5–1 to 6.5–9.5 developer-days once its design and reviews were done;
  • the combinators went from four static_asserts to 18 deleted declarations;
  • F3 needed three review rounds of protection against malformed client solvers.

This adds the counterweight.

What

  • .claude/agents/simplicity-reviewer.md, in the project's agent pattern (opus, high; read-only, with Write for scratch probes only). It is "an expert in API and library design specializing in finding the smallest design that meets a requirement".
    • For each item it weighs cost (code, overloads, reasons, compile time, diagnostic length, days) against how likely the mistake is for an ordinary caller.
    • It gives a verdict of keep, simplify, cut or defer, with the simpler alternative, what is lost and what is saved.
    • Moves it can propose: merging duplicate reasons; giving exotic misuse the compiler's own error; documenting instead of enforcing; deferring to the owning phase; reusing an existing mechanism; trimming test plans.
    • Hard limits: never weaken rule 5; never reopen a §2/§12 decision; keep std::is_invocable_v false for an ordinary caller's mistakes; keep portability, the compiler floor and determinism; respect the current phase. A cut to an approved design, or a narrowed rule, is marked needs a decision for the maintainer.
  • CLAUDE.md:
    • a row in the agent table;
    • step 3: it always reviews design notes, core notes included;
    • step 7: it reviews a diff that adds public names, overloads, traits or reason texts to the library, or more than about 300 lines under include/.

Verification

  • The frontmatter parses with PyYAML. The description is one unquoted line starting "Use this agent when".
  • docs-auditor checked the agent and the CLAUDE.md edits against CLAUDE.md's rules, DESIGN and the other agents. Its four findings are applied: the step-3 wording, the approved-DESIGN-section case in the table row, a definition of "large diff", and the Write tool for scratch probes.
  • Worktree sessions load agents from the main checkout, so the agent takes effect once this is merged and the main checkout has it.

Next

Run it on the approved phase-1 design (DESIGN §6, [phase 1, approved 2026-10-04; not built]) before B7 is built. Any cut it proposes goes to the maintainer.

🤖 Generated with Claude Code

Every reviewer in the process pushes the same way: each finds a gap, and
each gap becomes another check, overload, trait or reason text. No agent
asks whether an addition earns its cost. Phase 1 grew from 0.5-1 to 6.5-9.5
developer-days once its design and reviews were done, the combinators went
from four static_asserts to 18 deleted declarations, and F3 needed three
review rounds of protection against malformed client solvers.

The new agent weighs each item's cost against how likely the mistake is for
an ordinary caller, and recommends keep, simplify, cut or defer, with the
simpler alternative, what is lost and what is saved. Its hard limits: it
never weakens rule 5, never reopens a §2/§12 decision, keeps
std::is_invocable_v false for an ordinary caller's mistakes, keeps
portability and determinism, and respects the current phase. Any cut to an
approved design, or a narrowed rule, goes to the user as needs a decision.

CLAUDE.md: a row in the agent table. Step 3: it always reviews design notes,
core notes included. Step 7: it reviews a diff that adds public names,
overloads, traits or reason texts to the library, or more than about 300
lines under include/. Checked by docs-auditor, whose four findings are
applied.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 4, 2026 19:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The agent’s final instruction incorrectly routes step-7 implementation findings through the step-4 architect workflow.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Adds a simplicity-focused reviewer to counter over-engineering in design and implementation reviews.

Changes:

  • Defines the reviewer’s scope, constraints, workflow, and output.
  • Integrates it into design-note and implementation review processes.
File Description
CLAUDE.md Registers the agent and its invocation points.
.claude/​agents/​simplicity-reviewer.md Defines the new reviewer.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .claude/agents/simplicity-reviewer.md Outdated
The closing line sent every finding to the architect in step 4, which only
fits a design-note review. A step-7 diff review has no architect step: the
main session reproduces each finding and gives the fix back to the same
reviewer (CLAUDE.md step 7). An approved DESIGN section goes straight to the
user. The user still decides every cut.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@troldal
troldal merged commit a417eec into master Oct 4, 2026
13 checks passed
@troldal
troldal deleted the claude/simplicity-reviewer branch October 4, 2026 19:42
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.

2 participants