005-plugins/changelog-automation/skills/.claude/skills/changelog-orchestrator/SKILL.md
Orchestrate 6-phase changelog generation workflow with AI synthesis, multi-source data fetching (GitHub/Slack/Git), quality validation, and automated PR creation. Use when automating release notes, weekly changelogs, or documentation updates. Trigger with "generate changelog", "weekly changelog", or "automate release notes".
npx skillsauth add intent-solutions-io/plugins-nixtla changelog-orchestratorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Orchestrate a 6-phase workflow to automate changelog generation: fetch data from multiple sources, synthesize narrative with AI, validate quality, and create pull requests.
This skill coordinates changelog automation through progressive disclosure:
Integrates with MCP server (changelog_mcp.py) for deterministic operations while handling editorial work (synthesis, tone, quality judgment) directly.
Environment:
pip install -r scripts/requirements.txt.changelog-config.json configured in project rootRequired Tokens:
GITHUB_TOKEN environment variable with repo:read + repo:write scopesSLACK_TOKEN environment variable with channels:history scopeFiles:
.changelog-config.json (see config/.changelog-config.example.json)assets/templates/default-changelog.md)Load Configuration
get_changelog_config (no arguments for default .changelog-config.json)Determine Date Range
/changelog-weekly: Calculate start_date = today - 7 days, end_date = today/changelog-custom: Use provided start_date and end_date parametersFetch Data from All Sources
config["sources"]:
fetch_changelog_data with:
source_type: From config (github/slack/git)start_date: Calculated or provided dateend_date: Calculated or provided dateconfig: Source-specific config from filedata["items"]Display Fetch Summary
Role: You are now the Writer Agent. Your job is to transform raw data into user-friendly changelog content.
Group Items by Type
Generate Narrative Summary
Identify Top Highlights
Write Detailed Sections
- Add dark mode toggle (#123) - Users can now switch between light and dark themes
- Improve page load speed (#124) - 40% faster initial render
Apply Tone Guidelines
Output: Draft markdown content (no frontmatter yet)
Role: You are now the Formatter Agent. Your job is to apply the template structure and validate formatting.
Load Template
config["template"]{{...}})Generate Frontmatter
date: End date from Phase 1 (YYYY-MM-DD)version: Extract from latest git tag or increment (e.g., "1.2.0")authors: Unique authors from all items (deduplicate)categories: Derive from types (e.g., ["features", "fixes"])Validate Frontmatter
validate_frontmatter with:
frontmatter: Generated dictionaryschema_path: Optional (uses default schema)Apply Template Substitution
{{variable}} placeholders:
{{date}} → frontmatter.date{{version}} → frontmatter.version{{summary}} → From Phase 2{{highlights}} → From Phase 2 (bullet list){{features}} → From Phase 2 (bullet list){{fixes}} → From Phase 2 (bullet list){{breaking_changes}} → From Phase 2 or "None" if empty{{other_changes}} → From Phase 2 or "None" if emptyRun Deterministic Quality Check
validate_changelog_quality with:
content: Full markdown with frontmatterOutput: Complete formatted changelog markdown
Role: You are now the Reviewer Agent. Your job is to ensure the changelog meets quality standards before publishing.
Review Deterministic Score
Editorial Review
Calculate Combined Score
config["quality_threshold"] (default 80)Decision
Feedback Loop (If Rejected)
Output: Approval status + quality score + feedback (if any)
Role: You are now the PR Writer Agent. Your job is to commit the changelog and create a pull request.
Write Changelog File
write_changelog with:
content: Approved markdown from Phase 4output_path: From config["output_path"]overwrite: trueGenerate PR Description
## Summary
Changelog for {start_date} to {end_date}
## Changes
- Total: {count} items
- Features: {feature_count}
- Fixes: {fix_count}
- Breaking: {breaking_count}
## Quality Score
{combined_score}/100 (Deterministic: {det_score}, Editorial: {ed_score})
## Reviewer Checklist
- [ ] All changes accurately represented
- [ ] Tone is user-friendly
- [ ] No sensitive information leaked
- [ ] Links work correctly
Create Pull Request
create_changelog_pr with:
branch_name: changelog-{end_date} (e.g., "changelog-2025-12-28")commit_message: docs: add changelog for {end_date}pr_title: Changelog for Week of {start_date} to {end_date}pr_body: Generated description from step 2base_branch: From config["pr_config"]["base_branch"] (default "main")Handle Errors
repo:writeOutput: PR metadata (URL, number, branch, diff summary)
Role: You are the Orchestrator Agent again. Present results to the user.
Display Success Summary
🎉 Changelog PR created successfully!
📋 Summary:
- Date range: {start_date} to {end_date}
- Changes: {count} items ({source breakdown})
- Quality score: {score}/100
- PR: {pr_url}
Next steps:
1. Review PR: Click link above
2. Merge when ready: Changelog will be added to repo
3. Iterate: Run /changelog-custom for different date ranges
Provide Next Actions
/changelog-custom for different date rangeSave Reproducibility Bundle (Optional)
run_manifest.json with:
.claude/ directoryEnd Session
/changelog-validatePrimary Artifact: GitHub Pull Request with changelog file
Secondary Artifacts:
CHANGELOG.md)Console Output: Phase-by-phase progress with status emojis
| Error Type | Phase | Response | Recovery |
|------------|-------|----------|----------|
| Config file missing | Phase 1 | Display error + suggest /changelog-validate | User creates config |
| GitHub token invalid | Phase 1 | Display error + token setup instructions | User sets GITHUB_TOKEN |
| Template not found | Phase 3 | Display error + template path | User fixes path in config |
| Quality gate fails | Phase 4 | Provide feedback, iterate (max 2 rounds) | Lower threshold or fix content |
| PR creation fails (branch exists) | Phase 5 | Suggest unique branch or delete existing | User resolves conflict |
General Error Pattern:
User: /changelog-weekly
Phase 1: Fetched 20 items (GitHub: 12 PRs, Slack: 8 messages)
Phase 2: Generated summary + highlights + 4 sections
Phase 3: Applied template, validated frontmatter (✓)
Phase 4: Quality score: 92/100 (approved)
Phase 5: Created PR #1234
Phase 6: Displayed summary with PR link
User: /changelog-custom start_date=2025-12-01 end_date=2025-12-15
Workflow: Same as Example 1, but uses provided date range
Phase 4: Quality score: 68/100 (rejected, threshold 80)
Feedback: "Missing 3 PRs in Features section, tone too technical in Breaking Changes"
Phase 2 (iteration 2): Fixed issues
Phase 4 (retry): Quality score: 85/100 (approved)
Continue: Proceeds to Phase 5
Documentation:
000-docs/000a-planned-plugins/changelog-automation/03-ARCHITECTURE.md000-docs/000a-planned-plugins/changelog-automation/04-USER-JOURNEY.md000-docs/000a-planned-plugins/changelog-automation/05-TECHNICAL-SPEC.mdMCP Server: Plugin-level script at scripts/changelog_mcp.py
Templates: Available in assets/templates/ directory
default-changelog.md - Default formatweekly-template.md - Weekly format (future)release-template.md - Release notes format (future)Config Schema: config/.changelog-config.schema.json
tools
This skill assists with managing database sharding strategies. It is activated when the user needs to implement horizontal database sharding to scale beyond single-server limitations. The skill supports designing sharding strategies, distributing data across multiple database instances, and implementing consistent hashing, automatic rebalancing, and cross-shard query coordination. Use this skill when the user mentions "database sharding", "sharding implementation", "scale database", or "horizontal partitioning". The plugin helps design and implement sharding for high-scale applications.
tools
This skill enables Claude to perform comprehensive database security scans using the database-security-scanner plugin. It is triggered when the user requests a security assessment of a database, including identifying vulnerabilities like weak passwords, SQL injection risks, and insecure configurations. The skill leverages OWASP guidelines to ensure thorough coverage and provides remediation suggestions. Use this skill when the user asks to "scan database security", "check database for vulnerabilities", "perform OWASP compliance check on database", or "assess database security posture". The plugin supports PostgreSQL and MySQL.
testing
This skill enables Claude to design and visualize database schemas. It leverages normalization guidance (1NF through BCNF), relationship mapping, and ERD generation to create efficient and well-structured databases. Use this skill when the user requests to "design a database schema", "create a database model", "generate an ERD", "normalize a database", or needs help with "database design best practices". The skill is triggered by terms like "database schema", "ERD diagram", "database normalization", and "relational database design".
tools
This skill enables Claude to manage database replication, failover, and high availability configurations using the database-replication-manager plugin. It is designed to assist with tasks such as setting up master-slave replication, configuring automatic failover, monitoring replication lag, and implementing read scaling. Use this skill when the user requests help with "database replication", "failover configuration", "high availability", "replication lag", or "read scaling" for databases like PostgreSQL or MySQL. The plugin facilitates both physical and logical replication strategies.