Session context/config checkup (/doctor) found ~2.5k chars of always-loaded
CLAUDE.md text that a session can reconstruct from the codebase, plus a
task-specific workflow that only matters when closing an issue.
Cut (derivable from the repo):
- the `### Project Layout` table (what `ls` shows)
- the `dotnet build` / `dotnet run` invocations (standard for the toolchain;
the non-obvious `docker build -f docker/Dockerfile` line is kept)
- the Language / Media / Functional C# bullets (stated by the csproj and
Directory.Packages.props)
Migrated to lazy loading:
- the 7 mandatory completion steps and the `## Closing record` template move
to .claude/skills/closing-an-issue/SKILL.md; only its one-line description
stays resident. The `## Done-when` / merge-consent block stays in CLAUDE.md
on purpose — it is safety-critical and describes hook behaviour that fires
whether or not a skill was loaded.
CLAUDE.md 13,306 -> 10,801 chars (~625 est. tokens saved per session).
No convention, route, endpoint or decision changes, so no other doc updates
are triggered by the docs-update table.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>