name: commit-docs-updater
description: Maintain user-facing Markdown documentation in ops/docs using one commit as discovery input, while actively curating global docs information architecture. Organize docs into clear area-based folders, maintain navigable indexes, and keep content focused on current user-visible behavior only.
Commit Docs Updater
Keep ops/docs continuously accurate as a site guide and navigable information architecture. A commit is discovery input only, never part of docs narration.
Inputs
- Optional commit reference (
<commit>). - If no commit is provided, use
HEAD. - Treat exactly one commit as scope. Do not expand to ranges unless explicitly requested.
Core Rules
- Commit-guided, not commit-written:
- Use commit diff only to identify what user-facing areas might need docs updates.
- Never include commit hashes, commit subjects, PR/change-log framing, or "what changed in commit" sections in
ops/docs.
- User-facing only:
- Document behavior users can observe in UI/UX, routing, messaging, states, and outcomes.
- Ignore non-user-facing changes such as tests, snapshots, internal refactors, type-only cleanup, tooling, and internal file moves unless they cause user-visible behavior changes.
- Information architecture is part of the job:
- Reorganize
ops/docswhen structure is flat, fuzzy, or hard to navigate. - Use area-based folders, clear file names, and index pages that support browsing.
- Move, rename, split, merge, or remove docs pages when needed for clarity.
- Reorganize
- Timeless docs language:
- Describe current behavior, not development history.
- Write pages so they stay valid without needing commit context.
- Current-state only:
- Keep docs reflecting the latest structure and behavior.
- Do not keep legacy compatibility pages, shim pages, or old-path placeholders.
- Scale rules:
- Root
ops/docs/README.mdmust stay concise (target<=20task links inI am trying to...). - If an area exceeds
12content pages, create subarea folders with their ownREADME.mdindexes. - If an area has a topic cluster above
8pages, split that cluster into a subarea even if total area pages are below12.
- Root
- Ownership rules:
- Each user-facing behavior has one canonical docs page.
- Cross-area visibility is handled through links, not duplicate pages.
- Scope discipline:
- Use commit scope to detect impacted capabilities, then apply enough structural cleanup to keep the docs system coherent.
- Do not write non-user-facing technical history.
Workflow
- Resolve target commit.
target="${1:-HEAD}"
git rev-parse --verify "${target}^{commit}"
commit="$(git rev-parse --short=12 "${target}^{commit}")"
- Capture commit scope.
- Run
ops/skills/commit-docs-updater/scripts/commit_scope.sh [commit]. - Review patch and changed files:
git show --stat --patch --find-renames --find-copies "${target}^{commit}"
- Derive impacted capabilities, user-visible behavior, and edge scenarios.
- Filter to user-visible impact.
- For each changed area, classify whether behavior is user-visible.
- Include only user-visible impacts in docs updates.
- Skip non-user-facing deltas:
- tests (
__tests__, snapshots, mocks) - lint/format/config-only changes
- internal refactors with unchanged user behavior
- dependency or infra changes with no user-facing effect
- tests (
- If no user-visible impact exists, make no
ops/docsedits and report that explicitly.
- Assess global docs architecture.
- Read
references/doc-structure-strategy.md. - Inspect whether
ops/docsis discoverable from rootREADME.mdand area/subarea indexes. - If docs are flat or ambiguous, perform structural cleanup in this same update.
- Use area folders first, then subareas when scale rules are hit.
- Map user-facing impacts to canonical docs locations.
- Update existing pages when ownership is clear.
- Create pages when no page owns the capability.
- Move/rename pages when current location or name is misleading.
- Split mixed-concern pages and merge duplicate pages when needed.
- Remove obsolete pages that no longer describe current behavior.
- Maintain navigation surfaces.
- Root
ops/docs/README.mdmust be a usable start point for browsing. - Each area folder should have
README.mdindex when the area has multiple pages. - Each subarea folder should have
README.mdwhen scale rules trigger subareas. - Area and subarea indexes should be grouped using:
Overview,Features,Flows,Troubleshooting,Stubs,Related Areas. - Ensure readers can move from index -> feature page -> related pages.
- If adjacent capability is relevant but not fully documented yet, create a lightweight stub page with explicit TODO markers.
- Write user-facing documentation.
- Follow
references/user-facing-writing.md. - Cover:
- what users can do
- expected behavior in normal flows
- alternate, edge, and failure scenarios
- limitations or non-goals when relevant
- Prefer concrete scenarios over implementation details.
- Keep content commit-agnostic and user-guide oriented.
- Enforce scope guardrails.
- Do not rewrite unaffected docs for style-only cleanup.
- Do not include sections titled "What Changed", "Commit Notes", or similar change-log wording.
- Do not include non-user-facing implementation details unless they explain visible behavior.
- Do not leave docs in a half-migrated structure; complete moved/renamed link updates in the same change.
- Validate.
- Run
ops/skills/commit-docs-updater/scripts/validate_docs_links.py. - Re-scan touched docs for statements that conflict with current behavior.
- Re-scan touched docs for forbidden commit-centric wording.
- Ensure root and area indexes reference moved/new/deleted files correctly.
- Report output.
- Include:
- docs files changed
- docs files moved/renamed/deleted
- folders/indexes added or updated
- user scenarios and edge/failure behaviors added or updated
- non-user-facing areas intentionally skipped with reasons
- coverage gaps captured as TODO stubs (if any)
Restructuring Rules
- Restructure aggressively enough to keep docs navigable and logically grouped.
- Allowed:
- split oversized page that blocks a clean update
- move or rename pages to canonical area/subarea folders and names
- merge duplicate pages that describe the same capability
- remove obsolete pages that no longer reflect current behavior
- add/update root, area, and subarea index pages
- Not allowed:
- preserving outdated structure for historical reasons
- leaving stale references after moving or renaming pages
- duplicating one behavior across multiple canonical pages
Naming Rules
- Use lowercase kebab-case.
- Use
feature-*,flow-*, andtroubleshooting-*page prefixes. - Avoid redundant area prefixes inside area/subarea folders.
- Example: use
ops/docs/waves/create/feature-dates-step.md, notfeature-wave-create-dates-step.md.
- Example: use
- Prefer stable behavior terms over implementation names.
Quality Bar
Every updated page should let a new reader answer:
- What does this part of the site do?
- What can users do, step by step?
- What should users expect in common scenarios?
- What happens in edge or failure scenarios?
- What limitations or constraints should users know?
The docs system as a whole should let a reader answer:
- Where do I start reading for this site area?
- How do I find related functionality quickly from the current page?
- Is this documentation describing the current product state only?