ace-handbook 0.19.0

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 (85) hide show
  1. checksums.yaml +7 -0
  2. data/.ace-defaults/handbook/config.yml +4 -0
  3. data/.ace-defaults/nav/protocols/guide-sources/ace-handbook.yml +19 -0
  4. data/.ace-defaults/nav/protocols/tmpl-sources/ace-handbook.yml +10 -0
  5. data/.ace-defaults/nav/protocols/wfi-sources/ace-handbook.yml +19 -0
  6. data/CHANGELOG.md +362 -0
  7. data/LICENSE +21 -0
  8. data/README.md +42 -0
  9. data/Rakefile +12 -0
  10. data/exe/ace-handbook +6 -0
  11. data/handbook/guides/ai-agent-integration.g.md +625 -0
  12. data/handbook/guides/atom-pattern.g.md +371 -0
  13. data/handbook/guides/changelog.g.md +333 -0
  14. data/handbook/guides/cli-dry-cli.g.md +276 -0
  15. data/handbook/guides/cli-support-cli.g.md +277 -0
  16. data/handbook/guides/coding-standards/ruby.md +41 -0
  17. data/handbook/guides/coding-standards/rust.md +19 -0
  18. data/handbook/guides/coding-standards/typescript.md +20 -0
  19. data/handbook/guides/coding-standards.g.md +134 -0
  20. data/handbook/guides/debug-troubleshooting.g.md +62 -0
  21. data/handbook/guides/error-handling/ruby.md +29 -0
  22. data/handbook/guides/error-handling/rust.md +59 -0
  23. data/handbook/guides/error-handling/typescript.md +38 -0
  24. data/handbook/guides/error-handling.g.md +207 -0
  25. data/handbook/guides/meta/agents-definition.g.md +823 -0
  26. data/handbook/guides/meta/guides-definition.g.md +322 -0
  27. data/handbook/guides/meta/markdown-definition.g.md +210 -0
  28. data/handbook/guides/meta/tools-definition.g.md +159 -0
  29. data/handbook/guides/meta/workflow-instructions-definition.g.md +367 -0
  30. data/handbook/guides/mono-repo-patterns.g.md +92 -0
  31. data/handbook/guides/multi-agent-research.g.md +251 -0
  32. data/handbook/guides/performance/ruby.md +25 -0
  33. data/handbook/guides/performance/rust.md +48 -0
  34. data/handbook/guides/performance/typescript.md +32 -0
  35. data/handbook/guides/performance.g.md +211 -0
  36. data/handbook/guides/prompt-caching.g.md +83 -0
  37. data/handbook/guides/quality-assurance/ruby.md +33 -0
  38. data/handbook/guides/quality-assurance/rust.md +41 -0
  39. data/handbook/guides/quality-assurance/typescript.md +49 -0
  40. data/handbook/guides/quality-assurance.g.md +222 -0
  41. data/handbook/guides/strategic-planning.g.md +69 -0
  42. data/handbook/guides/troubleshooting/ruby.md +21 -0
  43. data/handbook/guides/troubleshooting/rust.md +20 -0
  44. data/handbook/guides/troubleshooting/typescript.md +36 -0
  45. data/handbook/guides/workflow-context-embedding.g.md +286 -0
  46. data/handbook/skills/as-handbook-init-project/SKILL.md +34 -0
  47. data/handbook/skills/as-handbook-manage-agents/SKILL.md +35 -0
  48. data/handbook/skills/as-handbook-manage-guides/SKILL.md +35 -0
  49. data/handbook/skills/as-handbook-manage-workflows/SKILL.md +35 -0
  50. data/handbook/skills/as-handbook-parallel-research/SKILL.md +29 -0
  51. data/handbook/skills/as-handbook-perform-delivery/SKILL.md +35 -0
  52. data/handbook/skills/as-handbook-review-guides/SKILL.md +32 -0
  53. data/handbook/skills/as-handbook-review-workflows/SKILL.md +32 -0
  54. data/handbook/skills/as-handbook-synthesize-research/SKILL.md +29 -0
  55. data/handbook/skills/as-handbook-update-docs/SKILL.md +35 -0
  56. data/handbook/skills/as-release/SKILL.md +50 -0
  57. data/handbook/skills/as-release-bump-version/SKILL.md +28 -0
  58. data/handbook/skills/as-release-rubygems-publish/SKILL.md +58 -0
  59. data/handbook/skills/as-release-update-changelog/SKILL.md +28 -0
  60. data/handbook/templates/completed-work-documentation.md +59 -0
  61. data/handbook/templates/cookbooks/cookbook.template.md +237 -0
  62. data/handbook/templates/research-comparison.template.md +175 -0
  63. data/handbook/workflow-instructions/handbook/init-project.wf.md +629 -0
  64. data/handbook/workflow-instructions/handbook/manage-agents.wf.md +379 -0
  65. data/handbook/workflow-instructions/handbook/manage-guides.wf.md +294 -0
  66. data/handbook/workflow-instructions/handbook/manage-workflows.wf.md +292 -0
  67. data/handbook/workflow-instructions/handbook/parallel-research.wf.md +328 -0
  68. data/handbook/workflow-instructions/handbook/perform-delivery.wf.md +267 -0
  69. data/handbook/workflow-instructions/handbook/research.wf.md +247 -0
  70. data/handbook/workflow-instructions/handbook/review-guides.wf.md +348 -0
  71. data/handbook/workflow-instructions/handbook/review-workflows.wf.md +299 -0
  72. data/handbook/workflow-instructions/handbook/synthesize-research.wf.md +429 -0
  73. data/handbook/workflow-instructions/handbook/update-docs.wf.md +338 -0
  74. data/lib/ace/handbook/atoms/provider_registry.rb +70 -0
  75. data/lib/ace/handbook/cli/commands/status.rb +36 -0
  76. data/lib/ace/handbook/cli/commands/sync.rb +36 -0
  77. data/lib/ace/handbook/cli.rb +51 -0
  78. data/lib/ace/handbook/models/skill_document.rb +25 -0
  79. data/lib/ace/handbook/molecules/skill_projection.rb +54 -0
  80. data/lib/ace/handbook/organisms/provider_syncer.rb +106 -0
  81. data/lib/ace/handbook/organisms/skill_inventory.rb +54 -0
  82. data/lib/ace/handbook/organisms/status_collector.rb +181 -0
  83. data/lib/ace/handbook/version.rb +7 -0
  84. data/lib/ace/handbook.rb +28 -0
  85. metadata +227 -0
@@ -0,0 +1,371 @@
1
+ ---
2
+ doc-type: guide
3
+ title: ATOM Component Classification House Rules
4
+ purpose: Documentation for ace-handbook/handbook/guides/atom-pattern.g.md
5
+ ace-docs:
6
+ last-updated: 2026-01-08
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ # ATOM Component Classification House Rules
11
+
12
+ ## Overview
13
+
14
+ This guide provides practical rules and decision-making tools for correctly classifying components within the ATOM architecture used in the Coding Agent Tools project. Understanding these rules is crucial for maintaining code organization, ensuring proper separation of concerns, and preventing architectural drift.
15
+
16
+ The ATOM architecture organizes code into distinct layers based on complexity and responsibility:
17
+
18
+ - **Models**: Pure data carriers
19
+ - **Molecules**: Behavior-oriented helpers
20
+ - **Organisms**: Complex business logic units
21
+ - **Atoms**: Basic utilities (foundation layer)
22
+ - **Ecosystems**: Cohesive groupings of organisms
23
+
24
+ ## Why This Matters
25
+
26
+ Proper component classification ensures:
27
+
28
+ - **Maintainability**: Clear separation of concerns makes code easier to understand and modify
29
+ - **Reusability**: Components at the right abstraction level can be reused effectively
30
+ - **Testability**: Isolated responsibilities make unit testing straightforward
31
+ - **Architectural Consistency**: Prevents technical debt from accumulating due to misplaced code
32
+
33
+ ## Quick Decision Flowchart
34
+
35
+ ```
36
+ Start: I need to create a new class
37
+
38
+ Is it ONLY data with no behavior?
39
+ ↓ YES ↓ NO
40
+ Use Models/ Does it perform I/O operations?
41
+ (Pure data structures) ↓ YES ↓ NO
42
+ Does it orchestrate multiple Is it a focused utility
43
+ components for business logic? or helper function?
44
+ ↓ YES ↓ NO ↓
45
+ Use Organisms/ Use Molecules/ Use Atoms/
46
+ (Business logic) (I/O helpers) (Utilities)
47
+ ```
48
+
49
+ ## Component Classification Rules
50
+
51
+ ### Models (`lib/coding_agent_tools/models/`)
52
+
53
+ **Purpose**: Pure data carriers with no external dependencies or side effects.
54
+
55
+ **Characteristics**:
56
+
57
+ - Typically implemented as `Struct` classes
58
+ - No I/O operations (no file access, no network calls, no database queries)
59
+ - No external gem dependencies beyond Ruby standard library
60
+ - Focus solely on data representation and basic data manipulation
61
+ - Immutable when possible
62
+
63
+ **Good Examples**:
64
+
65
+ ```ruby
66
+ # ✅ Good: Pure data structure
67
+ LlmModelInfo = Struct.new(:id, :name, :description, :default, keyword_init: true) do
68
+ def default?
69
+ default
70
+ end
71
+
72
+ def to_h
73
+ {id: id, name: name, description: description, default: default}
74
+ end
75
+ end
76
+ ```
77
+
78
+ **Bad Examples**:
79
+
80
+ ```ruby
81
+ # ❌ Bad: Contains I/O operations
82
+ class UserProfile < Struct.new(:name, :email)
83
+ def save_to_file
84
+ File.write("profile.json", to_json) # I/O operation!
85
+ end
86
+ end
87
+
88
+ # ❌ Bad: Has external dependencies
89
+ class ApiResponse < Struct.new(:data, :status)
90
+ def parse_with_nokogiri
91
+ Nokogiri::XML(data) # External gem dependency!
92
+ end
93
+ end
94
+ ```
95
+
96
+ ### Molecules (`lib/coding_agent_tools/molecules/`)
97
+
98
+ **Purpose**: Behavior-oriented helpers that encapsulate focused, reusable logic.
99
+
100
+ **Characteristics**:
101
+
102
+ - Single responsibility principle
103
+ - May perform I/O operations
104
+ - Compose atoms and other basic utilities
105
+ - Stateless or minimal state
106
+ - Can have external dependencies
107
+ - Focused on "how" to do something
108
+
109
+ **Good Examples**:
110
+
111
+ ```ruby
112
+ # ✅ Good: Focused helper with specific responsibility
113
+ class HTTPRequestBuilder
114
+ def initialize(timeout: 30)
115
+ @timeout = timeout
116
+ end
117
+
118
+ def build_get_request(url, headers = {})
119
+ # Focused logic for building HTTP requests
120
+ end
121
+ end
122
+
123
+ # ✅ Good: Reusable wrapper functionality
124
+ class ExecutableWrapper
125
+ def initialize(command_path:, registration_method:)
126
+ @command_path = command_path
127
+ @registration_method = registration_method
128
+ end
129
+
130
+ def call
131
+ setup_bundler
132
+ execute_cli
133
+ end
134
+ end
135
+ ```
136
+
137
+ **Bad Examples**:
138
+
139
+ ```ruby
140
+ # ❌ Bad: Too much business logic (should be Organism)
141
+ class OrderProcessor
142
+ def process_order(order)
143
+ validate_inventory(order)
144
+ calculate_shipping(order)
145
+ charge_payment(order)
146
+ send_confirmation_email(order)
147
+ update_analytics(order)
148
+ end
149
+ end
150
+
151
+ # ❌ Bad: Pure data (should be Model)
152
+ class UserSettings
153
+ attr_accessor :theme, :language, :notifications
154
+
155
+ def initialize(theme:, language:, notifications:)
156
+ @theme = theme
157
+ @language = language
158
+ @notifications = notifications
159
+ end
160
+ end
161
+ ```
162
+
163
+ ### Organisms (`lib/coding_agent_tools/organisms/`)
164
+
165
+ **Purpose**: Complex units that orchestrate molecules and atoms to achieve business goals.
166
+
167
+ **Characteristics**:
168
+
169
+ - Handle complete business use cases
170
+ - Orchestrate multiple components
171
+ - May maintain state across operations
172
+ - Focus on "what" business value to deliver
173
+ - Can be complex and feature-rich
174
+
175
+ **Good Examples**:
176
+
177
+ ```ruby
178
+ # ✅ Good: Orchestrates multiple components for business purpose
179
+ class GeminiClient
180
+ def initialize(api_key:)
181
+ @request_builder = Molecules::HTTPRequestBuilder.new
182
+ @response_parser = Molecules::APIResponseParser.new
183
+ @credentials = Molecules::APICredentials.new(api_key)
184
+ end
185
+
186
+ def generate_text(prompt, **options)
187
+ # Orchestrates request building, API calling, and response parsing
188
+ end
189
+
190
+ def list_models
191
+ # Complete business operation
192
+ end
193
+ end
194
+
195
+ # ✅ Good: Complex business logic coordination
196
+ class PromptProcessor
197
+ def process_prompt(template, context)
198
+ # Coordinates template parsing, variable substitution, validation
199
+ end
200
+ end
201
+ ```
202
+
203
+ **Bad Examples**:
204
+
205
+ ```ruby
206
+ # ❌ Bad: Simple utility (should be Molecule or Atom)
207
+ class StringFormatter
208
+ def self.capitalize_first(text)
209
+ text.capitalize
210
+ end
211
+ end
212
+
213
+ # ❌ Bad: Pure data structure (should be Model)
214
+ class ConfigurationSettings
215
+ attr_reader :api_endpoint, :timeout, :retry_count
216
+
217
+ def initialize(api_endpoint:, timeout:, retry_count:)
218
+ @api_endpoint = api_endpoint
219
+ @timeout = timeout
220
+ @retry_count = retry_count
221
+ end
222
+ end
223
+ ```
224
+
225
+ ## Decision Checklist
226
+
227
+ When creating a new class, ask yourself:
228
+
229
+ ### For Models
230
+
231
+ - [ ] Does this class only hold data?
232
+ - [ ] Are there no I/O operations (file, network, database)?
233
+ - [ ] Are there no external gem dependencies?
234
+ - [ ] Could this be implemented as a Struct?
235
+ - [ ] Does it focus on "what" the data represents?
236
+
237
+ ### For Molecules
238
+
239
+ - [ ] Does this class perform a specific, focused operation?
240
+ - [ ] Does it compose simpler components (atoms)?
241
+ - [ ] Is it reusable across different contexts?
242
+ - [ ] Does it encapsulate "how" to do something?
243
+ - [ ] Is the responsibility clear and single-focused?
244
+
245
+ ### For Organisms
246
+
247
+ - [ ] Does this class handle a complete business use case?
248
+ - [ ] Does it orchestrate multiple molecules/atoms?
249
+ - [ ] Is it complex enough to warrant the organism level?
250
+ - [ ] Does it focus on "what" business value to deliver?
251
+ - [ ] Would breaking it down lose important context?
252
+
253
+ ## Common Mistakes and Solutions
254
+
255
+ ### Mistake 1: Data Objects in Wrong Location
256
+
257
+ **Problem**: Placing pure data structures in `molecules/` or `organisms/`
258
+
259
+ **Example**:
260
+
261
+ ```ruby
262
+ # ❌ Wrong location: molecules/model.rb
263
+ class Model < Struct.new(:id, :name)
264
+ def to_s
265
+ "#{id}: #{name}"
266
+ end
267
+ end
268
+ ```
269
+
270
+ **Solution**: Move to `models/` and rename appropriately
271
+
272
+ ```ruby
273
+ # ✅ Correct location: models/llm_model_info.rb
274
+ LlmModelInfo = Struct.new(:id, :name, :description, :default, keyword_init: true)
275
+ ```
276
+
277
+ **Teaching Example**: The `LlmModelInfo` class was originally misplaced in `molecules/` but was correctly refactored to `models/` because it's a pure data structure with no I/O operations or external dependencies.
278
+
279
+ ### Mistake 2: Business Logic in Molecules
280
+
281
+ **Problem**: Putting complex orchestration logic in molecules
282
+
283
+ **Example**:
284
+
285
+ ```ruby
286
+ # ❌ Wrong: Complex business logic in molecule
287
+ class OrderHandler
288
+ def process_complete_order(order)
289
+ validate_order(order)
290
+ reserve_inventory(order)
291
+ process_payment(order)
292
+ ship_order(order)
293
+ send_notifications(order)
294
+ end
295
+ end
296
+ ```
297
+
298
+ **Solution**: Move to organisms for complex business coordination
299
+
300
+ ```ruby
301
+ # ✅ Correct: Business orchestration in organism
302
+ class OrderProcessor
303
+ def initialize
304
+ @validator = Molecules::OrderValidator.new
305
+ @inventory = Molecules::InventoryManager.new
306
+ @payment = Molecules::PaymentProcessor.new
307
+ end
308
+ end
309
+ ```
310
+
311
+ ### Mistake 3: Simple Utilities in Organisms
312
+
313
+ **Problem**: Over-engineering simple utilities as organisms
314
+
315
+ **Example**:
316
+
317
+ ```ruby
318
+ # ❌ Wrong: Simple utility as organism
319
+ class TextFormatter
320
+ def format_currency(amount)
321
+ "$#{amount.round(2)}"
322
+ end
323
+ end
324
+ ```
325
+
326
+ **Solution**: Use appropriate level (Atom or Molecule)
327
+
328
+ ```ruby
329
+ # ✅ Correct: Simple utility as atom or molecule
330
+ module Atoms
331
+ module TextFormatter
332
+ def self.format_currency(amount)
333
+ "$#{amount.round(2)}"
334
+ end
335
+ end
336
+ end
337
+ ```
338
+
339
+ ## Future Enforcement Mechanisms
340
+
341
+ To maintain these standards as the project grows, consider implementing:
342
+
343
+ ### Automated Checks
344
+
345
+ - **RuboCop Rules**: Custom cops to detect misplaced components
346
+ - **CI Pipeline Checks**: Automated validation during pull requests
347
+ - **File Naming Conventions**: Enforce naming patterns that reflect component type
348
+
349
+ ### Code Review Guidelines
350
+
351
+ - **Classification Review**: Every new class should be reviewed for proper placement
352
+ - **Architecture Review**: Periodic reviews of component boundaries
353
+ - **Refactoring Guidelines**: Clear process for moving misplaced components
354
+
355
+ ### Documentation Integration
356
+
357
+ - **ADR Updates**: Keep Architecture Decision Records synchronized
358
+ - **Cross-References**: Link to this guide from README and CONTRIBUTING files
359
+ - **Examples**: Maintain current examples as the codebase evolves
360
+
361
+ ## Cross-References
362
+
363
+ - [Architecture Documentation](docs/architecture.md) - Overall system architecture
364
+ - [Coding Standards](./coding-standards.g.md) - General coding practices
365
+ - [Testing Guidelines](guide://testing) - Testing patterns for each component type
366
+
367
+ ## Conclusion
368
+
369
+ Following these ATOM classification rules ensures our codebase remains maintainable, testable, and architecturally consistent. When in doubt, err on the side of simpler classification (Models before Molecules, Molecules before Organisms) and refactor up in complexity only when the additional abstraction provides clear value.
370
+
371
+ Remember: The goal is not perfect classification, but consistent and logical organization that serves the team's long-term productivity and code quality goals.
@@ -0,0 +1,333 @@
1
+ ---
2
+ doc-type: guide
3
+ title: Changelog Writing Guide
4
+ purpose: Documentation for ace-handbook/handbook/guides/changelog.g.md
5
+ ace-docs:
6
+ last-updated: 2026-03-08
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ # Changelog Writing Guide
11
+
12
+ ## Goal
13
+
14
+ This guide provides standards and best practices for writing and maintaining changelogs that effectively communicate project changes to users, contributors, and stakeholders. It ensures consistency, clarity, and usefulness of release documentation.
15
+
16
+ ## Changelog Format
17
+
18
+ We follow the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format with project-specific adaptations. All changelogs should be written in Markdown and stored in `CHANGELOG.md` at the project root.
19
+
20
+ ### Standard Structure
21
+
22
+ ```markdown
23
+ # Changelog
24
+
25
+ All notable changes to this project will be documented in this file.
26
+
27
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
28
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
29
+
30
+ ## [Unreleased]
31
+
32
+ ### Added
33
+ - New features that have been added
34
+
35
+ ### Changed
36
+ - Changes in existing functionality
37
+
38
+ ### Deprecated
39
+ - Soon-to-be removed features
40
+
41
+ ### Removed
42
+ - Now removed features
43
+
44
+ ### Fixed
45
+ - Any bug fixes
46
+
47
+ ### Security
48
+ - In case of vulnerabilities
49
+
50
+ ## [1.0.0] - 2024-01-15
51
+
52
+ ### Added
53
+ - Initial release with core functionality
54
+ - Basic API endpoints
55
+ - User authentication system
56
+
57
+ [Unreleased]: https://github.com/user/repo/compare/v1.0.0...HEAD
58
+ [1.0.0]: https://github.com/user/repo/releases/tag/v1.0.0
59
+ ```
60
+
61
+ ## Change Categories
62
+
63
+ Use the following categories to organize changes:
64
+
65
+ ### Added
66
+
67
+ - New features
68
+ - New API endpoints
69
+ - New configuration options
70
+ - New documentation sections
71
+ - New dependencies
72
+
73
+ **Example:**
74
+
75
+ ```markdown
76
+ ### Added
77
+ - Dark mode toggle in user preferences
78
+ - Support for bulk operations in API
79
+ - Integration with external authentication providers
80
+ ```
81
+
82
+ ### Changed
83
+
84
+ - Changes in existing functionality
85
+ - Updated dependencies
86
+ - Modified default behaviors
87
+ - Improved performance
88
+ - Enhanced user interface
89
+
90
+ **Example:**
91
+
92
+ ```markdown
93
+ ### Changed
94
+ - Improved loading performance by 40%
95
+ - Updated user interface for better accessibility
96
+ - Changed default timeout from 30s to 60s
97
+ ```
98
+
99
+ ### Deprecated
100
+
101
+ - Features that are still available but will be removed
102
+ - API endpoints marked for removal
103
+ - Configuration options being phased out
104
+
105
+ **Example:**
106
+
107
+ ```markdown
108
+ ### Deprecated
109
+ - Legacy authentication API (use v2 endpoints instead)
110
+ - Configuration option `old_setting` (replaced by `new_setting`)
111
+ ```
112
+
113
+ ### Removed
114
+
115
+ - Features that have been completely removed
116
+ - Deleted API endpoints
117
+ - Removed configuration options
118
+ - Dropped support for versions/platforms
119
+
120
+ **Example:**
121
+
122
+ ```markdown
123
+ ### Removed
124
+ - Support for Node.js v14 (minimum version is now v16)
125
+ - Deprecated `/api/v1/legacy` endpoints
126
+ ```
127
+
128
+ ### Fixed
129
+
130
+ - Bug fixes
131
+ - Security patches
132
+ - Performance improvements that fix issues
133
+ - Documentation corrections
134
+
135
+ **Example:**
136
+
137
+ ```markdown
138
+ ### Fixed
139
+ - Memory leak in background processing
140
+ - Incorrect validation error messages
141
+ - Race condition in concurrent requests
142
+ ```
143
+
144
+ ### Security
145
+
146
+ - Security vulnerability fixes
147
+ - Security enhancements
148
+ - Important security-related changes
149
+
150
+ **Example:**
151
+
152
+ ```markdown
153
+ ### Security
154
+ - Fixed XSS vulnerability in user input handling
155
+ - Enhanced password encryption algorithm
156
+ - Updated dependencies to address security advisories
157
+ ```
158
+
159
+ ## Writing Guidelines
160
+
161
+ ### 1. Use Clear, Action-Oriented Language
162
+
163
+ **Good:**
164
+
165
+ - "Added user authentication system"
166
+ - "Fixed memory leak in data processing"
167
+ - "Improved API response time by 25%"
168
+
169
+ **Avoid:**
170
+
171
+ - "Some changes to auth"
172
+ - "Fixed stuff"
173
+ - "Performance improvements"
174
+
175
+ ### 2. Include Context and Impact
176
+
177
+ **Good:**
178
+
179
+ ```markdown
180
+ ### Changed
181
+ - Updated password requirements to include special characters for enhanced security
182
+ - Increased default session timeout from 30 minutes to 2 hours based on user feedback
183
+ ```
184
+
185
+ **Avoid:**
186
+
187
+ ```markdown
188
+ ### Changed
189
+ - Password validation
190
+ - Session timeout
191
+ ```
192
+
193
+ ### 3. Reference Issues and Pull Requests
194
+
195
+ When applicable, link to relevant issues, pull requests, or task documentation:
196
+
197
+ ```markdown
198
+ ### Fixed
199
+ - Resolved database connection timeout issue ([#123](https://github.com/user/repo/issues/123))
200
+ - Fixed user profile update validation ([PR #145](https://github.com/user/repo/pull/145))
201
+ - Corrected task workflow documentation inconsistencies (Task v.0.3.0+task.14)
202
+ ```
203
+
204
+ ### 4. Group Related Changes
205
+
206
+ ```markdown
207
+ ### Added
208
+ - User management dashboard with the following features:
209
+ - Create and edit user accounts
210
+ - Assign roles and permissions
211
+ - View user activity logs
212
+ - Export user data
213
+ ```
214
+
215
+ ### 5. Use Consistent Formatting
216
+
217
+ - Start each item with a capital letter
218
+ - Use present tense ("Add" not "Added")
219
+ - End with a period for complete sentences
220
+ - Use bullet points for lists
221
+ - Maintain consistent indentation
222
+
223
+ ## Process Guidelines
224
+
225
+ ### When to Update the Changelog
226
+
227
+ 1. **During Development:**
228
+ - Add entries to the `[Unreleased]` section as features are completed
229
+ - Update immediately after merging significant changes
230
+ - Include changelog updates in the same commit/PR as the feature
231
+
232
+ 2. **Before Release:**
233
+ - Review all `[Unreleased]` entries for accuracy and completeness
234
+ - Move entries from `[Unreleased]` to the new version section
235
+ - Add release date and version links
236
+ - Ensure all significant changes are documented
237
+
238
+ 3. **After Release:**
239
+ - Verify the changelog accurately reflects the released version
240
+ - Start a new `[Unreleased]` section for future changes
241
+
242
+ ### Who Is Responsible
243
+
244
+ - **Developers:** Add changelog entries for their own changes
245
+ - **Release Manager:** Review and finalize changelog before release
246
+ - **Project Lead:** Ensure changelog standards are followed
247
+
248
+ ### Integration with Release Process
249
+
250
+ The changelog should be updated as part of the standard release workflow:
251
+
252
+ 1. **During Development:** Maintain `[Unreleased]` section
253
+ 2. **Pre-Release:** Review and organize entries
254
+ 3. **Version Bump:** Move entries to versioned section
255
+ 4. **Release:** Publish changelog with release notes
256
+ 5. **Post-Release:** Verify accuracy and completeness
257
+
258
+ ## Version Linking
259
+
260
+ Include comparison links at the bottom of the changelog:
261
+
262
+ ```markdown
263
+ [Unreleased]: https://github.com/user/repo/compare/v1.2.0...HEAD
264
+ [1.2.0]: https://github.com/user/repo/compare/v1.1.0...v1.2.0
265
+ [1.1.0]: https://github.com/user/repo/compare/v1.0.0...v1.1.0
266
+ [1.0.0]: https://github.com/user/repo/releases/tag/v1.0.0
267
+ ```
268
+
269
+ For projects without public repositories, use internal tracking systems or omit links if not applicable.
270
+
271
+ ## Common Mistakes to Avoid
272
+
273
+ 1. **Overly Technical Language:** Write for users, not just developers
274
+ 2. **Missing Context:** Explain why changes were made when relevant
275
+ 3. **Inconsistent Categories:** Use the standard categories consistently
276
+ 4. **Burying Important Changes:** Put breaking changes and security fixes prominently
277
+ 5. **Incomplete Information:** Include all user-facing changes
278
+ 6. **Late Updates:** Don't wait until release to update the changelog
279
+
280
+ ## Examples
281
+
282
+ ### Good Changelog Entry
283
+
284
+ ```markdown
285
+ ## [2.1.0] - 2024-03-15
286
+
287
+ ### Added
288
+ - Real-time notifications for task updates with configurable preferences
289
+ - Bulk task operations (mark complete, assign, delete) in project dashboard
290
+ - Export functionality for project reports in CSV and PDF formats
291
+ - Integration with external calendar systems (Google Calendar, Outlook)
292
+
293
+ ### Changed
294
+ - Improved task loading performance by implementing pagination (loads 50% faster)
295
+ - Enhanced user interface with improved accessibility features and keyboard navigation
296
+ - Updated email templates for better mobile responsiveness
297
+
298
+ ### Fixed
299
+ - Resolved issue where task assignments were not triggering notifications ([#234](link))
300
+ - Fixed memory leak in real-time update system that occurred during long sessions
301
+ - Corrected timezone handling in deadline calculations for international teams
302
+
303
+ ### Security
304
+ - Updated authentication library to address potential session fixation vulnerability
305
+ - Enhanced input validation to prevent XSS attacks in task descriptions
306
+ ```
307
+
308
+ ### Poor Changelog Entry
309
+
310
+ ```markdown
311
+ ## [2.1.0] - 2024-03-15
312
+
313
+ ### Added
314
+ - Notifications
315
+ - Bulk operations
316
+ - Export stuff
317
+
318
+ ### Changed
319
+ - Performance improvements
320
+ - UI updates
321
+
322
+ ### Fixed
323
+ - Various bugs
324
+ - Memory issues
325
+ ```
326
+
327
+ ## Related Documentation
328
+
329
+ - [Version Control Message Guide](./version-control-system-message.g.md) (Commit message standards)
330
+ - [Project Management Guide](./project-management.g.md) (Release workflow integration)
331
+ - [Publish Release Workflow](wfi://release/publish) (Release process overview and step-by-step actions)
332
+ - [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) (External reference)
333
+ - [Semantic Versioning](https://semver.org/) (Versioning standards)