codex-genesis-harness 0.1.1 → 0.1.4
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.
- package/.codebase/ARCHITECTURE_REVIEW_COMPLETE.md +216 -0
- package/.codebase/CURRENT_STATE.md +2 -0
- package/.codebase/DOMAIN_MODELS.md +5 -3
- package/.codebase/FILE_NAMING_CLARIFICATION.md +161 -0
- package/.codebase/HARNESS_COMPLETENESS_AUDIT.md +613 -0
- package/.codebase/IMPLEMENTATION_COMPLETE.md +429 -0
- package/.codebase/IMPLEMENTATION_HANDOFF.md +351 -0
- package/.codebase/IMPROVEMENTS_SUMMARY.md +419 -0
- package/.codebase/PHASE3_SKILLS_NAMING_COMPLETE.md +292 -0
- package/.codebase/PHASE_DEPENDENCY_MAP.md +486 -0
- package/.codebase/QUICK_START_SPEC_IMPACT.md +456 -0
- package/.codebase/README.md +139 -0
- package/.codebase/RECOVERY_POINTS.md +438 -0
- package/.codex/skills/genesis-api-sync/SKILL.md +354 -0
- package/.codex/skills/genesis-api-sync/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-api-sync/checklists/api-sync-checklist.md +101 -0
- package/.codex/skills/genesis-api-sync/examples/example.md +68 -0
- package/.codex/skills/genesis-api-sync/templates/api-change-template.md +257 -0
- package/.codex/skills/genesis-debug-guide/SKILL.md +479 -0
- package/.codex/skills/genesis-debug-guide/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-debug-guide/checklists/flaky-test-investigation.md +339 -0
- package/.codex/skills/genesis-debug-guide/checklists/production-bug-debug.md +210 -0
- package/.codex/skills/genesis-debug-guide/checklists/test-failure-debug.md +158 -0
- package/.codex/skills/genesis-debug-guide/examples/example.md +48 -0
- package/.codex/skills/genesis-debug-guide/observability/debug-commands.md +365 -0
- package/.codex/skills/genesis-debug-guide/playbooks/unit-test-failures.md +289 -0
- package/.codex/skills/genesis-debug-guide/templates/debug-investigation-log.md +288 -0
- package/.codex/skills/genesis-docs-automation/SKILL.md +1003 -0
- package/.codex/skills/genesis-docs-automation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-docs-automation/checklists/docs-validation.md +359 -0
- package/.codex/skills/genesis-docs-automation/checklists/spec-alignment.md +312 -0
- package/.codex/skills/genesis-docs-automation/examples/example.md +59 -0
- package/.codex/skills/genesis-docs-automation/observability/docs-tracking.md +382 -0
- package/.codex/skills/genesis-docs-automation/playbooks/auto-update-flow.md +851 -0
- package/.codex/skills/genesis-docs-automation/playbooks/changelog-generation.md +491 -0
- package/.codex/skills/genesis-docs-automation/templates/changelog-entry-template.md +187 -0
- package/.codex/skills/genesis-docs-automation/templates/handoff-template.md +297 -0
- package/.codex/skills/genesis-harness/SKILL.md +734 -82
- package/.codex/skills/genesis-harness/checklists/bug-fix-qa.md +169 -0
- package/.codex/skills/genesis-harness/checklists/new-feature-qa.md +157 -0
- package/.codex/skills/genesis-harness/checklists/refactor-qa.md +216 -0
- package/.codex/skills/genesis-harness/checklists/requirements-validation.md +211 -0
- package/.codex/skills/genesis-harness/resources/change-impact-matrix-template.md +204 -0
- package/.codex/skills/genesis-harness/resources/foundation-phase-template.md +131 -0
- package/.codex/skills/genesis-harness/resources/phase-00-foundation-template.md +76 -0
- package/.codex/skills/genesis-harness/resources/post-implementation-guide.md +347 -0
- package/.codex/skills/genesis-harness/scripts/check-architecture-boundaries.sh +23 -23
- package/.codex/skills/genesis-harness/scripts/check-docs-sync.sh +24 -24
- package/.codex/skills/genesis-harness/scripts/check-no-debug-logs.sh +21 -21
- package/.codex/skills/genesis-harness/scripts/check-required-planning-files.sh +46 -46
- package/.codex/skills/genesis-harness/scripts/check-spec-changelog.sh +24 -24
- package/.codex/skills/genesis-harness/scripts/check-task-tracking.sh +25 -25
- package/.codex/skills/genesis-harness/scripts/compact-context.sh +54 -0
- package/.codex/skills/genesis-harness/scripts/create-adr.sh +74 -74
- package/.codex/skills/genesis-harness/scripts/create-bug.sh +160 -160
- package/.codex/skills/genesis-harness/scripts/create-feature.sh +217 -217
- package/.codex/skills/genesis-harness/scripts/detect-stack.sh +26 -26
- package/.codex/skills/genesis-harness/scripts/init-planning.sh +750 -719
- package/.codex/skills/genesis-harness/scripts/list-changed-files.sh +12 -12
- package/.codex/skills/genesis-harness/scripts/offload-log.sh +72 -0
- package/.codex/skills/genesis-harness/scripts/run-verification.sh +47 -47
- package/.codex/skills/genesis-harness/scripts/run-verify-loop.sh +75 -0
- package/.codex/skills/genesis-harness/scripts/update-state.sh +33 -33
- package/.codex/skills/genesis-harness-engineering/SKILL.md +159 -0
- package/.codex/skills/genesis-harness-engineering/checklists/checklist.md +48 -0
- package/.codex/skills/genesis-harness-engineering/examples/example.md +57 -0
- package/.codex/skills/genesis-harness-engineering/playbooks/harness-evolution.md +99 -0
- package/.codex/skills/genesis-harness-engineering/templates/harness-change-template.md +37 -0
- package/.codex/skills/genesis-observability-automation/SKILL.md +382 -0
- package/.codex/skills/genesis-observability-automation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-observability-automation/examples/example.md +86 -0
- package/.codex/skills/genesis-performance-profiling/SKILL.md +510 -0
- package/.codex/skills/genesis-performance-profiling/agents/openai.yaml +6 -0
- package/.codex/skills/genesis-performance-profiling/checklists/optimization-verification.md +199 -0
- package/.codex/skills/genesis-performance-profiling/checklists/performance-baseline.md +183 -0
- package/.codex/skills/genesis-performance-profiling/examples/example.md +234 -0
- package/.codex/skills/genesis-performance-profiling/observability/performance-tracking.md +202 -0
- package/.codex/skills/genesis-performance-profiling/playbooks/load-testing-orchestration.md +593 -0
- package/.codex/skills/genesis-performance-profiling/playbooks/profiling-playbook.md +601 -0
- package/.codex/skills/genesis-performance-profiling/templates/load-test-config-template.md +428 -0
- package/.codex/skills/genesis-performance-profiling/templates/performance-report-template.md +238 -0
- package/.codex/skills/genesis-release-orchestration/SKILL.md +653 -0
- package/.codex/skills/genesis-release-orchestration/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-release-orchestration/checklists/post-deployment-verification.md +274 -0
- package/.codex/skills/genesis-release-orchestration/checklists/pre-release-validation.md +220 -0
- package/.codex/skills/genesis-release-orchestration/examples/example.md +78 -0
- package/.codex/skills/genesis-release-orchestration/observability/release-tracking.md +253 -0
- package/.codex/skills/genesis-release-orchestration/playbooks/canary-deployment-orchestration.md +472 -0
- package/.codex/skills/genesis-release-orchestration/playbooks/semantic-versioning-automation.md +494 -0
- package/.codex/skills/genesis-release-orchestration/templates/deployment-strategy-template.md +303 -0
- package/.codex/skills/genesis-release-orchestration/templates/release-runbook-template.md +420 -0
- package/.codex/skills/genesis-research-first/SKILL.md +237 -0
- package/.codex/skills/genesis-research-first/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-research-first/examples/example.md +85 -0
- package/.codex/skills/genesis-spec-propagation/SKILL.md +534 -0
- package/.codex/skills/genesis-spec-propagation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-spec-propagation/checklists/phase-update-verification.md +384 -0
- package/.codex/skills/genesis-spec-propagation/checklists/spec-change-detection.md +257 -0
- package/.codex/skills/genesis-spec-propagation/examples/example.md +63 -0
- package/.codex/skills/genesis-spec-propagation/observability/propagation-tracking.md +373 -0
- package/.codex/skills/genesis-spec-propagation/playbooks/breaking-change-propagation.md +692 -0
- package/.codex/skills/genesis-spec-propagation/playbooks/feature-change-propagation.md +434 -0
- package/.codex/skills/genesis-spec-propagation/templates/migration-guide-template.md +407 -0
- package/.codex/skills/spec-impact-engine/SKILL.md +504 -0
- package/.codex/skills/spec-impact-engine/agents/openai.yaml +7 -0
- package/.codex/skills/spec-impact-engine/detect-spec-changes.sh +262 -0
- package/.codex/skills/spec-impact-engine/examples/example.md +98 -0
- package/.codex/skills/spec-impact-engine/templates/impact-report.md +248 -0
- package/.codex/skills/spec-impact-engine/templates/migration-guide.md +223 -0
- package/.codex-plugin/plugin.json +1 -1
- package/README.EN.md +719 -0
- package/README.VI.md +712 -0
- package/README.md +261 -107
- package/VERSION +1 -1
- package/bin/genesis-harness.js +20 -11
- package/package.json +1 -1
- package/scripts/README.md +342 -0
- package/scripts/compact-context.sh +54 -0
- package/scripts/detect-changes.sh +152 -0
- package/scripts/install.sh +50 -41
- package/scripts/offload-log.sh +72 -0
- package/scripts/run-evals.sh +70 -43
- package/scripts/run-verify-loop.sh +75 -0
- package/scripts/uninstall.sh +52 -43
- package/scripts/verify.sh +165 -73
- package/.codex/skills/harness-engineering-skill/SKILL.md +0 -45
- package/.codex/skills/harness-engineering-skill/checklists/checklist.md +0 -8
- package/.codex/skills/harness-engineering-skill/examples/example.md +0 -4
- package/.codex/skills/harness-engineering-skill/templates/harness-change-template.md +0 -8
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/SKILL.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/agents/openai.yaml +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/checklists/checklist.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/examples/example.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/templates/provider-contract-template.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/SKILL.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/agents/openai.yaml +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/checklists/checklist.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/examples/example.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/templates/api-contract-template.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/SKILL.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/agents/openai.yaml +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/checklists/checklist.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/examples/example.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/templates/architecture-decision-template.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/SKILL.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/agents/openai.yaml +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/checklists/checklist.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/examples/example.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/templates/map-update-template.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/SKILL.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/agents/openai.yaml +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/checklists/checklist.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/examples/example.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/templates/design-spec-template.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/SKILL.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/agents/openai.yaml +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/checklists/checklist.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/examples/example.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/templates/docs-update-template.md +0 -0
- /package/.codex/skills/{harness-engineering-skill → genesis-harness-engineering}/agents/openai.yaml +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/SKILL.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/agents/openai.yaml +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/checklists/checklist.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/examples/example.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/templates/orchestration-template.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/SKILL.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/agents/openai.yaml +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/checklists/checklist.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/examples/example.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/templates/plan-template.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/SKILL.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/agents/openai.yaml +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/checklists/checklist.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/examples/example.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/templates/release-checklist-template.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/SKILL.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/agents/openai.yaml +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/checklists/checklist.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/examples/example.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/templates/research-note-template.md +0 -0
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
# Playbook: Changelog Generation
|
|
2
|
+
|
|
3
|
+
**Purpose**: Generate SPEC_CHANGELOG.md entries automatically with proper formatting and structure
|
|
4
|
+
|
|
5
|
+
**When to Use**: For every spec/code change that affects user-visible behavior
|
|
6
|
+
|
|
7
|
+
**Time Estimate**: 10-15 minutes per entry (mostly automated)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 📋 Changelog Entry Structure
|
|
12
|
+
|
|
13
|
+
Every entry follows this template:
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
## [v2.1] - 2026-05-31
|
|
17
|
+
|
|
18
|
+
### ✨ Added
|
|
19
|
+
- New feature description
|
|
20
|
+
- Detail 1
|
|
21
|
+
- Detail 2
|
|
22
|
+
|
|
23
|
+
### 🔄 Changed
|
|
24
|
+
- Behavior change description
|
|
25
|
+
- Before: old behavior
|
|
26
|
+
- After: new behavior
|
|
27
|
+
|
|
28
|
+
### 🐛 Fixed
|
|
29
|
+
- Bug fix description
|
|
30
|
+
- Impact: what was broken
|
|
31
|
+
- Fix: how it's resolved
|
|
32
|
+
|
|
33
|
+
### ⚠️ Deprecated
|
|
34
|
+
- Deprecated feature description
|
|
35
|
+
- Timeline: When will it be removed (e.g., "Removed in v2.2")
|
|
36
|
+
- Migration: [See migration guide](#migration-feature)
|
|
37
|
+
|
|
38
|
+
### 🗑️ Removed
|
|
39
|
+
- Removed feature description
|
|
40
|
+
- Reason: Why removed
|
|
41
|
+
- Alternative: What to use instead
|
|
42
|
+
|
|
43
|
+
### 🔐 Security
|
|
44
|
+
- Security issue fix or improvement
|
|
45
|
+
- Issue: What was the risk
|
|
46
|
+
- Fix: How it's resolved
|
|
47
|
+
|
|
48
|
+
### 📚 Documentation
|
|
49
|
+
- Documentation improvements
|
|
50
|
+
- What was improved
|
|
51
|
+
- Where to find it
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Change Classification Decision Tree
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Is this a BREAKING change?
|
|
59
|
+
├─ YES (field removed, type changed, behavior inverted)
|
|
60
|
+
│ └─ Place under: "🗑️ Removed" or "⚠️ Deprecated"
|
|
61
|
+
│ Always provide: Migration guide with concrete examples
|
|
62
|
+
│ Always mark: [BREAKING] in title
|
|
63
|
+
│ Timeline: When consumers must migrate (e.g., "v2.2 (6 months)")
|
|
64
|
+
│
|
|
65
|
+
├─ NEW endpoint/feature?
|
|
66
|
+
│ └─ Place under: "✨ Added"
|
|
67
|
+
│ Always provide: Link to API documentation
|
|
68
|
+
│ Include: Performance characteristics if relevant
|
|
69
|
+
│ Include: Related tests or examples
|
|
70
|
+
│
|
|
71
|
+
├─ Behavior change (backward compatible)?
|
|
72
|
+
│ └─ Place under: "🔄 Changed"
|
|
73
|
+
│ Clarify: Before/after behavior
|
|
74
|
+
│ Explain: Why changed
|
|
75
|
+
│ Include: Any migration steps (if recommended)
|
|
76
|
+
│
|
|
77
|
+
├─ Bug fix (behavior corrected)?
|
|
78
|
+
│ └─ Place under: "🐛 Fixed"
|
|
79
|
+
│ Describe: What was broken
|
|
80
|
+
│ Explain: How it's fixed
|
|
81
|
+
│ Include: Impact on existing users (if breaking)
|
|
82
|
+
│
|
|
83
|
+
├─ Deprecation notice?
|
|
84
|
+
│ └─ Place under: "⚠️ Deprecated"
|
|
85
|
+
│ Timeline: Removal date (suggest 6 months)
|
|
86
|
+
│ Migration: Link to migration guide
|
|
87
|
+
│ Alternative: What to use instead
|
|
88
|
+
│
|
|
89
|
+
├─ Documentation-only change?
|
|
90
|
+
│ └─ Place under: "📚 Documentation"
|
|
91
|
+
│ What: What was improved
|
|
92
|
+
│ Where: Link to docs
|
|
93
|
+
│ Why: Why improvement was needed
|
|
94
|
+
│
|
|
95
|
+
└─ Security-related fix?
|
|
96
|
+
└─ Place under: "🔐 Security"
|
|
97
|
+
Risk: What was the vulnerability
|
|
98
|
+
Fix: How it's addressed
|
|
99
|
+
Upgrade: Urgency (critical/high/medium)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 🎓 Examples by Change Type
|
|
105
|
+
|
|
106
|
+
### Example 1: New Endpoint (FEATURE)
|
|
107
|
+
|
|
108
|
+
**File Changed**: contracts/api/UserRegistration/request.json (new endpoint added)
|
|
109
|
+
|
|
110
|
+
**Generated Entry**:
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
### ✨ Added
|
|
114
|
+
|
|
115
|
+
**User Registration Endpoint**
|
|
116
|
+
- New `POST /api/users/register` endpoint
|
|
117
|
+
- Parameters: email (required), password (required, 8+), name (optional)
|
|
118
|
+
- Response: User object with id, email, name, createdAt
|
|
119
|
+
- Error codes: 400 (invalid email), 409 (duplicate), 422 (weak password), 500 (server error)
|
|
120
|
+
- Rate limit: 5 requests per hour per IP
|
|
121
|
+
- [See API Reference](API_REFERENCE.md#post-apiusersregister)
|
|
122
|
+
- [See Implementation Guide](IMPLEMENTATION.md#user-registration-implementation)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Include in Entry**:
|
|
126
|
+
- ✅ What was added
|
|
127
|
+
- ✅ Key parameters/options
|
|
128
|
+
- ✅ Response structure
|
|
129
|
+
- ✅ Error codes
|
|
130
|
+
- ✅ Rate limits (if applicable)
|
|
131
|
+
- ✅ Links to docs
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### Example 2: Optional Field Addition (FEATURE)
|
|
136
|
+
|
|
137
|
+
**File Changed**: contracts/api/GetUser/response.json (added optional `avatarUrl`)
|
|
138
|
+
|
|
139
|
+
**Generated Entry**:
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
### ✨ Added
|
|
143
|
+
|
|
144
|
+
**Optional Avatar URL Field**
|
|
145
|
+
- User profile now includes optional `avatarUrl` field
|
|
146
|
+
- Field: `avatarUrl` (string, optional, nullable if not set)
|
|
147
|
+
- Backward compatible: Existing clients unaffected
|
|
148
|
+
- Format: HTTPS URL to image (max 2MB)
|
|
149
|
+
- Example: `"https://cdn.example.com/avatars/user-123.png"`
|
|
150
|
+
- [See API Reference](API_REFERENCE.md#get-apiusersid)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Verification Checklist**:
|
|
154
|
+
- [ ] Field is truly optional (won't break existing code)
|
|
155
|
+
- [ ] Default behavior clearly documented
|
|
156
|
+
- [ ] Examples provided
|
|
157
|
+
- [ ] No SQL migration needed (or noted separately)
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### Example 3: Behavior Change (Compatible)
|
|
162
|
+
|
|
163
|
+
**File Changed**: src/services/UserService.ts (caching behavior changed)
|
|
164
|
+
|
|
165
|
+
**Generated Entry**:
|
|
166
|
+
|
|
167
|
+
```markdown
|
|
168
|
+
### 🔄 Changed
|
|
169
|
+
|
|
170
|
+
**User Cache Invalidation**
|
|
171
|
+
- User data now invalidated on ANY update (not just creation)
|
|
172
|
+
- **Before**: Cache cleared only on user creation
|
|
173
|
+
- **After**: Cache cleared on create/update/delete
|
|
174
|
+
- **Why**: Prevents serving stale user data after profile update
|
|
175
|
+
- Client impact: None (automatic, transparent)
|
|
176
|
+
- Performance impact: +5ms per update (negligible)
|
|
177
|
+
- [See Implementation Details](IMPLEMENTATION.md#user-cache-invalidation)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Verification Checklist**:
|
|
181
|
+
- [ ] Change is backward compatible
|
|
182
|
+
- [ ] No code changes required by clients
|
|
183
|
+
- [ ] Performance impact documented (if any)
|
|
184
|
+
- [ ] Reason for change explained
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
### Example 4: Bug Fix
|
|
189
|
+
|
|
190
|
+
**File Changed**: src/api/handlers/userHandler.ts (fixed null reference)
|
|
191
|
+
|
|
192
|
+
**Generated Entry**:
|
|
193
|
+
|
|
194
|
+
```markdown
|
|
195
|
+
### 🐛 Fixed
|
|
196
|
+
|
|
197
|
+
**Null Reference Error on User Delete**
|
|
198
|
+
- **Issue**: User delete endpoint threw 500 if user had pending transactions
|
|
199
|
+
- Root cause: Missed null check on transaction cleanup
|
|
200
|
+
- Impact: Delete requests failed intermittently
|
|
201
|
+
- **Fix**: Added null check before clearing transactions
|
|
202
|
+
- Code: `if (user?.transactions) { clear() }`
|
|
203
|
+
- Tests: Added 3 regression tests
|
|
204
|
+
- **Workaround** (if issue encountered): Retry the delete request
|
|
205
|
+
- [See Tests](tests/integration/users.test.ts#L234-L245)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Verification Checklist**:
|
|
209
|
+
- [ ] Issue clearly described (what went wrong)
|
|
210
|
+
- [ ] Root cause explained (why it happened)
|
|
211
|
+
- [ ] Fix described in simple terms
|
|
212
|
+
- [ ] Tests provided to prevent regression
|
|
213
|
+
- [ ] Workaround provided (if applicable)
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
### Example 5: Deprecation Notice
|
|
218
|
+
|
|
219
|
+
**File Changed**: contracts/api/Auth/response.json (old endpoint deprecated)
|
|
220
|
+
|
|
221
|
+
**Generated Entry**:
|
|
222
|
+
|
|
223
|
+
```markdown
|
|
224
|
+
### ⚠️ Deprecated
|
|
225
|
+
|
|
226
|
+
**POST /api/auth/register Endpoint** [DEPRECATED]
|
|
227
|
+
- **Removal Timeline**: Removed in v2.2 (planned for August 31, 2026)
|
|
228
|
+
- **Alternative**: Use POST /api/users/register instead
|
|
229
|
+
- **Why**: Consolidated user management under /users endpoint
|
|
230
|
+
- **Migration**: [See Migration Guide](#migration-auth-endpoint)
|
|
231
|
+
- No code changes: New endpoint has identical parameters/response
|
|
232
|
+
- Action required: Update API calls to new endpoint
|
|
233
|
+
- Timeline: Migrate at your convenience before August 31
|
|
234
|
+
- **Deprecation Header**: API returns `Deprecation: true` header with removal date
|
|
235
|
+
|
|
236
|
+
**Migration Path**:
|
|
237
|
+
```bash
|
|
238
|
+
# Before (v2.0)
|
|
239
|
+
POST /api/auth/register { email, password, name }
|
|
240
|
+
|
|
241
|
+
# After (v2.1+)
|
|
242
|
+
POST /api/users/register { email, password, name }
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Migration Guides
|
|
248
|
+
|
|
249
|
+
### Migration: Authentication Endpoint Consolidation
|
|
250
|
+
|
|
251
|
+
**When to Migrate**: Now (new endpoint available), must complete by v2.2
|
|
252
|
+
|
|
253
|
+
**What's Changing**: Old endpoint is deprecated, new endpoint recommended
|
|
254
|
+
|
|
255
|
+
**Old Code**:
|
|
256
|
+
```javascript
|
|
257
|
+
const response = await fetch('/api/auth/register', {
|
|
258
|
+
method: 'POST',
|
|
259
|
+
headers: { 'Content-Type': 'application/json' },
|
|
260
|
+
body: JSON.stringify({ email, password, name })
|
|
261
|
+
});
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**New Code**:
|
|
265
|
+
```javascript
|
|
266
|
+
const response = await fetch('/api/users/register', {
|
|
267
|
+
method: 'POST',
|
|
268
|
+
headers: { 'Content-Type': 'application/json' },
|
|
269
|
+
body: JSON.stringify({ email, password, name })
|
|
270
|
+
});
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Changes**:
|
|
274
|
+
- Endpoint path: `/api/auth/register` → `/api/users/register`
|
|
275
|
+
- Request: **No change** (same parameters)
|
|
276
|
+
- Response: **No change** (same structure)
|
|
277
|
+
- Error codes: **No change** (same errors)
|
|
278
|
+
|
|
279
|
+
**Testing**:
|
|
280
|
+
- [ ] Old endpoint still works (will until v2.2)
|
|
281
|
+
- [ ] New endpoint works identically
|
|
282
|
+
- [ ] Pick one endpoint and standardize
|
|
283
|
+
|
|
284
|
+
**Questions?**
|
|
285
|
+
- Old endpoint questions: [support@example.com](mailto:support@example.com)
|
|
286
|
+
- New endpoint issues: [api-team@example.com](mailto:api-team@example.com)
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
### Migration: Removing Legacy ID Field
|
|
291
|
+
|
|
292
|
+
**When to Migrate**: Now (new ID structure available)
|
|
293
|
+
|
|
294
|
+
**What's Changing**: `legacyId` field removed, use `id` instead
|
|
295
|
+
|
|
296
|
+
**Timeline**:
|
|
297
|
+
- v2.0: `legacyId` deprecated (deprecation warning added)
|
|
298
|
+
- v2.1: `legacyId` warning increased (deprecation header sent)
|
|
299
|
+
- v2.2: `legacyId` removed (breaking change)
|
|
300
|
+
- **You must migrate by June 30, 2026 (1 month from now)**
|
|
301
|
+
|
|
302
|
+
**Old Code**:
|
|
303
|
+
```javascript
|
|
304
|
+
// Using legacy ID (don't do this)
|
|
305
|
+
const userId = user.legacyId; // e.g., "LEGACY-12345"
|
|
306
|
+
const user = await getUser(userId);
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**New Code**:
|
|
310
|
+
```javascript
|
|
311
|
+
// Using standard ID
|
|
312
|
+
const userId = user.id; // e.g., "550e8400-e29b-41d4-a716-446655440000"
|
|
313
|
+
const user = await getUser(userId);
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**Why**: Simplifies ID system (single format instead of two)
|
|
317
|
+
|
|
318
|
+
**Steps to Migrate**:
|
|
319
|
+
1. Find all uses of `user.legacyId` in code
|
|
320
|
+
2. Replace with `user.id`
|
|
321
|
+
3. Verify types match (both string, UUID format)
|
|
322
|
+
4. Run tests to confirm
|
|
323
|
+
5. Deploy before June 30, 2026
|
|
324
|
+
|
|
325
|
+
**Troubleshooting**:
|
|
326
|
+
| Error | Cause | Fix |
|
|
327
|
+
|-------|-------|-----|
|
|
328
|
+
| "field does not exist" | Already removed | Check API version |
|
|
329
|
+
| Type mismatch | Old code using different format | Cast to string if needed |
|
|
330
|
+
| Tests fail | Deprecated field no longer returned | Update test mocks |
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
### Migration: Password Validation Requirement Change
|
|
335
|
+
|
|
336
|
+
**When to Migrate**: Immediate (API now enforces stricter validation)
|
|
337
|
+
|
|
338
|
+
**What's Changing**: Password requirements increased
|
|
339
|
+
|
|
340
|
+
**Before v2.1**:
|
|
341
|
+
- Minimum: 6 characters
|
|
342
|
+
|
|
343
|
+
**From v2.1**:
|
|
344
|
+
- Minimum: 8 characters
|
|
345
|
+
- Must include: Uppercase letter + number
|
|
346
|
+
|
|
347
|
+
**Examples**:
|
|
348
|
+
|
|
349
|
+
| Password | Before | After | Status |
|
|
350
|
+
|----------|--------|-------|--------|
|
|
351
|
+
| `abc123` | ✅ OK | ❌ NO | Requires 8+ chars |
|
|
352
|
+
| `Abc1234` | ✅ OK | ✅ OK | Valid |
|
|
353
|
+
| `MyPa$$word` | ✅ OK | ✅ OK | Valid |
|
|
354
|
+
|
|
355
|
+
**Action Required**:
|
|
356
|
+
- Add client-side validation to match new rules
|
|
357
|
+
- Update password input field hint text
|
|
358
|
+
- Update password reset to enforce new rules
|
|
359
|
+
- Notify existing users (optional, but recommended)
|
|
360
|
+
|
|
361
|
+
**Code Example**:
|
|
362
|
+
```javascript
|
|
363
|
+
function validatePassword(password) {
|
|
364
|
+
const MIN_LENGTH = 8;
|
|
365
|
+
const HAS_UPPERCASE = /[A-Z]/.test(password);
|
|
366
|
+
const HAS_NUMBER = /\d/.test(password);
|
|
367
|
+
|
|
368
|
+
if (password.length < MIN_LENGTH) {
|
|
369
|
+
throw new Error('Password must be 8+ characters');
|
|
370
|
+
}
|
|
371
|
+
if (!HAS_UPPERCASE) {
|
|
372
|
+
throw new Error('Password must include uppercase letter');
|
|
373
|
+
}
|
|
374
|
+
if (!HAS_NUMBER) {
|
|
375
|
+
throw new Error('Password must include number');
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
return true;
|
|
379
|
+
}
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## 📊 Changelog Entry Frequency
|
|
385
|
+
|
|
386
|
+
**When to add entries**:
|
|
387
|
+
- ✅ New endpoint/feature
|
|
388
|
+
- ✅ Changed behavior
|
|
389
|
+
- ✅ Bug fix
|
|
390
|
+
- ✅ Deprecation notice
|
|
391
|
+
- ✅ Security fix
|
|
392
|
+
- ✅ New error code
|
|
393
|
+
- ✅ Database schema change
|
|
394
|
+
|
|
395
|
+
**When NOT to add entries**:
|
|
396
|
+
- ❌ Internal refactoring (no behavior change)
|
|
397
|
+
- ❌ Comment/documentation updates
|
|
398
|
+
- ❌ Test updates (unless covering new behavior)
|
|
399
|
+
- ❌ Formatting/style changes
|
|
400
|
+
- ❌ Performance optimization (no behavior change)
|
|
401
|
+
- ❌ Dependencies (unless affects users)
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## ✨ Best Practices
|
|
406
|
+
|
|
407
|
+
### ✅ DO
|
|
408
|
+
|
|
409
|
+
- **Be specific**: "Added `avatarUrl` field" not "Updated user model"
|
|
410
|
+
- **Include links**: Link to API reference, implementation guide, migration guide
|
|
411
|
+
- **Provide examples**: Show code before/after for migrations
|
|
412
|
+
- **Document errors**: List all error codes added/changed
|
|
413
|
+
- **Explain why**: Why was this change made?
|
|
414
|
+
- **Set timelines**: For deprecations, be clear on removal date
|
|
415
|
+
- **Test examples**: Ensure code examples compile/run
|
|
416
|
+
|
|
417
|
+
### ❌ DON'T
|
|
418
|
+
|
|
419
|
+
- **Be vague**: "Fixed things" is not helpful
|
|
420
|
+
- **Use marketing language**: "Revolutionary new feature" - be factual
|
|
421
|
+
- **Forget migration guides**: Breaking changes need clear guidance
|
|
422
|
+
- **Miss edge cases**: Mention limitations or known issues
|
|
423
|
+
- **Forget error codes**: List all possible error responses
|
|
424
|
+
- **Overcomplicate**: Keep entries readable (2-4 sentences per item)
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## 🎯 Changelog Completeness Checklist
|
|
429
|
+
|
|
430
|
+
For each changelog entry, verify:
|
|
431
|
+
|
|
432
|
+
- [ ] **Clear title**: Describes what changed
|
|
433
|
+
- [ ] **Why changed**: Reason for the change
|
|
434
|
+
- [ ] **Impact documented**: How does this affect users?
|
|
435
|
+
- [ ] **Examples provided**: Concrete code examples
|
|
436
|
+
- [ ] **Links included**: To docs, guides, implementation
|
|
437
|
+
- [ ] **Tests mentioned**: Where to find validation
|
|
438
|
+
- [ ] **Timeline clear**: If deprecation, when is removal?
|
|
439
|
+
- [ ] **Migration guide**: If breaking, how to migrate?
|
|
440
|
+
- [ ] **Error codes listed**: All possible error responses
|
|
441
|
+
- [ ] **Backward compatible**: Clearly stated if breaking
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## 📝 Template for Copy-Paste
|
|
446
|
+
|
|
447
|
+
Use this template for new entries:
|
|
448
|
+
|
|
449
|
+
```markdown
|
|
450
|
+
### [SECTION: ✨ Added / 🔄 Changed / 🐛 Fixed / ⚠️ Deprecated / 🗑️ Removed / 🔐 Security / 📚 Documentation]
|
|
451
|
+
|
|
452
|
+
**[Feature Title]**
|
|
453
|
+
- [Brief 1-line description]
|
|
454
|
+
- Details:
|
|
455
|
+
- [Detail 1]
|
|
456
|
+
- [Detail 2]
|
|
457
|
+
- [Detail 3]
|
|
458
|
+
- Links: [Docs](link) | [Implementation](link) | [Migration](link)
|
|
459
|
+
- Tests: [Test file](link) with [N] test cases
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## 🔄 Auto-Generation Rules
|
|
465
|
+
|
|
466
|
+
The genesis-docs-automation skill automatically generates entries when:
|
|
467
|
+
|
|
468
|
+
1. **Phase 1 API contract changes**
|
|
469
|
+
- New endpoint → "✨ Added" section
|
|
470
|
+
- Removed endpoint → "🗑️ Removed" section
|
|
471
|
+
- Changed parameter type → "🔄 Changed" or "⚠️ Deprecated"
|
|
472
|
+
- New error code → "✨ Added" under error codes
|
|
473
|
+
|
|
474
|
+
2. **Phase 3 Backend changes**
|
|
475
|
+
- New service method → linked in "✨ Added"
|
|
476
|
+
- Bug fix → "🐛 Fixed" section
|
|
477
|
+
- Behavior change → "🔄 Changed" section
|
|
478
|
+
- Database schema → separate "Database Migrations" section
|
|
479
|
+
|
|
480
|
+
3. **Phase 4 SDK changes**
|
|
481
|
+
- New method → "✨ Added" in SDK section
|
|
482
|
+
- Deprecated method → "⚠️ Deprecated" in SDK section
|
|
483
|
+
- Type changes → "🔄 Changed" in SDK section
|
|
484
|
+
|
|
485
|
+
4. **Manual override**
|
|
486
|
+
- User can manually add entries or override auto-generated
|
|
487
|
+
- Use `/update-changelog` to force regeneration
|
|
488
|
+
|
|
489
|
+
---
|
|
490
|
+
|
|
491
|
+
**Version**: v2.3 | **Last Updated**: May 31, 2026 | **Status**: ACTIVE
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# Template: Changelog Entry
|
|
2
|
+
|
|
3
|
+
**Copy this template for new changelog entries**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## [v2.X] - YYYY-MM-DD
|
|
8
|
+
|
|
9
|
+
### ✨ Added
|
|
10
|
+
|
|
11
|
+
**[Feature Name]** [NEW]
|
|
12
|
+
- [Main benefit/description]
|
|
13
|
+
- Details:
|
|
14
|
+
- [Detail 1]
|
|
15
|
+
- [Detail 2]
|
|
16
|
+
- [Detail 3]
|
|
17
|
+
- Backward compatible: ✅ YES / ❌ NO
|
|
18
|
+
- **See**: [API Reference](API_REFERENCE.md#section) | [Implementation](IMPLEMENTATION.md#section)
|
|
19
|
+
- **Tests**: [test-file.ts](path/to/test.ts) with [N] test cases
|
|
20
|
+
- **Coverage**: [%]
|
|
21
|
+
- **Performance**: [metric if relevant]
|
|
22
|
+
|
|
23
|
+
**New Error Codes**:
|
|
24
|
+
| Code | Message | When |
|
|
25
|
+
|------|---------|------|
|
|
26
|
+
| XXX | Description | Condition |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
### 🔄 Changed
|
|
31
|
+
|
|
32
|
+
**[Behavior Change]**
|
|
33
|
+
- **Before**: [Old behavior description]
|
|
34
|
+
- **After**: [New behavior description]
|
|
35
|
+
- **Why**: [Reason for change]
|
|
36
|
+
- **Impact**: [How does this affect users - breaking? transparent? performance impact?]
|
|
37
|
+
- **Workaround**: [If breaking, what should users do?]
|
|
38
|
+
- **Migration**: [Link to migration guide if needed]
|
|
39
|
+
- **Tests**: [test-file.ts](path/to/test.ts) updated
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### 🐛 Fixed
|
|
44
|
+
|
|
45
|
+
**[Bug Description]**
|
|
46
|
+
- **Issue**: [What was broken]
|
|
47
|
+
- Root cause: [Why it happened]
|
|
48
|
+
- Symptoms: [How it manifested]
|
|
49
|
+
- Affected: [Which users/versions]
|
|
50
|
+
- **Fix**: [How it's resolved]
|
|
51
|
+
- Code: [Where the fix is]
|
|
52
|
+
- Tests: [Regression tests added]
|
|
53
|
+
- **Workaround**: [For users on affected version]
|
|
54
|
+
- **Upgrade**: Recommended (or Critical)
|
|
55
|
+
- **Related**: [Issue #XXX](link)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### ⚠️ Deprecated
|
|
60
|
+
|
|
61
|
+
**[Feature Name]** [DEPRECATED]
|
|
62
|
+
- **Timeline**: Removed in v2.X (planned for YYYY-MM-DD)
|
|
63
|
+
- **Alternative**: [What to use instead]
|
|
64
|
+
- **Why**: [Reason for deprecation]
|
|
65
|
+
- **Migration Guide**: [Link to migration](#migration-feature-name)
|
|
66
|
+
- **Deprecation Header**: API returns `Deprecation: true` header with date
|
|
67
|
+
|
|
68
|
+
### 🗑️ Removed
|
|
69
|
+
|
|
70
|
+
**[Feature Name]**
|
|
71
|
+
- **Reason**: [Why was it removed]
|
|
72
|
+
- **Alternative**: [What to use instead]
|
|
73
|
+
- **Migration**: [Link to migration guide](#migration-feature-name)
|
|
74
|
+
- **Last Version**: [Last version that included this feature]
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### 🔐 Security
|
|
79
|
+
|
|
80
|
+
**[Security Issue Name]** [CRITICAL / HIGH / MEDIUM]
|
|
81
|
+
- **Vulnerability**: [Type of security issue]
|
|
82
|
+
- **Risk**: [What could happen]
|
|
83
|
+
- **Affected**: [Who is affected - versions, users, conditions]
|
|
84
|
+
- **Fix**: [How it's addressed]
|
|
85
|
+
- **Recommendation**: [Upgrade immediately / within X days]
|
|
86
|
+
- **CVE**: [CVE number if applicable]
|
|
87
|
+
- **References**: [Security advisory links]
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
### 📚 Documentation
|
|
92
|
+
|
|
93
|
+
**[Documentation Improvement]**
|
|
94
|
+
- **What**: [What was improved/added]
|
|
95
|
+
- **Where**: [Link to documentation]
|
|
96
|
+
- **Why**: [Why this improvement was needed]
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Migration Guides
|
|
101
|
+
|
|
102
|
+
### Migration: [Feature Name]
|
|
103
|
+
|
|
104
|
+
**When to Migrate**: [Now / Before vX.X release]
|
|
105
|
+
**Breaking**: YES / NO
|
|
106
|
+
**Effort**: [5 min / 30 min / 2 hours]
|
|
107
|
+
|
|
108
|
+
**What's Changing**:
|
|
109
|
+
- [Change 1]
|
|
110
|
+
- [Change 2]
|
|
111
|
+
- [Change 3]
|
|
112
|
+
|
|
113
|
+
**Before (v2.X)**:
|
|
114
|
+
```code
|
|
115
|
+
// old code example
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**After (v2.X+)**:
|
|
119
|
+
```code
|
|
120
|
+
// new code example
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Why**: [Reason for change]
|
|
124
|
+
|
|
125
|
+
**Steps to Migrate**:
|
|
126
|
+
1. [Step 1]
|
|
127
|
+
2. [Step 2]
|
|
128
|
+
3. [Step 3]
|
|
129
|
+
|
|
130
|
+
**Testing**:
|
|
131
|
+
- [ ] Old code removed
|
|
132
|
+
- [ ] New code tested
|
|
133
|
+
- [ ] Tests passing
|
|
134
|
+
|
|
135
|
+
**Troubleshooting**:
|
|
136
|
+
| Issue | Cause | Solution |
|
|
137
|
+
|-------|-------|----------|
|
|
138
|
+
| [Error message] | [Root cause] | [How to fix] |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Release Notes
|
|
143
|
+
|
|
144
|
+
**v2.X - YYYY-MM-DD**
|
|
145
|
+
|
|
146
|
+
- ✨ [Feature 1]
|
|
147
|
+
- ✨ [Feature 2]
|
|
148
|
+
- 🔄 [Changed behavior]
|
|
149
|
+
- 🐛 [Bug fixed]
|
|
150
|
+
- ⚠️ [Deprecation notice]
|
|
151
|
+
- 📚 [Documentation improvement]
|
|
152
|
+
|
|
153
|
+
**Dependencies Updated**:
|
|
154
|
+
- [Package]: X.X.X → X.X.X (reason for update)
|
|
155
|
+
|
|
156
|
+
**Breaking Changes**: YES / NO
|
|
157
|
+
- If YES: [List and link to migration guides]
|
|
158
|
+
|
|
159
|
+
**Known Issues**:
|
|
160
|
+
- [Issue 1]: [Workaround if available]
|
|
161
|
+
- [Issue 2]: [Timeline for fix if known]
|
|
162
|
+
|
|
163
|
+
**Upgrade**: [Recommended / Critical / Optional]
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Meta Information
|
|
168
|
+
|
|
169
|
+
- **Date**: YYYY-MM-DD HH:MM UTC
|
|
170
|
+
- **Author**: [Generated by genesis-docs-automation]
|
|
171
|
+
- **Files Changed**: [N]
|
|
172
|
+
- **Docs Files Updated**: [N]
|
|
173
|
+
- **Tests Added**: [N]
|
|
174
|
+
- **Breaking**: YES / NO
|
|
175
|
+
- **Security Impact**: YES / NO / CRITICAL
|
|
176
|
+
- **Manual Review Required**: YES / NO
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
**Instructions for use**:
|
|
181
|
+
1. Copy this template
|
|
182
|
+
2. Fill in all [bracketed] sections
|
|
183
|
+
3. Delete unused sections (e.g., if no "🐛 Fixed", remove that section)
|
|
184
|
+
4. Keep sections in order as shown
|
|
185
|
+
5. Use consistent formatting (markdown, code blocks)
|
|
186
|
+
6. Include links to relevant documentation/tests
|
|
187
|
+
7. Test all code examples to ensure they work
|