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.
Files changed (180) hide show
  1. package/.codebase/ARCHITECTURE_REVIEW_COMPLETE.md +216 -0
  2. package/.codebase/CURRENT_STATE.md +2 -0
  3. package/.codebase/DOMAIN_MODELS.md +5 -3
  4. package/.codebase/FILE_NAMING_CLARIFICATION.md +161 -0
  5. package/.codebase/HARNESS_COMPLETENESS_AUDIT.md +613 -0
  6. package/.codebase/IMPLEMENTATION_COMPLETE.md +429 -0
  7. package/.codebase/IMPLEMENTATION_HANDOFF.md +351 -0
  8. package/.codebase/IMPROVEMENTS_SUMMARY.md +419 -0
  9. package/.codebase/PHASE3_SKILLS_NAMING_COMPLETE.md +292 -0
  10. package/.codebase/PHASE_DEPENDENCY_MAP.md +486 -0
  11. package/.codebase/QUICK_START_SPEC_IMPACT.md +456 -0
  12. package/.codebase/README.md +139 -0
  13. package/.codebase/RECOVERY_POINTS.md +438 -0
  14. package/.codex/skills/genesis-api-sync/SKILL.md +354 -0
  15. package/.codex/skills/genesis-api-sync/agents/openai.yaml +7 -0
  16. package/.codex/skills/genesis-api-sync/checklists/api-sync-checklist.md +101 -0
  17. package/.codex/skills/genesis-api-sync/examples/example.md +68 -0
  18. package/.codex/skills/genesis-api-sync/templates/api-change-template.md +257 -0
  19. package/.codex/skills/genesis-debug-guide/SKILL.md +479 -0
  20. package/.codex/skills/genesis-debug-guide/agents/openai.yaml +7 -0
  21. package/.codex/skills/genesis-debug-guide/checklists/flaky-test-investigation.md +339 -0
  22. package/.codex/skills/genesis-debug-guide/checklists/production-bug-debug.md +210 -0
  23. package/.codex/skills/genesis-debug-guide/checklists/test-failure-debug.md +158 -0
  24. package/.codex/skills/genesis-debug-guide/examples/example.md +48 -0
  25. package/.codex/skills/genesis-debug-guide/observability/debug-commands.md +365 -0
  26. package/.codex/skills/genesis-debug-guide/playbooks/unit-test-failures.md +289 -0
  27. package/.codex/skills/genesis-debug-guide/templates/debug-investigation-log.md +288 -0
  28. package/.codex/skills/genesis-docs-automation/SKILL.md +1003 -0
  29. package/.codex/skills/genesis-docs-automation/agents/openai.yaml +7 -0
  30. package/.codex/skills/genesis-docs-automation/checklists/docs-validation.md +359 -0
  31. package/.codex/skills/genesis-docs-automation/checklists/spec-alignment.md +312 -0
  32. package/.codex/skills/genesis-docs-automation/examples/example.md +59 -0
  33. package/.codex/skills/genesis-docs-automation/observability/docs-tracking.md +382 -0
  34. package/.codex/skills/genesis-docs-automation/playbooks/auto-update-flow.md +851 -0
  35. package/.codex/skills/genesis-docs-automation/playbooks/changelog-generation.md +491 -0
  36. package/.codex/skills/genesis-docs-automation/templates/changelog-entry-template.md +187 -0
  37. package/.codex/skills/genesis-docs-automation/templates/handoff-template.md +297 -0
  38. package/.codex/skills/genesis-harness/SKILL.md +734 -82
  39. package/.codex/skills/genesis-harness/checklists/bug-fix-qa.md +169 -0
  40. package/.codex/skills/genesis-harness/checklists/new-feature-qa.md +157 -0
  41. package/.codex/skills/genesis-harness/checklists/refactor-qa.md +216 -0
  42. package/.codex/skills/genesis-harness/checklists/requirements-validation.md +211 -0
  43. package/.codex/skills/genesis-harness/resources/change-impact-matrix-template.md +204 -0
  44. package/.codex/skills/genesis-harness/resources/foundation-phase-template.md +131 -0
  45. package/.codex/skills/genesis-harness/resources/phase-00-foundation-template.md +76 -0
  46. package/.codex/skills/genesis-harness/resources/post-implementation-guide.md +347 -0
  47. package/.codex/skills/genesis-harness/scripts/check-architecture-boundaries.sh +23 -23
  48. package/.codex/skills/genesis-harness/scripts/check-docs-sync.sh +24 -24
  49. package/.codex/skills/genesis-harness/scripts/check-no-debug-logs.sh +21 -21
  50. package/.codex/skills/genesis-harness/scripts/check-required-planning-files.sh +46 -46
  51. package/.codex/skills/genesis-harness/scripts/check-spec-changelog.sh +24 -24
  52. package/.codex/skills/genesis-harness/scripts/check-task-tracking.sh +25 -25
  53. package/.codex/skills/genesis-harness/scripts/compact-context.sh +54 -0
  54. package/.codex/skills/genesis-harness/scripts/create-adr.sh +74 -74
  55. package/.codex/skills/genesis-harness/scripts/create-bug.sh +160 -160
  56. package/.codex/skills/genesis-harness/scripts/create-feature.sh +217 -217
  57. package/.codex/skills/genesis-harness/scripts/detect-stack.sh +26 -26
  58. package/.codex/skills/genesis-harness/scripts/init-planning.sh +750 -719
  59. package/.codex/skills/genesis-harness/scripts/list-changed-files.sh +12 -12
  60. package/.codex/skills/genesis-harness/scripts/offload-log.sh +72 -0
  61. package/.codex/skills/genesis-harness/scripts/run-verification.sh +47 -47
  62. package/.codex/skills/genesis-harness/scripts/run-verify-loop.sh +75 -0
  63. package/.codex/skills/genesis-harness/scripts/update-state.sh +33 -33
  64. package/.codex/skills/genesis-harness-engineering/SKILL.md +159 -0
  65. package/.codex/skills/genesis-harness-engineering/checklists/checklist.md +48 -0
  66. package/.codex/skills/genesis-harness-engineering/examples/example.md +57 -0
  67. package/.codex/skills/genesis-harness-engineering/playbooks/harness-evolution.md +99 -0
  68. package/.codex/skills/genesis-harness-engineering/templates/harness-change-template.md +37 -0
  69. package/.codex/skills/genesis-observability-automation/SKILL.md +382 -0
  70. package/.codex/skills/genesis-observability-automation/agents/openai.yaml +7 -0
  71. package/.codex/skills/genesis-observability-automation/examples/example.md +86 -0
  72. package/.codex/skills/genesis-performance-profiling/SKILL.md +510 -0
  73. package/.codex/skills/genesis-performance-profiling/agents/openai.yaml +6 -0
  74. package/.codex/skills/genesis-performance-profiling/checklists/optimization-verification.md +199 -0
  75. package/.codex/skills/genesis-performance-profiling/checklists/performance-baseline.md +183 -0
  76. package/.codex/skills/genesis-performance-profiling/examples/example.md +234 -0
  77. package/.codex/skills/genesis-performance-profiling/observability/performance-tracking.md +202 -0
  78. package/.codex/skills/genesis-performance-profiling/playbooks/load-testing-orchestration.md +593 -0
  79. package/.codex/skills/genesis-performance-profiling/playbooks/profiling-playbook.md +601 -0
  80. package/.codex/skills/genesis-performance-profiling/templates/load-test-config-template.md +428 -0
  81. package/.codex/skills/genesis-performance-profiling/templates/performance-report-template.md +238 -0
  82. package/.codex/skills/genesis-release-orchestration/SKILL.md +653 -0
  83. package/.codex/skills/genesis-release-orchestration/agents/openai.yaml +7 -0
  84. package/.codex/skills/genesis-release-orchestration/checklists/post-deployment-verification.md +274 -0
  85. package/.codex/skills/genesis-release-orchestration/checklists/pre-release-validation.md +220 -0
  86. package/.codex/skills/genesis-release-orchestration/examples/example.md +78 -0
  87. package/.codex/skills/genesis-release-orchestration/observability/release-tracking.md +253 -0
  88. package/.codex/skills/genesis-release-orchestration/playbooks/canary-deployment-orchestration.md +472 -0
  89. package/.codex/skills/genesis-release-orchestration/playbooks/semantic-versioning-automation.md +494 -0
  90. package/.codex/skills/genesis-release-orchestration/templates/deployment-strategy-template.md +303 -0
  91. package/.codex/skills/genesis-release-orchestration/templates/release-runbook-template.md +420 -0
  92. package/.codex/skills/genesis-research-first/SKILL.md +237 -0
  93. package/.codex/skills/genesis-research-first/agents/openai.yaml +7 -0
  94. package/.codex/skills/genesis-research-first/examples/example.md +85 -0
  95. package/.codex/skills/genesis-spec-propagation/SKILL.md +534 -0
  96. package/.codex/skills/genesis-spec-propagation/agents/openai.yaml +7 -0
  97. package/.codex/skills/genesis-spec-propagation/checklists/phase-update-verification.md +384 -0
  98. package/.codex/skills/genesis-spec-propagation/checklists/spec-change-detection.md +257 -0
  99. package/.codex/skills/genesis-spec-propagation/examples/example.md +63 -0
  100. package/.codex/skills/genesis-spec-propagation/observability/propagation-tracking.md +373 -0
  101. package/.codex/skills/genesis-spec-propagation/playbooks/breaking-change-propagation.md +692 -0
  102. package/.codex/skills/genesis-spec-propagation/playbooks/feature-change-propagation.md +434 -0
  103. package/.codex/skills/genesis-spec-propagation/templates/migration-guide-template.md +407 -0
  104. package/.codex/skills/spec-impact-engine/SKILL.md +504 -0
  105. package/.codex/skills/spec-impact-engine/agents/openai.yaml +7 -0
  106. package/.codex/skills/spec-impact-engine/detect-spec-changes.sh +262 -0
  107. package/.codex/skills/spec-impact-engine/examples/example.md +98 -0
  108. package/.codex/skills/spec-impact-engine/templates/impact-report.md +248 -0
  109. package/.codex/skills/spec-impact-engine/templates/migration-guide.md +223 -0
  110. package/.codex-plugin/plugin.json +1 -1
  111. package/README.EN.md +719 -0
  112. package/README.VI.md +712 -0
  113. package/README.md +261 -107
  114. package/VERSION +1 -1
  115. package/bin/genesis-harness.js +20 -11
  116. package/package.json +1 -1
  117. package/scripts/README.md +342 -0
  118. package/scripts/compact-context.sh +54 -0
  119. package/scripts/detect-changes.sh +152 -0
  120. package/scripts/install.sh +50 -41
  121. package/scripts/offload-log.sh +72 -0
  122. package/scripts/run-evals.sh +70 -43
  123. package/scripts/run-verify-loop.sh +75 -0
  124. package/scripts/uninstall.sh +52 -43
  125. package/scripts/verify.sh +165 -73
  126. package/.codex/skills/harness-engineering-skill/SKILL.md +0 -45
  127. package/.codex/skills/harness-engineering-skill/checklists/checklist.md +0 -8
  128. package/.codex/skills/harness-engineering-skill/examples/example.md +0 -4
  129. package/.codex/skills/harness-engineering-skill/templates/harness-change-template.md +0 -8
  130. /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/SKILL.md +0 -0
  131. /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/agents/openai.yaml +0 -0
  132. /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/checklists/checklist.md +0 -0
  133. /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/examples/example.md +0 -0
  134. /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/templates/provider-contract-template.md +0 -0
  135. /package/.codex/skills/{api-contract-skill → genesis-api-contract}/SKILL.md +0 -0
  136. /package/.codex/skills/{api-contract-skill → genesis-api-contract}/agents/openai.yaml +0 -0
  137. /package/.codex/skills/{api-contract-skill → genesis-api-contract}/checklists/checklist.md +0 -0
  138. /package/.codex/skills/{api-contract-skill → genesis-api-contract}/examples/example.md +0 -0
  139. /package/.codex/skills/{api-contract-skill → genesis-api-contract}/templates/api-contract-template.md +0 -0
  140. /package/.codex/skills/{architecture-skill → genesis-architecture}/SKILL.md +0 -0
  141. /package/.codex/skills/{architecture-skill → genesis-architecture}/agents/openai.yaml +0 -0
  142. /package/.codex/skills/{architecture-skill → genesis-architecture}/checklists/checklist.md +0 -0
  143. /package/.codex/skills/{architecture-skill → genesis-architecture}/examples/example.md +0 -0
  144. /package/.codex/skills/{architecture-skill → genesis-architecture}/templates/architecture-decision-template.md +0 -0
  145. /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/SKILL.md +0 -0
  146. /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/agents/openai.yaml +0 -0
  147. /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/checklists/checklist.md +0 -0
  148. /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/examples/example.md +0 -0
  149. /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/templates/map-update-template.md +0 -0
  150. /package/.codex/skills/{design-spec-skill → genesis-design-spec}/SKILL.md +0 -0
  151. /package/.codex/skills/{design-spec-skill → genesis-design-spec}/agents/openai.yaml +0 -0
  152. /package/.codex/skills/{design-spec-skill → genesis-design-spec}/checklists/checklist.md +0 -0
  153. /package/.codex/skills/{design-spec-skill → genesis-design-spec}/examples/example.md +0 -0
  154. /package/.codex/skills/{design-spec-skill → genesis-design-spec}/templates/design-spec-template.md +0 -0
  155. /package/.codex/skills/{docs-skill → genesis-docs}/SKILL.md +0 -0
  156. /package/.codex/skills/{docs-skill → genesis-docs}/agents/openai.yaml +0 -0
  157. /package/.codex/skills/{docs-skill → genesis-docs}/checklists/checklist.md +0 -0
  158. /package/.codex/skills/{docs-skill → genesis-docs}/examples/example.md +0 -0
  159. /package/.codex/skills/{docs-skill → genesis-docs}/templates/docs-update-template.md +0 -0
  160. /package/.codex/skills/{harness-engineering-skill → genesis-harness-engineering}/agents/openai.yaml +0 -0
  161. /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/SKILL.md +0 -0
  162. /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/agents/openai.yaml +0 -0
  163. /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/checklists/checklist.md +0 -0
  164. /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/examples/example.md +0 -0
  165. /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/templates/orchestration-template.md +0 -0
  166. /package/.codex/skills/{planning-skill → genesis-planning}/SKILL.md +0 -0
  167. /package/.codex/skills/{planning-skill → genesis-planning}/agents/openai.yaml +0 -0
  168. /package/.codex/skills/{planning-skill → genesis-planning}/checklists/checklist.md +0 -0
  169. /package/.codex/skills/{planning-skill → genesis-planning}/examples/example.md +0 -0
  170. /package/.codex/skills/{planning-skill → genesis-planning}/templates/plan-template.md +0 -0
  171. /package/.codex/skills/{release-skill → genesis-release}/SKILL.md +0 -0
  172. /package/.codex/skills/{release-skill → genesis-release}/agents/openai.yaml +0 -0
  173. /package/.codex/skills/{release-skill → genesis-release}/checklists/checklist.md +0 -0
  174. /package/.codex/skills/{release-skill → genesis-release}/examples/example.md +0 -0
  175. /package/.codex/skills/{release-skill → genesis-release}/templates/release-checklist-template.md +0 -0
  176. /package/.codex/skills/{research-skill → genesis-research}/SKILL.md +0 -0
  177. /package/.codex/skills/{research-skill → genesis-research}/agents/openai.yaml +0 -0
  178. /package/.codex/skills/{research-skill → genesis-research}/checklists/checklist.md +0 -0
  179. /package/.codex/skills/{research-skill → genesis-research}/examples/example.md +0 -0
  180. /package/.codex/skills/{research-skill → genesis-research}/templates/research-note-template.md +0 -0
@@ -0,0 +1,407 @@
1
+ # Migration Guide Template
2
+
3
+ ## File: docs/migration-{VERSION1}-to-{VERSION2}.md
4
+
5
+ **Use this template** when creating a migration guide for breaking changes.
6
+
7
+ ---
8
+
9
+ # Migration Guide: API v{OLD} → v{NEW}
10
+
11
+ ## 📋 Overview
12
+
13
+ Brief explanation of what changed and why. Keep it to 1-2 sentences.
14
+
15
+ > **In v{NEW}**, we've redesigned the User API to be more RESTful and support new features like avatars and user preferences. This guide helps you migrate from v{OLD} in just a few minutes.
16
+
17
+ ---
18
+
19
+ ## 🎯 What's Changing
20
+
21
+ ### Summary of Changes
22
+
23
+ - **Removed**: List fields/endpoints being removed
24
+ - **Renamed**: List renamed fields/endpoints
25
+ - **Changed**: List structural changes
26
+ - **Added**: List new optional features (usually not breaking)
27
+
28
+ ---
29
+
30
+ ## 📊 Detailed Changes
31
+
32
+ ### Change 1: Removed `avatar` Field
33
+
34
+ **What changed**:
35
+ ```diff
36
+ - "avatar": "/avatars/john.jpg"
37
+ + "avatarUrl": "https://cdn.example.com/avatars/john.jpg"
38
+ ```
39
+
40
+ **Why**:
41
+ - CDN-based URLs are more flexible
42
+ - URL format validation is clearer
43
+ - Better separation of concerns (CDN vs application)
44
+
45
+ **Impact**:
46
+ - Code accessing `user.avatar` will break
47
+ - Need to update to `user.avatarUrl`
48
+ - Affects: Frontend, mobile clients, backend integrations
49
+
50
+ **Timeline**:
51
+ - **v{OLD}.0** (Current): Deprecated - both fields available for compatibility
52
+ - **v{NEW}.0** (January 15): Removed completely
53
+
54
+ ---
55
+
56
+ ### Change 2: Renamed Endpoint `/api/users/:id/profile` → `/api/users/:id`
57
+
58
+ **What changed**:
59
+ ```diff
60
+ - GET /api/users/:id/profile
61
+ + GET /api/users/:id
62
+ ```
63
+
64
+ **Why**: Simplify endpoint structure and follow REST conventions
65
+
66
+ **Impact**: Old endpoint URL will return 404
67
+
68
+ **Timeline**: Removed immediately in v{NEW}
69
+
70
+ ---
71
+
72
+ ## 🚀 How to Migrate
73
+
74
+ ### Prerequisites
75
+
76
+ Before starting, you need:
77
+ - Node.js 16+ or Python 3.9+
78
+ - API client version {NEW}.0 or higher
79
+ - 15 minutes of uninterrupted time
80
+
81
+ ### Step 1: Update Client Library (5 min)
82
+
83
+ Replace the old client with the new version:
84
+
85
+ ```bash
86
+ # NPM
87
+ npm install @example/api-client@{NEW}.0.0
88
+
89
+ # Pip
90
+ pip install example-api-client=={NEW}.0.0
91
+
92
+ # Yarn
93
+ yarn add @example/api-client@{NEW}.0.0
94
+ ```
95
+
96
+ ### Step 2: Identify Breaking Changes in Your Code (3 min)
97
+
98
+ Search for all usages of deprecated fields:
99
+
100
+ ```bash
101
+ # Find all references to 'avatar' field
102
+ grep -r "\.avatar" src/
103
+ grep -r "user\.avatar" src/
104
+ grep -r "'avatar'" src/
105
+
106
+ # Find all calls to old endpoint
107
+ grep -r "/api/users/.*/profile" src/
108
+ grep -r "users/profile" src/
109
+ ```
110
+
111
+ ### Step 3: Update Field References (5 min)
112
+
113
+ Replace all references to the removed field:
114
+
115
+ **Before**:
116
+ ```javascript
117
+ const userAvatar = user.avatar;
118
+ const displayUrl = user.avatar;
119
+ ```
120
+
121
+ **After**:
122
+ ```javascript
123
+ const userAvatar = user.avatarUrl; // New field name
124
+ const displayUrl = user.avatarUrl; // New field name
125
+ ```
126
+
127
+ **UI Example**:
128
+ ```html
129
+ <!-- Before -->
130
+ <img src="https://cdn.example.com{{ user.avatar }}" />
131
+
132
+ <!-- After -->
133
+ <img src="{{ user.avatarUrl }}" />
134
+ ```
135
+
136
+ ### Step 4: Update API Calls (5 min)
137
+
138
+ Replace old endpoints with new ones:
139
+
140
+ **Before**:
141
+ ```javascript
142
+ const profile = await client.get(`/api/users/${userId}/profile`);
143
+ ```
144
+
145
+ **After**:
146
+ ```javascript
147
+ const profile = await client.get(`/api/users/${userId}`);
148
+ ```
149
+
150
+ ### Step 5: Test Your Changes (5 min)
151
+
152
+ Run your test suite to ensure everything works:
153
+
154
+ ```bash
155
+ npm test
156
+ # or
157
+ pytest
158
+ ```
159
+
160
+ Expected: All tests pass ✅
161
+
162
+ ### Step 6: Deploy (5 min)
163
+
164
+ Deploy your changes in normal flow:
165
+
166
+ ```bash
167
+ git add .
168
+ git commit -m "chore: migrate to API v{NEW}"
169
+ git push
170
+ # Deploy as usual...
171
+ ```
172
+
173
+ ---
174
+
175
+ ## 📝 Code Examples
176
+
177
+ ### Example 1: Fetch User Profile
178
+
179
+ **Before (v{OLD})**:
180
+ ```javascript
181
+ async function getUserProfile(userId) {
182
+ const response = await fetch(`https://api.example.com/api/users/${userId}/profile`);
183
+ const user = await response.json();
184
+ return {
185
+ id: user.id,
186
+ name: user.name,
187
+ avatarUrl: user.avatar // Map old field to internal name
188
+ };
189
+ }
190
+ ```
191
+
192
+ **After (v{NEW})**:
193
+ ```javascript
194
+ async function getUserProfile(userId) {
195
+ const response = await fetch(`https://api.example.com/api/users/${userId}`);
196
+ const user = await response.json();
197
+ return {
198
+ id: user.id,
199
+ name: user.name,
200
+ avatarUrl: user.avatarUrl // Field already has right name
201
+ };
202
+ }
203
+ ```
204
+
205
+ ### Example 2: Display User Avatar in React
206
+
207
+ **Before (v{OLD})**:
208
+ ```jsx
209
+ function UserCard({ userId }) {
210
+ const [user, setUser] = useState(null);
211
+
212
+ useEffect(() => {
213
+ fetch(`/api/users/${userId}/profile`)
214
+ .then(r => r.json())
215
+ .then(data => {
216
+ setUser({
217
+ ...data,
218
+ avatar: data.avatar // Old field
219
+ });
220
+ });
221
+ }, [userId]);
222
+
223
+ return (
224
+ <div>
225
+ <h3>{user?.name}</h3>
226
+ <img src={`https://cdn.example.com${user?.avatar}`} />
227
+ </div>
228
+ );
229
+ }
230
+ ```
231
+
232
+ **After (v{NEW})**:
233
+ ```jsx
234
+ function UserCard({ userId }) {
235
+ const [user, setUser] = useState(null);
236
+
237
+ useEffect(() => {
238
+ fetch(`/api/users/${userId}`) // Updated endpoint
239
+ .then(r => r.json())
240
+ .then(setUser);
241
+ }, [userId]);
242
+
243
+ return (
244
+ <div>
245
+ <h3>{user?.name}</h3>
246
+ <img src={user?.avatarUrl} /> // New field (full URL)
247
+ </div>
248
+ );
249
+ }
250
+ ```
251
+
252
+ ### Example 3: TypeScript Types
253
+
254
+ **Before (v{OLD})**:
255
+ ```typescript
256
+ interface User {
257
+ id: number;
258
+ name: string;
259
+ avatar: string; // Path like "/avatars/john.jpg"
260
+ }
261
+ ```
262
+
263
+ **After (v{NEW})**:
264
+ ```typescript
265
+ interface User {
266
+ id: number;
267
+ name: string;
268
+ avatarUrl: string | null; // Full URL or null
269
+ }
270
+ ```
271
+
272
+ ---
273
+
274
+ ## 🆘 Troubleshooting
275
+
276
+ ### Problem: "404 Not Found" on Old Endpoint
277
+
278
+ **Cause**: Using old endpoint `/api/users/:id/profile`
279
+
280
+ **Solution**: Change to `/api/users/:id`
281
+
282
+ ```javascript
283
+ // ❌ Wrong
284
+ await fetch(`/api/users/123/profile`);
285
+
286
+ // ✅ Correct
287
+ await fetch(`/api/users/123`);
288
+ ```
289
+
290
+ ### Problem: "user.avatar is undefined"
291
+
292
+ **Cause**: Field was renamed to `avatarUrl`
293
+
294
+ **Solution**: Update field reference
295
+
296
+ ```javascript
297
+ // ❌ Wrong
298
+ console.log(user.avatar);
299
+
300
+ // ✅ Correct
301
+ console.log(user.avatarUrl);
302
+ ```
303
+
304
+ ### Problem: Images Broken After Update
305
+
306
+ **Cause**: Old field was relative path (`/avatars/john.jpg`), new field is full URL
307
+
308
+ **Solution**: Remove manual URL building
309
+
310
+ ```javascript
311
+ // ❌ Wrong - Building URL from relative path
312
+ <img src={`https://cdn.example.com${user.avatar}`} />
313
+
314
+ // ✅ Correct - avatarUrl is complete
315
+ <img src={user.avatarUrl} />
316
+ ```
317
+
318
+ ### Problem: "Cannot find module" or Import Error
319
+
320
+ **Cause**: Client library not updated to v{NEW}
321
+
322
+ **Solution**: Reinstall packages
323
+
324
+ ```bash
325
+ rm -rf node_modules package-lock.json
326
+ npm install
327
+ ```
328
+
329
+ ### Problem: Tests Still Failing
330
+
331
+ **Cause**: Test fixtures not updated
332
+
333
+ **Solution**: Update test mocks/fixtures
334
+
335
+ ```javascript
336
+ // ❌ Old test fixture
337
+ const mockUser = {
338
+ id: 1,
339
+ avatar: '/avatars/test.jpg'
340
+ };
341
+
342
+ // ✅ New test fixture
343
+ const mockUser = {
344
+ id: 1,
345
+ avatarUrl: 'https://cdn.example.com/avatars/test.jpg'
346
+ };
347
+ ```
348
+
349
+ ---
350
+
351
+ ## 📞 Need Help?
352
+
353
+ - **Documentation**: https://docs.example.com/api/v{NEW}
354
+ - **Email**: support@example.com
355
+ - **Slack**: #api-help
356
+ - **GitHub Issues**: https://github.com/example/api/issues
357
+ - **Community Forum**: https://discuss.example.com
358
+
359
+ ---
360
+
361
+ ## ⏰ Timeline
362
+
363
+ | Date | Event | Action |
364
+ |------|-------|--------|
365
+ | **Today** | Migration announced | Review this guide |
366
+ | **2 weeks** | Deprecation warning emails sent | Update your code |
367
+ | **4 weeks** | Second reminder email | Ensure all changes deployed |
368
+ | **6 weeks** | v{OLD}.0 support ends | Requests to old endpoints return 404 |
369
+ | **8 weeks** | v{OLD} removed from CDN | Clients must be on v{NEW} |
370
+
371
+ ---
372
+
373
+ ## ✅ Migration Checklist
374
+
375
+ Use this checklist to track your migration progress:
376
+
377
+ - [ ] Reviewed "What's Changing" section
378
+ - [ ] Updated client library to v{NEW}.0
379
+ - [ ] Found all usages of `avatar` field (via grep)
380
+ - [ ] Updated all field references to `avatarUrl`
381
+ - [ ] Updated old endpoint `/api/users/:id/profile` → `/api/users/:id`
382
+ - [ ] Updated test fixtures and mocks
383
+ - [ ] Updated TypeScript types (if applicable)
384
+ - [ ] Ran test suite - all passing
385
+ - [ ] Deployed changes to staging
386
+ - [ ] Tested on staging environment
387
+ - [ ] Deployed changes to production
388
+ - [ ] Monitored for errors in production logs
389
+ - [ ] ✅ Migration complete!
390
+
391
+ ---
392
+
393
+ ## 📚 Related Resources
394
+
395
+ - [API Documentation](https://docs.example.com)
396
+ - [API {NEW} Release Notes](https://github.com/example/api/releases/tag/v{NEW}.0.0)
397
+ - [Code Examples](https://github.com/example/api-examples)
398
+ - [Community Examples](https://discuss.example.com/c/examples)
399
+
400
+ ---
401
+
402
+ ## 🎉 You're Done!
403
+
404
+ Your application is now running on API v{NEW}. Enjoy the new features and improved performance!
405
+
406
+ If you encounter any issues, don't hesitate to reach out to our support team.
407
+