Automates the process of keeping project documentation synchronized with codebase changes. This skill analyzes git differences between the current working branch and the last released version, then intelligently updates relevant documentation files.
Confirm successful installation by checking the skill directory location:
.cursor/skills/docs-updater
Restart Cursor to activate docs-updater. Access via /docs-updater in your agent's command palette.
โ
Security Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Automates the process of keeping project documentation synchronized with codebase changes. This skill analyzes git differences between the current working branch and the last released version, then intelligently updates relevant documentation files.
Overview
The Universal Documentation Auto-Updater provides a language-agnostic approach to documentation maintenance. By leveraging git operations to identify what has changed since the last release, it generates targeted updates for README.md, CHANGELOG.md, and project documentation folders.
Key Features:
Universal Compatibility: Works with any git repository regardless of programming language
Dynamic Version Detection: Automatically finds the latest release tag
Comprehensive Diff Analysis: Analyzes additions, modifications, and deletions
Smart Categorization: Groups changes by type (feature, fix, refactor, docs, etc.)
Documentation Discovery: Automatically finds and updates relevant docs folders
When to Use
Use this skill when:
Preparing documentation for a new release
The documentation has fallen behind the codebase
Creating a pull request and need to update docs
Asked to "update changelog", "update docs", "sync documentation"
Before starting, verify that the following conditions are met:
# Verify we're in a git repositorygit rev-parse --git-dir
# Check that git tags existgit tag --list|head-5# Verify documentation files existtest-f README.md ||echo"README.md not found"test-f CHANGELOG.md ||echo"CHANGELOG.md not found"
If no tags exist, inform the user that this skill requires at least one release tag to compare against.
Instructions
Phase 1: Detect Last Release Version
Goal: Identify the latest released version to compare against.
Actions:
Get the latest tag from the repository:
# Get the most recent tagLATEST_TAG=$(git describe --tags--abbrev=02>/dev/null)# If no tags found, inform the userif[-z"$LATEST_TAG"];thenecho"No git tags found. This skill requires at least one release tag."echo"Please create a release tag first (e.g., git tag -a v1.0.0 -m 'Initial release')"exit1fiecho"Latest release tag: $LATEST_TAG"echo"Current branch: $(git branch --show-current)"
Extract version information for display:
# Parse version from tag (handles v1.2.3, 1.2.3, release-1.2.3 formats)VERSION=$(echo"$LATEST_TAG"|sed-E's/^[^0-9]*([0-9]+\.[0-9]+\.[0-9]+).*/\1/')echo"Version detected: $VERSION"
Goal: Analyze all changes between the last release and current branch.
Actions:
Get the commit range and statistics:
# Get commit count between tag and HEADCOMMIT_COUNT=$(git rev-list --count ${LATEST_TAG}..HEAD 2>/dev/null ||echo"0")echo"Commits since $LATEST_TAG: $COMMIT_COUNT"# Get file change statisticsgitdiff--stat${LATEST_TAG}..HEAD
Extract commit messages for analysis:
# Get all commit messages in the rangeCOMMITS=$(git log ${LATEST_TAG}..HEAD --pretty=format:"%h|%s|%b"--reverse)# Display commits for reviewecho"$COMMITS"
Get detailed file changes:
# Get list of changed filesCHANGED_FILES=$(gitdiff --name-only ${LATEST_TAG}..HEAD)# Categorize changes by typeADDED_FILES=$(gitdiff --name-only --diff-filter=A ${LATEST_TAG}..HEAD)DELETED_FILES=$(gitdiff --name-only --diff-filter=D ${LATEST_TAG}..HEAD)MODIFIED_FILES=$(gitdiff --name-only --diff-filter=M ${LATEST_TAG}..HEAD)
Identify component areas based on file paths:
# Detect which components/areas changedecho"$CHANGED_FILES"|grep-E"^plugins/"|cut -d'/'-f2|sort-u
Phase 3: Discover Documentation Structure
Goal: Identify all relevant documentation locations in the project.
Actions:
Find standard documentation folders:
# Check for common documentation locationsDOC_FOLDERS=()[-d"docs"]&&DOC_FOLDERS+=("docs/")[-d"documentation"]&&DOC_FOLDERS+=("documentation/")[-d"doc"]&&DOC_FOLDERS+=("doc/")# Find plugin-specific docsforplugin_dirin plugins/*/;doif[-d"${plugin_dir}docs"];thenDOC_FOLDERS+=("${plugin_dir}docs/")fidoneecho"Documentation folders found:"printf' - %s\n'"${DOC_FOLDERS[@]}"
Identify existing documentation files:
# Check for standard doc filesDOC_FILES=()[-f"README.md"]&&DOC_FILES+=("README.md")[-f"CHANGELOG.md"]&&DOC_FILES+=("CHANGELOG.md")[-f"CONTRIBUTING.md"]&&DOC_FILES+=("CONTRIBUTING.md")[-f"docs/GUIDE.md"]&&DOC_FILES+=("docs/GUIDE.md")echo"Documentation files found:"printf' - %s\n'"${DOC_FILES[@]}"
Phase 4: Generate CHANGELOG Updates
Goal: Create categorized changelog entries following Keep a Changelog standard.
Actions:
Parse commits by conventional commit types and categorize:
Added: New features (feat, feature commits)
Changed: Changes to existing functionality
Fixed: Bug fixes (fix, bug commits)
Deprecated: Soon-to-be removed features
Removed: Features removed in this release
Security: Security vulnerability fixes
Read the existing CHANGELOG.md to understand structure, then generate new entries following Keep a Changelog format.
See references/examples.md for detailed bash commands and changelog templates.
Phase 5: Update README.md
Goal: Update the main README with relevant high-level changes.
Actions:
Read the current README.md to understand its structure
Apply updates using Edit tool: preserve structure, maintain tone, update version numbers
Phase 6: Update Documentation Folders
Goal: Propagate changes to relevant documentation in docs/ folders.
Actions:
For each documentation folder found, check for files referencing changed code
Map changed files to their documentation
Generate updates: add new feature docs, update API references, fix outdated examples
See references/examples.md for detailed discovery patterns and update strategies.
Phase 7: Present Changes for Review
Goal: Show the user what will be updated before applying changes.
Actions:
Present a summary of proposed changes:
## Proposed Documentation Updates### Version Information- Previous release: $LATEST_TAG
- Current branch: $CURRENT_BRANCH
- Commits analyzed: $COMMIT_COUNT
### Files to Update- [ ] CHANGELOG.md - Add new version section with categorized changes
- [ ] README.md - Update [specific sections]
- [ ] docs/[specific files] - Update documentation
Implementation Guide
Prerequisites
โบClaude Desktop or compatible AI client with skill support
โบClear understanding of task or problem to solve
โบWillingness to iterate and refine outputs
Time Estimate
15-45 minutes depending on use case complexity
Steps
1Install skill using provided installation command
2Test with simple use case relevant to your work
3Evaluate output quality and relevance
4Iterate on prompts to improve results
5Integrate into regular workflow if valuable
Common Pitfalls
โ Expecting perfect results without iteration
โ Not providing enough context in prompts
โ Using skill for tasks outside its intended scope
โ Accepting outputs without review and validation
Best Practices
โ Do
+Start with clear, specific prompts
+Provide relevant context and constraints
+Review and refine all outputs before using
+Iterate to improve output quality
+Document successful prompt patterns
โ Don't
โDon't use without understanding skill limitations
โDon't skip validation of outputs
โDon't share sensitive information in prompts
โDon't expect skill to replace human judgment
๐ก Pro Tips
โ Be specific about desired format and style
โ Ask for multiple options to choose from
โ Request explanations to understand reasoning
โ Combine AI efficiency with human expertise
When to Use This
โ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
โ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
Learning Path
1Familiarize yourself with skill capabilities and limitations
2Start with low-risk, non-critical tasks
3Progress to more complex and valuable use cases
4Build expertise through regular use and experimentation