Files
leo-claude-mktplace/plugins/doc-guardian/commands/changelog-gen.md
lmiranda 9698e8724d feat(plugins): implement Sprint 4 commands (#241-#258)
Sprint 4 - Plugin Commands implementation adding 18 new user-facing
commands across 8 plugins as part of V5.2.0 Plugin Enhancements.

**projman:**
- #241: /sprint-diagram - Mermaid visualization of sprint issues

**pr-review:**
- #242: Confidence threshold config (PR_REVIEW_CONFIDENCE_THRESHOLD)
- #243: /pr-diff - Formatted diff with inline review comments

**data-platform:**
- #244: /data-quality - DataFrame quality checks (nulls, duplicates, outliers)
- #245: /lineage-viz - dbt lineage as Mermaid diagrams
- #246: /dbt-test - Formatted dbt test runner

**viz-platform:**
- #247: /chart-export - Export charts to PNG/SVG/PDF via kaleido
- #248: /accessibility-check - Color blind validation (WCAG contrast)
- #249: /breakpoints - Responsive layout configuration

**contract-validator:**
- #250: /dependency-graph - Plugin dependency visualization

**doc-guardian:**
- #251: /changelog-gen - Generate changelog from conventional commits
- #252: /doc-coverage - Documentation coverage metrics
- #253: /stale-docs - Flag outdated documentation

**claude-config-maintainer:**
- #254: /config-diff - Track CLAUDE.md changes over time
- #255: /config-lint - 31 lint rules for CLAUDE.md best practices

**cmdb-assistant:**
- #256: /cmdb-topology - Infrastructure topology diagrams
- #257: /change-audit - NetBox audit trail queries
- #258: /ip-conflicts - Detect IP conflicts and overlaps

Closes #241, #242, #243, #244, #245, #246, #247, #248, #249,
#250, #251, #252, #253, #254, #255, #256, #257, #258

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 12:02:26 -05:00

2.6 KiB

description
description
Generate changelog from conventional commits in Keep-a-Changelog format

Changelog Generation

Generate a changelog entry from conventional commits.

Process

  1. Identify Commit Range

    • Default: commits since last tag
    • Optional: specify range (e.g., v1.0.0..HEAD)
    • Detect if this is first release (no previous tags)
  2. Parse Conventional Commits Extract from commit messages following the pattern:

    <type>(<scope>): <description>
    
    [optional body]
    
    [optional footer(s)]
    

    Recognized Types:

    Type Changelog Section
    feat Added
    fix Fixed
    docs Documentation
    perf Performance
    refactor Changed
    style Changed
    test Testing
    build Build
    ci CI/CD
    chore Maintenance
    BREAKING CHANGE Breaking Changes
  3. Group by Type Organize commits into Keep-a-Changelog sections:

    • Breaking Changes (if any ! suffix or BREAKING CHANGE footer)
    • Added (feat)
    • Changed (refactor, style, perf)
    • Deprecated
    • Removed
    • Fixed (fix)
    • Security
  4. Format Entries For each commit:

    • Extract scope (if present) as prefix
    • Use description as entry text
    • Link to commit hash if repository URL available
    • Include PR/issue references from footer
  5. Output Format

## [Unreleased]

### Breaking Changes
- **scope**: Description of breaking change

### Added
- **scope**: New feature description
- Another feature without scope

### Changed
- **scope**: Refactoring description

### Fixed
- **scope**: Bug fix description

### Documentation
- Updated README with new examples

Options

Flag Description Default
--from <tag> Start from specific tag Latest tag
--to <ref> End at specific ref HEAD
--version <ver> Set version header [Unreleased]
--include-merge Include merge commits false
--group-by-scope Group by scope within sections false

Integration

The generated output is designed to be copied directly into CHANGELOG.md:

  • Follows Keep a Changelog format
  • Compatible with semantic versioning
  • Excludes non-user-facing commits (chore, ci, test by default)

Example Usage

/changelog-gen
/changelog-gen --from v1.0.0 --version 1.1.0
/changelog-gen --include-merge --group-by-scope

Non-Conventional Commits

Commits not following conventional format are:

  • Listed under "Other" section
  • Flagged for manual categorization
  • Skipped if --strict flag is used