一键导入
docs-audit
Audit README and STATUS against shipped code — surface documentation drift, then apply targeted edits on approval
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Audit README and STATUS against shipped code — surface documentation drift, then apply targeted edits on approval
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Cut a release: analyze unreleased work, propose semver bump, draft CHANGELOG, tag, and push
Clean up stale git state — remove merged branches (local and remote), prune remote tracking refs, remove stale worktrees, and land on a clean main. Use this whenever the repo feels messy after forge-loop sessions, before starting new work, or when asked to tidy/clean up branches or worktrees. Also triggers for: 'what local work is out of sync?', 'I have stale branches', 'clean up after merging', 'remove old worktrees'.
Guide the creation of a high-quality engram enrichment plugin — js-module or executable transport — with correct manifest, auth, scope, vocab, aliases, cursor, and tests
Run the full forge pipeline end-to-end within this Claude Code session, processing multiple issues autonomously until a stop condition is met
| name | docs-audit |
| description | Audit README and STATUS against shipped code — surface documentation drift, then apply targeted edits on approval |
| disable-model-invocation | true |
You are auditing the user-facing docs (README.md and docs/internal/STATUS.md)
against what has actually shipped. The goal is to catch drift — new commands
missing from the table, stale version headers, plugins listed as "Planned" that
have already shipped as plugins, "in development" language after a tagged
release — and fix it with targeted edits, not rewrites.
Scope boundary: This skill does not touch:
CHANGELOG.md — owned by /release. Treat it as an authoritative input.docs/internal/VISION.md — owned by /product. Only flag drift for a
human to route; do not edit it here.docs/internal/DECISIONS.md — ADRs are append-only; this skill only reads.docs/internal/specs/ — ditto./docs-audit — Gap list mode: survey drift, report, wait for approval
/docs-audit apply — Apply the edits proposed in the most recent gap list
/docs-audit readme — Scope audit to README.md only
/docs-audit status — Scope audit to docs/internal/STATUS.md only
Default is gap-list-then-wait. Only apply edits after the user has seen the gap list and approved.
Read forge.toml at the repo root to confirm base_branch and repo. If
missing, stop and tell the user to run /onboard first.
Find the last point where docs were intentionally synced:
# Last commit that touched README or STATUS with a docs: prefix
git log -n 1 --format=%H --grep='^docs' -- README.md docs/internal/STATUS.md
# Fall back to the last release tag if no docs commit is recent
git describe --tags --abbrev=0
Call this point SINCE. Everything merged after SINCE is in the audit
window. Report the chosen anchor to the user so they can override if it's
wrong (e.g. /docs-audit since=v0.2.0).
Read these, in this order:
CHANGELOG.md — full list of shipped features, grouped by version. This
is the authoritative "what shipped" record. Pay attention to entries newer
than SINCE.README.md — the doc you're about to audit.docs/internal/STATUS.md — the status doc.packages/engram-cli/src/cli.ts — the registered command list. Every
register<X>(program) call is a command that must appear in the README
commands table.ls packages/plugins/ — current bundled plugins. Every subdirectory
should be represented in the enrichment table.ls docs/examples/ — config examples worth linking.Collect live commit data:
# Commits in the audit window (newest first)
git log --oneline $SINCE..HEAD
# Files touched (helps spot adapter/CLI/spec additions)
git log --name-only --pretty=format:'%h %s' $SINCE..HEAD
For each new CLI command (anything imported in cli.ts whose file was added
in the window), read the command's .description() and .addHelpText("after", ...)
so your proposed table row quotes real help text, not fabricated prose.
Produce findings across six categories. Each finding must name a specific file + section + what's stale + the evidence from Step 2.
register<X> in cli.ts must appear in the table..description() in the command file.--flag options worth surfacing (e.g. context --as-of).packages/plugins/ must appear as "Plugin (bundled)"
in the enrichment table.packages/plugins/* should be mentioned in the Architecture inventory.git describe --tags --abbrev=0.Latest release: line must match the highest tag.Experimental until the owner says otherwise.For each Added entry in CHANGELOG newer than SINCE, confirm there's a
README reference. Missing narrative-level features (new workflows, new config
files, new top-level commands) usually justify a sentence or subsection.
Minor fixes and internal refactors do not.
engram sync and its config schema should have a subsection if the
sync command exists in cli.ts.docs/examples/.engram.config.json should be linked from the sync
subsection..engramignore / vendor heuristics should be mentioned if implemented
in source ingest.Last synced: date should be today.Architecture Stats counts (packages, specs, ADRs, schema version,
adapter contract) should match the current repo. Cross-check by counting:ls packages/ | wc -l # core packages
ls packages/plugins/ 2>/dev/null | wc -l # plugins
ls docs/internal/specs/*.md 2>/dev/null | wc -l # specs
grep -c '^## ADR-' docs/internal/DECISIONS.md # ADRs
Output one organized block per file. Each finding names:
Format:
### README.md
1. **Commands table** — missing `engram sync`, `engram why`, `engram brief`,
`engram onboard`, `engram diff`, `engram whats-new`, `engram update`,
`engram plugin info`.
Evidence: cli.ts:6–32 imports all of these; CHANGELOG 0.3.0 §Added.
Proposed rows:
| engram sync | Run every source declared in .engram.config.json… |
| engram why <file|symbol|line> | Narrate the history and rationale… |
…
2. **Status section header** — says "v0.2 (schema) — in development" but
`git describe` shows v0.3.1.
Evidence: `git describe --tags --abbrev=0` → v0.3.1.
Proposed: "Latest release: v0.3.1 (schema v0.2, adapter contract v2)."
### docs/internal/STATUS.md
…
At the end of the report, print:
Run
/docs-audit applyto commit these edits, or reply with specific finding numbers to keep (e.g. "apply 1, 3, 5 only"). No files have been modified yet.
Do not modify any files in gap-list mode.
Triggered by /docs-audit apply or a reply indicating which findings to
apply. Rules:
Edit with unique old_string / new_string, not Write. Targeted
edits only — one finding = one Edit call where possible.git diff.When done, print:
Applied N findings across M files. Run `git diff` to review.
.description() / .addHelpText(), not
from your interpretation of what the command does./release or /product.SINCE. The user needs to know what window you
audited against so they can challenge the anchor if it's wrong.