Skill: Finalize Documentation and Commit (Review, Consistency, Alignment)
Type: Execution
Purpose
Finalize documentation changes for production readiness in a documentation
project that coexists with the product source code in the same workspace.
Works with any documentation framework (Docusaurus, VitePress, MkDocs, Nextra,
plain Markdown, etc.).
Tasks:
- Discover conventions from existing documentation
- Verify code-documentation alignment when source code changed
- Review format, terminology, tone, and completeness consistency
- Validate framework-specific syntax and build integrity
- Prepare structured commits separated by change type
When to Use
- Before committing documentation changes to a shared branch
- Before submitting a pull request that includes documentation updates
- After completing a documentation session that touched multiple pages
- When source code and documentation were both modified in the same session
- When preparing a clean commit history from messy documentation edits
When NOT to Use
- Work-in-progress drafts still actively being written
- Trivial single-line typo fixes that need no consistency review
- Initial documentation scaffolding or exploratory writing phases
- Changes already reviewed and approved through another skill
- Standalone Markdown files outside a documentation project structure
Inputs Required
Do not run this skill without:
Optional but recommended:
Output Format
- Convention Reference (discovered patterns)
- Code-Documentation Alignment Report
- Quality Review Findings
- Actions Taken (auto-fixes applied)
- Build Verification Results
- Commit Plan
- Final Commit Messages
Procedure
Gate 0 – Working Set Validation
CRITICAL: The working tree may contain changes from other agent sessions
or manual edits. This gate must isolate only the current session's changes
without disturbing anything else.
Step 0-1: Identify current session scope
- Review the conversation history and edit history of this session.
- Build an explicit list of
.md/.mdx files that were created, modified,
or deleted by this session.
- Separately identify source code files changed in this session (needed for
Gate 2).
- If the user provided a scope list, use that as the authoritative source.
Step 0-2: Inspect full working tree state
- Run
git status and git diff --name-only to enumerate all uncommitted
changes in the working tree.
Step 0-3: Classify changes
- Doc-scope:
.md/.mdx files that appear in both the session scope
(Step 0-1) and the working tree (Step 0-2).
- Code-scope: Source code files changed by this session (input for Gate 2).
- Out-of-scope: Files in the working tree NOT modified by this session.
Step 0-4: Protect out-of-scope changes
- NEVER revert, restore, checkout, stash, or discard out-of-scope changes.
- Out-of-scope files must be left exactly as they are in the working tree.
- The only correct action is to exclude them from staging (
git add).
Step 0-5: Confirm with the user
- Present a summary:
- Documentation files to be reviewed and committed (doc-scope)
- Source code files to cross-reference (code-scope)
- Files left untouched (out-of-scope), if any
- Proceed only after the user confirms the target set.
Gate 1 – Convention Discovery
PURPOSE: Since no formal style guide exists, infer conventions from
existing documentation to use as the review baseline.
Step 1-1a: Scan documentation headers
- Read frontmatter + first 30 lines of 10–15 representative
.md/.mdx files from the docs directory
(prioritize recently modified, high-traffic pages).
- If fewer than 10 documentation files exist, read all available files.
- Exclude files in the current session's change set to avoid circular
reference.
- From this scan, extract: frontmatter field names, heading structure,
first paragraph tone/speech level.
Step 1-1b: Deep read divergent samples
- Compare patterns extracted in Step 1-1a across all samples.
- Identify files where patterns diverge or are ambiguous
(e.g., inconsistent frontmatter fields, mixed heading levels).
- Full-read only the divergent files (typically 2–5 files) to resolve
ambiguity.
- If all samples show consistent patterns in Step 1-1a, skip this step.
Step 1-2: Extract structural patterns
- Frontmatter fields and their value patterns (title, sidebar_position,
sidebar_label, description, tags, etc.)
- Heading level conventions (e.g.,
# for page title only, ## for
top-level sections, ### for subsections)
- Common section ordering patterns (e.g., Overview → Usage → Configuration
→ Troubleshooting)
Step 1-3: Build terminology glossary
- Collect UI element names, feature names, and technical terms used
consistently across existing pages.
- Note the canonical form for each term (e.g., "저장" not "저장하기",
"Dashboard" not "대시보드" — or vice versa, depending on existing pattern).
- Record bilingual term pairs if the documentation uses a mixed-language
convention (e.g., Korean prose with English UI labels).
Step 1-4: Identify tone and style
- Determine the dominant speech level (e.g., 합쇼체
~합니다, 해요체
~해요, 하십시오체 ~하십시오).
- Identify person/voice conventions (e.g., "사용자는
합니다" vs
"하세요" imperative).
- Note active vs passive voice preference.
Step 1-5: Identify documentation framework and catalog its conventions
- Detect the documentation framework in use by examining configuration files
(e.g.,
docusaurus.config.js, .vitepress/config.*, mkdocs.yml,
next.config.* for Nextra, or none for plain Markdown).
- Catalog framework-specific syntax patterns found in existing documentation:
- Admonition/callout syntax (e.g.,
:::note in Docusaurus/VitePress,
!!! note in MkDocs, > [!NOTE] in GitHub-flavored Markdown).
- Component patterns (e.g.,
<Tabs>/<TabItem> in Docusaurus,
custom MDX components in Nextra).
- Code block language tags and annotation conventions.
- Custom component or shortcode usage patterns.
Step 1-6: Compile Convention Reference
- Produce a structured summary to use as the review baseline in Gates 2–3.
- Present the Convention Reference to the user for confirmation before
proceeding.
Gate 2 – Code-Documentation Alignment
ACTIVATION: This gate runs only if code-scope files were identified in
Gate 0. If no source code changed, skip to Gate 3.
Step 2-1: Analyze source code changes
- Run
git diff on code-scope files.
- Extract changed items: API endpoints, function signatures, component props,
configuration keys, CLI commands, environment variables.
Step 2-2: Map code changes to documentation
- Search across all documentation files (not just in-scope) for references to
the changed items using filename, import path, and keyword matching.
- Build a mapping:
changed code item → documentation section(s) referencing it.
Step 2-3: Identify alignment gaps
Produce an alignment report with three categories:
- Already updated: Documentation section was modified in this session and
reflects the code change.
- Needs update: Documentation references the changed code but was NOT
updated in this session.
- No documentation found: Code change has no corresponding documentation
(flag for user decision).
Present the report to the user. "Needs update" items must be resolved before
proceeding — resolution means either updating the documentation OR the user
explicitly acknowledging that no documentation change is needed (with reason).
Gate 3 – Documentation Quality Review
Apply the Convention Reference from Gate 1 to all doc-scope files.
3a) Structural consistency
- Heading levels follow the discovered convention.
- Frontmatter contains all expected fields with valid values.
- Section ordering matches the established pattern.
- No orphan headings (e.g., jumping from
## to ####).
3b) Terminology consistency
- Terms match the glossary from Gate 1.
- No mixed usage of the same concept (e.g., "저장" vs "저장하기", "Save"
vs "세이브").
- Proper nouns, product names, and feature names are cased consistently.
3c) Tone and style consistency
- Speech level matches the discovered convention (no mixing 합쇼체 and
해요체 within the same page).
- Person/voice is consistent (imperative vs descriptive).
- No abrupt tone shifts between sections.
3d) Content completeness
- No TODO, TBD, FIXME, placeholder, or Lorem ipsum markers.
- No empty sections (heading followed immediately by another heading or EOF).
- No untranslated placeholder text if the documentation is localized.
3e) Framework-specific syntax validity
- Admonitions/callouts properly opened and closed per the framework's syntax.
- Framework-specific components have matching open/close tags and required
attributes (if applicable).
- Code blocks have language tags and are properly fenced.
- MDX/component imports resolve to existing components (if applicable).
- Frontmatter YAML is valid (no syntax errors, no duplicate keys).
3f) Image and screenshot references
SKIP CONDITION: Skip if no image references ( or <img src="path">) points to a
file that exists in the repository.
- All images have non-empty alt text.
- No stale images (referenced file was deleted or moved).
3g) Link validity
- Internal document links (relative paths) resolve to existing files.
- Anchor links (
#section-name) match actual heading slugs in the target
document.
- No broken cross-references between documentation pages.
3h) Sidebar and navigation alignment
SKIP CONDITION: Skip if no files were added or deleted in this
session (only modifications). Sidebar/nav changes are only relevant
when the file set changes.
- Identify the sidebar/navigation configuration mechanism (e.g.,
sidebars.js in Docusaurus, _meta.json in Nextra, nav in
mkdocs.yml, auto-generated from directory structure in VitePress).
- New documentation files added in this session are registered in the
navigation configuration.
- Deleted documentation files are removed from the navigation configuration.
- Ordering metadata (e.g.,
sidebar_position in frontmatter, file ordering
in config) does not conflict with other pages in the same category.
Produce a Quality Review Report organized by severity:
- Error: Must fix before commit (broken syntax, missing images, dead links).
- Warning: Should fix (terminology inconsistency, tone drift, missing
alt text).
- Info: Optional improvement (section ordering, heading level suggestion).
Gate 4 – Auto-Fix
Step 4-1: Apply automatic fixes
Fix items that require no judgment:
- Terminology standardization (replace variant forms with canonical term)
- Heading level corrections
- Broken relative link path repair (if the correct target is deterministic)
- Missing frontmatter field population (using Convention Reference defaults)
- Admonition/code block syntax repair
- Remove TODO/placeholder markers in completed sections
Step 4-2: Present judgment-required items
Items that need user input:
- Content gaps identified in Gate 2 (code-doc alignment)
- Ambiguous terminology choices (when two forms are equally common)
- Tone corrections that alter meaning
- Missing images that need creation or replacement
Step 4-3: Summarize changes
- Present a before/after diff summary of all auto-fixes.
- Get user confirmation before proceeding.
Gate 5 – Build Verification
Step 5-1: Run documentation build
- Detect the build command from the project configuration (e.g.,
package.json scripts, Makefile, or framework CLI).
- Execute the build command from the documentation project root.
- Capture full output including warnings.
Step 5-2: Evaluate results
- Build succeeds with no warnings: Proceed to Gate 6.
- Build succeeds with warnings: Report warnings to user. Fix if they
relate to in-scope files; proceed if warnings are pre-existing.
- Build fails: Analyze error, apply fix, return to Gate 4 Step 4-1.
Step 5-3: Record evidence
- Build pass = final proof that documentation syntax and link references are
valid.
- Save build exit code and relevant output lines for the commit record.
Gate 6 – Commit Structuring
Staging rule: Stage only doc-scope files confirmed in Gate 0.
Use git add <specific-file> for each file individually.
Never use git add ., git add -A, or git add --all.
Step 6-1: Categorize changes
Group in-scope files by change type:
| Change Type |
Commit Prefix |
Description |
| Error fixes |
docs(fix): |
Broken links, syntax errors, missing images |
| Style/format |
docs(style): |
Terminology, tone, heading, frontmatter normalization |
| Content update |
docs(content): |
New sections, rewritten paragraphs, expanded explanations |
| Code-sync |
docs(sync): |
Documentation updates reflecting source code changes |
Step 6-2: Structure commits
- Create separate commits for each change type present.
- If a file has changes spanning multiple types, split by type where possible;
otherwise, assign to the dominant change type.
- Ordering:
docs(fix) → docs(style) → docs(content) → docs(sync).
Step 6-3: Write commit messages
Use Conventional Commits format. Each message must include:
- What changed (affected pages/sections)
- Why it changed (convention alignment, code-sync, error fix)
- Scope of review (mention Convention Discovery and build verification)
Guardrails
- Do not invent or fabricate documentation content not supported by the source
code or existing documentation.
- Do not silence or bypass documentation build errors.
- Do not modify documentation tone or style without Convention Reference
backing.
- Do not alter existing screenshots or images — only flag broken references.
- If context is insufficient to determine the correct term or phrasing, ask
for clarification.
- Respect existing project conventions for commit messages and structure.
- NEVER use
git checkout -- <file>, git restore, git stash,
git reset --hard, or any other command that discards or reverts uncommitted
changes to files outside the current session's scope.
- NEVER use
git add ., git add -A, or git add --all. Always stage
files individually with git add <specific-file>.
- Working tree changes from other sessions, agents, or manual edits must be
left completely untouched.
- Convention Discovery must sample from existing documentation only — never
use in-scope changed files as convention sources.
- Do not auto-fix items that require content judgment (ambiguous terminology,
meaning-altering tone changes) without user approval.
Failure Patterns
Common bad outputs:
- Applying conventions from only 1–2 sample files, producing biased standards
- Skipping Convention Discovery and inventing arbitrary style rules
- Ignoring code-documentation alignment when source code was also changed
- Lumping all documentation changes into a single undifferentiated commit
- Fixing terminology inconsistencies without checking which form is canonical
in the existing corpus
- Running build verification in the wrong directory (product root instead of
docs project root)
- Auto-fixing tone in a way that changes technical meaning
- Flagging pre-existing issues in files not modified by this session
- Reverting or discarding uncommitted changes that belong to other sessions
- Using
git add . which accidentally stages out-of-scope changes
- Treating "ensure no unintended changes" as "revert unrelated files" instead
of "exclude from staging"
- Reporting Convention Reference without getting user confirmation, then
applying incorrect standards
Example 1 (Minimal Context)
Input:
2 documentation files changed: a new "Getting Started" page was added, and an
existing "Configuration" page had a section rewritten. No source code changes.
Output:
- Convention Reference: frontmatter requires
title, sidebar_position,
description; headings use ## for top-level sections; tone is 합쇼체
(~합니다); admonitions use :::note and :::tip
- Code-Documentation Alignment Report: skipped (no source code changes)
- Quality Review Findings:
- Error: new page missing
sidebar_position in frontmatter
- Warning: "Configuration" page mixes "설정값" and "설정 값" (spacing)
- Info: "Getting Started" section order differs from convention
- Actions Taken: added
sidebar_position: 1 to frontmatter, standardized
"설정값" (no space, matching 80% of existing usage)
- Build Verification:
npm run build exit 0, no warnings
- Commit Plan: 2 commits — (a) style fix, (b) new content
- Final Commit Messages:
docs(style): standardize terminology and frontmatter in configuration page
docs(content): add getting started guide
Example 2 (Realistic Scenario)
Input:
8 documentation files changed across 3 categories (guides, API reference,
troubleshooting). 4 source code files also changed, including a renamed API
endpoint and a new configuration option. Sidebar configuration was not updated.
Output:
- Convention Reference: frontmatter fields
title, sidebar_position,
sidebar_label, description, tags; 합쇼체 tone; features referenced
with English name first then Korean in parentheses (e.g., "Dashboard
(대시보드)"); :::warning for breaking changes, :::tip for best practices
- Code-Documentation Alignment Report:
- Already updated: API reference page for renamed endpoint
- Needs update: troubleshooting page still references old endpoint name;
configuration guide missing new
MAX_RETRY_COUNT option
- No documentation: new internal helper function (no user-facing docs needed)
- Quality Review Findings:
- Error: 2 broken internal links (target files were reorganized last sprint)
- Error: 1 image reference to deleted screenshot (
old-dashboard.png)
- Warning: API reference uses "대시보드" without English name (convention
violation)
- Warning: new guide page uses 해요체 ("~해요") while convention is 합쇼체
- Info: 3 pages missing
tags frontmatter field
- Actions Taken: fixed 2 broken links, updated old endpoint references,
added
MAX_RETRY_COUNT documentation, standardized bilingual term format,
corrected speech level to 합쇼체, added missing tags fields, registered
new pages in sidebars.js, flagged missing screenshot for user replacement
- Build Verification:
npm run build exit 0, 1 warning (pre-existing, out
of scope)
- Commit Plan: 4 commits
- Final Commit Messages:
docs(fix): repair broken links and remove stale image reference
docs(style): standardize terminology format and speech level across guides
docs(content): add MAX_RETRY_COUNT configuration documentation
docs(sync): update API reference and troubleshooting for endpoint rename
Notes
FAST MODE (only if explicitly requested):
- Gate 1 Convention Discovery limited to 5 most recent files
- Gate 3 performs only 3a (structural) and 3d (completeness) checks
- Gate 5 build verification skipped
Relationship with finalize-and-commit:
When both source code and documentation changed in the same session, run
finalize-and-commit for source code first, then docs-finalize-and-commit
for documentation. Gate 2 of this skill reads source code diffs but does not
modify or commit source code files.
1---2name: docs-finalize-and-commit3description: Finalize documentation changes for production readiness by discovering existing conventions, verifying code-doc alignment, reviewing format/terminology/tone consistency, and structuring clean commits. Counterpart of finalize-and-commit for documentation projects.4license: MIT5---67# Skill: Finalize Documentation and Commit (Review, Consistency, Alignment)89**Type:** Execution1011## Purpose1213Finalize documentation changes for production readiness in a documentation14project that coexists with the product source code in the same workspace.15Works with any documentation framework (Docusaurus, VitePress, MkDocs, Nextra,16plain Markdown, etc.).1718Tasks:1920- Discover conventions from existing documentation21- Verify code-documentation alignment when source code changed22- Review format, terminology, tone, and completeness consistency23- Validate framework-specific syntax and build integrity24- Prepare structured commits separated by change type2526---2728## When to Use2930- Before committing documentation changes to a shared branch31- Before submitting a pull request that includes documentation updates32- After completing a documentation session that touched multiple pages33- When source code and documentation were both modified in the same session34- When preparing a clean commit history from messy documentation edits3536---3738## When NOT to Use3940- Work-in-progress drafts still actively being written41- Trivial single-line typo fixes that need no consistency review42- Initial documentation scaffolding or exploratory writing phases43- Changes already reviewed and approved through another skill44- Standalone Markdown files outside a documentation project structure4546---4748## Inputs Required4950Do not run this skill without:5152- [ ] Working tree with uncommitted or staged `.md`/`.mdx` file changes53- [ ] Access to the documentation project build command (if the framework54 provides one)55- [ ] Existing documentation files to derive conventions from (at least 3 pages)5657Optional but recommended:5859- [ ] Target branch context (e.g., main, release)60- [ ] List of intended change scope (files or directories)61- [ ] Known glossary or style guide (if any)6263---6465## Output Format66671. Convention Reference (discovered patterns)682. Code-Documentation Alignment Report693. Quality Review Findings704. Actions Taken (auto-fixes applied)715. Build Verification Results726. Commit Plan737. Final Commit Messages7475---7677## Procedure7879### Gate 0 – Working Set Validation8081> **CRITICAL:** The working tree may contain changes from other agent sessions82> or manual edits. This gate must isolate *only* the current session's changes83> without disturbing anything else.8485**Step 0-1: Identify current session scope**8687- Review the conversation history and edit history of this session.88- Build an explicit list of `.md`/`.mdx` files that were created, modified,89 or deleted *by this session*.90- Separately identify source code files changed in this session (needed for91 Gate 2).92- If the user provided a scope list, use that as the authoritative source.9394**Step 0-2: Inspect full working tree state**9596- Run `git status` and `git diff --name-only` to enumerate all uncommitted97 changes in the working tree.9899**Step 0-3: Classify changes**100101- **Doc-scope:** `.md`/`.mdx` files that appear in both the session scope102 (Step 0-1) and the working tree (Step 0-2).103- **Code-scope:** Source code files changed by this session (input for Gate 2).104- **Out-of-scope:** Files in the working tree NOT modified by this session.105106**Step 0-4: Protect out-of-scope changes**107108- **NEVER** revert, restore, checkout, stash, or discard out-of-scope changes.109- Out-of-scope files must be left exactly as they are in the working tree.110- The only correct action is to *exclude* them from staging (`git add`).111112**Step 0-5: Confirm with the user**113114- Present a summary:115 - Documentation files to be reviewed and committed (doc-scope)116 - Source code files to cross-reference (code-scope)117 - Files left untouched (out-of-scope), if any118- Proceed only after the user confirms the target set.119120---121122### Gate 1 – Convention Discovery123124> **PURPOSE:** Since no formal style guide exists, infer conventions from125> existing documentation to use as the review baseline.126127**Step 1-1a: Scan documentation headers**128129- Read **frontmatter + first 30 lines** of 10–15 representative130 `.md`/`.mdx` files from the docs directory131 (prioritize recently modified, high-traffic pages).132- If fewer than 10 documentation files exist, read all available files.133- Exclude files in the current session's change set to avoid circular134 reference.135- From this scan, extract: frontmatter field names, heading structure,136 first paragraph tone/speech level.137138**Step 1-1b: Deep read divergent samples**139140- Compare patterns extracted in Step 1-1a across all samples.141- Identify files where patterns diverge or are ambiguous142 (e.g., inconsistent frontmatter fields, mixed heading levels).143- Full-read only the divergent files (typically 2–5 files) to resolve144 ambiguity.145- If all samples show consistent patterns in Step 1-1a, skip this step.146147**Step 1-2: Extract structural patterns**148149- Frontmatter fields and their value patterns (title, sidebar_position,150 sidebar_label, description, tags, etc.)151- Heading level conventions (e.g., `#` for page title only, `##` for152 top-level sections, `###` for subsections)153- Common section ordering patterns (e.g., Overview → Usage → Configuration154 → Troubleshooting)155156**Step 1-3: Build terminology glossary**157158- Collect UI element names, feature names, and technical terms used159 consistently across existing pages.160- Note the canonical form for each term (e.g., "저장" not "저장하기",161 "Dashboard" not "대시보드" — or vice versa, depending on existing pattern).162- Record bilingual term pairs if the documentation uses a mixed-language163 convention (e.g., Korean prose with English UI labels).164165**Step 1-4: Identify tone and style**166167- Determine the dominant speech level (e.g., 합쇼체 `~합니다`, 해요체168 `~해요`, 하십시오체 `~하십시오`).169- Identify person/voice conventions (e.g., "사용자는 ~합니다" vs170 "~하세요" imperative).171- Note active vs passive voice preference.172173**Step 1-5: Identify documentation framework and catalog its conventions**174175- Detect the documentation framework in use by examining configuration files176 (e.g., `docusaurus.config.js`, `.vitepress/config.*`, `mkdocs.yml`,177 `next.config.*` for Nextra, or none for plain Markdown).178- Catalog framework-specific syntax patterns found in existing documentation:179 - Admonition/callout syntax (e.g., `:::note` in Docusaurus/VitePress,180 `!!! note` in MkDocs, `> [!NOTE]` in GitHub-flavored Markdown).181 - Component patterns (e.g., `<Tabs>`/`<TabItem>` in Docusaurus,182 custom MDX components in Nextra).183 - Code block language tags and annotation conventions.184 - Custom component or shortcode usage patterns.185186**Step 1-6: Compile Convention Reference**187188- Produce a structured summary to use as the review baseline in Gates 2–3.189- Present the Convention Reference to the user for confirmation before190 proceeding.191192---193194### Gate 2 – Code-Documentation Alignment195196> **ACTIVATION:** This gate runs only if code-scope files were identified in197> Gate 0. If no source code changed, skip to Gate 3.198199**Step 2-1: Analyze source code changes**200201- Run `git diff` on code-scope files.202- Extract changed items: API endpoints, function signatures, component props,203 configuration keys, CLI commands, environment variables.204205**Step 2-2: Map code changes to documentation**206207- Search across all documentation files (not just in-scope) for references to208 the changed items using filename, import path, and keyword matching.209- Build a mapping: `changed code item → documentation section(s) referencing it`.210211**Step 2-3: Identify alignment gaps**212213Produce an alignment report with three categories:214215- **Already updated:** Documentation section was modified in this session and216 reflects the code change.217- **Needs update:** Documentation references the changed code but was NOT218 updated in this session.219- **No documentation found:** Code change has no corresponding documentation220 (flag for user decision).221222Present the report to the user. "Needs update" items must be resolved before223proceeding — resolution means either updating the documentation OR the user224explicitly acknowledging that no documentation change is needed (with reason).225226---227228### Gate 3 – Documentation Quality Review229230Apply the Convention Reference from Gate 1 to all doc-scope files.231232**3a) Structural consistency**233234- Heading levels follow the discovered convention.235- Frontmatter contains all expected fields with valid values.236- Section ordering matches the established pattern.237- No orphan headings (e.g., jumping from `##` to `####`).238239**3b) Terminology consistency**240241- Terms match the glossary from Gate 1.242- No mixed usage of the same concept (e.g., "저장" vs "저장하기", "Save"243 vs "세이브").244- Proper nouns, product names, and feature names are cased consistently.245246**3c) Tone and style consistency**247248- Speech level matches the discovered convention (no mixing 합쇼체 and249 해요체 within the same page).250- Person/voice is consistent (imperative vs descriptive).251- No abrupt tone shifts between sections.252253**3d) Content completeness**254255- No TODO, TBD, FIXME, placeholder, or Lorem ipsum markers.256- No empty sections (heading followed immediately by another heading or EOF).257- No untranslated placeholder text if the documentation is localized.258259**3e) Framework-specific syntax validity**260261- Admonitions/callouts properly opened and closed per the framework's syntax.262- Framework-specific components have matching open/close tags and required263 attributes (if applicable).264- Code blocks have language tags and are properly fenced.265- MDX/component imports resolve to existing components (if applicable).266- Frontmatter YAML is valid (no syntax errors, no duplicate keys).267268**3f) Image and screenshot references**269270> **SKIP CONDITION:** Skip if no image references (`` or `<img src="path">`) points to a274 file that exists in the repository.275- All images have non-empty alt text.276- No stale images (referenced file was deleted or moved).277278**3g) Link validity**279280- Internal document links (relative paths) resolve to existing files.281- Anchor links (`#section-name`) match actual heading slugs in the target282 document.283- No broken cross-references between documentation pages.284285**3h) Sidebar and navigation alignment**286287> **SKIP CONDITION:** Skip if no files were added or deleted in this288> session (only modifications). Sidebar/nav changes are only relevant289> when the file set changes.290291- Identify the sidebar/navigation configuration mechanism (e.g.,292 `sidebars.js` in Docusaurus, `_meta.json` in Nextra, `nav` in293 `mkdocs.yml`, auto-generated from directory structure in VitePress).294- New documentation files added in this session are registered in the295 navigation configuration.296- Deleted documentation files are removed from the navigation configuration.297- Ordering metadata (e.g., `sidebar_position` in frontmatter, file ordering298 in config) does not conflict with other pages in the same category.299300**Produce a Quality Review Report** organized by severity:301302- **Error:** Must fix before commit (broken syntax, missing images, dead links).303- **Warning:** Should fix (terminology inconsistency, tone drift, missing304 alt text).305- **Info:** Optional improvement (section ordering, heading level suggestion).306307---308309### Gate 4 – Auto-Fix310311**Step 4-1: Apply automatic fixes**312313Fix items that require no judgment:314315- Terminology standardization (replace variant forms with canonical term)316- Heading level corrections317- Broken relative link path repair (if the correct target is deterministic)318- Missing frontmatter field population (using Convention Reference defaults)319- Admonition/code block syntax repair320- Remove TODO/placeholder markers in completed sections321322**Step 4-2: Present judgment-required items**323324Items that need user input:325326- Content gaps identified in Gate 2 (code-doc alignment)327- Ambiguous terminology choices (when two forms are equally common)328- Tone corrections that alter meaning329- Missing images that need creation or replacement330331**Step 4-3: Summarize changes**332333- Present a before/after diff summary of all auto-fixes.334- Get user confirmation before proceeding.335336---337338### Gate 5 – Build Verification339340**Step 5-1: Run documentation build**341342- Detect the build command from the project configuration (e.g.,343 `package.json` scripts, `Makefile`, or framework CLI).344- Execute the build command from the documentation project root.345- Capture full output including warnings.346347**Step 5-2: Evaluate results**348349- **Build succeeds with no warnings:** Proceed to Gate 6.350- **Build succeeds with warnings:** Report warnings to user. Fix if they351 relate to in-scope files; proceed if warnings are pre-existing.352- **Build fails:** Analyze error, apply fix, return to Gate 4 Step 4-1.353354**Step 5-3: Record evidence**355356- Build pass = final proof that documentation syntax and link references are357 valid.358- Save build exit code and relevant output lines for the commit record.359360---361362### Gate 6 – Commit Structuring363364**Staging rule:** Stage only doc-scope files confirmed in Gate 0.365Use `git add <specific-file>` for each file individually.366Never use `git add .`, `git add -A`, or `git add --all`.367368**Step 6-1: Categorize changes**369370Group in-scope files by change type:371372| Change Type | Commit Prefix | Description |373|---|---|---|374| Error fixes | `docs(fix):` | Broken links, syntax errors, missing images |375| Style/format | `docs(style):` | Terminology, tone, heading, frontmatter normalization |376| Content update | `docs(content):` | New sections, rewritten paragraphs, expanded explanations |377| Code-sync | `docs(sync):` | Documentation updates reflecting source code changes |378379**Step 6-2: Structure commits**380381- Create separate commits for each change type present.382- If a file has changes spanning multiple types, split by type where possible;383 otherwise, assign to the dominant change type.384- Ordering: `docs(fix)` → `docs(style)` → `docs(content)` → `docs(sync)`.385386**Step 6-3: Write commit messages**387388Use Conventional Commits format. Each message must include:389390- What changed (affected pages/sections)391- Why it changed (convention alignment, code-sync, error fix)392- Scope of review (mention Convention Discovery and build verification)393394---395396## Guardrails397398- Do not invent or fabricate documentation content not supported by the source399 code or existing documentation.400- Do not silence or bypass documentation build errors.401- Do not modify documentation tone or style without Convention Reference402 backing.403- Do not alter existing screenshots or images — only flag broken references.404- If context is insufficient to determine the correct term or phrasing, ask405 for clarification.406- Respect existing project conventions for commit messages and structure.407- **NEVER** use `git checkout -- <file>`, `git restore`, `git stash`,408 `git reset --hard`, or any other command that discards or reverts uncommitted409 changes to files outside the current session's scope.410- **NEVER** use `git add .`, `git add -A`, or `git add --all`. Always stage411 files individually with `git add <specific-file>`.412- Working tree changes from other sessions, agents, or manual edits must be413 left completely untouched.414- Convention Discovery must sample from existing documentation only — never415 use in-scope changed files as convention sources.416- Do not auto-fix items that require content judgment (ambiguous terminology,417 meaning-altering tone changes) without user approval.418419---420421## Failure Patterns422423Common bad outputs:424425- Applying conventions from only 1–2 sample files, producing biased standards426- Skipping Convention Discovery and inventing arbitrary style rules427- Ignoring code-documentation alignment when source code was also changed428- Lumping all documentation changes into a single undifferentiated commit429- Fixing terminology inconsistencies without checking which form is canonical430 in the existing corpus431- Running build verification in the wrong directory (product root instead of432 docs project root)433- Auto-fixing tone in a way that changes technical meaning434- Flagging pre-existing issues in files not modified by this session435- Reverting or discarding uncommitted changes that belong to other sessions436- Using `git add .` which accidentally stages out-of-scope changes437- Treating "ensure no unintended changes" as "revert unrelated files" instead438 of "exclude from staging"439- Reporting Convention Reference without getting user confirmation, then440 applying incorrect standards441442---443444## Example 1 (Minimal Context)445446**Input:**4474482 documentation files changed: a new "Getting Started" page was added, and an449existing "Configuration" page had a section rewritten. No source code changes.450451**Output:**4524531. Convention Reference: frontmatter requires `title`, `sidebar_position`,454 `description`; headings use `##` for top-level sections; tone is 합쇼체455 (`~합니다`); admonitions use `:::note` and `:::tip`4562. Code-Documentation Alignment Report: skipped (no source code changes)4573. Quality Review Findings:458 - Error: new page missing `sidebar_position` in frontmatter459 - Warning: "Configuration" page mixes "설정값" and "설정 값" (spacing)460 - Info: "Getting Started" section order differs from convention4614. Actions Taken: added `sidebar_position: 1` to frontmatter, standardized462 "설정값" (no space, matching 80% of existing usage)4635. Build Verification: `npm run build` exit 0, no warnings4646. Commit Plan: 2 commits — (a) style fix, (b) new content4657. Final Commit Messages:466 - `docs(style): standardize terminology and frontmatter in configuration page`467 - `docs(content): add getting started guide`468469---470471## Example 2 (Realistic Scenario)472473**Input:**4744758 documentation files changed across 3 categories (guides, API reference,476troubleshooting). 4 source code files also changed, including a renamed API477endpoint and a new configuration option. Sidebar configuration was not updated.478479**Output:**4804811. Convention Reference: frontmatter fields `title`, `sidebar_position`,482 `sidebar_label`, `description`, `tags`; 합쇼체 tone; features referenced483 with English name first then Korean in parentheses (e.g., "Dashboard484 (대시보드)"); `:::warning` for breaking changes, `:::tip` for best practices4852. Code-Documentation Alignment Report:486 - Already updated: API reference page for renamed endpoint487 - Needs update: troubleshooting page still references old endpoint name;488 configuration guide missing new `MAX_RETRY_COUNT` option489 - No documentation: new internal helper function (no user-facing docs needed)4903. Quality Review Findings:491 - Error: 2 broken internal links (target files were reorganized last sprint)492 - Error: 1 image reference to deleted screenshot (`old-dashboard.png`)493 - Warning: API reference uses "대시보드" without English name (convention494 violation)495 - Warning: new guide page uses 해요체 ("~해요") while convention is 합쇼체496 - Info: 3 pages missing `tags` frontmatter field4974. Actions Taken: fixed 2 broken links, updated old endpoint references,498 added `MAX_RETRY_COUNT` documentation, standardized bilingual term format,499 corrected speech level to 합쇼체, added missing `tags` fields, registered500 new pages in `sidebars.js`, flagged missing screenshot for user replacement5015. Build Verification: `npm run build` exit 0, 1 warning (pre-existing, out502 of scope)5036. Commit Plan: 4 commits5047. Final Commit Messages:505 - `docs(fix): repair broken links and remove stale image reference`506 - `docs(style): standardize terminology format and speech level across guides`507 - `docs(content): add MAX_RETRY_COUNT configuration documentation`508 - `docs(sync): update API reference and troubleshooting for endpoint rename`509510---511512## Notes513514**FAST MODE** (only if explicitly requested):515516- Gate 1 Convention Discovery limited to 5 most recent files517- Gate 3 performs only 3a (structural) and 3d (completeness) checks518- Gate 5 build verification skipped519520**Relationship with `finalize-and-commit`:**521522When both source code and documentation changed in the same session, run523`finalize-and-commit` for source code first, then `docs-finalize-and-commit`524for documentation. Gate 2 of this skill reads source code diffs but does not525modify or commit source code files.526