界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
文档与办公 · SKILL.md

documentation-quality-assurance

documentation-quality-assurance

【文档与办公】Systematic documentation audit, drift detection, preflight validation, and multi-pass quality pipelines

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

Ffabioc-aloha / alexagentApache-2.0

技能说明

GitHub

name: "documentation-quality-assurance" description: "Systematic documentation audit, drift detection, preflight validation, and multi-pass quality pipelines" metadata: inheritance: inheritable

Documentation Quality Assurance

Prevent documentation rot through systematic audits, automated validation, and pipeline-enforced quality gates.

Scope: Inheritable skill. Covers drift detection, preflight validation, semantic accuracy, link integrity, 5-pass quality pipeline, staleness detection, and large-project organization.

Complements: The Documentarian agent uses this skill as its knowledge foundation. This skill is the "what" — the agent is the "who".

Audit Priority: Semantics Over Syntax

The most damaging documentation errors are semantic, not syntactic. A wrong count is annoying. A false claim about functionality is dangerous.

Audit Priority Hierarchy

PriorityIssue TypeImpactExample
P0 CriticalPhantom featuresUsers try to use something that doesn't exist"Entra ID SSO enabled" (code never implemented)
P0 CriticalFalse security claimsTrust violations, compliance failures"All data encrypted" (encryption not implemented)
P1 HighContradictionsUser confusion, decision paralysisREADME says X, CHANGELOG says Y
P1 HighStale capability claimsUsers miss real features or expect removed onesDocs describe v3 API but v5 is current
P2 MediumBroken cross-referencesNavigation frictionLink to deleted file
P3 LowCount driftCredibility erosion"109 skills" when there are 123
P3 LowFormatting issuesAesthetic concernsBad table alignment

Semantic Audit Questions

Before any documentation audit, ask these questions in order:

  1. Does this feature actually exist? — Check if documented functionality has corresponding implementation
  2. Is this claim still true? — Validate assertions against current codebase state
  3. Are there contradictions? — Cross-check related documents for conflicting information
  4. Is the version current? — Compare documented versions against package.json/CHANGELOG
  5. Do examples work? — Test code snippets against actual API/CLI behavior
  6. Do links resolve? — Verify internal and external references (automate this)
  7. Are counts accurate? — Check hardcoded numbers against canonical sources (automate this)

Rule: Questions 1-5 require human judgment. Questions 6-7 can be automated. Never spend human attention on automatable checks at the expense of semantic review.

Common Semantic Bugs

Bug PatternDetection MethodFix
Phantom configurationGrep settings docs, verify in package.jsonRemove undeclared settings or add to manifest
Removed feature still documentedSearch for deleted code referencesRemove or archive documentation
Future feature documented as shippedCompare roadmap "planned" vs "shipped" markersMove to correct section
Version mismatchRegex for version patterns, compare to source of truthAlign all occurrences
Model/API hallucinationVerify external references against official docsCorrect or remove

The Count Problem (P3)

Hardcoded counts in documentation drift silently:

Document SaysRealityImpact
"109 skills"119 skills (10 added)Undermines credibility
"7 agents"8 agents (1 added)Users miss new capability
"28 instructions"30 instructionsStale architecture picture

Count Elimination Rules

Instead ofWriteWhy
"Alex has 109 skills""Alex has N skills" (computed)Auto-correct
"We support 7 agents""See Agent Catalog for current list"Delegate to source
Inline numberCross-reference to canonical sourceSingle source of truth

Canonical Count Sources

When a count is needed, always derive it from the file system:

MetricSourceMethod
Skill count.github/skills/Count subdirectories
Agent count.github/agents/Count *.agent.md files
Instruction count.github/instructions/Count *.instructions.md files
Prompt count.github/prompts/Count *.prompt.md files
Muscle count.github/muscles/Count script files

Docs-as-Architecture

Documentation is a load-bearing part of the system, not a separate artifact:

PrincipleMeaning
Docs are codeSame review rigor as source code
Docs have testsPreflight validation catches errors
Docs have dependenciesCross-references create a dependency graph
Docs can breakStale docs actively mislead users
Docs need maintenanceSchedule regular audits like code refactoring

Document Header Pattern

Comprehensive Metadata Headers

Operational documentation (regression checklists, deployment guides, QA procedures, release workflows) should include comprehensive headers that provide complete context at-a-glance.

Minimal Header (4 lines) — Insufficient:

**Date**: 2026-02-14
**Status**: In Progress
**Purpose**: Verify v5.7.1 UI features
**Method**: Install and test

Enhanced Header (10+ lines) — Comprehensive:

**Version**: 5.7.1
**Date**: 2026-02-14
**Status**: ⚠️ PENDING UI VERIFICATION — WebP avatars regenerated, awaiting restart + testing
**Testing Mode**: CP2 Contingency (Local Install)
**VSIX Size**: 9.44 MB (426 files)
**Key Changes**: Enterprise auth removed, WebP avatars optimized (144×144, 92% reduction)

**Purpose**: Local install verification of all v5.7.1 visual identity + UI features
**Method**: Install VSIX locally, restart VS Code, test in current workspace (CP2 contingency)
**Expected Outcome**: All 9 test sections pass → DoD criterion #4 complete → Ready to publish

Header Field Guidelines

FieldUse ForExample
VersionSoftware version being documented5.7.1, v3.2.0-beta
DateISO format date of creation/update2026-02-14
StatusCurrent state with emoji for scanning⚠️ PENDING, ✅ COMPLETE, 🚧 IN PROGRESS
Testing ModeValidation approach or environmentCP2 Contingency (Local Install), F5 Extension Host, Production
Size/ScopePackage size, file count, or metrics9.44 MB (426 files), 3 breaking changes, 86 tests
Key ChangesWhat's different in this versionEnterprise auth removed, WebP optimized
PurposeWhy this document existsOne sentence explaining the goal
MethodHow the task will be performedStep-by-step approach or workflow
Expected OutcomeSuccess criteriaWhat "done" looks like

Rule: Include enough metadata that anyone can understand the document's context without reading the body. Operational docs reviewed during incidents need at-a-glance clarity.

6-Pass Quality Pipeline

Run these passes in sequence on any document suite:

PassFocusCatchesType
1. SemanticClaims match reality, features existPhantom features, false claims, contradictions🧠 Human
2. ArchitectureStructural accuracy, diagrams currentOutdated visuals, wrong relationships🧠 Human
3. BrandVoice, tone, naming consistency"Copilot" vs "Alex", passive voice, jargon🧠 Human
4. Cross-ReferenceLink integrity, orphan filesBroken links, unreferenced docs🤖 Automatable
5. LintFormatting, markdown validity, countsBad tables, stale numbers, code blocks🤖 Automatable
6. ConsolidationRedundancy, overlap, merge candidatesTwo docs covering same topic🧠 Human

Rule 1: Don't merge passes — each pass has a single focus. Rule 2: Complete all semantic passes (1-3) before mechanical passes (4-5). A perfectly formatted lie is still a lie. Rule 3: Never allow automated tooling to "pass" a doc suite until human semantic review is complete.

Preflight Validation

Automated Checks

Run before every release or documentation change:

# Example preflight validation script
function Test-DocQuality {
    $errors = @()
    
    # Check 1: All markdown links resolve
    Get-ChildItem -Recurse -Filter "*.md" | ForEach-Object {
        $content = Get-Content $_.FullName -Raw
        $links = [regex]::Matches($content, '\[([^\]]+)\]\(([^)]+)\)')
        foreach ($link in $links) {
            $target = $link.Groups[2].Value
            if ($target -notmatch '^https?://' -and $target -notmatch '^#') {
                $resolved = Join-Path (Split-Path $_.FullName) $target
                if (-not (Test-Path $resolved)) {
                    $errors += "Broken link in $($_.Name): $target"
                }
            }
        }
    }
    
    # Check 2: No orphan files in docs folder
    # Check 3: Required sections present in each doc type
    # Check 4: Version strings match package.json
    
    return $errors
}

Pre-Implementation Cross-Reference Sweep

Before adding any new file, check what already references the concept:

  1. Grep for the concept name across all docs
  2. Identify which files will need updating
  3. Create the new file AND update all references in a single commit

Anti-pattern: Creating a new skill/agent and updating only one reference document. Every catalog, index, and count needs updating simultaneously.

Link Integrity

Link Audit Protocol

CheckHowFrequency
Internal links resolvePath validation against file systemEvery commit
Anchor links work#heading matches actual heading slugsEvery commit
External links aliveHTTP HEAD request (batch, rate-limited)Weekly/monthly
Orphan file detectionFiles not referenced by any other fileEvery release
Circular referencesGraph traversal (A→B→C→A)Quarterly

Orphan Detection

# Find markdown files not referenced by any other markdown file
$allMd = Get-ChildItem -Recurse -Filter "*.md" | Select-Object -ExpandProperty Name
$referenced = @()
Get-ChildItem -Recurse -Filter "*.md" | ForEach-Object {
    $content = Get-Content $_.FullName -Raw
    $links = [regex]::Matches($content, '\]\(([^)]+\.md)')
    foreach ($link in $links) {
        $referenced += Split-Path $link.Groups[1].Value -Leaf
    }
}
$orphans = $allMd | Where-Object { $_ -notin $referenced }

Staleness Detection

Last Validated Dates

Add validation dates to critical documents:

<!-- Last Validated: 2026-02-12 by Documentarian audit -->

Staleness Tiers

TierThresholdAction
Fresh< 30 days since validationNone
Aging30-90 daysFlag for review
Stale90-180 daysMandatory review before next release
Expired> 180 daysConsider archival or major rewrite

Drift Detection During Maintenance

During regular maintenance cycles (meditation, dream, release prep):

  1. Compare document claims against current reality
  2. Flag any numeric drift (counts, versions, dates)
  3. Check if referenced files still exist
  4. Verify code examples still compile/execute
  5. Update Last Validated timestamp after review

Large Project Organization

15+ File Threshold

When a documentation folder exceeds 15 files, introduce numbered chapter folders:

docs/
├── 01-getting-started/
│   ├── installation.md
│   ├── quick-start.md
│   └── configuration.md
├── 02-architecture/
│   ├── overview.md
│   ├── components.md
│   └── data-flow.md
├── 03-operations/
│   ├── deployment.md
│   ├── monitoring.md
│   └── troubleshooting.md
└── README.md              # Index/TOC

Rules:

  • Numbered prefixes ensure consistent ordering across all tools
  • Each chapter folder has 3-7 files (not 1, not 20)
  • Root README.md serves as table of contents with links to all sections
  • Flat structure is fine for < 15 files

Multi-Audience Documentation

Audience Matrix

Every doc suite serves multiple readers:

AudienceNeedsFormat Preference
New usersQuick start, screenshots, examplesTutorial (step-by-step)
Experienced usersReference, API, configurationReference (lookup)
ContributorsArchitecture, conventions, review processHow-to guides
AI agentsStructured data, clear rules, no ambiguityJSON > prose, tables > paragraphs

Rule: Each document should declare its audience. A document trying to serve all audiences well serves none of them well.

Ship First, Document After (Threshold)

Document TypeWhen to Write
User-facing READMEBefore release
API referenceWith the API code
Architecture docsWhen design stabilizes
Internal notesAfter shipping (retrospective)

Anti-pattern: Blocking a release to write perfect docs. Ship with minimal docs (README + quick start), then iterate.

Doc Audit Checklist

Run this 10-item checklist for any documentation review. Semantic checks first.

Phase 1: Semantic Accuracy (🧠 Human Required)

#CheckMethod
1Documented features existFor each feature claim, verify code/config exists
2No false capability claimsCheck "shipped" items against actual implementation
3No contradictionsCross-check related docs for conflicting statements
4Examples workCopy-paste test critical examples

Phase 2: Mechanical Accuracy (🤖 Automatable)

#CheckMethod
5All links resolveAutomated link checker
6No hardcoded countsGrep for common count patterns
7Version strings currentCompare against package.json/CHANGELOG
8File references existVerify every referenced file path
9No orphan filesCross-reference scan
10Consistent terminologySearch for variant spellings/names

Rule: Never mark a doc suite "clean" based only on Phase 2 passing. Phase 1 semantic checks are non-negotiable.

CHANGELOG Best Practices

PracticeWhy
One entry per user-visible changeUsers scan, not read
Link to relevant docs/issuesTraceability
Group by: Added, Changed, Fixed, RemovedConsistent scan pattern
Version header matches package.jsonNo version drift
Date in ISO format (YYYY-MM-DD)Unambiguous globally
Most recent version at topUsers want latest first
我的收藏