Documentation Audit
Description: Audit documentation for code example accuracy and objective language. Use when reviewing or validating Sphinx documentation.
When to Use This Skill
- •Reviewing documentation before release
- •Validating code examples against implementation
- •Ensuring objective, factual documentation language
- •Checking for outdated or incorrect examples
- •Maintaining documentation quality standards
Quick Reference
Audit Types
- •Code Example Validation: Verify all code examples match actual implementation
- •Subjective Language Detection: Flag subjective or marketing language
- •API Accuracy: Ensure documented APIs exist and work as described
- •Import Path Verification: Validate all import statements are correct
Common Issues to Check
- •Outdated code examples
- •Incorrect import paths
- •Non-existent APIs or methods
- •Subjective adjectives (e.g., "easily", "simply", "powerful")
- •Marketing language instead of technical documentation
- •Missing error handling in examples
Resource Guides
📖 Code Example Validation
Comprehensive guide for validating code examples against actual implementation.
Use when: Checking if documentation code examples are accurate and working.
📖 Subjective Language Detection
Guide for identifying and removing subjective or marketing language from documentation.
Use when: Reviewing documentation for objective, factual language.
📖 Common Documentation Issues
Common documentation problems specific to da_vinci framework.
Use when: Performing a comprehensive documentation audit.
Audit Process
Phase 1: Code Example Validation
- •
Extract all code examples from documentation files
- •Look for
.. code-block:: pythonin RST files - •Identify complete examples vs. snippets
- •Look for
- •
Validate imports against actual package structure
- •Check
from da_vinci.core.orm.table_object import ... - •Check
from da_vinci.core.orm.client import ... - •Check
from da_vinci_cdk.application import ... - •Use serena MCP to find actual symbols and validate paths
- •Check
- •
Verify class definitions and attributes
- •Check
TableObjectsubclass examples - •Verify attribute names match
TableObjectAttributeschema - •Validate
TableObjectAttributeTypevalues exist - •Check
partition_key_attribute,sort_key_attributeusage - •Verify
global_secondary_indexes,local_secondary_indexesstructure
- •Check
- •
Validate API methods
- •Check
TableClientmethods:get(),put(),delete(),scan(),query() - •Verify method signatures and parameters
- •Check
TableScanDefinitionusage - •Validate Application CDK construct methods
- •Check
- •
Test example completeness
- •Ensure examples have all required imports
- •Check that examples can theoretically run
- •Verify no undefined variables or missing context
Phase 2: Subjective Language Detection
- •
Scan for subjective adjectives/adverbs
- •"easily", "simply", "just", "obviously", "clearly"
- •"powerful", "elegant", "beautiful", "amazing"
- •"best", "better", "great", "excellent"
- •"effortlessly", "seamlessly", "straightforward"
- •
Check for marketing language
- •Superlatives without data
- •Emotional appeals
- •Vague benefit claims
- •Comparisons without specifics
- •
Flag ambiguous statements
- •"This makes things easier" → How? Quantify.
- •"Da Vinci is powerful" → State specific capabilities.
- •"You can quickly build..." → Remove "quickly", state what you can build.
- •
Verify factual accuracy
- •All claims should be verifiable
- •Features should be demonstrated, not praised
- •Benefits should be concrete and measurable
Phase 3: Cross-Reference Implementation
- •
Use serena MCP tools to validate
- •
find_symbolto locate classes and methods - •
get_symbols_overviewto check module structure - •
search_for_patternto find usage examples in tests
- •
- •
Check against actual code
- •Read actual implementation files
- •Compare method signatures
- •Verify default values and parameter types
- •Check for deprecated APIs
- •
Validate against tests
- •Look at test files for correct usage patterns
- •Ensure documentation matches test expectations
- •Use tests as source of truth for API behavior
Reporting Format
Example Report Structure
# Documentation Audit Report ## Executive Summary - Files audited: X - Code examples validated: Y - Issues found: Z - Critical issues: N ## Code Example Issues ### File: docs/quickstart.rst #### Issue 1: Incorrect Import Path (Line 26) **Severity**: Critical **Current**: `from da_vinci.core.orm.table_object import TableObject` **Issue**: Import path is correct **Action**: Verified - No issue #### Issue 2: Missing Parameter (Line 84) **Severity**: High **Current**: `self.table_client.put(user)` **Issue**: Method signature verified, usage is correct **Action**: Verified - No issue ## Subjective Language Issues ### File: docs/overview.rst #### Issue 1: Subjective Adverb (Line 45) **Severity**: Medium **Current**: "You can easily create DynamoDB tables..." **Suggested**: "You can create DynamoDB tables..." **Reason**: "Easily" is subjective and adds no technical value #### Issue 2: Marketing Language (Line 102) **Severity**: Low **Current**: "Da Vinci provides a powerful abstraction..." **Suggested**: "Da Vinci provides an abstraction..." **Reason**: "Powerful" is subjective; let capabilities speak for themselves ## Recommendations 1. Update import examples in quickstart.rst 2. Remove subjective language from overview.rst 3. Add missing error handling examples in tables.rst 4. Verify all CDK examples against latest cdk package
Key Principles
- •Implementation is Source of Truth: Always validate against actual code, not assumptions
- •Use MCP Tools: Leverage serena for symbol lookup and code navigation
- •Objective Language Only: Documentation should be factual and demonstrative
- •Complete Examples: Code examples should be runnable or clearly marked as snippets
- •Version-Aware: Check documentation matches current version of framework
- •Test-Driven Validation: Use test files as examples of correct usage
Automation Opportunities
- •Create scripts to extract and validate code examples
- •Build linter for subjective language patterns
- •Integrate with CI to catch documentation issues early
- •Use AST parsing to validate Python code examples