Skip to main content

blueprint-docs-currency

Enforce same-commit landing of code and docs (APIs, formats, ADRs). Use when committing API/format changes, finding docs a staged change affects, promoting research, or landing an ADR.

ソース情報

リポジトリ
laurigates/claude-plugins
ソースの最終更新活動
2026年9月24日 08:20
検出された SKILL.md の言語
英語
スター
60
フォーク
6

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
blueprint-docs-currency
description
Enforce same-commit landing of code and docs (APIs, formats, ADRs). Use when committing API/format changes, finding docs a staged change affects, promoting research, or landing an ADR.
allowed-tools
Bash(bash *), Read, Grep, Glob, TodoWrite
created
2026-04-24T00:00:00.000Z
modified
2026-09-23T00:00:00.000Z
reviewed
2026-09-23T00:00:00.000Z
# Blueprint Docs Currency Same-commit discipline for code and documentation. This skill is the reusable version of claude-plugins' `.claude/rules/docs-currency.md`, refined for blueprint-driven projects. ## When to Use This Skill | Use this skill when… | Skip when… | |---------------------|------------| | Committing code that changes a public API, format spec, or error enum | Refactoring internal helpers with no external surface change | | Promoting research findings from `tmp/` to `docs/` | Scratch work that will not ship | | Landing an architectural decision | Implementation detail with no branching trade-off | | Advancing a tracker entry past "in progress" | Small task completion that does not cross a phase gate | | A reviewer flags missing documentation | Typo fixes or whitespace changes | ## The Rule > Code + its docs land in the same commit. Research promotes to `docs/` > before the feature advances past "in progress." ADR-worthy decisions > land with a new or updated ADR in the same commit. ## Same-commit scope | Change kind | Doc target | |-------------|-----------| | Public API / exported type | Inline docstring + reference doc under `docs/api/` (or tool-appropriate) | | File-format spec | `docs/format-spec/<name>.md` (hand-written prose, not generated) | | Error enum / protocol code | `docs/errors/<name>.md` or the protocol reference | | Milestone / phase status | Feature-tracker entry + `docs/PLAN.md` if the phase advanced | | Architectural decision | New ADR under `docs/adrs/NNNN-<title>.md` | | New CLI flag or subcommand | README + relevant `docs/cli/` page | Forward-reference `blueprint-plugin:blueprint-curate-docs` for how to produce the curated `.claude/rules/` entry when the code change surfaces an AI-context gotcha worth capturing. ## Research promotion workflow Research findings arrive in `tmp/` (gitignored). Before the dependent feature advances past "in progress" in the blueprint feature tracker: 1. Move the findings into `docs/` at a canonical path (e.g. `docs/research/<topic>.md`, or directly into `docs/format-spec/<name>.md` if the research *is* the spec). 2. If the research produced a decision, file an ADR. ADRs without a decision record are a code smell — revert to research notes. 3. Update the feature-tracker entry with the `docs/` path in its evidence field (`blueprint-plugin:feature-tracking` handles the mechanical edit). 4. Only then flip the tracker status from `in_progress` to `done`. See `blueprint-plugin:blueprint-curate-docs` for the prose-production mechanics; see `blueprint-plugin:blueprint-sync` for the drift detection that catches stale generated content drifting from source PRDs. ## Sidecars are not documentation | Layer | Lives at | Authoritative? | |-------|----------|----------------| | `TODO.md`, feature tracker JSON | Repo root or `docs/blueprint/` | No — sidecar | | `docs/PLAN.md`, `docs/roadmap.md` | `docs/` | Yes | | `docs/format-spec/`, `docs/api/` | `docs/` | Yes | | ADRs in `docs/adrs/` | `docs/adrs/` | Yes | | `tmp/research/…` | gitignored | No — scratch | Sidecars record priority, status, and notes for humans. If a reader needs the information to port, debug, or onboard, it belongs in `docs/`, not the sidecar. ## Dependency sweep Before committing, run the bounded sweep over the staged diff: ```bash bash "${CLAUDE_SKILL_DIR}/../../scripts/docs-dependency-sweep.sh" --project-dir "$(pwd)" ``` It names the hand-written docs that may describe what the commit changes, one hop from each staged path. It reports; it never edits. | Staged path | Candidate docs (`KIND=`) | |-------------|--------------------------| | `<plugin>/skills/<skill>/…`, `<plugin>/agents/<agent>.md`, `<plugin>/.claude-plugin/…` | plugin `README.md` (`plugin_readme`), plugin `plugin.json` (`plugin_manifest`), `README.md` / `docs/PLUGIN-MAP.md` / `.claude-plugin/marketplace.json` (`catalog`) | | `<plugin>/<any other path>` | plugin `README.md`, plugin `plugin.json` | | `.claude/rules/<rule>.md` | `CLAUDE.md` / `AGENTS.md` (`rule_index`), then every other tracked `*.md` citing `<rule>.md` (`rule_backref`) | | Anything else | Not swept (`UNMAPPED_PATHS=`); use the Same-commit scope table | **Bound.** At most `CANDIDATE_CAP` files are examined (default 10; set it with `--cap N` or `DOCS_SWEEP_CAP`). Candidates already staged count as covered and are not examined. Past the cap the sweep stops and emits one `cap_reached` finding with the number dropped: a change that broad needs a full review, not a longer sweep. **Reading the output.** Each `review_candidate` row carries `DOC=`, `KIND=`, the staged `SOURCE=`, and `ENTRY_LINES=`, the lines in that doc that name the change (`none`: the doc does not name it; `-`: there was no specific name to look for). Open each doc at those lines, then update it in this commit or confirm it is unaffected. `STATUS=OK` means nothing is left to review. ## Pre-commit checklist Before `git commit`, ask: - [ ] Does this change the public API, file format, error enum, or milestone status? - [ ] Same commit touches the corresponding `docs/` file? - [ ] Dependency sweep run, and every `review_candidate` updated in this commit or confirmed unaffected? - [ ] Decision made → new / updated ADR in the same commit? - [ ] `tmp/research/` either empty or intentionally scratch for this change? - [ ] Feature tracker entry's evidence field cites the new `docs/` path? If any box is unchecked, the commit is not ready. Pattern-match on what the code changed, then fix the doc gap in place. ## Pre-merge checklist Before a PR's final review: - [ ] `git log main..HEAD` — each commit that touches a scoped surface has a same-commit doc edit - [ ] `find tmp -type f` — empty, or the contents are scratch that should not ship - [ ] No `docs: follow-up` commits planned for after merge Deferred doc follow-ups are the failure mode this skill exists to prevent. "I'll write the spec after the code is in" is the signal to stop and write the spec now. ## Quick Reference | Signal | Action | |--------|--------| | Adding a new exported function | Same commit: update the reference doc | | Changing a binary format header | Same commit: update `docs/format-spec/<name>.md` | | Adding an error code | Same commit: update error enum docs | | Choosing library A over library B | Same commit: file an ADR | | Promoting `tmp/research/foo.md` → feature | Move to `docs/` first, advance tracker second | ## Related - `.claude/rules/docs-currency.md` — claude-plugins' dogfood version of this rule - `blueprint-plugin:blueprint-curate-docs` — mechanics of producing curated rule entries - `blueprint-plugin:blueprint-sync` — drift detection for generated docs - `blueprint-plugin:feature-tracking` — tracker entry mechanics - `scripts/check-docs-index.sh` (claude-plugins, Layer 1 of #1460) — the whole-repo audit that owns skill/agent counts; the sweep names rows and never compares counts - `.claude/rules/conventional-commits.md` — commit types that co-evolve with docs > Evidence: research landed without a same-commit `docs/` update — the > spec had to be reconstructed in a follow-up PR. The inverse pattern > (same-commit code + spec) survived grep-based re-investigation months > later without loss.
GitHubで見る