Skip to content

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