name: code-documentation-standards description: Comprehensive code documentation standards and guidelines for maintaining up-to-date documentation across Python, HTML, CSS, and JavaScript codebases. Use when creating or modifying code to ensure proper documentation practices and maintainable code.
Code Documentation Standards
Core Principle
ALWAYS maintain up-to-date documentation when creating or modifying code. Documentation must be updated simultaneously with code changes. ALWAYS fix markdown validation errors promptly before committing any changes.
Pre-Commit Markdown Validation
Before any commit, ALWAYS:
- Run markdown validation on all .md files in the repository
- Fix all markdown syntax errors including:
- Unclosed code blocks
- Missing link destinations
- Invalid heading structures
- Broken table formatting
- Incorrect list indentation
- Validate code block syntax in documentation
- Check internal links are properly formatted
- Ensure consistent formatting across all markdown files
Documentation Requirements
1. Python Functions/Classes
def process_document(file_path: str, patterns: List[str]) -> ProcessResult:
"""
Process a document for redaction using specified patterns.
Args:
file_path (str): Path to the document file to process
patterns (List[str]): List of redaction patterns to apply
Returns:
ProcessResult: Object containing processed document and metadata
Raises:
FileNotFoundError: If the specified file doesn't exist
ValidationError: If patterns are invalid
Example:
>>> result = process_document('doc.pdf', ['ssn', 'email'])
>>> print(result.redacted_count)
"""
pass
2. Class Documentation
class DocumentProcessor:
"""
Handles document processing operations for various file formats.
This class provides methods for parsing, analyzing, and transforming
documents while maintaining original formatting and metadata.
Attributes:
supported_formats (List[str]): File formats supported by processor
max_file_size (int): Maximum file size in bytes
Example:
>>> processor = DocumentProcessor()
>>> result = processor.process('document.pdf')
"""
def __init__(self, config: ProcessingConfig = None):
"""Initialize processor with optional configuration."""
pass
3. Template Documentation
<!--
Template: translation_interface.html
Purpose: Main interface for Chuukese-English translation
Variables:
- dictionary_entries: List of recent dictionary entries
- user_translations: User's translation history
- cultural_context: Cultural context data for assistance
Dependencies:
- static/css/translation.css
- static/js/translation-ui.js
- Bootstrap 5.1+
-->
<div class="translation-container">
<!-- Translation form content -->
</div>
4. CSS Class Documentation
/*
* Chuukese Text Display
* Purpose: Styles for displaying Chuukese text with proper accent handling
* Usage: Apply to containers holding Chuukese language content
* Dependencies: Requires font-family supporting Unicode accents
*/
.chuukese-text {
font-family: 'Noto Sans', 'Arial Unicode MS', sans-serif;
font-size: 1.1em;
line-height: 1.5;
direction: ltr;
}
/*
* Responsive adaptation: Increase font size on mobile
* Context: Better readability for accented characters
*/
@media (max-width: 768px) {
.chuukese-text {
font-size: 1.2em;
}
}
5. JavaScript Function Documentation
/**
* Normalize Chuukese text for search operations
* @param {string} text - The Chuukese text to normalize
* @param {boolean} preserveAccents - Whether to preserve accent marks
* @returns {string} Normalized text suitable for searching
* @throws {TypeError} If text is not a string
*
* @example
* const normalized = normalizeChuukeseText('kápás', false);
* console.log(normalized); // 'kapas'
*/
function normalizeChuukeseText(text, preserveAccents = true) {
if (typeof text !== 'string') {
throw new TypeError('Text parameter must be a string');
}
// Implementation...
}
Documentation Standards by Context
Database Models
class DictionaryEntry(Base):
"""
Represents a Chuukese-English dictionary entry.
This model stores bilingual dictionary data with cultural context,
pronunciation guides, and usage information for language learning
and translation applications.
Attributes:
chuukese_word (str): Primary Chuukese term (required)
english_definition (str): English definition or translation
pronunciation (str): IPA or phonetic pronunciation guide
cultural_context (str): Cultural significance and usage notes
part_of_speech (str): Grammatical category (noun, verb, etc.)
difficulty_level (str): Learning difficulty (beginner/intermediate/advanced)
usage_frequency (float): Frequency score 0.0-1.0
Relationships:
phrases: Related phrase entries using this word
translations: Translation pairs containing this entry
Example:
>>> entry = DictionaryEntry(
... chuukese_word="chomong",
... english_definition="to help, assist",
... cultural_context="Community cooperation value"
... )
"""
__tablename__ = 'dictionary_entries'
id = Column(Integer, primary_key=True)
chuukese_word = Column(String(200), nullable=False, index=True)
# ... rest of model
API Routes
@app.route('/api/translate', methods=['POST'])
def translate_text():
"""
Translate text between Chuukese and English.
Endpoint for bidirectional text translation with quality assessment
and cultural context preservation.
Request Body:
{
"text": "string - Text to translate (required)",
"source_language": "string - Source language code (required)",
"target_language": "string - Target language code (required)",
"include_cultural_context": "boolean - Include cultural notes
(optional, default: false)"
}
Response:
{
"translated_text": "string - Translated result",
"quality_score": "float - Translation quality 0.0-1.0",
"cultural_notes": "array - Cultural context information (if requested)",
"confidence": "float - Translation confidence score"
}
Status Codes:
200: Translation successful
400: Invalid request parameters
422: Translation quality too low
500: Internal server error
Example:
>>> POST /api/translate
>>> {
... "text": "chomong",
... "source_language": "chuukese",
... "target_language": "english"
... }
Response:
{
"translated_text": "to help",
"quality_score": 0.95,
"confidence": 0.98
}
"""
pass
Best Practices
1. Consistency Standards
- Use consistent parameter naming across similar functions
- Maintain uniform documentation formatting
- Follow established patterns for each language/framework
- Update documentation immediately when code changes
- Fix all markdown validation errors before committing
2. Content Guidelines
- Write for developers who don't know the codebase
- Include practical examples whenever possible
- Document edge cases and error conditions
- Explain the "why" behind implementation decisions
3. Cultural Context Documentation (Chuukese Project Specific)
- Document cultural significance of Chuukese terms
- Explain traditional concepts that may not translate directly
- Note appropriate usage contexts (formal/informal, traditional/modern)
- Include pronunciation guides for language learners
4. Maintenance Requirements
- Review documentation during code reviews
- Update documentation in the same commit as code changes
- Mark deprecated functions with alternatives
- Remove documentation for deleted code
- Validate markdown syntax before each commit
5. Quality Checks
- Verify all parameters are documented
- Ensure examples are current and functional
- Check that return types match actual implementation
- Validate that error conditions are accurately described
- Run markdown linting tools on all documentation
6. Markdown Validation Process
MANDATORY before every commit:
-
Syntax Validation:
# Check for markdown syntax errors markdownlint **/*.md -
Code Block Validation:
- Ensure all code blocks have proper opening/closing backticks
- Verify language tags are correct (python, javascript, html, css)
- Test that code examples are syntactically valid
-
Link Validation:
- Check all internal links reference existing files/sections
- Verify external links are accessible
- Ensure proper markdown link syntax:
[text](url)
-
Structure Validation:
- Confirm heading hierarchy is logical (h1 → h2 → h3)
- Verify lists have consistent indentation
- Check table formatting is complete
-
Common Fixes:
- Close unclosed code blocks with proper backticks
- Fix malformed tables with proper pipe alignment
- Correct broken link references
- Standardize heading styles (#, ##, ###)
- Fix list item indentation and nesting
Templates
Function Documentation Template
def function_name(param1: Type1, param2: Type2 = default) -> ReturnType:
"""
Brief description of what the function does.
Longer description if needed, explaining the purpose and any
important implementation details or assumptions.
Args:
param1 (Type1): Description of first parameter
param2 (Type2, optional): Description with default value
Returns:
ReturnType: Description of return value
Raises:
ExceptionType: When this exception occurs
Example:
>>> result = function_name(value1, value2)
>>> print(result)
Note:
Any special considerations or warnings
"""
Class Documentation Template
class ClassName:
"""
Brief description of the class purpose.
Detailed explanation of what the class represents,
its main responsibilities, and how it fits into
the larger system.
Attributes:
attr_name (Type): Description of attribute
Example:
>>> instance = ClassName(param)
>>> result = instance.method()
See Also:
RelatedClass: For related functionality
"""
Dependencies
- Follow project-specific documentation tools
- Use type hints for Python functions
- Include JSDoc for JavaScript when applicable
- Maintain README files for project overviews
Validation Criteria
Proper documentation should:
- ✅ Explain the purpose clearly and concisely
- ✅ Document all parameters and return values
- ✅ Include practical usage examples
- ✅ Note error conditions and exceptions
- ✅ Use consistent formatting and style
- ✅ Stay current with code changes
- ✅ Provide cultural context for Chuukese-specific terms
- ✅ Pass markdown validation without errors
- ✅ Have properly formatted code blocks and links
- ✅ Use consistent heading structure and list formatting
Pre-Commit Workflow
MANDATORY checklist before every commit:
- ✅ Code documentation updated
- ✅ Markdown files validated and errors fixed
- ✅ Code blocks properly formatted with language tags
- ✅ All links functional and properly formatted
- ✅ Heading hierarchy follows logical structure
- ✅ Examples tested and verified working
Tools for validation:
markdownlintfor syntax checking- VS Code markdown preview for visual verification
- Link checkers for external references
- Code syntax validators for embedded examples