{
  "markdown": "# Release Notes Generator — Gemini CLI Extension\n\nA Gemini CLI extension that automatically generates structured, high-quality release notes from git history. Built for founders and product teams who ship frequently.\n\n---\n\n## Features\n\n- 🔍 **Automatic commit extraction** from any git range\n- 🏷 **Smart classification** using conventional commits + heuristics (added / fixed / changed / removed / refactored / breaking)\n- 🧹 **Deduplication** removes low-signal and repeated messages\n- 📦 **Four output modes** for different audiences\n- 🎯 **Marketing angles** for framing release copy\n- 🔢 **Semantic version suggestions** (major / minor / patch)\n- 💾 **File output** writes a ready-to-ship markdown file\n\n---\n\n## 📋 Prerequisites\n\nBefore installing the Release Notes Generator, ensure you have:\n\n1. **Gemini CLI** installed and configured\n   - [Installation guide](https://github.com/google-gemini/gemini-cli)\n   - Verify with: `gemini --version`\n\n2. **Node.js 18+** and npm\n   - Check your version: `node --version`\n   - Download from [nodejs.org](https://nodejs.org)\n\n3. **Git repository** with commit history\n   - The extension works on any git repository\n   - Tags are recommended for version-based releases\n\n4. **Optional API tokens** (for enhanced features)\n   - `GITHUB_TOKEN` — Fetch PR titles from GitHub\n   - `JIRA_TOKEN` & `JIRA_BASE_URL` — Fetch Jira ticket details\n\n---\n\n## 🚀 Installation\n\n### Option 1: Install from GitHub (Recommended)\n\n```bash\n# Install the extension\ngemini extensions install https://github.com/rajavijayach/release-notes-generator\n\n# Restart Gemini CLI to activate\n# Press Ctrl+C to exit, then restart your session\n```\n\n### Option 2: Local Development Setup\n\nFor local development or customization:\n\n```bash\n# Clone the repository\ngit clone https://github.com/rajavijayach/release-notes-generator.git\ncd release-notes-generator\n\n# Install dependencies and build\nnpm install\nnpm run build\n\n# Link to Gemini CLI\ngemini extensions link .\n\n# Restart Gemini CLI to activate\n```\n\n### Verify Installation\n\nAfter restarting Gemini CLI, verify the extension is loaded:\n\n```bash\n# The /release:notes command should be available\n# Try: /release:notes\n\n# Or ask naturally:\n# \"List available extensions\"\n```\n\n---\n\n## ✅ Activation\n\nAfter installation, **restart your Gemini CLI session** to activate the extension.\n\n### What's Available\n\nOnce activated, you'll have access to:\n\n- **`/release:notes`** command — Quick release notes generation\n- **Natural language interface** — Ask for release notes conversationally\n- **Four specialized tools** — For programmatic access\n\n### Quick Test\n\nNavigate to a git repository and try:\n\n```bash\n# Using the custom command\n/release:notes\n\n# Or natural language\n\"Generate release notes for the latest changes\"\n```\n\nIf the command isn't recognized, ensure you've restarted Gemini CLI after installation.\n\n---\n\n## 💡 Usage\n\nThe extension offers multiple ways to generate release notes, from quick commands to detailed natural language requests.\n\n### 🎯 Quick Command (Fastest)\n\n```bash\n# Generate notes since the last tag\n/release:notes\n\n# Generate notes since a specific tag\n/release:notes v1.5\n\n# Generate notes since a commit\n/release:notes abc123f\n```\n\n### 🗣 Natural Language (Recommended)\n\nAsk naturally and specify your needs:\n\n```bash\n# Quick release with auto-detection\n\"Generate release notes since the last tag\"\n\n# Specific version range\n\"What changed between v1.5 and v1.6?\"\n\n# Output mode selection\n\"Generate release notes since v2.0 in store mode\"\n\"I need internal engineering notes for the latest release\"\n\"Write marketing release notes with a trust angle for v3.0\"\n\n# Save to file\n\"Generate release notes since v1.8 and save to RELEASE.md\"\n\"Create marketing notes for v2.0 and write to file\"\n```\n\n### 📊 Common Scenarios\n\n**Before tagging a new release:**\n```bash\n\"What commits do we have since v1.2? Should this be a major, minor, or patch?\"\n\"Show me commit stats since the last tag\"\n```\n\n**For app store updates:**\n```bash\n\"Generate release notes in store mode since v2.1\"\n```\n\n**For internal team communication:**\n```bash\n\"Generate internal release notes with full technical details\"\n```\n\n**For marketing announcements:**\n```bash\n\"Write marketing release notes with a growth angle\"\n\"Create release highlights focusing on performance improvements\"\n```\n\n### 🔧 Available Tools\n\nThe Gemini model can call these tools directly when you use natural language:\n\n| Tool | Purpose |\n|------|---------|\n| `generate_release_notes` | Full pipeline: extract → classify → format |\n| `list_git_tags` | Show all tags in repo (helps choose a starting point) |\n| `get_commit_stats` | Commit breakdown + suggested version bump |\n| `write_release_notes_file` | Generate and save to markdown file |\n\n---\n\n## 📦 Output Modes\n\nChoose the right format for your audience. All modes include the suggested semantic version bump.\n\n### `default` — Developer-Friendly\n\n```markdown\n## v1.7\n\n- Added configurable focus window\n- Fixed session expiration bug\n- Performance improvements\n```\n\n### `store` — App Store Ready\n\n```markdown\n## What's New in v1.7\n\n**🆕 New features**\n• New configurable focus windows\n\n**🛠 Fixes & reliability**\n• Improved reliability for session locking\n```\n\n### `internal` — Engineering Detail\n\n```markdown\n## Internal Release Notes — v1.7\n\n### Added\n- Focus duration options (10, 15, 30)\n\n### Fixed\n- Race condition in relock logic\n```\n\n### `marketing` — Outcome-Driven\n\n```markdown\n## v1.7 — Release Highlights\n\n- Strengthened session validation logic\n- Improved reliability of access expiration\n```\n\n---\n\n## 📖 Examples\n\n### Example 1: Quick Hotfix Release\n\n**Scenario:** You fixed a critical bug and need to ship patch release notes quickly.\n\n```bash\n# Check what changed\n\"What commits do we have since v2.1.3?\"\n\n# Generate patch notes\n/release:notes v2.1.3\n```\n\n**Output (default mode):**\n```markdown\n## v2.1.4\n\n### Fixed\n- Fixed critical authentication timeout bug\n- Resolved memory leak in session handler\n\n**Suggested version bump:** patch\n```\n\n---\n\n### Example 2: Feature Release for App Store\n\n**Scenario:** New features ready for App Store submission. Need user-friendly copy.\n\n```bash\n\"Generate release notes in store mode since v2.0\"\n```\n\n**Output (store mode):**\n```markdown\n## What's New in v2.1\n\n**🆕 New Features**\n• Dark mode support across the entire app\n• Export data to CSV and JSON formats\n• Customizable notification preferences\n\n**🛠 Improvements & Fixes**\n• Faster app launch time\n• More reliable cloud sync\n• Fixed crash when viewing large datasets\n\n**Suggested version bump:** minor\n```\n\n---\n\n### Example 3: Internal Engineering Notes\n\n**Scenario:** Team standup tomorrow. Need detailed technical notes for engineering.\n\n```bash\n\"Generate internal release notes since v3.0 with full details\"\n```\n\n**Output (internal mode):**\n```markdown\n## Internal Release Notes — v3.1\n\n### Added\n- OAuth2 integration with refresh token support\n- Redis caching layer for API responses\n- Comprehensive logging with structured JSON output\n- Feature flags for gradual rollout control\n\n### Changed\n- Migrated from REST to GraphQL for user endpoints\n- Updated dependencies: React 18.2 → 18.3, TypeScript 5.0 → 5.3\n- Refactored authentication middleware for better testability\n\n### Fixed\n- Race condition in concurrent user sessions\n- SQL injection vulnerability in search queries (CVE-2024-XXXX)\n- Memory leak in WebSocket connection pool\n\n### Breaking Changes\n⚠️ API v2 endpoints removed (deprecated in v2.8)\n⚠️ Changed response format for /api/users endpoint\n\n**Suggested version bump:** major (breaking changes detected)\n```\n\n---\n\n### Example 4: Marketing Release Highlights\n\n**Scenario:** Product launch announcement for newsletter and social media.\n\n```bash\n\"Write marketing release notes with a trust angle for v4.0\"\n```\n\n**Output (marketing mode with trust angle):**\n```markdown\n## v4.0 — Release Highlights\n\n**Built for Security & Reliability**\n\nWe've strengthened the foundation of our platform with enterprise-grade security:\n\n- End-to-end encryption for all data transmission\n- SOC 2 Type II compliant infrastructure\n- 99.9% uptime SLA with automatic failover\n- Comprehensive audit logging for compliance teams\n\n**Trust-First Features**\n\n- Two-factor authentication now mandatory for admin accounts\n- Granular permission controls for team management\n- Automated security scanning for uploaded files\n- Real-time breach detection and alerts\n\nEvery feature in this release was designed with your data security in mind.\n\n**Suggested version bump:** major\n```\n\n---\n\n### Example 5: Checking Version Bump Before Tagging\n\n**Scenario:** Commits ready, but unsure whether this should be major, minor, or patch.\n\n```bash\n\"Show me commit stats since v1.8 and suggest the version bump\"\n```\n\n**Output:**\n```\nCommit Stats (since v1.8.0):\n\n📊 Total commits: 23\n\n🏷 By category:\n  - Added: 5 commits (new features)\n  - Fixed: 12 commits (bug fixes)\n  - Changed: 4 commits (modifications)\n  - Breaking: 0 commits\n\n💡 Suggested version bump: minor\n\nReasoning: New features detected (5 added), but no breaking changes.\nNext version should be: v1.9.0\n```\n\n---\n\n## 🔢 Semantic Version Bumping\n\nThe extension automatically suggests version bumps based on commit analysis:\n\n| Commits contain | Suggested bump |\n|----------------|----------------|\n| Breaking changes | **major** |\n| New features | **minor** |\n| Bug fixes only | **patch** |\n\n---\n\n## ⚙️ Configuration\n\nEnhance the extension with optional API integrations for richer release notes.\n\n### Environment Variables\n\n### Environment Variables\n\nSet these via your shell profile or the Gemini CLI settings UI:\n\n| Variable | Purpose |\n|----------|---------|\n| `GITHUB_TOKEN` | Fetch PR titles and descriptions from GitHub |\n| `JIRA_TOKEN` | Fetch Jira ticket details for commit references |\n| `JIRA_BASE_URL` | Your Jira instance URL (e.g., `https://yourcompany.atlassian.net`) |\n\n**Example setup:**\n```bash\nexport GITHUB_TOKEN=\"ghp_your_token_here\"\nexport JIRA_BASE_URL=\"https://yourcompany.atlassian.net\"\nexport JIRA_TOKEN=\"your_jira_token_here\"\n```\n\n---\n\n## 🛠 Development\n\nWant to customize or contribute? Here's how to set up a local development environment.\n\n### Build Commands\n\n### Build Commands\n\n```bash\nnpm install          # Install dependencies\nnpm run build        # Compile TypeScript to dist/\nnpm run dev          # Watch mode for active development\nnpm run clean        # Remove compiled output\n\ngemini extensions link .   # Link for testing in Gemini CLI\n```\n\n### Development Workflow\n\n1. Make changes in `src/` or `commands/`\n2. Run `npm run dev` for automatic rebuilds\n3. Restart Gemini CLI to test changes\n4. Run `npm run build` before committing\n\n---\n\n## Project Structure\n\n```\nrelease-notes-generator/\n├── gemini-extension.json       # Extension manifest\n├── GEMINI.md                   # Persistent model context\n├── package.json\n├── tsconfig.json\n├── src/\n│   └── index.ts                # MCP server (all tools)\n├── commands/\n│   └── release/\n│       └── notes.toml          # /release:notes command\n├── skills/\n│   └── release-notes/\n│       └── SKILL.md            # Agent skill\n└── dist/                       # Compiled output (after npm run build)\n```\n\n---\n\n## 🔧 Troubleshooting\n\n### Extension Not Found\n\n**Problem:** `/release:notes` command not recognized after installation.\n\n**Solution:**\n1. Ensure you restarted Gemini CLI after installation\n2. Verify extension is installed: `gemini extensions list`\n3. Check extension directory exists: `~/.gemini/extensions/release-notes-generator/`\n\n---\n\n### No Commits Found\n\n**Problem:** \"No commits found since [tag]\"\n\n**Solution:**\n- Verify you're in a git repository: `git status`\n- Check the tag exists: `git tag -l`\n- Ensure there are commits after the specified tag: `git log v1.0..HEAD`\n- Try omitting the tag to use the last tag automatically\n\n---\n\n### Commands Not Recognized\n\n**Problem:** Natural language requests aren't triggering the extension.\n\n**Solution:**\n- Be explicit: \"Generate release notes using the release notes generator\"\n- Use the `/release:notes` command directly\n- Ensure you're in a directory with git history\n\n---\n\n### Version Bump Confusion\n\n**Problem:** Suggested version bump doesn't match expectations.\n\n**Solution:**\n- Use conventional commits for accurate classification (`feat:`, `fix:`, `BREAKING CHANGE:`)\n- Check commit stats: \"Show me commit stats since v1.0\"\n- The suggestion is based on detected changes:\n  - **major**: Breaking changes found\n  - **minor**: New features, no breaking changes\n  - **patch**: Bug fixes only\n\n---\n\n### Build Errors (Local Development)\n\n**Problem:** `npm run build` fails with TypeScript errors.\n\n**Solution:**\n```bash\n# Clean and rebuild\nnpm run clean\nrm -rf node_modules package-lock.json\nnpm install\nnpm run build\n```\n\nEnsure Node.js 18+ is installed: `node --version`\n\n---\n\n## License\n\nApache-2.0\n",
  "bytes": 12870,
  "sha": "56d745073a9555bcce3196cf7dd834deb0b29c289d7e13792ade47ce1efb9c35",
  "repo_slug": "rajavijayach/release-notes-generator",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_rajavijayach_release_notes_generator_1247f58b/readme"
}