Automatic codebase documentation maintenance system. Use this skill ALWAYS when making ANY code changes including creating, modifying, deleting, or moving files...
Automatic documentation maintenance system with three-tier structure. MUST be applied after every code change.
Location: Project root directory.
Content requirements:
Header declaration:
<!-- AUTO-DOC: Update me when project structure or architecture changes -->
Location: Every folder containing code files.
Format (max 3 lines for overview):
<!-- AUTO-DOC: Update me when files in this folder change -->
# [FolderName]
[1-3 line architecture description]
## Files
| File | Role | Function |
|------|------|----------|
| example.ts | Core | Main entry point |
Location: Top of every code file (first 3-5 lines after imports).
Format:
/**
* @input Dependencies this file requires from external sources
* @output What this file provides/exports to other parts of the system
* @position Role and importance in the local architecture
* @auto-doc Update header and folder INDEX.md when this file changes
*/
Language-specific formats:
TypeScript/JavaScript:
/**
* @input { UserService } from './services', { config } from '@/config'
* @output { AuthProvider, useAuth } React context and hook for authentication
* @position Core auth layer, wraps entire app
* @auto-doc Update header and folder INDEX.md when this file changes
*/
Python:
"""
@input: requests, json from stdlib; Config from ./config
@output: APIClient class for external service calls
@position: Network layer abstraction
@auto-doc: Update header and folder INDEX.md when this file changes
"""
Go:
// @input: net/http, encoding/json; config from ./internal/config
// @output: Handler struct, NewHandler(), ServeHTTP()
// @position: HTTP request handler for /api/users
// @auto-doc: Update header and folder INDEX.md when this file changes
After ANY code change, execute in order:
| Change Type | Update Header | Update INDEX.md | Update ARCHITECTURE.md |
|---|---|---|---|
| Edit file logic | If I/O changes | If role changes | No |
| Create file | Yes (new) | Yes (add entry) | If new feature |
| Delete file | N/A | Yes (remove) | If structural |
| Move file | Yes (new pos) | Both folders | If structural |
| Rename file | Yes | Yes | If structural |
When creating lib/utils/format.ts:
/**
* @input { date-fns } for date formatting
* @output { formatDate, formatCurrency } utility functions
* @position Shared formatting utilities
* @auto-doc Update header and folder INDEX.md when this file changes
*/
lib/utils/INDEX.md:<!-- AUTO-DOC: Update me when files in this folder change -->
# Utils
Shared utility functions for formatting, validation, and helpers.
## Files
| File | Role | Function |
|------|------|----------|
| format.ts | Utility | Date and currency formatting |
ARCHITECTURE.md if lib/utils/ is new.