Skip to content

Rules cut from 11,914 to 9,494 words - #335

Merged
skavhaug merged 4 commits into
masterfrom
worktree-worktree-rule-cuts-1022
Oct 22, 2026
Merged

skavhaug merged 4 commits into
masterfrom
worktree-worktree-rule-cuts-1022

Conversation

@skavhaug

Copy link
Copy Markdown
Member

The rule cut round Ola approved: all 52 items of the cut list (docs/retrospectives/2026-10-22-merge-331-and-cut-list.md §4) and its §3 proposals (rule text pays for itself, CLAUDE.md §2; fast-forward the main checkout and restart after a rule merge). Rule text 11,914 -> 9,494 words (tools/rule_sizes.py). Most of docs/PRINCIPLES.md cut as repeats; references repointed (guard_push.py prompt, test docstrings) or pinned to docs/PRINCIPLES.md@94a157b2 in older records. Template skill text for unused libraries dropped. Review: round 1 CHANGES REQUESTED on c5c8116, round 2 APPROVED on beffc44 (@Reviewer).

🤖 Generated with Claude Code

skavhaug and others added 4 commits October 22, 2026 08:59
…ds (@architect)

Applies section 4 of docs/retrospectives/2026-10-22-merge-331-and-cut-list.md
(branch worktree-worktree-retro-cut-1022, 6bff3b4), all items, and its
section 3 proposals:
- CLAUDE.md section 2 gains "Rule text pays for itself" (29 words).
- The restart bullet in .claude/REQUIRED-READING.md now reads: fast-forward
  the main checkout and restart before the next spawn.

Items 2.2-2.6 (template skill text on libraries the repo does not use) are
applied, and "or `click`" goes with them (typer is the CLI library).
"Ruled" items keep the ruled rule in its one place; only the repeat is cut.
3.12 (plot bullet) keeps Ola's phrases.

Not to the letter:
- python-development: section 4 is cut but sections 5 and 6 keep their
  numbers, because docs/increments/42-readable-docstrings.md cites section 6.
- PRINCIPLES.md B3 pointed at the cut A1 and B1; it now points at
  .claude/REQUIRED-READING.md, Claims.
- docs/increments/h2-citation-pinning.md: its example citation
  `PRINCIPLES.md §E1` becomes §A6, so check_citations.py stays green.

python3 tools/rule_sizes.py, before (base 94a157b):
   1255 CLAUDE.md
   2014 .claude/REQUIRED-READING.md
   1410 docs/increments/README.md
   1396 docs/PRINCIPLES.md
    236 .claude/briefs/common.md
    541 .claude/agents/architect.md
    241 .claude/agents/developer.md
    482 .claude/agents/orchestrator.md
    774 .claude/agents/perf.md
    604 .claude/agents/reviewer.md
    960 .claude/agents/tester.md
    545 .claude/skills/computational-geometry/SKILL.md
    392 .claude/skills/geospatial-data-formats/SKILL.md
    334 .claude/skills/modern-cxx/SKILL.md
    730 .claude/skills/python-development/SKILL.md
  11914 total
after:
   1187 CLAUDE.md
   1884 .claude/REQUIRED-READING.md
   1007 docs/increments/README.md
    437 docs/PRINCIPLES.md
    236 .claude/briefs/common.md
    495 .claude/agents/architect.md
    211 .claude/agents/developer.md
    482 .claude/agents/orchestrator.md
    635 .claude/agents/perf.md
    570 .claude/agents/reviewer.md
    813 .claude/agents/tester.md
    346 .claude/skills/computational-geometry/SKILL.md
    249 .claude/skills/geospatial-data-formats/SKILL.md
    308 .claude/skills/modern-cxx/SKILL.md
    632 .claude/skills/python-development/SKILL.md
   9492 total (-2,422)

Checks: test_brief, test_spawn_rule_text, test_rule_sizes,
test_settings_wiring, test_session_state, test_ci_changes,
test_check_citations_pinning and test_guard_*: 2450 passed.
check_citations.py exit 0; check_code_history.py clean.

Left dangling, outside this branch's write limit: references to cut
PRINCIPLES entries in .claude/hooks/guard_push.py (lines 4 and 461; the
ask message cites "PRINCIPLES.md E1") and in test docstrings
(plyread.py, vtkread.py, test_io_ply.py, test_io_vtk_legacy.py,
test_always_xy.py, test_geotiff_fixtures.py: A1, A3, A4, B1).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
… PRINCIPLES.md E1 (@developer)

The rule cut (d5895c0) removed PRINCIPLES.md E1 ("the working tree is
yours; the remote is the user's"); it now lives in
.claude/REQUIRED-READING.md, "Before you publish: the approval boundary".
The module docstring and the ask reason Ola sees on a push now point there.
Wording and behaviour otherwise unchanged.

Grep of the tree for references to cut entries (A1-A5, B1, B2, C1-C4, D1,
D4, E1, E3, E4): the only explicit ones outside tests/ were these two.
Bare letter-number ids such as (D2), (E1) in src_python/, tests/cpp and
most of tests/python are increment design ruling ids, not PRINCIPLES.md.
Left for @tester (tests/python, explicit `PRINCIPLES.md` citations):
test_io_ply.py:13 (B1), :31 (A1, A4), :58 (A3, bare), :311 (A4);
test_io_vtk_legacy.py:15 (B1); vtkread.py:6 (B1); plyread.py:5 (B1);
test_geotiff_fixtures.py:11 (A3); test_always_xy.py:8 (A3).
guard_governance.py:14 mentions PRINCIPLES.md as a file, no entry; left.

Checks: tests/python/test_guard*.py 1970 passed (coverage floor not
applicable to a subset); check_code_history.py clean; check_citations.py
clean; count_loc.py HEAD: 0 net production lines (.claude/ not counted).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…DING.md (@tester)

The rule cut removed PRINCIPLES.md A1, A3, A4 (run the check first; make
the probe able to fail; no "verified by" until run against a broken X) and
B1 (a claim names the object the code evaluates). All four now live in
.claude/REQUIRED-READING.md, *Claims*. Test docstrings and comments citing
them now point there:
- test_io_ply.py:13 (B1), :31 (A1, A4), :311 (A4)
- test_io_vtk_legacy.py:15 (B1); vtkread.py:6 (B1); plyread.py:5 (B1)
- test_geotiff_fixtures.py:11 (A3); test_always_xy.py:8 (A3, rewrapped)
Bare "(A3)" pointers dropped where the sentence stands alone:
test_io_ply.py:58 and :207, and test_io_vtk_legacy.py:154 (the last two
were not on the developer's list; found by grep).

Grep of tests/ for the other cut ids (A2, A5, B2, C1-C4, D1, D4, E1, E3,
E4): every remaining hit is an increment design or review ruling id, not
PRINCIPLES.md. Comment and docstring changes only; no test behaviour.

Checks: the four touched test files, 347 passed; ruff check and format
clean; check_code_history.py exit 0; check_citations.py clean.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…tect)

Fixes the two points of @Reviewer's round 1 on c5c8116, plus the
suggestion taken.

1. python-development/SKILL.md §3: "`typer` or `click`" restored; click
   is used in src_python/tin_engine/mcp/schema.py.
2. Citations of PRINCIPLES.md entries this branch cut now point at the
   pinned old text, docs/PRINCIPLES.md@94a157b2:<lines> (ID kept in
   brackets), since they are records:
   - 08-crossing-gallery.md: C3 (147-151), C4 (153-159), A3 (43-51)
   - 10-mesh-output.md: A1+A4 (25-58), B1 (92-98)
   - h10-merge-queue.md: E1 (201-207)
   - 29-nve-reference-catchments.md: E4 (216-219)
   - research/generic-harness.md: D1 (163-169), A5 (60-75), E1, and
     line 145's A5/E3/E4 (60-75, 209-219)
   - 42-readable-docstrings.md: B1 (92-98), found by the extra grep
   11-raster-ingestion-prior-art.md: "and PRINCIPLES.md E3" dropped; the
   sentence already cites the rule's home, CLAUDE.md §2.
   Left as is: generic-harness.md "PRINCIPLES A1-E4" (proposal text about
   ID labels, not a citation of an entry) and "Rename E4" in its step
   table (a plan record).
3. geospatial-data-formats/SKILL.md: "## 4. Testing" back to "## 5.",
   keeping section numbers as python-development does.

Checks: check_citations.py clean; check_code_history.py clean; the eight
test files that read rule files, 1128 passed (the subset's coverage
floor message is expected on a partial run).
rule_sizes.py: 9494 words of rule text, -2220 since f5c0889.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@skavhaug
skavhaug enabled auto-merge October 22, 2026 10:36
@skavhaug
skavhaug added this pull request to the merge queue Oct 22, 2026
Merged via the queue into master with commit c22fd79 Oct 22, 2026
15 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.

1 participant