Skip to content

chore,docs: track .claude/agents, delete the axis twin, add review axis 11 - #481

Merged
derek73 merged 4 commits into
masterfrom
claude/track-claude-agents-github-bd8e1e
Sep 1, 2026
Merged

chore,docs: track .claude/agents, delete the axis twin, add review axis 11#481
derek73 merged 4 commits into
masterfrom
claude/track-claude-agents-github-bd8e1e

Conversation

@derek73

@derek73 derek73 commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Closes #473.

.claude/agents/design-docs-reviewer.md implements docs/design/AGENTS.md's review axes and was untracked, so nothing diffed it and nothing reviewed it. #473 reports one missing axis; measured, the drift is three-way and one-directional — every correction landed in the tracked file and none reached the untracked copy:

agent file docs/design/AGENTS.md
axis 4 inward only ("Rule vs. the decision entries it cites") inward and outward
axis 10 absent "Re-run every capability claim."
corpus caution "exactly one ends in a particle" "two of those end in a particle" — recorded there as the corrected count

Four commits

  1. 35542d0 — un-ignore .claude/agents/ and .claude/commands/, adding both files byte-unchanged. .claude/ with a trailing slash makes git stop descending, so the negation needs .claude/* first; verified that worktrees/, settings.local.json, launch.json and .DS_Store stay ignored.
  2. 9f1d46e — the agent drops all four duplicated sections (−104 lines) and points at AGENTS.md. Because commit 1 added the file unchanged, this diff is the evidence: it removes ## The nine axes, the narrowed axis 4, and the pre-correction corpus count.
  3. dc17090 — axis 11, plus the axis-count claims it invalidates.
  4. 6b6e297 — fixes ten findings from two review agents, all of them in commit 3. See below.

No pin test

#473 asks for a test pinning the agent's axis headings against AGENTS.md's list. Not added, and decisions.md#review-agent-single-source records why: heading comparison would have caught the missing axis 10 and neither of the other two drifts, since both changed body prose and left headings intact. The twin is the defect; a pin test detects a third of it and licenses keeping the rest. Same shape as the STABLE_TAGS twin flagged in nameparser/_types.py.

Axis 11 — state the invariant that relates two DIFFERENT inputs

Every existing axis compares a document to another document, to its own examples, or to the implementation, so all ten can only find code that disagrees with a rule — none can find a rule that is simply wrong. That is what backed out #461's fix and closed #466 unmerged.

The worked invariant: the family-comma writing under the default order and the comma-less writing under FAMILY_FIRST must parse alike.

"Vega, Juan de"  → family "de Vega"    "Vega Juan de"  → family "de Vega"                ✓
"Vega, Juan vd"  → family "vd Vega"    "Vega Juan vd"  → family "Vega", suffix "vd"      ✗

Measured over the seven role fields, PARTICLES × 6 families × 6 givens: it holds on all 36 pairs for 67 of the 70 particles and fails on all 36 for do, mc and vd — precisely the words that are also suffix vocabulary, which rules.md#P6's Accepted consequence already names as the contested memberships. The invariant found that set from behavior, having read no rule.

The measurement is bounded: families and givens must not themselves be particle vocabulary. With F="Van" it is 0 of 70, not 67 of 70 — the spread word joins the particle run and the invariant measures a different shape. decisions.md#two-input-invariants carries this and the recompute recipe. The axis prose itself carries no bare count, per the counting-claims rule.

What review changed (commit 6b6e297)

Two agents reviewed commit 3 — the project's own design-docs-reviewer and a general convention reviewer. Ten findings accepted, one rejected. The three that mattered shared one cause: the new entry re-derived arguments decisions.md#P6 already makes, instead of citing them — the duplication this PR exists to delete.

Rejected: rephrasing "#461 was backed out" to "the fix for #461" — accurate, but decisions.md:746 and :754 already use that shorthand, and fixing one of three sites makes it inconsistent.

Test plan

  • uv run --frozen pytest -q — 6198 passed, 156 skipped, 9 xfailed
  • git check-ignore over eight .claude/ paths — 2 trackable, 6 ignored
  • axis count agrees across docs/design/AGENTS.md heading, its numbered list, and the 3+8 split
  • invariant re-measured on the committed tree by me and independently by both review agents — identical
  • git diff master...HEAD --stat — six files, no docs/superpowers/ path

The executable form of the invariant stays with #469.

🤖 Generated with Claude Code

derek73 and others added 3 commits August 31, 2026 22:31
The design-docs-reviewer agent implements docs/design/AGENTS.md's
review axes and was untracked, so nothing diffed it and nothing
reviewed it. It drifted three ways against the file it implements.

Both files land here UNCHANGED so the next commit's diff shows that
drift rather than burying it in an initial add.

Refs #473

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Removes the four sections that restated docs/design/AGENTS.md: the
nine-axis list, the durability-of-numbers rule, the corpus caution,
and the what-the-tests-cover list -- the last because AGENTS.md's own
version of it says to read the test files rather than trust the
sentence.

The diff against the previous commit is the drift: axis 10 absent,
axis 4 carrying only its inward half, and the corpus caution holding
a wording AGENTS.md records as corrected.

Two references the deletion would have left dangling are repointed:
"How to run" named axes by number (now by content, so renumbering
cannot falsify it) and "Do not report" cited "the first section".

Refs #473

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Axes 1-10 compare a document to another document, to its examples, or
to the implementation, so none of them can find a rule that is simply
wrong -- the failure that backed out #461 and closed #466 unmerged.

The worked invariant: the family-comma writing under the default order
and the comma-less writing under FAMILY_FIRST must parse alike. It
holds for 67 of the 70 particles and fails for do, mc and vd, which is
rules.md#P6's contested-membership set recovered from behavior alone.

Also corrects the axis count in three places and the claim that #386
earned every axis, which axes 10 and 11 falsify.

Closes #473

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@derek73 derek73 added this to the v2.3 milestone Sep 1, 2026
@derek73 derek73 added docs Documentation fixes and updates tooling labels Sep 1, 2026
@derek73 derek73 self-assigned this Sep 1, 2026
@codecov

codecov Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.66%. Comparing base (c34fb74) to head (6b6e297).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #481   +/-   ##
=======================================
  Coverage   98.66%   98.66%           
=======================================
  Files          45       45           
  Lines        3218     3218           
=======================================
  Hits         3175     3175           
  Misses         43       43           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Ten findings from two review agents, all in dc17090. The three that
matter share one cause: the new entry re-derived arguments
decisions.md#P6 already makes, instead of citing them -- which is the
duplication this very PR exists to delete.

- The Declined block now cites decisions.md#P6 for where "216 of 216"
  came from (a sorted(particles)[:14] slice, already recorded there as
  axis 2 in its purest form) rather than inventing "six hand-picked
  particles", which contradicted it and halved the sampling error.
- It also stopped attributing #466's failure to do/mc/vd. #473's
  "ambiguous-particle half" is the 37 non-never-given particles, and
  decisions.md#P6 records that #466 died on a never-given test that
  excluded all 37, van among them. Different partition, different
  failure.
- The recompute recipe said "any spread of families and givens". With
  F or G drawn from PARTICLES it is 0 of 70, not 67 of 70
  ("Doe, Van de" vs "Doe Van de"), so a reviewer probing particle
  behavior would have reported P6 broken. Now bounded and measured.

Also: AGENTS.md's corpus caution loses its standing count -- both the
drifted and the "corrected" wording quoted figures decisions.md#P6 had
already superseded; axis 11 is no longer classed rules.md-specific,
which contradicted its own "consults no rule statement" and would have
had a reviewer skip it on a decisions.md-only change like this one;
axes 10/11 are no longer said to come from "later arcs" (#291
predates #386); the root pointer drops its numeral; docs-review.md
stops naming a section commit 9f1d46e deleted; and the agent's
description names AGENTS.md, which the axes bind and it omitted.

Refs #473

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@derek73
derek73 merged commit f18a42a into master Sep 1, 2026
11 checks passed
@derek73
derek73 deleted the claude/track-claude-agents-github-bd8e1e branch September 5, 2026 23:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation fixes and updates tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

design-docs-reviewer implements nine of AGENTS.md’s ten axes, and the missing one would have caught #467’s false premise

1 participant