kollabor 0.4.9__py3-none-any.whl → 0.4.15__py3-none-any.whl

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 (192) hide show
  1. agents/__init__.py +2 -0
  2. agents/coder/__init__.py +0 -0
  3. agents/coder/agent.json +4 -0
  4. agents/coder/api-integration.md +2150 -0
  5. agents/coder/cli-pretty.md +765 -0
  6. agents/coder/code-review.md +1092 -0
  7. agents/coder/database-design.md +1525 -0
  8. agents/coder/debugging.md +1102 -0
  9. agents/coder/dependency-management.md +1397 -0
  10. agents/coder/git-workflow.md +1099 -0
  11. agents/coder/refactoring.md +1454 -0
  12. agents/coder/security-hardening.md +1732 -0
  13. agents/coder/system_prompt.md +1448 -0
  14. agents/coder/tdd.md +1367 -0
  15. agents/creative-writer/__init__.py +0 -0
  16. agents/creative-writer/agent.json +4 -0
  17. agents/creative-writer/character-development.md +1852 -0
  18. agents/creative-writer/dialogue-craft.md +1122 -0
  19. agents/creative-writer/plot-structure.md +1073 -0
  20. agents/creative-writer/revision-editing.md +1484 -0
  21. agents/creative-writer/system_prompt.md +690 -0
  22. agents/creative-writer/worldbuilding.md +2049 -0
  23. agents/data-analyst/__init__.py +30 -0
  24. agents/data-analyst/agent.json +4 -0
  25. agents/data-analyst/data-visualization.md +992 -0
  26. agents/data-analyst/exploratory-data-analysis.md +1110 -0
  27. agents/data-analyst/pandas-data-manipulation.md +1081 -0
  28. agents/data-analyst/sql-query-optimization.md +881 -0
  29. agents/data-analyst/statistical-analysis.md +1118 -0
  30. agents/data-analyst/system_prompt.md +928 -0
  31. agents/default/__init__.py +0 -0
  32. agents/default/agent.json +4 -0
  33. agents/default/dead-code.md +794 -0
  34. agents/default/explore-agent-system.md +585 -0
  35. agents/default/system_prompt.md +1448 -0
  36. agents/kollabor/__init__.py +0 -0
  37. agents/kollabor/analyze-plugin-lifecycle.md +175 -0
  38. agents/kollabor/analyze-terminal-rendering.md +388 -0
  39. agents/kollabor/code-review.md +1092 -0
  40. agents/kollabor/debug-mcp-integration.md +521 -0
  41. agents/kollabor/debug-plugin-hooks.md +547 -0
  42. agents/kollabor/debugging.md +1102 -0
  43. agents/kollabor/dependency-management.md +1397 -0
  44. agents/kollabor/git-workflow.md +1099 -0
  45. agents/kollabor/inspect-llm-conversation.md +148 -0
  46. agents/kollabor/monitor-event-bus.md +558 -0
  47. agents/kollabor/profile-performance.md +576 -0
  48. agents/kollabor/refactoring.md +1454 -0
  49. agents/kollabor/system_prompt copy.md +1448 -0
  50. agents/kollabor/system_prompt.md +757 -0
  51. agents/kollabor/trace-command-execution.md +178 -0
  52. agents/kollabor/validate-config.md +879 -0
  53. agents/research/__init__.py +0 -0
  54. agents/research/agent.json +4 -0
  55. agents/research/architecture-mapping.md +1099 -0
  56. agents/research/codebase-analysis.md +1077 -0
  57. agents/research/dependency-audit.md +1027 -0
  58. agents/research/performance-profiling.md +1047 -0
  59. agents/research/security-review.md +1359 -0
  60. agents/research/system_prompt.md +492 -0
  61. agents/technical-writer/__init__.py +0 -0
  62. agents/technical-writer/agent.json +4 -0
  63. agents/technical-writer/api-documentation.md +2328 -0
  64. agents/technical-writer/changelog-management.md +1181 -0
  65. agents/technical-writer/readme-writing.md +1360 -0
  66. agents/technical-writer/style-guide.md +1410 -0
  67. agents/technical-writer/system_prompt.md +653 -0
  68. agents/technical-writer/tutorial-creation.md +1448 -0
  69. core/__init__.py +0 -2
  70. core/application.py +343 -88
  71. core/cli.py +229 -10
  72. core/commands/menu_renderer.py +463 -59
  73. core/commands/registry.py +14 -9
  74. core/commands/system_commands.py +2461 -14
  75. core/config/loader.py +151 -37
  76. core/config/service.py +18 -6
  77. core/events/bus.py +29 -9
  78. core/events/executor.py +205 -75
  79. core/events/models.py +27 -8
  80. core/fullscreen/command_integration.py +20 -24
  81. core/fullscreen/components/__init__.py +10 -1
  82. core/fullscreen/components/matrix_components.py +1 -2
  83. core/fullscreen/components/space_shooter_components.py +654 -0
  84. core/fullscreen/plugin.py +5 -0
  85. core/fullscreen/renderer.py +52 -13
  86. core/fullscreen/session.py +52 -15
  87. core/io/__init__.py +29 -5
  88. core/io/buffer_manager.py +6 -1
  89. core/io/config_status_view.py +7 -29
  90. core/io/core_status_views.py +267 -347
  91. core/io/input/__init__.py +25 -0
  92. core/io/input/command_mode_handler.py +711 -0
  93. core/io/input/display_controller.py +128 -0
  94. core/io/input/hook_registrar.py +286 -0
  95. core/io/input/input_loop_manager.py +421 -0
  96. core/io/input/key_press_handler.py +502 -0
  97. core/io/input/modal_controller.py +1011 -0
  98. core/io/input/paste_processor.py +339 -0
  99. core/io/input/status_modal_renderer.py +184 -0
  100. core/io/input_errors.py +5 -1
  101. core/io/input_handler.py +211 -2452
  102. core/io/key_parser.py +7 -0
  103. core/io/layout.py +15 -3
  104. core/io/message_coordinator.py +111 -2
  105. core/io/message_renderer.py +129 -4
  106. core/io/status_renderer.py +147 -607
  107. core/io/terminal_renderer.py +97 -51
  108. core/io/terminal_state.py +21 -4
  109. core/io/visual_effects.py +816 -165
  110. core/llm/agent_manager.py +1063 -0
  111. core/llm/api_adapters/__init__.py +44 -0
  112. core/llm/api_adapters/anthropic_adapter.py +432 -0
  113. core/llm/api_adapters/base.py +241 -0
  114. core/llm/api_adapters/openai_adapter.py +326 -0
  115. core/llm/api_communication_service.py +167 -113
  116. core/llm/conversation_logger.py +322 -16
  117. core/llm/conversation_manager.py +556 -30
  118. core/llm/file_operations_executor.py +84 -32
  119. core/llm/llm_service.py +934 -103
  120. core/llm/mcp_integration.py +541 -57
  121. core/llm/message_display_service.py +135 -18
  122. core/llm/plugin_sdk.py +1 -2
  123. core/llm/profile_manager.py +1183 -0
  124. core/llm/response_parser.py +274 -56
  125. core/llm/response_processor.py +16 -3
  126. core/llm/tool_executor.py +6 -1
  127. core/logging/__init__.py +2 -0
  128. core/logging/setup.py +34 -6
  129. core/models/resume.py +54 -0
  130. core/plugins/__init__.py +4 -2
  131. core/plugins/base.py +127 -0
  132. core/plugins/collector.py +23 -161
  133. core/plugins/discovery.py +37 -3
  134. core/plugins/factory.py +6 -12
  135. core/plugins/registry.py +5 -17
  136. core/ui/config_widgets.py +128 -28
  137. core/ui/live_modal_renderer.py +2 -1
  138. core/ui/modal_actions.py +5 -0
  139. core/ui/modal_overlay_renderer.py +0 -60
  140. core/ui/modal_renderer.py +268 -7
  141. core/ui/modal_state_manager.py +29 -4
  142. core/ui/widgets/base_widget.py +7 -0
  143. core/updates/__init__.py +10 -0
  144. core/updates/version_check_service.py +348 -0
  145. core/updates/version_comparator.py +103 -0
  146. core/utils/config_utils.py +685 -526
  147. core/utils/plugin_utils.py +1 -1
  148. core/utils/session_naming.py +111 -0
  149. fonts/LICENSE +21 -0
  150. fonts/README.md +46 -0
  151. fonts/SymbolsNerdFont-Regular.ttf +0 -0
  152. fonts/SymbolsNerdFontMono-Regular.ttf +0 -0
  153. fonts/__init__.py +44 -0
  154. {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/METADATA +54 -4
  155. kollabor-0.4.15.dist-info/RECORD +228 -0
  156. {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/top_level.txt +2 -0
  157. plugins/agent_orchestrator/__init__.py +39 -0
  158. plugins/agent_orchestrator/activity_monitor.py +181 -0
  159. plugins/agent_orchestrator/file_attacher.py +77 -0
  160. plugins/agent_orchestrator/message_injector.py +135 -0
  161. plugins/agent_orchestrator/models.py +48 -0
  162. plugins/agent_orchestrator/orchestrator.py +403 -0
  163. plugins/agent_orchestrator/plugin.py +976 -0
  164. plugins/agent_orchestrator/xml_parser.py +191 -0
  165. plugins/agent_orchestrator_plugin.py +9 -0
  166. plugins/enhanced_input/box_styles.py +1 -0
  167. plugins/enhanced_input/color_engine.py +19 -4
  168. plugins/enhanced_input/config.py +2 -2
  169. plugins/enhanced_input_plugin.py +61 -11
  170. plugins/fullscreen/__init__.py +6 -2
  171. plugins/fullscreen/example_plugin.py +1035 -222
  172. plugins/fullscreen/setup_wizard_plugin.py +592 -0
  173. plugins/fullscreen/space_shooter_plugin.py +131 -0
  174. plugins/hook_monitoring_plugin.py +436 -78
  175. plugins/query_enhancer_plugin.py +66 -30
  176. plugins/resume_conversation_plugin.py +1494 -0
  177. plugins/save_conversation_plugin.py +98 -32
  178. plugins/system_commands_plugin.py +70 -56
  179. plugins/tmux_plugin.py +154 -78
  180. plugins/workflow_enforcement_plugin.py +94 -92
  181. system_prompt/default.md +952 -886
  182. core/io/input_mode_manager.py +0 -402
  183. core/io/modal_interaction_handler.py +0 -315
  184. core/io/raw_input_processor.py +0 -946
  185. core/storage/__init__.py +0 -5
  186. core/storage/state_manager.py +0 -84
  187. core/ui/widget_integration.py +0 -222
  188. core/utils/key_reader.py +0 -171
  189. kollabor-0.4.9.dist-info/RECORD +0 -128
  190. {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/WHEEL +0 -0
  191. {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/entry_points.txt +0 -0
  192. {kollabor-0.4.9.dist-info → kollabor-0.4.15.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,1181 @@
1
+ <!-- Changelog Management skill - maintain version history and release notes -->
2
+
3
+ changelog management mode: KEEP A CHANGELOG DISCIPLINE
4
+
5
+ when this skill is active, you follow Keep a Changelog standards.
6
+ this is a comprehensive guide to maintaining project changelogs.
7
+
8
+
9
+ PHASE 0: CHANGELOG CONTEXT DISCOVERY
10
+
11
+ before creating or updating ANY changelog, understand the project's versioning.
12
+
13
+
14
+ check for existing changelog
15
+
16
+ <terminal>ls -la | grep -i change</terminal>
17
+ <terminal>cat CHANGELOG.md 2>/dev/null || cat CHANGELOG 2>/dev/null || cat CHANGES.md 2>/dev/null || echo "no existing changelog"</terminal>
18
+
19
+ if changelog exists, analyze:
20
+ - format being used (keep a changelog, custom, etc.)
21
+ - version numbering scheme
22
+ - categorization of changes
23
+ - release date format
24
+ - unreleased section handling
25
+
26
+
27
+ check version history
28
+
29
+ <terminal>git tag --list | sort -V | tail -20</terminal>
30
+ <terminal>git log --oneline --decorate | head -30</terminal>
31
+
32
+ identify:
33
+ - current version
34
+ - version tags in use
35
+ - release frequency
36
+ - version scheme (semver, calver, custom)
37
+
38
+
39
+ check project type and versioning
40
+
41
+ <terminal>cat pyproject.toml 2>/dev/null | grep -A5 "version\|project"</terminal>
42
+ <terminal>cat package.json 2>/dev/null | grep version</terminal>
43
+ <terminal>cat Cargo.toml 2>/dev/null | grep version</terminal>
44
+
45
+ determine:
46
+ - where version is stored
47
+ - if using semantic versioning
48
+ - if there's an automatic version bump system
49
+
50
+
51
+ check commit message patterns
52
+
53
+ <terminal>git log --oneline | head -50</terminal>
54
+
55
+ analyze:
56
+ - are commits following conventional commits?
57
+ - is there a pattern (feat:, fix:, docs:, etc.)?
58
+ - are issues referenced in commits?
59
+ - are commit scopes used?
60
+
61
+
62
+ check for release tooling
63
+
64
+ <terminal>cat .github/workflows/*.yml 2>/dev/null | grep -i release</terminal>
65
+ <terminal>cat pyproject.toml 2>/dev/null | grep -A10 "commitizen\|release"</terminal>
66
+
67
+ identify:
68
+ - automated release tools (release-please, semantic-release, etc.)
69
+ - changelog generation tools
70
+ - version bump automation
71
+
72
+
73
+ PHASE 1: UNDERSTANDING KEEP A CHANGELOG
74
+
75
+
76
+ the standard format
77
+
78
+ Keep a Changelog is the de facto standard for changelogs.
79
+ url: https://keepachangelog.com
80
+
81
+ core principles:
82
+
83
+ [1] humans care about what changed, not when
84
+ versions over dates as the primary organizer
85
+
86
+ [2] categorize changes by type
87
+ added, changed, deprecated, removed, fixed, security
88
+
89
+ [3] list changes per version
90
+ grouped by category under each version
91
+
92
+ [4] link to actual commits
93
+ provide traceability
94
+
95
+
96
+ changelog structure
97
+
98
+ # Changelog
99
+
100
+ All notable changes to this project will be documented in this file.
101
+
102
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
103
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
104
+
105
+ [Unreleased]
106
+
107
+ ## [1.0.0] - 2024-01-15
108
+
109
+ ### Added
110
+ - New feature that users will care about
111
+
112
+ ### Changed
113
+ - Something that worked differently now
114
+
115
+ ### Deprecated
116
+ - Feature that will be removed in future
117
+
118
+ ### Removed
119
+ - Feature that was deprecated and now removed
120
+
121
+ ### Fixed
122
+ - Bug fix for something
123
+
124
+ ### Security
125
+ - Security vulnerability fix
126
+
127
+
128
+ category definitions
129
+
130
+ Added
131
+ new features
132
+ new capabilities
133
+ new integrations
134
+ new configuration options
135
+
136
+ Changed
137
+ behavior changes in existing features
138
+ modified functionality
139
+ updated defaults
140
+ performance improvements
141
+
142
+ Deprecated
143
+ features marked for future removal
144
+ features that will change incompatibly
145
+
146
+ Removed
147
+ features removed from the project
148
+ deprecated features that reached end of life
149
+
150
+ Fixed
151
+ bug fixes
152
+ regression fixes
153
+ crash fixes
154
+
155
+ Security
156
+ vulnerability fixes
157
+ security hardening
158
+ dependency updates for security
159
+
160
+
161
+ PHASE 2: SEMANTIC VERSIONING
162
+
163
+
164
+ semver basics
165
+
166
+ semantic versioning: MAJOR.MINOR.PATCH
167
+
168
+ MAJOR
169
+ incompatible API changes
170
+ examples:
171
+ - remove a public function
172
+ - change function signature
173
+ - modify behavior contract
174
+
175
+ MINOR
176
+ backwards-compatible functionality
177
+ examples:
178
+ - add new public function
179
+ - add new optional parameter
180
+ - add new feature flag
181
+
182
+ PATCH
183
+ backwards-compatible bug fixes
184
+ examples:
185
+ - fix crash condition
186
+ - fix incorrect output
187
+ - fix edge case handling
188
+
189
+
190
+ version bumping rules
191
+
192
+ [1.0.0] -> [1.0.1]
193
+ patch release
194
+ fixed a bug
195
+
196
+ [1.0.1] -> [1.1.0]
197
+ minor release
198
+ added a feature
199
+
200
+ [1.1.0] -> [2.0.0]
201
+ major release
202
+ breaking change
203
+
204
+ pre-release versions:
205
+ [1.0.0-alpha], [1.0.0-alpha.1], [1.0.0-beta], [1.0.0-rc.1]
206
+
207
+
208
+ development versions
209
+
210
+ during development, use pre-release identifiers:
211
+
212
+ - alpha
213
+ internal testing, not feature complete
214
+ [1.0.0-alpha]
215
+
216
+ - beta
217
+ feature complete, public testing
218
+ [1.0.0-beta]
219
+
220
+ - rc (release candidate)
221
+ testing for bugs, no new features
222
+ [1.0.0-rc.1]
223
+
224
+ ordering: alpha < beta < rc < final
225
+
226
+
227
+ PHASE 3: CONVENTIONAL COMMITS
228
+
229
+
230
+ commit message format
231
+
232
+ conventional commits work hand-in-hand with changelogs:
233
+
234
+ <type>[optional scope]: <description>
235
+
236
+ [optional body]
237
+
238
+ [optional footer(s)]
239
+
240
+ types:
241
+ feat: new feature
242
+ fix: bug fix
243
+ docs: documentation only
244
+ style: formatting, no code change
245
+ refactor: code change without feature/fix
246
+ perf: performance improvement
247
+ test: adding or updating tests
248
+ chore: maintenance tasks
249
+ ci: CI/CD changes
250
+ build: build system changes
251
+ revert: revert a previous commit
252
+
253
+
254
+ examples:
255
+
256
+ feat: add plugin system
257
+ feat(api): add streaming endpoint
258
+ fix: correct memory leak in parser
259
+ fix(auth): resolve token expiry issue
260
+ docs: update installation guide
261
+ chore: upgrade dependencies
262
+ perf: reduce database query time
263
+ ci: add github actions workflow
264
+
265
+
266
+ breaking changes
267
+
268
+ mark breaking changes in commit:
269
+
270
+ feat!: redesign user interface
271
+
272
+ or with body:
273
+
274
+ feat(api): remove deprecated endpoint
275
+
276
+ BREAKING CHANGE: endpoint /v1/users no longer exists
277
+
278
+
279
+ scope usage
280
+
281
+ scope categorizes changes by module/area:
282
+
283
+ feat(auth): add oauth2 support
284
+ fix(database): resolve connection pool issue
285
+ docs(readme): update quick start
286
+ refactor(ui): extract component library
287
+
288
+ common scopes:
289
+ - core, api, cli, ui
290
+ - auth, database, storage
291
+ - readme, contributing, guide
292
+
293
+
294
+ PHASE 4: CREATING A NEW CHANGELOG
295
+
296
+
297
+ initial changelog setup
298
+
299
+ <create>
300
+ <file>CHANGELOG.md</file>
301
+ <content>
302
+ # Changelog
303
+
304
+ All notable changes to this project will be documented in this file.
305
+
306
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
307
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
308
+
309
+ [Unreleased]
310
+
311
+ ## [0.1.0] - YYYY-MM-DD
312
+
313
+ ### Added
314
+ - Initial release
315
+ </content>
316
+ </create>
317
+
318
+
319
+ migrating from no changelog
320
+
321
+ if you have existing releases without a changelog:
322
+
323
+ [1] list all git tags
324
+ <terminal>git tag --list | sort -V</terminal>
325
+
326
+ [2] for each significant release, analyze commits:
327
+ <terminal>git log --pretty=format:"%h %s" <prev-tag>..<tag></terminal>
328
+
329
+ [3] create changelog entries retroactively
330
+ focus on user-facing changes only
331
+
332
+ [4] use approximate dates from tags:
333
+ <terminal>git log -1 --format=%ai <tag></terminal>
334
+
335
+
336
+ migrating from custom format
337
+
338
+ if you have an existing changelog in non-standard format:
339
+
340
+ [1] preserve the history
341
+ don't delete existing entries
342
+
343
+ [2] create a new section following keep a changelog
344
+ start with [Unreleased]
345
+
346
+ [3] gradually migrate old entries
347
+ if time permits, reformat historical entries
348
+
349
+ [4] note the format change
350
+ add note explaining the switch
351
+
352
+
353
+ PHASE 5: THE UNRELEASED SECTION
354
+
355
+
356
+ purpose of unreleased
357
+
358
+ collect changes that haven't been released yet:
359
+
360
+ [Unreleased]
361
+
362
+ ### Added
363
+ - New feature in progress
364
+
365
+ ### Changed
366
+ - Modified existing feature
367
+
368
+ ### Fixed
369
+ - Bug that was fixed but not released
370
+
371
+
372
+ working with unreleased
373
+
374
+ as you make changes, add them to [Unreleased]:
375
+
376
+ commit: feat(api): add streaming endpoint
377
+
378
+ immediately add to CHANGELOG.md:
379
+
380
+ [Unreleased]
381
+
382
+ ### Added
383
+ - Streaming endpoint for real-time responses
384
+
385
+
386
+ releasing from unreleased
387
+
388
+ when releasing:
389
+
390
+ [1] create version header
391
+ move unreleased items to new version
392
+
393
+ [2] add release date
394
+ use ISO format (YYYY-MM-DD)
395
+
396
+ [3] create new unreleased section
397
+ empty placeholder for next release
398
+
399
+ [4] create git tag
400
+ <terminal>git tag -a v1.2.0 -m "Release v1.2.0"</terminal>
401
+
402
+
403
+ PHASE 6: WRITING EFFECTIVE CHANGE ENTRIES
404
+
405
+
406
+ entry writing guidelines
407
+
408
+ [1] write for users, not developers
409
+ explain the impact, not the implementation
410
+
411
+ [2] be specific but concise
412
+ what changed and why it matters
413
+
414
+ [3] use active voice
415
+ "Added feature" not "Feature was added"
416
+
417
+ [4] group related changes
418
+ list multiple related items as sub-bullets
419
+
420
+
421
+ good vs bad entries
422
+
423
+ bad:
424
+ - Fixed bug in parser
425
+
426
+ good:
427
+ - Fixed parser crash when handling nested comments
428
+
429
+ bad:
430
+ - Performance improvements
431
+
432
+ good:
433
+ - Reduced startup time by 40% through lazy loading
434
+
435
+ bad:
436
+ - Changed API
437
+
438
+ good:
439
+ - Changed authentication to require API key in header
440
+
441
+
442
+ migration entries
443
+
444
+ for breaking changes, provide migration path:
445
+
446
+ ### Changed
447
+
448
+ - Authentication header now requires Bearer token
449
+ Migration: Update requests to include `Authorization: Bearer <token>`
450
+ instead of `X-API-Key: <key>`
451
+
452
+ - Database schema for users now requires email field
453
+ Migration: Run `python migrations/add_user_email.py` before upgrading
454
+
455
+
456
+ scope prefixes
457
+
458
+ use scope prefixes for clarity:
459
+
460
+ - (auth) Added OAuth2 support
461
+ - (cli) New --verbose flag for debugging
462
+ - (docs) Updated API reference
463
+
464
+ scopes help users find relevant changes quickly.
465
+
466
+
467
+ PHASE 7: LINKING CHANGELOG TO COMMITS
468
+
469
+
470
+ commit linking strategies
471
+
472
+ provide traceability from changelog to code:
473
+
474
+ ### Added
475
+ - New plugin system (abc1234)
476
+
477
+ or with issue:
478
+
479
+ ### Added
480
+ - New plugin system (#123)
481
+
482
+ or with both:
483
+
484
+ ### Added
485
+ - New plugin system (abc1234, closes #123)
486
+
487
+
488
+ automatic linking
489
+
490
+ github/gitlab auto-link patterns:
491
+
492
+ #123 links to issue 123
493
+ abc1234 links to commit abc1234
494
+ @username links to user
495
+
496
+ use these in changelog entries:
497
+
498
+
499
+ ### Fixed
500
+ - Memory leak in connection pool (@devuser, #456)
501
+
502
+
503
+ link format in versions
504
+
505
+ at the bottom, add version links:
506
+
507
+ [Unreleased]: https://github.com/user/repo/compare/v1.0.0...HEAD
508
+ [1.0.0]: https://github.com/user/repo/compare/v0.9.0...v1.0.0
509
+ [0.9.0]: https://github.com/user/repo/releases/tag/v0.9.0
510
+
511
+ allows clicking version to see diff.
512
+
513
+
514
+ PHASE 8: HANDLING DIFFERENT CHANGE TYPES
515
+
516
+
517
+ added entries
518
+
519
+ feature additions:
520
+
521
+ ### Added
522
+ - Plugin system for extensibility
523
+ - Support for OpenAI and Anthropic APIs
524
+ - Configuration file validation
525
+ - (cli) --version flag to display current version
526
+ - (docs) Plugin development guide
527
+
528
+
529
+ changed entries
530
+
531
+ behavior modifications:
532
+
533
+ ### Changed
534
+ - Default timeout increased from 30s to 60s
535
+ - Error messages now include troubleshooting hints
536
+ - (api) Response format includes metadata field
537
+ - (ui) Status indicators use color by default
538
+
539
+
540
+ deprecated entries
541
+
542
+ features being phased out:
543
+
544
+ ### Deprecated
545
+ - Old API endpoint /v1/chat (use /v2/chat instead)
546
+ - --legacy flag (will be removed in 2.0.0)
547
+ - Python 3.10 support (migrate to 3.11+)
548
+
549
+
550
+ removed entries
551
+
552
+ deleted features:
553
+
554
+ ### Removed
555
+ - Support for Python 3.9 (end of life)
556
+ - Deprecated REST API v1
557
+ - Old configuration file format
558
+
559
+
560
+ fixed entries
561
+
562
+ bug fixes:
563
+
564
+ ### Fixed
565
+ - Crash when handling empty response from API
566
+ - Memory leak in long-running sessions
567
+ - (auth) Token refresh now happens correctly
568
+ - (cli) Input not being saved in pipe mode
569
+
570
+
571
+ security entries
572
+
573
+ vulnerability fixes:
574
+
575
+ ### Security
576
+ - Updated dependency to fix CVE-2024-12345
577
+ - API keys now excluded from debug logs
578
+ - Added input validation for file operations
579
+
580
+
581
+ PHASE 9: RELEASE NOTES VS CHANGELOG
582
+
583
+
584
+ changelog vs release notes
585
+
586
+ changelog:
587
+ - comprehensive record of all changes
588
+ - developer-focused
589
+ - updated continuously
590
+ - includes all commit types
591
+
592
+ release notes:
593
+ - highlights for end users
594
+ - marketing-friendly
595
+ - crafted for each release
596
+ - focuses on features and fixes
597
+
598
+
599
+ generating release notes from changelog
600
+
601
+ for a GitHub release, extract:
602
+
603
+ [1] headline features from Added
604
+ [2] important fixes from Fixed
605
+ [3] migration notes from Changed/Removed
606
+ [4] security issues from Security
607
+
608
+ example release notes:
609
+
610
+ What's New in v1.2.0
611
+
612
+ Features:
613
+ - Plugin system for extending functionality
614
+ - Support for multiple LLM providers
615
+
616
+ Fixes:
617
+ - Fixed crash when handling empty responses
618
+ - Resolved memory leak in long sessions
619
+
620
+ Upgrade Notes:
621
+ - If using the old REST API, migrate to v2 before upgrading
622
+ - Update configuration files to new format
623
+
624
+ Security:
625
+ - Updated dependency for CVE-2024-12345
626
+
627
+
628
+ PHASE 10: AUTOMATED CHANGELOG TOOLS
629
+
630
+
631
+ commitizen / cz-cli
632
+
633
+ standardized commit messages with automatic changelog:
634
+
635
+ <terminal>npm install -g commitizen cz-conventional-changelog</terminal>
636
+ <terminal>echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc</terminal>
637
+
638
+ use:
639
+ <terminal>git cz</terminal>
640
+
641
+ prompts for:
642
+ - type (feat, fix, docs, etc.)
643
+ - scope
644
+ - description
645
+ - body
646
+ - breaking changes
647
+
648
+
649
+ standard-version
650
+
651
+ automated versioning and changelog:
652
+
653
+ <terminal>npm install -g standard-version</terminal>
654
+
655
+ run before release:
656
+ <terminal>standard-version</terminal>
657
+
658
+ automatically:
659
+ - bumps version in package.json
660
+ - updates CHANGELOG.md from commits
661
+ - commits the changes
662
+ - tags the release
663
+
664
+
665
+ release-please
666
+
667
+ github action for automated releases:
668
+
669
+ .github/workflows/release-please.yml:
670
+ name: Release Please
671
+
672
+ on:
673
+ push:
674
+ branches: [main]
675
+
676
+ permissions:
677
+ contents: write
678
+
679
+ jobs:
680
+ release-please:
681
+ runs-on: ubuntu-latest
682
+ steps:
683
+ - uses: googleapis/release-please-action@v3
684
+
685
+ with:
686
+ release-type: python
687
+ package-name: kollabor
688
+
689
+
690
+ semantic-release
691
+
692
+ fully automated releases:
693
+
694
+ <terminal>npm install -D semantic-release</terminal>
695
+
696
+ .releaserc.json:
697
+ {
698
+ "branches": ["main"],
699
+ "plugins": [
700
+ "@semantic-release/commit-analyzer",
701
+ "@semantic-release/release-notes-generator",
702
+ "@semantic-release/changelog",
703
+ "@semantic-release/npm",
704
+ "@semantic-release/git",
705
+ "@semantic-release/github"
706
+ ]
707
+ }
708
+
709
+ analyzes commits to determine version bump automatically.
710
+
711
+
712
+ PHASE 11: CHANGELOG FOR DIFFERENT PROJECT TYPES
713
+
714
+
715
+ library changelog
716
+
717
+ focus on API changes:
718
+
719
+ # Changelog
720
+
721
+ ## [2.0.0] - 2024-01-15
722
+
723
+ ### Added
724
+ - async variants of all core functions
725
+ - type hints for public API
726
+
727
+ ### Changed
728
+ - (api) parse() now returns Result object instead of raising
729
+ - minimum Python version increased to 3.11
730
+
731
+ ### Deprecated
732
+ - parse() with raise_exception=False (use parse_safe())
733
+
734
+ ### Removed
735
+ - Python 3.10 support
736
+ - legacy Config class (use ConfigBuilder)
737
+
738
+ ### Fixed
739
+ - type hints corrected for generic types
740
+
741
+
742
+ application changelog
743
+
744
+ focus on features and fixes:
745
+
746
+ # Changelog
747
+
748
+ ## [1.5.0] - 2024-01-15
749
+
750
+ ### Added
751
+ - Dark mode theme
752
+ - Export conversations as markdown
753
+ - Keyboard shortcuts for common actions
754
+
755
+ ### Changed
756
+ - Improved startup performance
757
+ - Redesigned settings interface
758
+
759
+ ### Fixed
760
+ - Fixed crash when loading large conversations
761
+ - Corrected scrolling behavior in chat view
762
+
763
+
764
+ cli tool changelog
765
+
766
+ focus on commands and options:
767
+
768
+ # Changelog
769
+
770
+ ## [2.0.0] - 2024-01-15
771
+
772
+ ### Added
773
+ - --watch flag for continuous monitoring
774
+ - --format option for json output
775
+
776
+ ### Changed
777
+ - default verbosity level (use -v for more output)
778
+ - --output flag now accepts directory paths
779
+
780
+ ### Removed
781
+ - --legacy flag (use --compat instead)
782
+
783
+ ### Fixed
784
+ - pipe mode now handles binary data correctly
785
+
786
+
787
+ PHASE 12: CHANGELOG IN THE RELEASE PROCESS
788
+
789
+
790
+ pre-release checklist
791
+
792
+ before cutting a release:
793
+
794
+ [ ] review unreleased section
795
+ [ ] categorize all uncategorized items
796
+ [ ] verify all entries are user-facing
797
+ [ ] add migration notes for breaking changes
798
+ [ ] link to relevant issues/commits
799
+ [ ] set version number based on semver
800
+ [ ] add release date
801
+
802
+
803
+ release workflow
804
+
805
+ [1] prepare the changelog
806
+ create version section from unreleased
807
+
808
+ [2] create release notes
809
+ craft user-friendly summary
810
+
811
+ [3] update version file
812
+ <terminal># edit version in appropriate file</terminal>
813
+
814
+ [4] commit the changelog
815
+ <terminal>git add CHANGELOG.md</terminal>
816
+ <terminal>git commit -m "chore: prepare release v1.2.0"</terminal>
817
+
818
+ [5] create the tag
819
+ <terminal>git tag -a v1.2.0 -m "Release v1.2.0"</terminal>
820
+
821
+ [6] push tag to trigger release
822
+ <terminal>git push origin v1.2.0</terminal>
823
+
824
+ [7] create new unreleased section
825
+ empty section for next cycle
826
+
827
+
828
+ post-release
829
+
830
+ [ ] verify release notes rendered correctly
831
+ [ ] check changelog links work
832
+ [ ] announce release (if applicable)
833
+ [ ] update documentation with new features
834
+ [ ] close related issues
835
+
836
+
837
+ PHASE 13: HANDLING HOTFIXES
838
+
839
+
840
+ hotfix changelog entry
841
+
842
+ for urgent fixes:
843
+
844
+ # Changelog
845
+
846
+ [Unreleased]
847
+ ### Fixed
848
+ - Hotfix items here
849
+
850
+ ## [1.2.1] - 2024-01-16
851
+
852
+ ### Fixed
853
+ - Critical security vulnerability in auth
854
+ - Regression introduced in 1.2.0
855
+
856
+
857
+ hotfix process
858
+
859
+ [1] create hotfix branch from release tag
860
+ <terminal>git checkout -b hotfix/1.2.1 v1.2.0</terminal>
861
+
862
+ [2] add fix and update changelog
863
+ create version section for hotfix
864
+
865
+ [3] commit, tag, release hotfix
866
+ <terminal>git tag -a v1.2.1 -m "Hotfix v1.2.1"</terminal>
867
+
868
+ [4] merge back to main and develop
869
+ <terminal>git checkout main && git merge hotfix/1.2.1</terminal>
870
+
871
+ [5] main unreleased should stay intact
872
+ don't lose changes already tracked there
873
+
874
+
875
+ PHASE 14: CHANGELOG QUALITY CHECKLIST
876
+
877
+
878
+ before publishing a changelog:
879
+
880
+ [ ] follows keep a changelog format
881
+ [ ] versions in chronological order (newest top)
882
+ [ ] each version has release date
883
+ [ ] categories properly used (added, changed, etc.)
884
+ [ ] entries are user-facing, not implementation details
885
+ [ ] breaking changes include migration notes
886
+ [ ] entries use active voice
887
+ [ ] scope prefixes used where helpful
888
+ [ ] commit/issue links provided
889
+ [ ] version links at the bottom
890
+ [ ] no typos or grammatical errors
891
+ [ ] unreleased section exists (even if empty)
892
+
893
+
894
+ testing your changelog
895
+
896
+ <terminal># verify markdown renders correctly</terminal>
897
+ <terminal># check that all links work</terminal>
898
+ <terminal># ensure version ordering is correct</terminal>
899
+ <terminal># confirm dates are in ISO format</terminal>
900
+
901
+
902
+ PHASE 15: COMMON CHANGELOG ANTI-PATTERNS
903
+
904
+
905
+ anti-pattern: implementation details
906
+
907
+ problem: entries describe how, not what
908
+
909
+ bad:
910
+ - Refactored parser to use new library
911
+ - Changed variable names in auth module
912
+
913
+ good:
914
+ - Improved parsing error messages
915
+ - Fixed authentication edge case
916
+
917
+
918
+ anti-pattern: missing migration info
919
+
920
+ problem: breaking changes without guidance
921
+
922
+ bad:
923
+ ### Changed
924
+ - Removed old API endpoint
925
+
926
+ good:
927
+ ### Changed
928
+ - Removed deprecated /v1/chat endpoint
929
+ Migration: Update to /v2/chat endpoint (see migration guide)
930
+
931
+
932
+ anti-pattern: vague entries
933
+
934
+ problem: non-specific descriptions
935
+
936
+ bad:
937
+ - Various improvements
938
+ - Bug fixes
939
+ - Performance optimizations
940
+
941
+ good:
942
+ - Reduced database query time by 40%
943
+ - Fixed crash when handling unicode input
944
+ - Added caching for API responses
945
+
946
+
947
+ anti-pattern: developer-only changes
948
+
949
+ problem: listing internal changes
950
+
951
+ bad:
952
+ - Added unit tests
953
+ - Updated dependencies
954
+ - Fixed linting errors
955
+
956
+ (these should be in commit history, not changelog)
957
+
958
+ good:
959
+ (only include what affects users)
960
+
961
+
962
+ anti-pattern: wrong categorization
963
+
964
+ problem: misclassifying changes
965
+
966
+ bad:
967
+ - New feature listed under "Fixed"
968
+ - Removal listed under "Changed"
969
+
970
+ good:
971
+ - New features under "Added"
972
+ - Removals under "Removed"
973
+ - Behavior modifications under "Changed"
974
+
975
+
976
+ PHASE 16: MAINTAINING CHANGELOG CONSISTENCY
977
+
978
+
979
+ entry formatting
980
+
981
+ consistent style within changelog:
982
+
983
+ ### Added
984
+ - Feature name
985
+ Additional details if needed
986
+
987
+ - Another feature
988
+ Details spanning
989
+ multiple lines
990
+
991
+ - Scope: Feature with scope prefix
992
+
993
+
994
+ capitalization
995
+
996
+ [ok] Added, Changed, Deprecated, Removed, Fixed, Security
997
+ [ok] Each entry starts with capital letter
998
+ [ok] Proper nouns and acronyms capitalized (API, URL, JSON)
999
+
1000
+
1001
+ punctuation
1002
+
1003
+ [ok] entries don't end with periods
1004
+ [ok] complete sentences in details end with periods
1005
+ [ok] lists don't use trailing punctuation
1006
+
1007
+
1008
+ version format
1009
+
1010
+ ## [1.2.3] - 2024-01-15
1011
+
1012
+ - version in brackets
1013
+ - space after bracket
1014
+ - dash before date
1015
+ - ISO date format
1016
+ - no time in date
1017
+
1018
+
1019
+ PHASE 17: CHANGELOG FOR MONOREPOS
1020
+
1021
+
1022
+ monorepo changelog strategies
1023
+
1024
+ for projects with multiple packages:
1025
+
1026
+ option 1: single changelog
1027
+
1028
+ # Changelog
1029
+
1030
+ ## [2.0.0] - 2024-01-15
1031
+
1032
+ ### Added
1033
+ - (package-a) New feature in package-a
1034
+ - (package-b) New feature in package-b
1035
+
1036
+ ### Changed
1037
+ - (core) Core library change affecting all packages
1038
+
1039
+
1040
+ option 2: per-package changelogs
1041
+
1042
+ package-a/CHANGELOG.md
1043
+ package-b/CHANGELOG.md
1044
+ CHANGELOG.md (root, for project-wide changes)
1045
+
1046
+
1047
+ option 3: combined with sections
1048
+
1049
+ # Changelog
1050
+
1051
+ ## [2.0.0] - 2024-01-15
1052
+
1053
+ ### package-a
1054
+ - New feature
1055
+ - Bug fix
1056
+
1057
+ ### package-b
1058
+ - Different feature
1059
+ - Different fix
1060
+
1061
+
1062
+ choosing the right approach
1063
+
1064
+ small monorepos (2-3 packages)
1065
+ use single changelog with scope prefixes
1066
+
1067
+ medium monorepos (3-10 packages)
1068
+ use per-package changelogs with root summary
1069
+
1070
+ large monorepos (10+ packages)
1071
+ use independent per-package changelogs
1072
+ generate combined view automatically
1073
+
1074
+
1075
+ PHASE 18: CHANGELOG ANALYSIS AND REPORTING
1076
+
1077
+
1078
+ extracting insights
1079
+
1080
+ changelog data can inform decisions:
1081
+
1082
+ release frequency
1083
+ analyze version dates to find release cadence
1084
+
1085
+ change type distribution
1086
+ count categories to find project focus
1087
+
1088
+ breaking changes
1089
+ track breaking changes to assess stability
1090
+
1091
+ hotfix frequency
1092
+ many hotfixes indicates quality issues
1093
+
1094
+
1095
+ example analysis
1096
+
1097
+ <terminal># count changes by type in last year</terminal>
1098
+ <terminal>grep "^###" CHANGELOG.md | sort | uniq -c</terminal>
1099
+
1100
+ <terminal># find release frequency</terminal>
1101
+ <terminal>grep "^## \[" CHANGELOG.md | head -20</terminal>
1102
+
1103
+
1104
+ PHASE 19: CHANGELOG RULES (STRICT MODE)
1105
+
1106
+
1107
+ while this skill is active, these rules are MANDATORY:
1108
+
1109
+ [1] ALWAYS use keep a changelog format
1110
+ categories: added, changed, deprecated, removed, fixed, security
1111
+
1112
+ [2] write for USERS, not developers
1113
+ explain the impact of changes
1114
+ omit internal implementation details
1115
+
1116
+ [3] include unreleased section
1117
+ place at top of changelog
1118
+ even if empty, keep the placeholder
1119
+
1120
+ [4] use semantic versioning
1121
+ MAJOR.MINOR.PATCH
1122
+ determine version from actual changes
1123
+
1124
+ [5] add release date to each version
1125
+ format: YYYY-MM-DD
1126
+ no time component
1127
+
1128
+ [6] link to issues and commits
1129
+ provide traceability
1130
+ use (#123) or (abc1234) format
1131
+
1132
+ [7] include migration notes for breaking changes
1133
+ tell users how to update their code
1134
+ link to detailed migration guides if needed
1135
+
1136
+ [8] update changelog BEFORE release
1137
+ not after, not during
1138
+ changelog is part of the release
1139
+
1140
+ [9] use active voice in entries
1141
+ "Added feature" not "Feature was added"
1142
+ start each entry with a verb
1143
+
1144
+ [10] never clear changelog history
1145
+ keep all historical entries
1146
+ project history is valuable
1147
+
1148
+
1149
+ FINAL REMINDERS
1150
+
1151
+
1152
+ changelog is user-facing documentation
1153
+
1154
+ treat it with same care as API docs.
1155
+ it's often the first thing users check when upgrading.
1156
+
1157
+
1158
+ consistency builds trust
1159
+
1160
+ consistent format and quality signals professionalism.
1161
+ users trust projects with well-maintained changelogs.
1162
+
1163
+
1164
+ changelog enables fearless upgrades
1165
+
1166
+ clear migration notes and change descriptions
1167
+ let users upgrade with confidence.
1168
+
1169
+ when in doubt
1170
+
1171
+ document more rather than less.
1172
+ users can skip irrelevant info,
1173
+ but missing info causes confusion and frustration.
1174
+
1175
+ the goal
1176
+
1177
+ transparent project history.
1178
+ clear upgrade paths.
1179
+ informed user base.
1180
+
1181
+ now go document your changes.