documentation-updater
π―Skillfrom matteocervelli/llms
Systematically updates project documentation across implementation docs, user guides, API docs, and architecture diagrams after feature completion.
Installation
npx skills add https://github.com/matteocervelli/llms --skill documentation-updaterSkill Details
Update all project documentation including implementation docs, user
Overview
# Documentation Updater Skill
Purpose
This skill provides systematic guidance for updating all types of project documentation when finalizing feature implementations, ensuring comprehensive, accurate, and well-structured documentation.
When to Use
- After feature implementation and validation are complete
- Need to document implementation details
- Creating or updating user guides
- Updating API documentation
- Adding architecture diagrams
- Documenting configuration changes
Documentation Update Workflow
1. Implementation Documentation
Objective: Document how the feature was implemented for developers and maintainers.
Location: docs/implementation/issue-
Template:
```markdown
# Implementation: Issue #
Overview
Brief description of what was implemented and why.
Solution Approach
Detailed explanation of the implementation approach:
- Architecture pattern used (e.g., repository pattern, service layer)
- Key design decisions and rationale
- Trade-offs considered
- Alternative approaches rejected and why
Architecture
Component Structure
```
src/tools/feature/
βββ __init__.py # Public API exports
βββ models.py # Data models (Pydantic)
βββ interfaces.py # Abstract interfaces
βββ core.py # Business logic
βββ repository.py # Data access layer
βββ validators.py # Input validation
βββ exceptions.py # Custom exceptions
```
Data Flow
[Describe how data flows through the system]
Key Components
#### ComponentName
- Purpose: [What it does]
- Responsibilities: [What it's responsible for]
- Dependencies: [What it depends on]
Implementation Details
Models
[Document Pydantic models and their fields]
Business Logic
[Document core algorithms and workflows]
Data Access
[Document repository methods and database interactions]
Validation
[Document validation rules and error handling]
Security Measures
- Authentication: [How auth is handled]
- Authorization: [Permission checks implemented]
- Input Validation: [Validation at entry points]
- Output Sanitization: [XSS prevention measures]
- Data Protection: [Encryption, secure storage]
- Secrets Management: [How secrets are handled]
Performance Optimizations
- Caching: [Caching strategy if applicable]
- Database: [Query optimization, indexing]
- Async Operations: [Use of async/await]
- Resource Management: [Memory, connections]
- Response Times: [Measured response times]
Testing
- Unit Test Coverage: [percentage]%
- Integration Tests: [what's covered]
- Security Tests: [auth, validation, etc.]
- Performance Tests: [benchmarks met]
- Edge Cases: [scenarios tested]
Configuration
Environment variables required:
```bash
FEATURE_API_KEY=your_api_key
FEATURE_TIMEOUT=30
FEATURE_DEBUG=false
```
Dependencies
New dependencies added:
package-name==version: [reason for dependency]
Breaking Changes
[List any breaking changes or "None"]
Migration Notes
[Steps needed to migrate or "None required"]
Known Issues
- [Issue 1]: [Description and workaround]
Future Enhancements
- [Enhancement 1]: [Description]
References
- Original Issue: #
- Pull Request: #
- Related Issues: #
- Design Document: docs/architecture/
.md
```
Actions:
- Create implementation doc using template
- Fill in all sections thoroughly
- Add code examples where helpful
- Include diagrams for complex flows
- Document all security and performance measures
Deliverable: Complete implementation documentation
---
2. User-Facing Documentation
Objective: Update documentation that end users and developers will read to use the feature.
#### README Updates
Location: README.md
Check if updates needed:
- Does the feature change installation steps?
- Does it add new CLI commands?
- Does it change configuration?
- Does it add new user-facing features?
Actions:
- Read current README
- Identify sections needing updates
- Add new sections if needed
- Update code examples
- Verify all links work
Example addition:
```markdown
New Feature: <Feature Name>
Description of what the feature does.
Usage
```bash
# Example command
llm-tool feature-command --option value
```
Configuration
Add to your config file:
```yaml
feature:
enabled: true
option: value
```
Example
```python
from llms.feature import FeatureService
service = FeatureService()
result = service.do_something()
```
```
#### User Guides
Location: docs/guides/
Create guide for complex features:
```markdown
#
Introduction
What is this feature and who is it for?
Getting Started
Prerequisites
- Requirement 1
- Requirement 2
Installation
```bash
pip install required-package
```
Basic Setup
```bash
llm-tool init feature-name
```
Usage
Basic Example
```python
# Simple example
from llms.feature import Feature
feature = Feature()
result = feature.process(data)
```
Advanced Usage
#### Use Case 1:
[Step-by-step instructions]
#### Use Case 2:
[Step-by-step instructions]
Configuration Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| option1 | str | "default" | What it does |
Troubleshooting
Common Issues
Problem: Error message or issue
Solution: How to fix it
Best Practices
- Practice 1
- Practice 2
Examples
Example 1: <Scenario>
Full working example with explanation
Example 2: <Scenario>
Another complete example
FAQ
Q: Question?
A: Answer.
References
- API Documentation: [link]
- Implementation: [link]
```
Deliverable: User guides for new features
---
3. API Documentation
Objective: Document API endpoints and interfaces.
#### REST API Documentation
Location: docs/api/
For REST APIs:
```markdown
#
Base URL
```
https://api.example.com/v1
```
Authentication
```bash
Authorization: Bearer
```
Endpoints
GET /feature/resource
Get a resource.
Request:
```http
GET /feature/resource?param=value
Authorization: Bearer
```
Response (200 OK):
```json
{
"id": 1,
"name": "example",
"value": 123
}
```
Error Responses:
401 Unauthorized: Missing or invalid token404 Not Found: Resource not found
POST /feature/resource
Create a resource.
Request:
```http
POST /feature/resource
Authorization: Bearer
Content-Type: application/json
{
"name": "example",
"value": 123
}
```
Response (201 Created):
```json
{
"id": 1,
"name": "example",
"value": 123,
"created_at": "2024-01-01T00:00:00Z"
}
```
Rate Limiting
- Rate limit: 100 requests per minute
- Header:
X-RateLimit-Remaining
Error Codes
| Code | Meaning |
|------|---------|
| 400 | Bad Request - Invalid input |
| 401 | Unauthorized - Missing/invalid auth |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
```
#### Python API Documentation
Update docstrings to be comprehensive:
```python
def create_feature(
name: str,
value: int,
options: Optional[Dict[str, Any]] = None
) -> Feature:
"""
Create a new feature resource.
This function creates a feature with the given name and value,
applying optional configuration if provided.
Args:
name: The feature name (1-100 characters, alphanumeric)
value: The feature value (must be non-negative)
options: Optional configuration dict with keys:
- timeout (int): Request timeout in seconds (default: 30)
- retry (bool): Whether to retry on failure (default: True)
Returns:
Feature: Created feature instance with:
- id: Auto-generated unique identifier
- name: The provided name
- value: The provided value
- created_at: Timestamp of creation
Raises:
ValueError: If name is empty or value is negative
ValidationError: If options are invalid
APIError: If API request fails
Examples:
Basic usage:
>>> feature = create_feature("example", 123)
>>> print(feature.id)
1
With options:
>>> feature = create_feature(
... "example",
... 123,
... options={"timeout": 60, "retry": False}
... )
Note:
Feature names must be unique within the system.
The function performs input validation before API calls.
See Also:
- get_feature(): Retrieve existing feature
- update_feature(): Modify existing feature
- delete_feature(): Remove feature
"""
pass
```
Deliverable: Complete API documentation
---
4. Architecture Documentation
Objective: Document architectural decisions and system design.
Location: docs/architecture/
When needed:
- Complex features with multiple components
- New architectural patterns introduced
- Significant design decisions made
Template:
```markdown
# Architecture:
Context
Why was this architecture needed?
Architecture Overview
System Diagram
```
βββββββββββββββ
β Client β
ββββββββ¬βββββββ
β
ββββββββΌβββββββββββ
β API Layer β
ββββββββ¬βββββββββββ
β
ββββββββΌβββββββββββ
β Service Layer β
ββββββββ¬βββββββββββ
β
ββββββββΌβββββββββββ
β Repository β
ββββββββ¬βββββββββββ
β
ββββββββΌβββββββββββ
β Data Store β
βββββββββββββββββββ
```
Components
#### API Layer
- Responsibility: Handle HTTP requests/responses
- Technology: FastAPI/Flask
- Key Files:
api/endpoints.py
#### Service Layer
- Responsibility: Business logic
- Technology: Pure Python
- Key Files:
core.py
#### Repository Layer
- Responsibility: Data access
- Technology: SQLAlchemy/File System
- Key Files:
repository.py
Design Decisions
Decision 1: <Decision>
Context: [Why this decision was needed]
Options Considered:
- Option A: [Description] - Rejected because [reason]
- Option B: [Description] - Selected because [reason]
Consequences:
- Positive: [benefit]
- Negative: [trade-off]
Decision 2: <Decision>
[Same format]
Data Flow
Create Flow
```
- Client sends POST request with data
- API layer validates request format
- Service layer validates business rules
- Repository persists data
- Response returned to client
```
Read Flow
[Describe]
Security Architecture
- Authentication: [mechanism]
- Authorization: [RBAC, ABAC, etc.]
- Data Protection: [encryption, etc.]
Performance Considerations
- Caching: [strategy]
- Scaling: [horizontal/vertical]
- Bottlenecks: [identified and mitigated]
Integration Points
- System A: [how it integrates]
- System B: [how it integrates]
Future Considerations
- Scalability: [how to scale]
- Evolution: [how to extend]
```
Deliverable: Architecture documentation with diagrams
---
5. Configuration Documentation
Objective: Document all configuration options and environment variables.
Update these files:
README.md: Configuration sectiondocs/guides/configuration.md: Detailed config guide.env.example: Example environment file
Example .env.example update:
```bash
# Feature Name Configuration
FEATURE_API_KEY=your_api_key_here
FEATURE_TIMEOUT=30 # Request timeout in seconds
FEATURE_CACHE_TTL=3600 # Cache time-to-live in seconds
FEATURE_DEBUG=false # Enable debug logging
FEATURE_MAX_RETRIES=3 # Maximum retry attempts
```
Configuration guide:
```markdown
Configuration Options
Required Settings
#### FEATURE_API_KEY
- Type: string
- Required: Yes
- Description: API key for authentication
- Example:
sk_live_xxxxxxxxxxxx - Where to get: [URL to get API key]
Optional Settings
#### FEATURE_TIMEOUT
- Type: integer
- Required: No
- Default: 30
- Description: Request timeout in seconds
- Valid range: 1-300
Configuration Methods
Environment Variables
```bash
export FEATURE_API_KEY=your_key
```
Config File
```yaml
# config.yaml
feature:
api_key: your_key
timeout: 30
```
Programmatic
```python
from llms.feature import configure
configure(api_key="your_key", timeout=30)
```
```
Deliverable: Complete configuration documentation
---
6. TECH-STACK Updates
Objective: Document new dependencies added.
Location: TECH-STACK.md
Add entries for new dependencies:
```markdown
<Feature Name> (Added: YYYY-MM-DD)
Dependencies:
- package-name (version): [Description of why needed]
- Purpose: [What it's used for]
- License: [MIT, Apache, etc.]
- Alternatives considered: [Other options]
Security Considerations:
- Vulnerability scan: [Clean/Issues found]
- Maintenance status: [Active/Inactive]
```
Deliverable: Updated TECH-STACK.md
---
Documentation Checklist
Use this checklist to ensure comprehensive documentation:
Implementation Documentation
- [ ] Implementation doc created in
docs/implementation/ - [ ] Solution approach documented
- [ ] Architecture and components described
- [ ] Security measures documented
- [ ] Performance optimizations noted
- [ ] Testing coverage detailed
- [ ] Configuration requirements listed
- [ ] Dependencies documented
- [ ] Breaking changes noted
- [ ] Migration notes provided (if applicable)
User Documentation
- [ ] README.md updated (if applicable)
- [ ] User guide created (for complex features)
- [ ] Usage examples provided
- [ ] Configuration options documented
- [ ] Troubleshooting section added
- [ ] All code examples tested and working
API Documentation
- [ ] API endpoints documented (if REST API)
- [ ] Request/response formats shown
- [ ] Error codes documented
- [ ] Authentication documented
- [ ] Rate limiting noted
- [ ] Python API docstrings complete
Architecture Documentation
- [ ] Architecture doc created (if complex feature)
- [ ] System diagrams included
- [ ] Design decisions documented
- [ ] Data flows described
- [ ] Integration points noted
Configuration Documentation
- [ ] .env.example updated
- [ ] Configuration guide updated
- [ ] All options documented with types/defaults
- [ ] Configuration methods shown
Technical Documentation
- [ ] TECH-STACK.md updated (if dependencies added)
- [ ] Dependencies documented with rationale
- [ ] Security considerations noted
Quality Checks
- [ ] All links tested and working
- [ ] Code examples tested
- [ ] Markdown properly formatted
- [ ] No spelling/grammar errors
- [ ] Version numbers consistent
- [ ] Screenshots current (if applicable)
---
Best Practices
Writing Style
- Use clear, concise language
- Write in present tense
- Use active voice
- Avoid jargon where possible
- Define technical terms on first use
Code Examples
- Test all code examples
- Use realistic, meaningful examples
- Include imports and setup
- Show expected output
- Handle errors in examples
Organization
- Follow logical structure
- Use consistent heading levels
- Group related content
- Cross-reference related docs
- Maintain table of contents for long docs
Maintenance
- Date all documentation
- Note version numbers
- Link to issues/PRs
- Mark deprecated features
- Update on changes
---
Common Documentation Patterns
Feature Introduction
```markdown
<Feature Name>
Overview
Quick Start
Learn More
- [User Guide](link)
- [API Documentation](link)
- [Examples](link)
```
Code Example Pattern
```markdown
Example: <Scenario>
```python
# Import required modules
from llms.feature import Feature
# Initialize
feature = Feature(option="value")
# Use the feature
result = feature.process(data)
# Handle result
print(result)
```
Output:
```
Expected output here
```
Explanation:
```
Troubleshooting Pattern
```markdown
Common Issues
#### Issue:
Symptoms:
- What the user sees
- Error messages
Cause:
Why this happens
Solution:
- Step to fix
- Another step
- Verify it's fixed
Prevention:
How to avoid this issue
```
---
Supporting Resources
Reference materials for documentation:
- Markdown Guide: https://www.markdownguide.org/
- Google Developer Documentation Style Guide
- Write the Docs: https://www.writethedocs.org/
---
Integration with Deployment Flow
Input: Completed, validated feature implementation
Process: Systematic documentation of all aspects
Output: Comprehensive documentation across all types
Next Step: Changelog generation
---
Example Workflow
```bash
# 1. Create implementation documentation
Write docs/implementation/issue-123-user-auth.md
# 2. Update README if needed
Edit README.md to add authentication section
# 3. Create user guide for complex feature
Write docs/guides/authentication-guide.md
# 4. Update API documentation
Edit docs/api/authentication-api.md
# 5. Document architecture if complex
Write docs/architecture/auth-architecture.md
# 6. Update configuration docs
Edit .env.example to add AUTH_* variables
Edit docs/guides/configuration.md
# 7. Update TECH-STACK.md if dependencies added
Edit TECH-STACK.md to add new auth libraries
# 8. Verify all links work
Check all cross-references and external links
# 9. Test all code examples
Run each code example to ensure they work
# 10. Review checklist
Ensure all items checked off
```
---
Quality Standards
Documentation is complete when:
- All checklist items verified
- Code examples tested and working
- Links verified
- Markdown properly formatted
- Spelling/grammar checked
- Version numbers consistent
- Cross-references complete
- User perspective considered
More from this repository10
Analyzes project dependencies, builds dependency trees, detects conflicts, and checks compatibility across Python projects.
Generates comprehensive end-to-end browser tests using Playwright, implementing page object model and best practices for user workflow validation.
Systematically implements software features by writing tests first, creating clean code, and documenting according to project standards.
Generates comprehensive API endpoint tests for REST and GraphQL APIs, covering HTTP methods, authentication, validation, and error scenarios.
design-synthesizer skill from matteocervelli/llms
doc-analyzer skill from matteocervelli/llms
Designs clean, modular software architectures using established patterns like Layered and Hexagonal Architecture to create maintainable and scalable system structures.
Designs comprehensive Pydantic data models with robust type annotations, validation rules, and relationship mappings for Python applications.
Fetches comprehensive, version-specific library and framework documentation using MCP integrations for accurate implementation guidance.
Automatically generates comprehensive unit tests for functions and methods, covering edge cases and improving code reliability with minimal manual effort