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.
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
Related Skills
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:
Working tree with uncommitted or staged .md/.mdx file changes
Access to the documentation project build command (if the framework
provides one)
Existing documentation files to derive conventions from (at least 3 pages)
Optional but recommended:
Target branch context (e.g., main, release)
List of intended change scope (files or directories)
Known glossary or style guide (if any)
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)
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).
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.
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
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(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.