Documentation Publishing¶
How Documentation/** reaches readers, and the scripts that keep it honest. For getting the project itself
running, see the root README.
Architecture¶
Push to main touching Documentation/** → deploy-docs.yml (GitHub-hosted, LFS-free checkout)
→ mkdocs build → Cloudflare Pages
PR-time gate: docs-link-check.yml runs Tools/check_doc_links.ps1 and fails the PR on a broken relative link or a
SUMMARY.md omission. Secrets used by the deploy: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID.
Docs are kept accurate manually: docs-sync commits alongside code changes, plus a weekly health-pass
that sweeps CLAUDE.md and Documentation/ for drift. A GitHub-hosted workflow (deploy-docs.yml)
also builds Documentation/** with mkdocs and publishes it to Cloudflare Pages on every push to main.
Repo hygiene scripts¶
| Script | Purpose |
|---|---|
Tools/check_doc_links.ps1 |
Validates relative markdown links (and #anchor fragments) in CLAUDE.md, Documentation/**, Learnings/**. Run by docs-link-check.yml on PRs; run locally before pushing doc edits |
Tools/lint_learnings.ps1 |
Lints Learnings/*.md frontmatter (type enum, trigger counts, wiki-link resolution). Invoked from the pre-commit hook when Learnings/** is staged |
Tools/gen_impldocs_index.ps1 |
Regenerates ImplementationDocs/INDEX.md (every top-level plan with its Phase and last git-touch date). Run from /wrapup or manually |
Tools/trap_check.ps1 |
Surfaces Learnings notes whose triggers: match an activity you are about to perform (-Trigger ge-cdo-edit, -List) — the read-time half of the learnings loop |