> docs-finalize-and-commit
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.
curl "https://skillshub.wtf/comsky/remy-skill-recipes/docs-finalize-and-commit?format=md"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:
- Working tree with uncommitted or staged
.md/.mdxfile 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/.mdxfiles 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 statusandgit diff --name-onlyto enumerate all uncommitted changes in the working tree.
Step 0-3: Classify changes
- Doc-scope:
.md/.mdxfiles 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/.mdxfiles 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.,
:::notein Docusaurus/VitePress,!!! notein 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.
- Admonition/callout syntax (e.g.,
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 diffon 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.jsin Docusaurus,_meta.jsonin Nextra,navinmkdocs.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_positionin 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.jsonscripts,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, orgit add --all. Always stage files individually withgit 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:::noteand:::tip - Code-Documentation Alignment Report: skipped (no source code changes)
- Quality Review Findings:
- Error: new page missing
sidebar_positionin frontmatter - Warning: "Configuration" page mixes "설정값" and "설정 값" (spacing)
- Info: "Getting Started" section order differs from convention
- Error: new page missing
- Actions Taken: added
sidebar_position: 1to frontmatter, standardized "설정값" (no space, matching 80% of existing usage) - Build Verification:
npm run buildexit 0, no warnings - Commit Plan: 2 commits — (a) style fix, (b) new content
- Final Commit Messages:
docs(style): standardize terminology and frontmatter in configuration pagedocs(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 (대시보드)");:::warningfor breaking changes,:::tipfor 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_COUNToption - 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
tagsfrontmatter field
- Actions Taken: fixed 2 broken links, updated old endpoint references,
added
MAX_RETRY_COUNTdocumentation, standardized bilingual term format, corrected speech level to 합쇼체, added missingtagsfields, registered new pages insidebars.js, flagged missing screenshot for user replacement - Build Verification:
npm run buildexit 0, 1 warning (pre-existing, out of scope) - Commit Plan: 4 commits
- Final Commit Messages:
docs(fix): repair broken links and remove stale image referencedocs(style): standardize terminology format and speech level across guidesdocs(content): add MAX_RETRY_COUNT configuration documentationdocs(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.
> related_skills --same-repo
> notion-format
Format and publish rich Notion documents with structured sections, code blocks, tables, callouts, quotes, mermaid diagrams, and emojis. Use when the user asks to organize, write, or save content to Notion, or when invoked with /notion-format. Detects content type (tech-doc, meeting-notes, analysis, tutorial, bug-report) and applies the appropriate formatting template automatically.
> ux-sentinel
Continuously detect recurring UI/UX concepts during frontend discussions, track conversation-wide recurrence, and register repeated concepts as structured knowledge assets in a Notion database via MCP.
> oss-code-analysis
Explore open-source GitHub repository source trees via web browsing to analyze and compare feature implementations at the code level. Supports two modes: cross-project comparison and single-project deep dive. Use when evaluating how OSS projects implement a specific feature, choosing architecture patterns, or benchmarking implementation strategies.
> finalize-and-commit
Finalize code changes for production readiness by removing duplicate logic, auditing hardcoded values, verifying build integrity, and structuring clean commits with Conventional Commits format.