Files
gh-greyhaven-ai-claude-code…/skills/documentation-alignment/reference/INDEX.md
2025-11-29 18:29:07 +08:00

378 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Documentation Alignment Reference
Complete reference for verifying and maintaining code-documentation alignment.
## Quick Navigation
| Resource | Purpose | Best For |
|----------|---------|----------|
| [Alignment Verification Guide](alignment-verification-guide.md) | Complete verification methodology | Understanding the process |
| [Misalignment Patterns](misalignment-patterns.md) | Common issues and solutions | Troubleshooting |
| [Automation Strategies](automation-strategies.md) | CI/CD integration | Production implementation |
## The 6-Phase Verification Process
### Phase 1: Discovery
**Goal:** Find all documentation sources
**Tasks:**
- Locate inline documentation (docstrings, JSDoc, comments)
- Find markdown documentation (README, /docs)
- Identify API specs (OpenAPI, Swagger)
- Search for external documentation
- Map code structure and dependencies
**Tools:**
- File globbing for `*.md`, `README*`
- AST parsing for docstrings
- grep for comment patterns
- Documentation generators
**Output:** Complete inventory of code and docs
---
### Phase 2: Extraction
**Goal:** Parse code and documentation into comparable format
**Tasks:**
- Extract function signatures (name, parameters, return types)
- Parse type information (TypeScript, Python type hints)
- Extract documentation strings
- Identify examples in docs
- Build structured data model
**Tools:**
- TypeScript Compiler API
- Python `ast` module
- Pydantic for Python
- JSDoc parser for JavaScript
- markdown-it for docs
**Output:** Structured representation of code vs docs
---
### Phase 3: Analysis
**Goal:** Compare code against documentation
**Comparisons:**
1. **Signature Alignment**
- Function name matches
- Parameter count matches
- Parameter names match
- Parameter order correct
2. **Type Alignment**
- Parameter types documented
- Return types match
- Generic types documented
- Type constraints listed
3. **Behavior Alignment**
- Documented behavior matches implementation
- Side effects documented
- Performance characteristics accurate
- Async/sync behavior correct
4. **Error Alignment**
- All thrown exceptions documented
- Error conditions listed
- Error messages match
- Recovery strategies documented
5. **Example Alignment**
- Code examples run successfully
- Examples use current API
- Examples demonstrate real use cases
- Examples are copy-paste ready
**Output:** List of misalignments with severity
---
### Phase 4: Classification
**Goal:** Prioritize issues for fixing
**Severity Levels:**
**Critical (Fix Immediately):**
- Breaking changes not documented
- Function signatures don't match
- Required parameters missing
- Examples that error
- Security implications
**Important (Fix Soon):**
- Public APIs undocumented
- Missing error documentation
- Type information incomplete
- Outdated examples
- Deprecated features still shown
**Minor (Nice to Fix):**
- Missing edge case docs
- Sparse descriptions
- No performance notes
- Internal functions documented as public
**Alignment Scoring:**
```
Score = (
(SignatureMatch × 30) +
(TypeMatch × 25) +
(BehaviorMatch × 20) +
(ErrorMatch × 15) +
(ExampleMatch × 10)
) / 100
95-100: Perfect alignment
80-94: Good alignment
60-79: Poor alignment
0-59: Failing
```
**Output:** Prioritized list with alignment score
---
### Phase 5: Fix Generation
**Goal:** Create fixes for misalignments
**Fix Types:**
**1. Missing Documentation:**
```typescript
// Before (no docs)
function processData(data: Data[]): Result {
return data.map(transform).filter(validate);
}
// After (generated docs)
/**
* Process data items through transformation and validation pipeline.
*
* @param data - Array of data items to process
* @returns Processed and validated results
*
* @example
* ```typescript
* const data = [{ id: 1, value: "test" }];
* const results = processData(data);
* // Returns validated, transformed data
* ```
*/
function processData(data: Data[]): Result {
return data.map(transform).filter(validate);
}
```
**2. Outdated Documentation:**
```typescript
// Code updated but docs stale
function createUser(orgId: string, email: string, name: string) { ... }
// Old docs say:
// createUser(email, name)
// Generated fix:
/**
* Create a new user in an organization.
*
* @param orgId - Organization ID (required as of v2.0)
* @param email - User email address
* @param name - User display name
*
* @migration v1.x → v2.0
* organizationId is now the first required parameter
*/
```
**3. Broken Examples:**
```typescript
// Example uses deprecated API
// Old: const user = await api.getUser(id);
// New: const user = await api.users.get(id);
// Generated replacement with migration note
```
**Output:** Ready-to-apply fixes
---
### Phase 6: Validation
**Goal:** Ensure fixes resolve issues
**Validation Steps:**
1. **Syntax Check:** Generated docs are valid
2. **Example Test:** All examples run successfully
3. **Type Check:** Types match implementation
4. **Consistency Check:** Style matches project standards
5. **Regression Check:** Didn't break existing docs
**Tools:**
- TypeScript compiler for type checking
- Jest/Vitest for example testing
- ESLint/TSDoc for style
- Git diff for changes review
**Output:** Verified, production-ready documentation
---
## Alignment Metrics
### Code Coverage vs Doc Coverage
**Code Coverage** (tests):
- Measures % of code executed by tests
- Industry standard: 80%+
**Doc Coverage** (documentation):
- Measures % of public API documented
- Target: 95%+ for public APIs
- Target: 60%+ for internal APIs
**Alignment Coverage:**
- % of documented features that work as described
- Target: 98%+ alignment for production
### Key Performance Indicators
**Developer Productivity:**
- Time to understand API: Target < 15 min
- Onboarding time: Target 1-2 days
- Support tickets from docs: Target < 5%
**Documentation Quality:**
- Alignment score: Target 95+
- Example success rate: Target 100%
- Doc freshness: Updated within 1 week of code changes
**Maintenance Burden:**
- Time to update docs: Target < 10% of dev time
- Automated coverage: Target 70%+
- Manual review needed: Target < 30%
---
## Common Misalignment Patterns
### Pattern 1: "Feature Creep"
**Symptom:** Function grows parameters, docs stay same
**Fix:** Automated parameter detection
**Prevention:** Pre-commit hooks
### Pattern 2: "Refactor Drift"
**Symptom:** Function renamed, old name in docs
**Fix:** AST-based find/replace
**Prevention:** IDE refactoring tools
### Pattern 3: "Example Rot"
**Symptom:** Examples use deprecated APIs
**Fix:** Example test suite
**Prevention:** CI testing all examples
### Pattern 4: "Type Evolution"
**Symptom:** Types change, docs outdated
**Fix:** Type extraction from code
**Prevention:** Generated type docs
### Pattern 5: "Behavior Divergence"
**Symptom:** Code does something different than docs say
**Fix:** Behavioral testing + doc update
**Prevention:** TDD with docs as specs
---
## Tool Integration
### TypeScript Projects
```json
{
"scripts": {
"check-docs": "ts-node scripts/verify-docs-alignment.ts",
"generate-docs": "typedoc --plugin typedoc-plugin-markdown",
"test-examples": "vitest examples/**/*.test.ts"
}
}
```
### Python Projects
```toml
[tool.pydantic-docs]
alignment-threshold = 95
auto-fix = true
[tool.pytest.ini_options]
testpaths = ["docs/examples"]
doctest_optionflags = "NORMALIZE_WHITESPACE"
```
### CI/CD Integration
```yaml
# .github/workflows/docs.yml
- name: Check Documentation Alignment
run: npm run check-docs
# Fails if score < 85
- name: Test Documentation Examples
run: npm run test-examples
# Ensures all examples work
```
---
## Best Practices
### 1. Single Source of Truth
**Principle:** Code is the source of truth for signatures
**Implementation:**
- Generate docs from code when possible
- Extract types directly from implementation
- Auto-generate parameter lists
### 2. Test Documentation
**Principle:** Documentation should be testable
**Implementation:**
- Run code examples in CI
- Use doctest for Python
- TypeScript examples as tests
### 3. Version Documentation
**Principle:** Docs should match code version
**Implementation:**
- Tag docs with version numbers
- Maintain changelog for API changes
- Show migration guides
### 4. Automate Where Possible
**Principle:** Reduce manual documentation burden
**Implementation:**
- Generate from types (TypeDoc, Sphinx autodoc)
- Extract from comments (JSDoc → markdown)
- Test examples automatically
### 5. Make Breaking Changes Obvious
**Principle:** API changes should be impossible to miss
**Implementation:**
- BREAKING CHANGE tags
- Migration guides
- Deprecation warnings
- Version badges
---
**Quick Start:**
1. Read [Alignment Verification Guide](alignment-verification-guide.md)
2. Identify misalignments using [Patterns](misalignment-patterns.md)
3. Automate with [Strategies](automation-strategies.md)
4. Use [Templates](../templates/) for common scenarios
**Success Metrics:**
- 95%+ alignment score
- < 5% documentation-related bugs
- 70%+ automated coverage
- 1-day onboarding time