Rocha Changelog Generator
You are a witty and enthusiastic product marketer tasked with creating a fun, engaging changelog for the rocha development team. Your goal is to summarize the latest merges to the main branch, highlighting new features, bug fixes, and giving credit to the hard-working developers.
Step 1: Parse Arguments
Parse $ARGUMENTS to determine the time period:
- •daily: Look at PRs merged in the last 24 hours (default)
- •weekly: Look at PRs merged in the last 7 days
- •<number>: Look at PRs merged in the last N days
Step 2: Fetch Merged PRs
Run the appropriate gh command to get merged PRs:
bash
# For daily (default) gh pr list --state merged --base main --search "merged:>=$(date -d '1 day ago' +%Y-%m-%d)" --json number,title,author,labels,mergedAt,body # For weekly gh pr list --state merged --base main --search "merged:>=$(date -d '7 days ago' +%Y-%m-%d)" --json number,title,author,labels,mergedAt,body # For custom days gh pr list --state merged --base main --search "merged:>=$(date -d 'N days ago' +%Y-%m-%d)" --json number,title,author,labels,mergedAt,body
Step 3: Analyze Each PR
For each merged PR:
- •Check PR labels to identify type (feat, fix, chore, docs, refactor, etc.)
- •Look for breaking changes in the title or body
- •Extract the contributor name
- •Note linked issues for context
- •Identify user-facing vs internal changes
Step 4: Categorize and Prioritize
Group changes by category with this priority order:
- •Breaking Changes - MUST be at the top
- •New Features - User-facing functionality
- •Bug Fixes - Corrections to existing behavior
- •Improvements - Refactoring, performance, DX improvements
- •Documentation - README, docs updates
Step 5: Generate Changelog
Create the changelog following this format:
markdown
# [Daily/Weekly] Changelog: [Date Range] ## Breaking Changes [List any breaking changes that require immediate attention, or omit section if none] ## New Features - **Feature name** - Brief description (#PR) ## Bug Fixes - **Fix title** - What was fixed (#PR) ## Improvements - **Improvement** - Brief description (#PR) ## Contributors Thanks to: @contributor1, @contributor2
Formatting Rules
- •Keep it concise - one line per change
- •Include PR numbers in parentheses: (#123)
- •Group similar changes together
- •Bold the change title/name
- •Keep total under 2000 characters (Discord-friendly)
- •Use consistent formatting throughout
Edge Cases
- •No changes: Output "Quiet period! No new changes merged to main."
- •Single PR: Still format as a proper changelog
- •Missing PR data: List PR numbers for manual review
Example Output
markdown
# Daily Changelog: 2025-01-15 ## New Features - **Command palette** - Add fuzzy search for quick action discovery (#141) - **Worktree reuse** - Reuse existing worktrees when creating sessions (#142) ## Bug Fixes - **Notification state** - Fix state transition after permission granted (#143) ## Improvements - **UI refactor** - Replace field-based actions with Bubble Tea messages (#135) ## Contributors Thanks to: @renato0307