agentsclimarketplace

Documentation quality assurance

Skill fabioc-aloha/Alex_Skill_Mall/plugins/documentation/documentation-quality-assurance

Systematic documentation audit, drift detection, preflight validation, and multi-pass quality pipelinesFrom its SKILL.md

Install
npx -y skills add fabioc-aloha/Alex_Skill_Mall --skill documentation-quality-assurance

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

14.3 KB, ~3.3k tokens by cl100k_base, as published. Nobody here has run it

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

Count Drift & Docs-as-Architecture (P3)

Count elimination rules, canonical sources, and docs-as-architecture principles are defined in doc-hygiene. Apply those rules during Pass 5 (Lint) of the quality pipeline below.

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 "the AI assistant", 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.

TODO Files as Self-Models

A TODO list that contains completed work is worse than no TODO list. TODO.md is a self-model — when read at session start, it forms a mental picture of what exists and what doesn't. Completed tasks masquerading as pending create:

  1. Rediscovery tax — work already done gets re-investigated
  2. False urgency — energy directed at "building" something already built

The Fix: Done Section First

## Done — Audited [date]
- [x] secretScanner.ts ported to shared/utils/
- [x] All 15 extension.ts files implemented

## Next
- [ ] npm run compile — verify TypeScript
- [ ] F5 smoke test in Extension Development Host

Maintenance Rule: During every meditation or sprint transition, audit TODO.md first. Move completed items to Done. A stale self-model wastes more time than the audit costs.

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

Keep looking

Skills are one crate of 326,736. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.