@zimezone/z-command 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/package.json +4 -1
  2. package/templates/agents/api-documenter.agent.md +161 -0
  3. package/templates/agents/architect-review.agent.md +146 -0
  4. package/templates/agents/arm-cortex-expert.agent.md +288 -0
  5. package/templates/agents/backend-architect.agent.md +309 -0
  6. package/templates/agents/backend-security-coder.agent.md +152 -0
  7. package/templates/agents/bash-pro.agent.md +285 -0
  8. package/templates/agents/c-pro.agent.md +35 -0
  9. package/templates/agents/c4-code.agent.md +320 -0
  10. package/templates/agents/c4-component.agent.md +227 -0
  11. package/templates/agents/c4-container.agent.md +248 -0
  12. package/templates/agents/c4-context.agent.md +235 -0
  13. package/templates/agents/conductor-validator.agent.md +245 -0
  14. package/templates/agents/csharp-pro.agent.md +38 -0
  15. package/templates/agents/customer-support.agent.md +148 -0
  16. package/templates/agents/database-admin.agent.md +142 -0
  17. package/templates/agents/database-architect.agent.md +238 -0
  18. package/templates/agents/database-optimizer.agent.md +144 -0
  19. package/templates/agents/debugger.agent.md +30 -0
  20. package/templates/agents/deployment-engineer.agent.md +0 -0
  21. package/templates/agents/devops-troubleshooter.agent.md +138 -0
  22. package/templates/agents/django-pro.agent.md +159 -0
  23. package/templates/agents/docs-architect.agent.md +77 -0
  24. package/templates/agents/dotnet-architect.agent.md +175 -0
  25. package/templates/agents/dx-optimizer.agent.md +63 -0
  26. package/templates/agents/elixir-pro.agent.md +38 -0
  27. package/templates/agents/error-detective.agent.md +32 -0
  28. package/templates/agents/event-sourcing-architect.agent.md +42 -0
  29. package/templates/agents/fastapi-pro.agent.md +171 -0
  30. package/templates/agents/firmware-analyst.agent.md +330 -0
  31. package/templates/agents/frontend-security-coder.agent.md +149 -0
  32. package/templates/agents/haskell-pro.agent.md +37 -0
  33. package/templates/agents/hr-pro.agent.md +105 -0
  34. package/templates/agents/incident-responder.agent.md +190 -0
  35. package/templates/agents/ios-developer.agent.md +198 -0
  36. package/templates/agents/java-pro.agent.md +156 -0
  37. package/templates/agents/javascript-pro.agent.md +35 -0
  38. package/templates/agents/julia-pro.agent.md +187 -0
  39. package/templates/agents/legal-advisor.agent.md +49 -0
  40. package/templates/agents/malware-analyst.agent.md +272 -0
  41. package/templates/agents/mermaid-expert.agent.md +39 -0
  42. package/templates/agents/minecraft-bukkit-pro.agent.md +104 -0
  43. package/templates/agents/mobile-security-coder.agent.md +163 -0
  44. package/templates/agents/monorepo-architect.agent.md +44 -0
  45. package/templates/agents/observability-engineer.agent.md +228 -0
  46. package/templates/agents/performance-engineer.agent.md +167 -0
  47. package/templates/agents/php-pro.agent.md +43 -0
  48. package/templates/agents/posix-shell-pro.agent.md +284 -0
  49. package/templates/agents/quant-analyst.agent.md +32 -0
  50. package/templates/agents/reference-builder.agent.md +167 -0
  51. package/templates/agents/reverse-engineer.agent.md +202 -0
  52. package/templates/agents/risk-manager.agent.md +41 -0
  53. package/templates/agents/ruby-pro.agent.md +35 -0
  54. package/templates/agents/rust-pro.agent.md +156 -0
  55. package/templates/agents/sales-automator.agent.md +35 -0
  56. package/templates/agents/scala-pro.agent.md +60 -0
  57. package/templates/agents/search-specialist.agent.md +59 -0
  58. package/templates/agents/security-auditor.agent.md +138 -0
  59. package/templates/agents/seo-authority-builder.agent.md +116 -0
  60. package/templates/agents/seo-cannibalization-detector.agent.md +103 -0
  61. package/templates/agents/seo-content-auditor.agent.md +63 -0
  62. package/templates/agents/seo-content-planner.agent.md +88 -0
  63. package/templates/agents/seo-content-refresher.agent.md +98 -0
  64. package/templates/agents/seo-content-writer.agent.md +76 -0
  65. package/templates/agents/seo-keyword-strategist.agent.md +75 -0
  66. package/templates/agents/seo-meta-optimizer.agent.md +72 -0
  67. package/templates/agents/seo-snippet-hunter.agent.md +94 -0
  68. package/templates/agents/seo-structure-architect.agent.md +88 -0
  69. package/templates/agents/service-mesh-expert.agent.md +41 -0
  70. package/templates/agents/sql-pro.agent.md +146 -0
  71. package/templates/agents/tdd-orchestrator.agent.md +183 -0
  72. package/templates/agents/temporal-python-pro.agent.md +349 -0
  73. package/templates/agents/terraform-specialist.agent.md +137 -0
  74. package/templates/agents/test-automator.agent.md +203 -0
  75. package/templates/agents/threat-modeling-expert.agent.md +44 -0
  76. package/templates/agents/tutorial-engineer.agent.md +118 -0
  77. package/templates/agents/ui-ux-designer.agent.md +188 -0
  78. package/templates/agents/ui-visual-validator.agent.md +192 -0
  79. package/templates/agents/vector-database-engineer.agent.md +43 -0
  80. package/templates/skills/angular-migration/SKILL.md +410 -0
  81. package/templates/skills/api-design-principles/SKILL.md +528 -0
  82. package/templates/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  83. package/templates/skills/api-design-principles/assets/rest-api-template.py +182 -0
  84. package/templates/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  85. package/templates/skills/api-design-principles/references/rest-best-practices.md +408 -0
  86. package/templates/skills/architecture-decision-records/SKILL.md +428 -0
  87. package/templates/skills/architecture-patterns/SKILL.md +494 -0
  88. package/templates/skills/async-python-patterns/SKILL.md +694 -0
  89. package/templates/skills/auth-implementation-patterns/SKILL.md +634 -0
  90. package/templates/skills/changelog-automation/SKILL.md +552 -0
  91. package/templates/skills/code-review-excellence/SKILL.md +520 -0
  92. package/templates/skills/competitive-landscape/SKILL.md +479 -0
  93. package/templates/skills/context-driven-development/SKILL.md +385 -0
  94. package/templates/skills/cost-optimization/SKILL.md +274 -0
  95. package/templates/skills/cqrs-implementation/SKILL.md +554 -0
  96. package/templates/skills/data-quality-frameworks/SKILL.md +587 -0
  97. package/templates/skills/data-storytelling/SKILL.md +453 -0
  98. package/templates/skills/database-migration/SKILL.md +424 -0
  99. package/templates/skills/dbt-transformation-patterns/SKILL.md +561 -0
  100. package/templates/skills/debugging-strategies/SKILL.md +527 -0
  101. package/templates/skills/defi-protocol-templates/SKILL.md +454 -0
  102. package/templates/skills/dependency-upgrade/SKILL.md +409 -0
  103. package/templates/skills/deployment-pipeline-design/SKILL.md +359 -0
  104. package/templates/skills/distributed-tracing/SKILL.md +438 -0
  105. package/templates/skills/dotnet-backend-patterns/SKILL.md +815 -0
  106. package/templates/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
  107. package/templates/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
  108. package/templates/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
  109. package/templates/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
  110. package/templates/skills/e2e-testing-patterns/SKILL.md +547 -0
  111. package/templates/skills/employment-contract-templates/SKILL.md +507 -0
  112. package/templates/skills/error-handling-patterns/SKILL.md +636 -0
  113. package/templates/skills/event-store-design/SKILL.md +437 -0
  114. package/templates/skills/fastapi-templates/SKILL.md +567 -0
  115. package/templates/skills/git-advanced-workflows/SKILL.md +400 -0
  116. package/templates/skills/github-actions-templates/SKILL.md +333 -0
  117. package/templates/skills/go-concurrency-patterns/SKILL.md +655 -0
  118. package/templates/skills/grafana-dashboards/SKILL.md +369 -0
  119. package/templates/skills/helm-chart-scaffolding/SKILL.md +544 -0
  120. package/templates/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  121. package/templates/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  122. package/templates/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  123. package/templates/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  124. package/templates/skills/javascript-testing-patterns/SKILL.md +1025 -0
  125. package/templates/skills/langchain-architecture/SKILL.md +338 -0
  126. package/templates/skills/llm-evaluation/SKILL.md +471 -0
  127. package/templates/skills/microservices-patterns/SKILL.md +595 -0
  128. package/templates/skills/modern-javascript-patterns/SKILL.md +911 -0
  129. package/templates/skills/monorepo-management/SKILL.md +622 -0
  130. package/templates/skills/nextjs-app-router-patterns/SKILL.md +544 -0
  131. package/templates/skills/nodejs-backend-patterns/SKILL.md +1020 -0
  132. package/templates/skills/nx-workspace-patterns/SKILL.md +452 -0
  133. package/templates/skills/openapi-spec-generation/SKILL.md +1028 -0
  134. package/templates/skills/paypal-integration/SKILL.md +467 -0
  135. package/templates/skills/pci-compliance/SKILL.md +466 -0
  136. package/templates/skills/postgresql/SKILL.md +204 -0
  137. package/templates/skills/projection-patterns/SKILL.md +490 -0
  138. package/templates/skills/prometheus-configuration/SKILL.md +392 -0
  139. package/templates/skills/prompt-engineering-patterns/SKILL.md +201 -0
  140. package/templates/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  141. package/templates/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
  142. package/templates/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
  143. package/templates/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
  144. package/templates/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
  145. package/templates/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
  146. package/templates/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
  147. package/templates/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  148. package/templates/skills/python-packaging/SKILL.md +870 -0
  149. package/templates/skills/python-performance-optimization/SKILL.md +869 -0
  150. package/templates/skills/python-testing-patterns/SKILL.md +907 -0
  151. package/templates/skills/rag-implementation/SKILL.md +403 -0
  152. package/templates/skills/react-modernization/SKILL.md +513 -0
  153. package/templates/skills/react-native-architecture/SKILL.md +671 -0
  154. package/templates/skills/react-state-management/SKILL.md +429 -0
  155. package/templates/skills/risk-metrics-calculation/SKILL.md +555 -0
  156. package/templates/skills/rust-async-patterns/SKILL.md +517 -0
  157. package/templates/skills/secrets-management/SKILL.md +346 -0
  158. package/templates/skills/security-requirement-extraction/SKILL.md +677 -0
  159. package/templates/skills/shellcheck-configuration/SKILL.md +454 -0
  160. package/templates/skills/similarity-search-patterns/SKILL.md +558 -0
  161. package/templates/skills/slo-implementation/SKILL.md +329 -0
  162. package/templates/skills/sql-optimization-patterns/SKILL.md +493 -0
  163. package/templates/skills/stripe-integration/SKILL.md +442 -0
  164. package/templates/skills/tailwind-design-system/SKILL.md +666 -0
  165. package/templates/skills/temporal-python-testing/SKILL.md +158 -0
  166. package/templates/skills/temporal-python-testing/resources/integration-testing.md +455 -0
  167. package/templates/skills/temporal-python-testing/resources/local-setup.md +553 -0
  168. package/templates/skills/temporal-python-testing/resources/replay-testing.md +462 -0
  169. package/templates/skills/temporal-python-testing/resources/unit-testing.md +328 -0
  170. package/templates/skills/terraform-module-library/SKILL.md +249 -0
  171. package/templates/skills/terraform-module-library/references/aws-modules.md +63 -0
  172. package/templates/skills/threat-mitigation-mapping/SKILL.md +745 -0
  173. package/templates/skills/track-management/SKILL.md +593 -0
  174. package/templates/skills/typescript-advanced-types/SKILL.md +717 -0
  175. package/templates/skills/uv-package-manager/SKILL.md +831 -0
  176. package/templates/skills/vector-index-tuning/SKILL.md +521 -0
  177. package/templates/skills/wcag-audit-patterns/SKILL.md +555 -0
  178. package/templates/skills/workflow-orchestration-patterns/SKILL.md +316 -0
  179. package/templates/skills/workflow-patterns/SKILL.md +623 -0
  180. package/templates/agents/game-developer.agent.md +0 -57
  181. package/templates/agents/kubernetes-specialist.agent.md +0 -56
  182. package/templates/agents/market-researcher.agent.md +0 -47
@@ -0,0 +1,552 @@
1
+ ---
2
+ name: changelog-automation
3
+ description: Automate changelog generation from commits, PRs, and releases following Keep a Changelog format. Use when setting up release workflows, generating release notes, or standardizing commit conventions.
4
+ ---
5
+
6
+ # Changelog Automation
7
+
8
+ Patterns and tools for automating changelog generation, release notes, and version management following industry standards.
9
+
10
+ ## When to Use This Skill
11
+
12
+ - Setting up automated changelog generation
13
+ - Implementing Conventional Commits
14
+ - Creating release note workflows
15
+ - Standardizing commit message formats
16
+ - Generating GitHub/GitLab release notes
17
+ - Managing semantic versioning
18
+
19
+ ## Core Concepts
20
+
21
+ ### 1. Keep a Changelog Format
22
+
23
+ ```markdown
24
+ # Changelog
25
+
26
+ All notable changes to this project will be documented in this file.
27
+
28
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
29
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
30
+
31
+ ## [Unreleased]
32
+
33
+ ### Added
34
+ - New feature X
35
+
36
+ ## [1.2.0] - 2024-01-15
37
+
38
+ ### Added
39
+ - User profile avatars
40
+ - Dark mode support
41
+
42
+ ### Changed
43
+ - Improved loading performance by 40%
44
+
45
+ ### Deprecated
46
+ - Old authentication API (use v2)
47
+
48
+ ### Removed
49
+ - Legacy payment gateway
50
+
51
+ ### Fixed
52
+ - Login timeout issue (#123)
53
+
54
+ ### Security
55
+ - Updated dependencies for CVE-2024-1234
56
+
57
+ [Unreleased]: https://github.com/user/repo/compare/v1.2.0...HEAD
58
+ [1.2.0]: https://github.com/user/repo/compare/v1.1.0...v1.2.0
59
+ ```
60
+
61
+ ### 2. Conventional Commits
62
+
63
+ ```
64
+ <type>[optional scope]: <description>
65
+
66
+ [optional body]
67
+
68
+ [optional footer(s)]
69
+ ```
70
+
71
+ | Type | Description | Changelog Section |
72
+ |------|-------------|-------------------|
73
+ | `feat` | New feature | Added |
74
+ | `fix` | Bug fix | Fixed |
75
+ | `docs` | Documentation | (usually excluded) |
76
+ | `style` | Formatting | (usually excluded) |
77
+ | `refactor` | Code restructure | Changed |
78
+ | `perf` | Performance | Changed |
79
+ | `test` | Tests | (usually excluded) |
80
+ | `chore` | Maintenance | (usually excluded) |
81
+ | `ci` | CI changes | (usually excluded) |
82
+ | `build` | Build system | (usually excluded) |
83
+ | `revert` | Revert commit | Removed |
84
+
85
+ ### 3. Semantic Versioning
86
+
87
+ ```
88
+ MAJOR.MINOR.PATCH
89
+
90
+ MAJOR: Breaking changes (feat! or BREAKING CHANGE)
91
+ MINOR: New features (feat)
92
+ PATCH: Bug fixes (fix)
93
+ ```
94
+
95
+ ## Implementation
96
+
97
+ ### Method 1: Conventional Changelog (Node.js)
98
+
99
+ ```bash
100
+ # Install tools
101
+ npm install -D @commitlint/cli @commitlint/config-conventional
102
+ npm install -D husky
103
+ npm install -D standard-version
104
+ # or
105
+ npm install -D semantic-release
106
+
107
+ # Setup commitlint
108
+ cat > commitlint.config.js << 'EOF'
109
+ module.exports = {
110
+ extends: ['@commitlint/config-conventional'],
111
+ rules: {
112
+ 'type-enum': [
113
+ 2,
114
+ 'always',
115
+ [
116
+ 'feat',
117
+ 'fix',
118
+ 'docs',
119
+ 'style',
120
+ 'refactor',
121
+ 'perf',
122
+ 'test',
123
+ 'chore',
124
+ 'ci',
125
+ 'build',
126
+ 'revert',
127
+ ],
128
+ ],
129
+ 'subject-case': [2, 'never', ['start-case', 'pascal-case', 'upper-case']],
130
+ 'subject-max-length': [2, 'always', 72],
131
+ },
132
+ };
133
+ EOF
134
+
135
+ # Setup husky
136
+ npx husky init
137
+ echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg
138
+ ```
139
+
140
+ ### Method 2: standard-version Configuration
141
+
142
+ ```javascript
143
+ // .versionrc.js
144
+ module.exports = {
145
+ types: [
146
+ { type: 'feat', section: 'Features' },
147
+ { type: 'fix', section: 'Bug Fixes' },
148
+ { type: 'perf', section: 'Performance Improvements' },
149
+ { type: 'revert', section: 'Reverts' },
150
+ { type: 'docs', section: 'Documentation', hidden: true },
151
+ { type: 'style', section: 'Styles', hidden: true },
152
+ { type: 'chore', section: 'Miscellaneous', hidden: true },
153
+ { type: 'refactor', section: 'Code Refactoring', hidden: true },
154
+ { type: 'test', section: 'Tests', hidden: true },
155
+ { type: 'build', section: 'Build System', hidden: true },
156
+ { type: 'ci', section: 'CI/CD', hidden: true },
157
+ ],
158
+ commitUrlFormat: '{{host}}/{{owner}}/{{repository}}/commit/{{hash}}',
159
+ compareUrlFormat: '{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}',
160
+ issueUrlFormat: '{{host}}/{{owner}}/{{repository}}/issues/{{id}}',
161
+ userUrlFormat: '{{host}}/{{user}}',
162
+ releaseCommitMessageFormat: 'chore(release): {{currentTag}}',
163
+ scripts: {
164
+ prebump: 'echo "Running prebump"',
165
+ postbump: 'echo "Running postbump"',
166
+ prechangelog: 'echo "Running prechangelog"',
167
+ postchangelog: 'echo "Running postchangelog"',
168
+ },
169
+ };
170
+ ```
171
+
172
+ ```json
173
+ // package.json scripts
174
+ {
175
+ "scripts": {
176
+ "release": "standard-version",
177
+ "release:minor": "standard-version --release-as minor",
178
+ "release:major": "standard-version --release-as major",
179
+ "release:patch": "standard-version --release-as patch",
180
+ "release:dry": "standard-version --dry-run"
181
+ }
182
+ }
183
+ ```
184
+
185
+ ### Method 3: semantic-release (Full Automation)
186
+
187
+ ```javascript
188
+ // release.config.js
189
+ module.exports = {
190
+ branches: [
191
+ 'main',
192
+ { name: 'beta', prerelease: true },
193
+ { name: 'alpha', prerelease: true },
194
+ ],
195
+ plugins: [
196
+ '@semantic-release/commit-analyzer',
197
+ '@semantic-release/release-notes-generator',
198
+ [
199
+ '@semantic-release/changelog',
200
+ {
201
+ changelogFile: 'CHANGELOG.md',
202
+ },
203
+ ],
204
+ [
205
+ '@semantic-release/npm',
206
+ {
207
+ npmPublish: true,
208
+ },
209
+ ],
210
+ [
211
+ '@semantic-release/github',
212
+ {
213
+ assets: ['dist/**/*.js', 'dist/**/*.css'],
214
+ },
215
+ ],
216
+ [
217
+ '@semantic-release/git',
218
+ {
219
+ assets: ['CHANGELOG.md', 'package.json'],
220
+ message: 'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}',
221
+ },
222
+ ],
223
+ ],
224
+ };
225
+ ```
226
+
227
+ ### Method 4: GitHub Actions Workflow
228
+
229
+ ```yaml
230
+ # .github/workflows/release.yml
231
+ name: Release
232
+
233
+ on:
234
+ push:
235
+ branches: [main]
236
+ workflow_dispatch:
237
+ inputs:
238
+ release_type:
239
+ description: 'Release type'
240
+ required: true
241
+ default: 'patch'
242
+ type: choice
243
+ options:
244
+ - patch
245
+ - minor
246
+ - major
247
+
248
+ permissions:
249
+ contents: write
250
+ pull-requests: write
251
+
252
+ jobs:
253
+ release:
254
+ runs-on: ubuntu-latest
255
+ steps:
256
+ - uses: actions/checkout@v4
257
+ with:
258
+ fetch-depth: 0
259
+ token: ${{ secrets.GITHUB_TOKEN }}
260
+
261
+ - uses: actions/setup-node@v4
262
+ with:
263
+ node-version: '20'
264
+ cache: 'npm'
265
+
266
+ - run: npm ci
267
+
268
+ - name: Configure Git
269
+ run: |
270
+ git config user.name "github-actions[bot]"
271
+ git config user.email "github-actions[bot]@users.noreply.github.com"
272
+
273
+ - name: Run semantic-release
274
+ env:
275
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
276
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
277
+ run: npx semantic-release
278
+
279
+ # Alternative: manual release with standard-version
280
+ manual-release:
281
+ if: github.event_name == 'workflow_dispatch'
282
+ runs-on: ubuntu-latest
283
+ steps:
284
+ - uses: actions/checkout@v4
285
+ with:
286
+ fetch-depth: 0
287
+
288
+ - uses: actions/setup-node@v4
289
+ with:
290
+ node-version: '20'
291
+
292
+ - run: npm ci
293
+
294
+ - name: Configure Git
295
+ run: |
296
+ git config user.name "github-actions[bot]"
297
+ git config user.email "github-actions[bot]@users.noreply.github.com"
298
+
299
+ - name: Bump version and generate changelog
300
+ run: npx standard-version --release-as ${{ inputs.release_type }}
301
+
302
+ - name: Push changes
303
+ run: git push --follow-tags origin main
304
+
305
+ - name: Create GitHub Release
306
+ uses: softprops/action-gh-release@v1
307
+ with:
308
+ tag_name: ${{ steps.version.outputs.tag }}
309
+ body_path: RELEASE_NOTES.md
310
+ generate_release_notes: true
311
+ ```
312
+
313
+ ### Method 5: git-cliff (Rust-based, Fast)
314
+
315
+ ```toml
316
+ # cliff.toml
317
+ [changelog]
318
+ header = """
319
+ # Changelog
320
+
321
+ All notable changes to this project will be documented in this file.
322
+
323
+ """
324
+ body = """
325
+ {% if version %}\
326
+ ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
327
+ {% else %}\
328
+ ## [Unreleased]
329
+ {% endif %}\
330
+ {% for group, commits in commits | group_by(attribute="group") %}
331
+ ### {{ group | upper_first }}
332
+ {% for commit in commits %}
333
+ - {% if commit.scope %}**{{ commit.scope }}:** {% endif %}\
334
+ {{ commit.message | upper_first }}\
335
+ {% if commit.github.pr_number %} ([#{{ commit.github.pr_number }}](https://github.com/owner/repo/pull/{{ commit.github.pr_number }})){% endif %}\
336
+ {% endfor %}
337
+ {% endfor %}
338
+ """
339
+ footer = """
340
+ {% for release in releases -%}
341
+ {% if release.version -%}
342
+ {% if release.previous.version -%}
343
+ [{{ release.version | trim_start_matches(pat="v") }}]: \
344
+ https://github.com/owner/repo/compare/{{ release.previous.version }}...{{ release.version }}
345
+ {% endif -%}
346
+ {% else -%}
347
+ [unreleased]: https://github.com/owner/repo/compare/{{ release.previous.version }}...HEAD
348
+ {% endif -%}
349
+ {% endfor %}
350
+ """
351
+ trim = true
352
+
353
+ [git]
354
+ conventional_commits = true
355
+ filter_unconventional = true
356
+ split_commits = false
357
+ commit_parsers = [
358
+ { message = "^feat", group = "Features" },
359
+ { message = "^fix", group = "Bug Fixes" },
360
+ { message = "^doc", group = "Documentation" },
361
+ { message = "^perf", group = "Performance" },
362
+ { message = "^refactor", group = "Refactoring" },
363
+ { message = "^style", group = "Styling" },
364
+ { message = "^test", group = "Testing" },
365
+ { message = "^chore\\(release\\)", skip = true },
366
+ { message = "^chore", group = "Miscellaneous" },
367
+ ]
368
+ filter_commits = false
369
+ tag_pattern = "v[0-9]*"
370
+ skip_tags = ""
371
+ ignore_tags = ""
372
+ topo_order = false
373
+ sort_commits = "oldest"
374
+
375
+ [github]
376
+ owner = "owner"
377
+ repo = "repo"
378
+ ```
379
+
380
+ ```bash
381
+ # Generate changelog
382
+ git cliff -o CHANGELOG.md
383
+
384
+ # Generate for specific range
385
+ git cliff v1.0.0..v2.0.0 -o RELEASE_NOTES.md
386
+
387
+ # Preview without writing
388
+ git cliff --unreleased --dry-run
389
+ ```
390
+
391
+ ### Method 6: Python (commitizen)
392
+
393
+ ```toml
394
+ # pyproject.toml
395
+ [tool.commitizen]
396
+ name = "cz_conventional_commits"
397
+ version = "1.0.0"
398
+ version_files = [
399
+ "pyproject.toml:version",
400
+ "src/__init__.py:__version__",
401
+ ]
402
+ tag_format = "v$version"
403
+ update_changelog_on_bump = true
404
+ changelog_incremental = true
405
+ changelog_start_rev = "v0.1.0"
406
+
407
+ [tool.commitizen.customize]
408
+ message_template = "{{change_type}}{% if scope %}({{scope}}){% endif %}: {{message}}"
409
+ schema = "<type>(<scope>): <subject>"
410
+ schema_pattern = "^(feat|fix|docs|style|refactor|perf|test|chore)(\\(\\w+\\))?:\\s.*"
411
+ bump_pattern = "^(feat|fix|perf|refactor)"
412
+ bump_map = {"feat" = "MINOR", "fix" = "PATCH", "perf" = "PATCH", "refactor" = "PATCH"}
413
+ ```
414
+
415
+ ```bash
416
+ # Install
417
+ pip install commitizen
418
+
419
+ # Create commit interactively
420
+ cz commit
421
+
422
+ # Bump version and update changelog
423
+ cz bump --changelog
424
+
425
+ # Check commits
426
+ cz check --rev-range HEAD~5..HEAD
427
+ ```
428
+
429
+ ## Release Notes Templates
430
+
431
+ ### GitHub Release Template
432
+
433
+ ```markdown
434
+ ## What's Changed
435
+
436
+ ### 🚀 Features
437
+ {{ range .Features }}
438
+ - {{ .Title }} by @{{ .Author }} in #{{ .PR }}
439
+ {{ end }}
440
+
441
+ ### 🐛 Bug Fixes
442
+ {{ range .Fixes }}
443
+ - {{ .Title }} by @{{ .Author }} in #{{ .PR }}
444
+ {{ end }}
445
+
446
+ ### 📚 Documentation
447
+ {{ range .Docs }}
448
+ - {{ .Title }} by @{{ .Author }} in #{{ .PR }}
449
+ {{ end }}
450
+
451
+ ### 🔧 Maintenance
452
+ {{ range .Chores }}
453
+ - {{ .Title }} by @{{ .Author }} in #{{ .PR }}
454
+ {{ end }}
455
+
456
+ ## New Contributors
457
+ {{ range .NewContributors }}
458
+ - @{{ .Username }} made their first contribution in #{{ .PR }}
459
+ {{ end }}
460
+
461
+ **Full Changelog**: https://github.com/owner/repo/compare/v{{ .Previous }}...v{{ .Current }}
462
+ ```
463
+
464
+ ### Internal Release Notes
465
+
466
+ ```markdown
467
+ # Release v2.1.0 - January 15, 2024
468
+
469
+ ## Summary
470
+ This release introduces dark mode support and improves checkout performance
471
+ by 40%. It also includes important security updates.
472
+
473
+ ## Highlights
474
+
475
+ ### 🌙 Dark Mode
476
+ Users can now switch to dark mode from settings. The preference is
477
+ automatically saved and synced across devices.
478
+
479
+ ### ⚡ Performance
480
+ - Checkout flow is 40% faster
481
+ - Reduced bundle size by 15%
482
+
483
+ ## Breaking Changes
484
+ None in this release.
485
+
486
+ ## Upgrade Guide
487
+ No special steps required. Standard deployment process applies.
488
+
489
+ ## Known Issues
490
+ - Dark mode may flicker on initial load (fix scheduled for v2.1.1)
491
+
492
+ ## Dependencies Updated
493
+ | Package | From | To | Reason |
494
+ |---------|------|-----|--------|
495
+ | react | 18.2.0 | 18.3.0 | Performance improvements |
496
+ | lodash | 4.17.20 | 4.17.21 | Security patch |
497
+ ```
498
+
499
+ ## Commit Message Examples
500
+
501
+ ```bash
502
+ # Feature with scope
503
+ feat(auth): add OAuth2 support for Google login
504
+
505
+ # Bug fix with issue reference
506
+ fix(checkout): resolve race condition in payment processing
507
+
508
+ Closes #123
509
+
510
+ # Breaking change
511
+ feat(api)!: change user endpoint response format
512
+
513
+ BREAKING CHANGE: The user endpoint now returns `userId` instead of `id`.
514
+ Migration guide: Update all API consumers to use the new field name.
515
+
516
+ # Multiple paragraphs
517
+ fix(database): handle connection timeouts gracefully
518
+
519
+ Previously, connection timeouts would cause the entire request to fail
520
+ without retry. This change implements exponential backoff with up to
521
+ 3 retries before failing.
522
+
523
+ The timeout threshold has been increased from 5s to 10s based on p99
524
+ latency analysis.
525
+
526
+ Fixes #456
527
+ Reviewed-by: @alice
528
+ ```
529
+
530
+ ## Best Practices
531
+
532
+ ### Do's
533
+ - **Follow Conventional Commits** - Enables automation
534
+ - **Write clear messages** - Future you will thank you
535
+ - **Reference issues** - Link commits to tickets
536
+ - **Use scopes consistently** - Define team conventions
537
+ - **Automate releases** - Reduce manual errors
538
+
539
+ ### Don'ts
540
+ - **Don't mix changes** - One logical change per commit
541
+ - **Don't skip validation** - Use commitlint
542
+ - **Don't manual edit** - Generated changelogs only
543
+ - **Don't forget breaking changes** - Mark with `!` or footer
544
+ - **Don't ignore CI** - Validate commits in pipeline
545
+
546
+ ## Resources
547
+
548
+ - [Keep a Changelog](https://keepachangelog.com/)
549
+ - [Conventional Commits](https://www.conventionalcommits.org/)
550
+ - [Semantic Versioning](https://semver.org/)
551
+ - [semantic-release](https://semantic-release.gitbook.io/)
552
+ - [git-cliff](https://git-cliff.org/)