← ClaudeAtlas

docs-synclisted

Rewrites stale `README.md` and `docs/*.md` sections based on changes since main. Use before staging, or when asked to "sync the public docs", "update the docs in docs/", or "update the README". Do NOT use for the `.claude/` planning surface, which `docs-fold` owns, or for changelog and `CLAUDE.md` updates.
erclx/canon · ★ 2 · AI & Automation · score 68
Install: claude install-skill erclx/canon
# Docs sync Read these files in parallel: - `${CLAUDE_SKILL_DIR}/../../standards/markdown.md`: banned words, punctuation, and formatting for all generated text - The `write-human` skill: voice, rhythm, and sentence construction for all generated text - `${CLAUDE_SKILL_DIR}/../../standards/readme.md`: README structure, required sections, and content rules - `${CLAUDE_SKILL_DIR}/../../standards/docs.md`: the reader a page under `docs/` serves, its frontmatter, structure, and what it links out rather than carrying ## Diff baseline Resolve the base ref once and reuse it in Context and in Guards: ```bash git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD main 2>/dev/null ``` Prefer `origin/main` over local `main`. On `main` itself the local ref resolves to HEAD, so every committed change drops out of the set and the skill reports nothing to sync rather than admitting it cannot see the work. The baseline is unusable in two cases: - No merge base resolves against either ref. - The base equals HEAD, whichever ref resolved it. Nothing is committed ahead of the base to compare against. This is the ordinary shape on `main`, and on a feature branch before its first commit. An unusable baseline costs only the committed half. `git diff --cached <base>` degrades to the staged set and `git status --short` still reports the working tree, so both reads stay at this skill's own scope. Say so in the preview with `⚠ Baseline unusable. Synced against the uncommitted set on