Skip to content

docs(claude-md): loading-discipline routing + drop stale private-repo framing - #44

Merged
ojfbot merged 2 commits into
mainfrom
docs/claude-md-routing
Jun 4, 2026
Merged

docs(claude-md): loading-discipline routing + drop stale private-repo framing#44
ojfbot merged 2 commits into
mainfrom
docs/claude-md-routing

Conversation

@ojfbot

@ojfbot ojfbot commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Two related docs-hygiene changes on purefoy.

1. Loading-discipline routing (ADR-0081)

Routes the 377-line root CLAUDE.md by when each block is needed. Always-loaded footprint (M1): ~4066 → ~1286 tokens (377 → 86 lines), ~68% drop. Relocate-only — 0 deletes, 0 @import.

  • Layer 1 (deakins_forums/CLAUDE.md, loads only editing that subtree): scraper pipeline design, principles, DEAKINS_* env, scraper CLI.
  • Layer 2 (read on demand): documentation/data-model-reference.md (PostLeaf/TopicLeaf/Episode schemas; authoritative source deakins_forums/models.py); documentation/repo-reference.md (structure tree, podcast ingest, testing notes).
  • Layer 0 (stays): repo identity, Git Data Policy, Deployment safety, fair-use invariant, venv + code-quality quick-start.

L2 lives in repo-native documentation/ rather than domain-knowledge/ (a gitignored symlink farm into core).

2. Drop stale private-repo framing

purefoy is public, but several docs asserted it "MUST be PRIVATE" and that scraped forum data in library/ was tracked in git for a private repo. Verified false: 0 files tracked under library/, downloads/, or analysis/ (all gitignored) — no data is or was exposed; those claims were aspirational/never executed.

Corrected to the actual model — public repo, scraped data kept off-git via .gitignore — across README.md, PROJECT_STRUCTURE.md, GIT_READY.md, documentation/GIT_INIT_CHECKLIST.md, documentation/development/PROJECT_STATUS.md, documentation/roadmap/ROADMAP.md (4.6 decision marked RESOLVED → public). Fair-use/copyright guidance retained.

How to test

  • node core/scripts/claude-md/footprint.mjs purefoy → always ~1286 / conditional ~1109; @import: 0.
  • git ls-files | grep -E 'library/|downloads/|analysis/' → empty (no scraped data committed).
  • No remaining "keep PRIVATE" directives or "data tracked for private repo" claims.

🤖 Generated with Claude Code

Apply the ADR-0081 loading-discipline to purefoy's 377-line CLAUDE.md.
Always-loaded footprint: ~4066 -> ~1243 tokens (377 -> 85 lines), ~69% drop.
Relocate-only (0 deletes, 0 @import); all 14 distinctive strings verified
present in the new fileset.

Routing:
- Layer 1 (path-conditional, loads when editing the subtree):
  deakins_forums/CLAUDE.md <- forum-scraper pipeline design, key principles,
  DEAKINS_* env vars, and the scraper CLI commands.
- Layer 2 (task reference, read on demand):
  documentation/data-model-reference.md <- PostLeaf/TopicLeaf/Episode schemas
    (authoritative source: deakins_forums/models.py).
  documentation/repo-reference.md <- project-structure tree, podcast ingest
    commands + design, testing notes.
- Layer 0 (stays always-loaded): repo identity, Git Data Policy, Deployment
  safety, fair-use/keep-private invariant, venv + code-quality quick-start.

Folds/fixes: consolidated 3x 'Keep PRIVATE' into one invariant; removed a
stray duplicate code-fence in the project-structure block.

L2 lives in documentation/ (repo-native, tracked) rather than domain-knowledge/
which is a gitignored symlink farm into core.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Skill audit skipped: this repo does not ship scripts/hooks/pr-skill-audit.sh directly. The hook lives in ojfbot/core and is symlinked into consumer repos by install-agents.sh. The symlink is gitignored, so it isn't present on a CI runner that only checks out this repo.

purefoy is a public repo, but the docs still asserted it 'MUST be PRIVATE'
and — more dangerously — that scraped forum data in library/ was *tracked in
git for a private repo*. Verified false: 0 files tracked under library/,
downloads/, or analysis/ (all gitignored). No data is or was exposed; the
'tracked for private repo' docs were aspirational/never executed.

Correct all of them to the actual model — **public repo, scraped data kept
off-git via .gitignore**:
- CLAUDE.md: keep-private bullet -> 'scraped data stays off-git'
- README.md: 'MUST be PRIVATE' section -> Git Data Policy; library/ moved
  from 'tracked' to 'gitignored'
- PROJECT_STRUCTURE.md: library/ '(TRACKED for private repo)' -> gitignored
- GIT_READY.md: 'Recommended: Private' -> 'Adopted: Public, code only'
- GIT_INIT_CHECKLIST.md: removed forum-data-as-tracked; flipped the
  verify-tracked command to verify-NOT-tracked; fixed summary
- PROJECT_STATUS.md: 'Forum data INCLUDED/tracked' -> excluded/gitignored;
  removed 'Keep PRIVATE' directives
- ROADMAP.md: 4.6 Public-vs-Private decision -> RESOLVED (public, code only)

Fair-use / copyright / rate-limit guidance retained.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ojfbot ojfbot changed the title docs(claude-md): route CLAUDE.md by loading-discipline (ADR-0081) docs(claude-md): loading-discipline routing + drop stale private-repo framing Jun 4, 2026
@ojfbot
ojfbot merged commit 8755625 into main Jun 4, 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