@sylix/coworker 2.0.10 → 2.0.12

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