Skip to content

docs: slim CLAUDE.md and split long-form rationale into .claude - #174

Merged
uipreliga merged 2 commits into
mainfrom
docs/slim-claude-md
Sep 15, 2026
Merged

uipreliga merged 2 commits into
mainfrom
docs/slim-claude-md

Conversation

@uipreliga

Copy link
Copy Markdown
Collaborator

Why

CLAUDE.md is auto-loaded into every request, so a 12,524-word changelog in it is a tax on every task. It carried a single 21,263-character bullet and a 14,025-character lint-rule catalogue.

The prose quality was never the problem — the location was.

What

Split by purpose rather than trimming uniformly:

File Role
CLAUDE.md (12,524 → ~2,600 words) Working reference: layout, criteria table, evaluation flow, dev commands, the lint rules that constrain routine edits, doc-SSOT rules
.claude/architecture-notes.md (new) Long-form design rationale, moved verbatim under headings. Git-tracked but not auto-loaded, so the knowledge survives without the per-request cost

The CE rule catalogue is now a pointer. Every rule already carries its full rationale in its own module docstring, and a prose copy of a registry with no sensor decays silently — which is exactly what test_claude_md_names_every_registered_model already exists to catch.

Documentation links

Every one of the 15 criteria table rows now deep-links to its section in the Task Definition Guide, plus pointers to the report schema, dataset, dialog-mode, docker-isolation, CI-gate, plugin and per-agent docs.

  • All 52 links and 25 anchors resolved against the tree (no link checker exists in the suite, so this was verified by parsing).
  • Every anchored heading is punctuation-free, so GitHub, Starlight and python-markdown agree. Two targets with punctuation (stop_early, API Routing & Benchmarking) are deliberately linked at file level.
  • No docs index table was added. CE028 does not scan CLAUDE.md, so a copy here would be an unguarded fourth index that decays.

Constraints preserved deliberately

  • The CE030 model list stays on one physical line — that test is line-based.
  • All six /coder-eval:* skill names (SKILL_DOC_SURFACES).
  • The "six skills" count phrasing.
  • setting_sources: [] guidance, which a line-by-line diff caught as landing in neither file on the first pass.

Verification

  • make lint635 passed
  • make test5,678 passed, 2 skipped (both environmental: needs a real ANTHROPIC_API_KEY; Windows-only)

Not in this PR

A proposal to replace the Design Principles values (DRY/YAGNI/KISS) with seven checkable "Never ship" rules, three PreToolUse/Stop hooks, and an Opus-in-tests lint rule. Discussed but not applied.

🤖 Generated with Claude Code

https://claude.ai/code/session_015qJBGVKjSeTucaw5h36Pt6

CLAUDE.md is auto-loaded into every request, so a 12,524-word changelog in it
is a tax on every task. It carried a single 21,263-character bullet and a
14,025-character lint-rule catalogue.

Split by purpose rather than trimming uniformly:

- CLAUDE.md (12,524 -> ~2,600 words) keeps the working reference: layout, the
  criteria table, evaluation flow, dev commands, the lint rules that constrain
  routine edits, and the doc-SSOT rules.
- .claude/architecture-notes.md (new) takes the long-form design rationale
  verbatim, under headings. It is git-tracked but not auto-loaded, so the
  knowledge survives without the per-request cost.

The CE rule catalogue is now a pointer: every rule already carries its full
rationale in its own module docstring, and a prose copy of a registry with no
sensor decays silently -- which is what test_claude_md_names_every_registered_model
already exists to catch.

Also adds verified documentation links: every one of the 15 criteria table rows
deep-links to its section in the Task Definition Guide, plus pointers to the
report schema, dataset, dialog-mode, docker-isolation, CI-gate, plugin and
per-agent docs. All 52 links and 25 anchors were resolved against the tree, and
every anchored heading is punctuation-free so GitHub, Starlight and
python-markdown agree. No docs index table was added: CE028 does not scan
CLAUDE.md, so a copy here would be an unguarded fourth index.

Constraints preserved deliberately: the CE030 model list stays on one physical
line (the test is line-based), all six /coder-eval:* skill names, and the
"six skills" count phrasing.

make lint: 635 passed. make test: 5678 passed, 2 skipped.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015qJBGVKjSeTucaw5h36Pt6
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown

Claude finished @uipreliga's task in 1m 36s —— View job


Review in Progress

Todo List:

  • Read .github/code_review.md for review guidelines
  • Read current CLAUDE.md for project conventions
  • Run git diff origin/main...HEAD to see full changes
  • Read both changed files completely
  • Verify critical information preservation
  • Check link integrity
  • Perform cross-file consistency checks
  • Complete "What's Missing" analysis
  • Submit comprehensive review

`.claude/architecture-notes.md` names SKILL_SOURCE_PATH, but no CE045 glob
reached it, so the coverage test failed the build. Add `.claude/**/*.md`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SB97HMVXU1NMpQcDhbYkPz
@uipreliga
uipreliga merged commit 9af3db3 into main Sep 15, 2026
15 checks passed
@uipreliga
uipreliga deleted the docs/slim-claude-md branch September 15, 2026 00:06
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