Agent skill
post-impl-docs
Update repository documentation after code implementation. Maintains README, CHANGELOG, docs/ folder, and inline docstrings based on changes made. Triggered by lane-executor after task completion.
Install this agent skill to your Project
npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/consiliency/post-impl-docs
SKILL.md
Post-Implementation Documentation Skill
Automatically update repository documentation to reflect code changes. This skill ensures that when code is implemented, the documentation stays in sync with the actual codebase.
Variables
| Variable | Default | Description |
|---|---|---|
| UPDATE_README | true | Update README.md for new features/APIs |
| UPDATE_CHANGELOG | true | Add entries to CHANGELOG.md |
| UPDATE_DOCS_FOLDER | true | Update files in docs/ that reference changed code |
| UPDATE_DOCSTRINGS | true | Update inline docstrings for changed functions/classes |
| CHANGELOG_FORMAT | conventional | conventional, keep-a-changelog, simple |
| COMMIT_DOCS | true | Commit documentation changes with code |
Instructions
MANDATORY - Follow the Workflow steps below in order. Do not skip steps.
- Analyze what code changes were made (git diff)
- Determine documentation impact
- Update README if new features/APIs added
- Update CHANGELOG with change summary
- Scan docs/ folder for references to changed symbols
- Update inline docstrings for modified functions/classes
Red Flags - STOP and Reconsider
If you're about to:
- Update documentation without understanding the code changes
- Add CHANGELOG entries for trivial changes (typos, formatting)
- Update README for internal implementation details
- Modify docstrings without verifying the behavior changed
STOP -> Review the diff -> Understand the impact -> Then document
Workflow
1. Gather Change Context
Analyze what was changed in the current implementation:
# Get changed files
git diff --name-only HEAD~1 HEAD
# Get change summary
git diff --stat HEAD~1 HEAD
# Get detailed changes for documentation
git diff HEAD~1 HEAD -- "*.py" "*.ts" "*.js" "*.go" "*.rs"
2. Classify Changes
Determine the type and scope of changes:
| Change Type | README Impact | CHANGELOG Entry | Docs Update |
|---|---|---|---|
| New feature | Add to Features section | feat: entry |
If documented |
| Bug fix | No change | fix: entry |
If affects behavior |
| Breaking change | Update usage examples | BREAKING: entry |
Update all refs |
| API addition | Add to API section | feat: entry |
Add API docs |
| Deprecation | Add deprecation note | deprecate: entry |
Update examples |
| Performance | No change | perf: entry |
No |
| Refactor | No change | refactor: entry |
No |
| Docs only | N/A | No entry | N/A |
| Tests only | No change | test: entry |
No |
3. Update README.md
Only update README for significant changes:
Add new feature to Features section:
## Features
- **New Feature Name** - Brief description of what it does
Add new API to API/Usage section:
## API
### `newFunction(param: Type): ReturnType`
Description of the function and its purpose.
Update usage examples if API changed:
## Usage
```python
# Updated example reflecting new API
result = module.new_function(param="value")
4. Update CHANGELOG.md
Add entry following the project's format:
Conventional Changelog:
## [Unreleased]
### Added
- Add user authentication endpoint (#123)
### Changed
- Update database connection pool size for better performance
### Fixed
- Fix race condition in async queue processor (#124)
### Deprecated
- Deprecate `old_function()` in favor of `new_function()`
### Removed
- Remove support for Python 3.8
### Security
- Fix XSS vulnerability in user input handling
Keep a Changelog format:
## [Unreleased]
### Added
- New feature description
### Changed
- Change description
5. Update docs/ Folder
Scan documentation files for references to changed symbols:
# Find docs that reference changed functions/classes
grep -r "changed_function\|ChangedClass" docs/
For each match:
- Verify if the documentation is still accurate
- Update parameter descriptions if signature changed
- Update examples if behavior changed
- Update cross-references if file moved
6. Update Inline Docstrings
For each modified function/class with docstrings:
Python:
def function(param: str) -> bool:
"""Updated description reflecting new behavior.
Args:
param: Updated parameter description.
Returns:
Updated return value description.
Raises:
ValueError: If param is invalid (new error case).
"""
TypeScript/JavaScript:
/**
* Updated description reflecting new behavior.
*
* @param param - Updated parameter description
* @returns Updated return value description
* @throws {Error} If param is invalid (new error case)
*/
function func(param: string): boolean {
Cookbook
README Updates
- IF: Adding new public feature
- THEN: Read
cookbook/readme-updates.md - RESULT: Updated feature list and examples
CHANGELOG Entries
- IF: Writing CHANGELOG entries
- THEN: Read
cookbook/changelog-formats.md - RESULT: Properly formatted entries
Docstring Standards
- IF: Updating inline documentation
- THEN: Read
cookbook/docstring-standards.md - RESULT: Consistent docstring format
Quick Reference
What to Document
| Change | README | CHANGELOG | docs/ | Docstrings |
|---|---|---|---|---|
| New public API | Yes | Yes | Yes | Yes |
| New internal function | No | Maybe | No | Yes |
| Bug fix | No | Yes | If behavior docs exist | If signature changed |
| Performance improvement | No | Yes | No | No |
| Breaking change | Yes | Yes | Yes | Yes |
| Deprecation | Yes | Yes | Yes | Yes |
Conventional Commit to CHANGELOG Mapping
| Commit Type | CHANGELOG Section |
|---|---|
feat: |
Added |
fix: |
Fixed |
perf: |
Changed |
refactor: |
Changed |
deprecate: |
Deprecated |
BREAKING CHANGE: |
Changed (with breaking note) |
security: |
Security |
docs: |
(skip) |
test: |
(skip) |
chore: |
(skip) |
Integration Points
This skill is invoked:
- By lane-executor: After completing implementation tasks
- By test-engineer: After significant test additions
- Before PR creation: Ensure docs are current
Example Integration in Lane Executor
## Post-Implementation Steps
After completing implementation:
1. Run `dependency-sync` skill to update manifests
2. Run `post-impl-docs` skill to update documentation
3. Verify build/tests still pass
4. Commit all changes together
Output
Documentation Update Report
{
"status": "success",
"updates": {
"readme": {
"updated": true,
"sections_modified": ["Features", "API"]
},
"changelog": {
"updated": true,
"entries_added": [
{"type": "feat", "description": "Add user authentication endpoint"}
]
},
"docs_folder": {
"files_updated": ["docs/api.md", "docs/getting-started.md"],
"references_fixed": 3
},
"docstrings": {
"functions_updated": 5,
"classes_updated": 2
}
},
"commit_sha": "abc123"
}
No Changes Report
{
"status": "no_changes",
"reason": "Changes are internal implementation only",
"analysis": {
"change_type": "refactor",
"public_api_affected": false,
"documentation_impact": "none"
}
}
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
perigon-backend
Perigon ASP.NET Core + EF Core + Aspire conventions
perigon-agent
Pointers for Copilot/agents to apply Perigon conventions
perigon-angular
Angular 21+ standalone/Material/signal conventions for Perigon WebApp
fastapi-mastery
Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.
context7-efficient
Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.
browser-use
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
Didn't find tool you were looking for?