codex-genesis-harness 0.1.0 → 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 (328) hide show
  1. package/.codebase/API_CONTRACTS.md +12 -0
  2. package/.codebase/ARCHITECTURE.md +6 -0
  3. package/.codebase/ARCHITECTURE_REVIEW_COMPLETE.md +216 -0
  4. package/.codebase/CURRENT_STATE.md +8 -0
  5. package/.codebase/DEPENDENCY_GRAPH.md +14 -0
  6. package/.codebase/DOMAIN_MODELS.md +10 -0
  7. package/.codebase/EVOLUTION_PLAN.md +35 -0
  8. package/.codebase/FILE_NAMING_CLARIFICATION.md +161 -0
  9. package/.codebase/HARNESS_COMPLETENESS_AUDIT.md +613 -0
  10. package/.codebase/IMPLEMENTATION_COMPLETE.md +429 -0
  11. package/.codebase/IMPLEMENTATION_HANDOFF.md +351 -0
  12. package/.codebase/IMPROVEMENTS_SUMMARY.md +419 -0
  13. package/.codebase/KNOWN_PROBLEMS.md +6 -0
  14. package/.codebase/MODULE_INDEX.md +13 -0
  15. package/.codebase/PHASE3_SKILLS_NAMING_COMPLETE.md +292 -0
  16. package/.codebase/PHASE_DEPENDENCY_MAP.md +486 -0
  17. package/.codebase/PIPELINE_FLOW.md +14 -0
  18. package/.codebase/QUICK_START_SPEC_IMPACT.md +456 -0
  19. package/.codebase/README.md +139 -0
  20. package/.codebase/RECOVERY_POINTS.md +438 -0
  21. package/.codebase/TEST_MATRIX.md +11 -0
  22. package/.codebase/UI_ROUTES.md +4 -0
  23. package/.codebase/context/backend-summary.md +4 -0
  24. package/.codebase/context/frontend-summary.md +4 -0
  25. package/.codebase/context/pipeline-summary.md +4 -0
  26. package/.codebase/context/providers-summary.md +4 -0
  27. package/.codebase/context/render-summary.md +4 -0
  28. package/.codebase/context/tests-summary.md +4 -0
  29. package/.codex/skills/genesis-ai-provider/SKILL.md +46 -0
  30. package/.codex/skills/genesis-ai-provider/agents/openai.yaml +7 -0
  31. package/.codex/skills/genesis-ai-provider/checklists/checklist.md +9 -0
  32. package/.codex/skills/genesis-ai-provider/examples/example.md +4 -0
  33. package/.codex/skills/genesis-ai-provider/templates/provider-contract-template.md +9 -0
  34. package/.codex/skills/genesis-api-contract/SKILL.md +46 -0
  35. package/.codex/skills/genesis-api-contract/agents/openai.yaml +7 -0
  36. package/.codex/skills/genesis-api-contract/checklists/checklist.md +8 -0
  37. package/.codex/skills/genesis-api-contract/examples/example.md +4 -0
  38. package/.codex/skills/genesis-api-contract/templates/api-contract-template.md +4 -0
  39. package/.codex/skills/genesis-api-sync/SKILL.md +354 -0
  40. package/.codex/skills/genesis-api-sync/agents/openai.yaml +7 -0
  41. package/.codex/skills/genesis-api-sync/checklists/api-sync-checklist.md +101 -0
  42. package/.codex/skills/genesis-api-sync/examples/example.md +68 -0
  43. package/.codex/skills/genesis-api-sync/templates/api-change-template.md +257 -0
  44. package/.codex/skills/genesis-architecture/SKILL.md +46 -0
  45. package/.codex/skills/genesis-architecture/agents/openai.yaml +7 -0
  46. package/.codex/skills/genesis-architecture/checklists/checklist.md +8 -0
  47. package/.codex/skills/genesis-architecture/examples/example.md +4 -0
  48. package/.codex/skills/genesis-architecture/templates/architecture-decision-template.md +14 -0
  49. package/.codex/skills/genesis-codebase-map/SKILL.md +46 -0
  50. package/.codex/skills/genesis-codebase-map/agents/openai.yaml +7 -0
  51. package/.codex/skills/genesis-codebase-map/checklists/checklist.md +7 -0
  52. package/.codex/skills/genesis-codebase-map/examples/example.md +4 -0
  53. package/.codex/skills/genesis-codebase-map/templates/map-update-template.md +8 -0
  54. package/.codex/skills/genesis-debug-guide/SKILL.md +479 -0
  55. package/.codex/skills/genesis-debug-guide/agents/openai.yaml +7 -0
  56. package/.codex/skills/genesis-debug-guide/checklists/flaky-test-investigation.md +339 -0
  57. package/.codex/skills/genesis-debug-guide/checklists/production-bug-debug.md +210 -0
  58. package/.codex/skills/genesis-debug-guide/checklists/test-failure-debug.md +158 -0
  59. package/.codex/skills/genesis-debug-guide/examples/example.md +48 -0
  60. package/.codex/skills/genesis-debug-guide/observability/debug-commands.md +365 -0
  61. package/.codex/skills/genesis-debug-guide/playbooks/unit-test-failures.md +289 -0
  62. package/.codex/skills/genesis-debug-guide/templates/debug-investigation-log.md +288 -0
  63. package/.codex/skills/genesis-design-spec/SKILL.md +46 -0
  64. package/.codex/skills/genesis-design-spec/agents/openai.yaml +7 -0
  65. package/.codex/skills/genesis-design-spec/checklists/checklist.md +7 -0
  66. package/.codex/skills/genesis-design-spec/examples/example.md +4 -0
  67. package/.codex/skills/genesis-design-spec/templates/design-spec-template.md +9 -0
  68. package/.codex/skills/genesis-docs/SKILL.md +46 -0
  69. package/.codex/skills/genesis-docs/agents/openai.yaml +7 -0
  70. package/.codex/skills/genesis-docs/checklists/checklist.md +7 -0
  71. package/.codex/skills/genesis-docs/examples/example.md +4 -0
  72. package/.codex/skills/genesis-docs/templates/docs-update-template.md +8 -0
  73. package/.codex/skills/genesis-docs-automation/SKILL.md +1003 -0
  74. package/.codex/skills/genesis-docs-automation/agents/openai.yaml +7 -0
  75. package/.codex/skills/genesis-docs-automation/checklists/docs-validation.md +359 -0
  76. package/.codex/skills/genesis-docs-automation/checklists/spec-alignment.md +312 -0
  77. package/.codex/skills/genesis-docs-automation/examples/example.md +59 -0
  78. package/.codex/skills/genesis-docs-automation/observability/docs-tracking.md +382 -0
  79. package/.codex/skills/genesis-docs-automation/playbooks/auto-update-flow.md +851 -0
  80. package/.codex/skills/genesis-docs-automation/playbooks/changelog-generation.md +491 -0
  81. package/.codex/skills/genesis-docs-automation/templates/changelog-entry-template.md +187 -0
  82. package/.codex/skills/genesis-docs-automation/templates/handoff-template.md +297 -0
  83. package/.codex/skills/genesis-harness/SKILL.md +1418 -0
  84. package/.codex/skills/genesis-harness/agents/openai.yaml +9 -0
  85. package/.codex/skills/genesis-harness/checklists/bug-fix-qa.md +169 -0
  86. package/.codex/skills/genesis-harness/checklists/checklist.md +10 -0
  87. package/.codex/skills/genesis-harness/checklists/new-feature-qa.md +157 -0
  88. package/.codex/skills/genesis-harness/checklists/refactor-qa.md +216 -0
  89. package/.codex/skills/genesis-harness/checklists/requirements-validation.md +211 -0
  90. package/.codex/skills/genesis-harness/examples/example.md +4 -0
  91. package/.codex/skills/genesis-harness/resources/change-impact-matrix-template.md +204 -0
  92. package/.codex/skills/genesis-harness/resources/foundation-phase-template.md +131 -0
  93. package/.codex/skills/genesis-harness/resources/phase-00-foundation-template.md +76 -0
  94. package/.codex/skills/genesis-harness/resources/post-implementation-guide.md +347 -0
  95. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-architecture-boundaries.sh +23 -23
  96. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-docs-sync.sh +24 -24
  97. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-no-debug-logs.sh +21 -21
  98. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-required-planning-files.sh +46 -46
  99. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-spec-changelog.sh +24 -24
  100. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-task-tracking.sh +25 -25
  101. package/.codex/skills/genesis-harness/scripts/compact-context.sh +54 -0
  102. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-adr.sh +74 -74
  103. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-bug.sh +160 -160
  104. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-feature.sh +217 -217
  105. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/detect-stack.sh +26 -26
  106. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/init-planning.sh +750 -719
  107. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/list-changed-files.sh +12 -12
  108. package/.codex/skills/genesis-harness/scripts/offload-log.sh +72 -0
  109. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/run-verification.sh +47 -47
  110. package/.codex/skills/genesis-harness/scripts/run-verify-loop.sh +75 -0
  111. package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/update-state.sh +33 -33
  112. package/.codex/skills/genesis-harness/templates/harness-workflow-template.md +10 -0
  113. package/.codex/skills/genesis-harness-engineering/SKILL.md +159 -0
  114. package/.codex/skills/genesis-harness-engineering/agents/openai.yaml +7 -0
  115. package/.codex/skills/genesis-harness-engineering/checklists/checklist.md +48 -0
  116. package/.codex/skills/genesis-harness-engineering/examples/example.md +57 -0
  117. package/.codex/skills/genesis-harness-engineering/playbooks/harness-evolution.md +99 -0
  118. package/.codex/skills/genesis-harness-engineering/templates/harness-change-template.md +37 -0
  119. package/.codex/skills/genesis-new-design/SKILL.md +95 -0
  120. package/.codex/skills/genesis-new-design/agents/openai.yaml +4 -0
  121. package/.codex/skills/genesis-new-design/checklists/checklist.md +8 -0
  122. package/.codex/skills/genesis-new-design/examples/example.md +4 -0
  123. package/.codex/skills/genesis-new-design/templates/new-design-template.md +9 -0
  124. package/.codex/skills/genesis-observability-automation/SKILL.md +382 -0
  125. package/.codex/skills/genesis-observability-automation/agents/openai.yaml +7 -0
  126. package/.codex/skills/genesis-observability-automation/examples/example.md +86 -0
  127. package/.codex/skills/genesis-performance-profiling/SKILL.md +510 -0
  128. package/.codex/skills/genesis-performance-profiling/agents/openai.yaml +6 -0
  129. package/.codex/skills/genesis-performance-profiling/checklists/optimization-verification.md +199 -0
  130. package/.codex/skills/genesis-performance-profiling/checklists/performance-baseline.md +183 -0
  131. package/.codex/skills/genesis-performance-profiling/examples/example.md +234 -0
  132. package/.codex/skills/genesis-performance-profiling/observability/performance-tracking.md +202 -0
  133. package/.codex/skills/genesis-performance-profiling/playbooks/load-testing-orchestration.md +593 -0
  134. package/.codex/skills/genesis-performance-profiling/playbooks/profiling-playbook.md +601 -0
  135. package/.codex/skills/genesis-performance-profiling/templates/load-test-config-template.md +428 -0
  136. package/.codex/skills/genesis-performance-profiling/templates/performance-report-template.md +238 -0
  137. package/.codex/skills/genesis-pipeline-orchestration/SKILL.md +46 -0
  138. package/.codex/skills/genesis-pipeline-orchestration/agents/openai.yaml +7 -0
  139. package/.codex/skills/genesis-pipeline-orchestration/checklists/checklist.md +12 -0
  140. package/.codex/skills/genesis-pipeline-orchestration/examples/example.md +4 -0
  141. package/.codex/skills/genesis-pipeline-orchestration/templates/orchestration-template.md +12 -0
  142. package/.codex/skills/genesis-planning/SKILL.md +46 -0
  143. package/.codex/skills/genesis-planning/agents/openai.yaml +7 -0
  144. package/.codex/skills/genesis-planning/checklists/checklist.md +8 -0
  145. package/.codex/skills/genesis-planning/examples/example.md +4 -0
  146. package/.codex/skills/genesis-planning/templates/plan-template.md +11 -0
  147. package/.codex/skills/genesis-release/SKILL.md +46 -0
  148. package/.codex/skills/genesis-release/agents/openai.yaml +7 -0
  149. package/.codex/skills/genesis-release/checklists/checklist.md +8 -0
  150. package/.codex/skills/genesis-release/examples/example.md +4 -0
  151. package/.codex/skills/genesis-release/templates/release-checklist-template.md +9 -0
  152. package/.codex/skills/genesis-release-orchestration/SKILL.md +653 -0
  153. package/.codex/skills/genesis-release-orchestration/agents/openai.yaml +7 -0
  154. package/.codex/skills/genesis-release-orchestration/checklists/post-deployment-verification.md +274 -0
  155. package/.codex/skills/genesis-release-orchestration/checklists/pre-release-validation.md +220 -0
  156. package/.codex/skills/genesis-release-orchestration/examples/example.md +78 -0
  157. package/.codex/skills/genesis-release-orchestration/observability/release-tracking.md +253 -0
  158. package/.codex/skills/genesis-release-orchestration/playbooks/canary-deployment-orchestration.md +472 -0
  159. package/.codex/skills/genesis-release-orchestration/playbooks/semantic-versioning-automation.md +494 -0
  160. package/.codex/skills/genesis-release-orchestration/templates/deployment-strategy-template.md +303 -0
  161. package/.codex/skills/genesis-release-orchestration/templates/release-runbook-template.md +420 -0
  162. package/.codex/skills/genesis-research/SKILL.md +46 -0
  163. package/.codex/skills/genesis-research/agents/openai.yaml +7 -0
  164. package/.codex/skills/genesis-research/checklists/checklist.md +7 -0
  165. package/.codex/skills/genesis-research/examples/example.md +4 -0
  166. package/.codex/skills/genesis-research/templates/research-note-template.md +9 -0
  167. package/.codex/skills/genesis-research-first/SKILL.md +237 -0
  168. package/.codex/skills/genesis-research-first/agents/openai.yaml +7 -0
  169. package/.codex/skills/genesis-research-first/examples/example.md +85 -0
  170. package/.codex/skills/genesis-spec-propagation/SKILL.md +534 -0
  171. package/.codex/skills/genesis-spec-propagation/agents/openai.yaml +7 -0
  172. package/.codex/skills/genesis-spec-propagation/checklists/phase-update-verification.md +384 -0
  173. package/.codex/skills/genesis-spec-propagation/checklists/spec-change-detection.md +257 -0
  174. package/.codex/skills/genesis-spec-propagation/examples/example.md +63 -0
  175. package/.codex/skills/genesis-spec-propagation/observability/propagation-tracking.md +373 -0
  176. package/.codex/skills/genesis-spec-propagation/playbooks/breaking-change-propagation.md +692 -0
  177. package/.codex/skills/genesis-spec-propagation/playbooks/feature-change-propagation.md +434 -0
  178. package/.codex/skills/genesis-spec-propagation/templates/migration-guide-template.md +407 -0
  179. package/.codex/skills/genesis-upgrade-design/SKILL.md +97 -0
  180. package/.codex/skills/genesis-upgrade-design/agents/openai.yaml +4 -0
  181. package/.codex/skills/genesis-upgrade-design/checklists/checklist.md +8 -0
  182. package/.codex/skills/genesis-upgrade-design/examples/example.md +4 -0
  183. package/.codex/skills/genesis-upgrade-design/templates/upgrade-design-template.md +9 -0
  184. package/.codex/skills/spec-impact-engine/SKILL.md +504 -0
  185. package/.codex/skills/spec-impact-engine/agents/openai.yaml +7 -0
  186. package/.codex/skills/spec-impact-engine/detect-spec-changes.sh +262 -0
  187. package/.codex/skills/spec-impact-engine/examples/example.md +98 -0
  188. package/.codex/skills/spec-impact-engine/templates/impact-report.md +248 -0
  189. package/.codex/skills/spec-impact-engine/templates/migration-guide.md +223 -0
  190. package/.codex/skills/ui-ux-test-skill/SKILL.md +46 -0
  191. package/.codex/skills/ui-ux-test-skill/agents/openai.yaml +7 -0
  192. package/.codex/skills/ui-ux-test-skill/checklists/checklist.md +8 -0
  193. package/.codex/skills/ui-ux-test-skill/examples/example.md +4 -0
  194. package/.codex/skills/ui-ux-test-skill/templates/playwright-test-template.md +4 -0
  195. package/.codex-plugin/plugin.json +13 -11
  196. package/README.EN.md +719 -0
  197. package/README.VI.md +712 -0
  198. package/README.md +318 -181
  199. package/VERSION +1 -1
  200. package/bin/genesis-harness.js +133 -79
  201. package/contracts/agents/CharacterBibleAgent/error.json +1 -0
  202. package/contracts/agents/CharacterBibleAgent/example.json +1 -0
  203. package/contracts/agents/CharacterBibleAgent/request.json +1 -0
  204. package/contracts/agents/CharacterBibleAgent/response.json +1 -0
  205. package/contracts/agents/CharacterBibleAgent/schema.json +1 -0
  206. package/contracts/agents/ImageGenerationAgent/error.json +1 -0
  207. package/contracts/agents/ImageGenerationAgent/example.json +1 -0
  208. package/contracts/agents/ImageGenerationAgent/request.json +1 -0
  209. package/contracts/agents/ImageGenerationAgent/response.json +1 -0
  210. package/contracts/agents/ImageGenerationAgent/schema.json +1 -0
  211. package/contracts/agents/PipelineOrchestrator/error.json +1 -0
  212. package/contracts/agents/PipelineOrchestrator/example.json +1 -0
  213. package/contracts/agents/PipelineOrchestrator/request.json +1 -0
  214. package/contracts/agents/PipelineOrchestrator/response.json +1 -0
  215. package/contracts/agents/PipelineOrchestrator/schema.json +1 -0
  216. package/contracts/agents/PromptGenerationAgent/error.json +1 -0
  217. package/contracts/agents/PromptGenerationAgent/example.json +1 -0
  218. package/contracts/agents/PromptGenerationAgent/request.json +1 -0
  219. package/contracts/agents/PromptGenerationAgent/response.json +1 -0
  220. package/contracts/agents/PromptGenerationAgent/schema.json +1 -0
  221. package/contracts/agents/RenderAgent/error.json +1 -0
  222. package/contracts/agents/RenderAgent/example.json +1 -0
  223. package/contracts/agents/RenderAgent/request.json +1 -0
  224. package/contracts/agents/RenderAgent/response.json +1 -0
  225. package/contracts/agents/RenderAgent/schema.json +1 -0
  226. package/contracts/agents/ScenePlanningAgent/error.json +1 -0
  227. package/contracts/agents/ScenePlanningAgent/example.json +1 -0
  228. package/contracts/agents/ScenePlanningAgent/request.json +1 -0
  229. package/contracts/agents/ScenePlanningAgent/response.json +1 -0
  230. package/contracts/agents/ScenePlanningAgent/schema.json +1 -0
  231. package/contracts/agents/ScreenplayAgent/error.json +1 -0
  232. package/contracts/agents/ScreenplayAgent/example.json +1 -0
  233. package/contracts/agents/ScreenplayAgent/request.json +1 -0
  234. package/contracts/agents/ScreenplayAgent/response.json +1 -0
  235. package/contracts/agents/ScreenplayAgent/schema.json +1 -0
  236. package/contracts/agents/StoryAnalysisAgent/error.json +1 -0
  237. package/contracts/agents/StoryAnalysisAgent/example.json +1 -0
  238. package/contracts/agents/StoryAnalysisAgent/request.json +1 -0
  239. package/contracts/agents/StoryAnalysisAgent/response.json +1 -0
  240. package/contracts/agents/StoryAnalysisAgent/schema.json +1 -0
  241. package/contracts/agents/SubtitleGenerationAgent/error.json +1 -0
  242. package/contracts/agents/SubtitleGenerationAgent/example.json +1 -0
  243. package/contracts/agents/SubtitleGenerationAgent/request.json +1 -0
  244. package/contracts/agents/SubtitleGenerationAgent/response.json +1 -0
  245. package/contracts/agents/SubtitleGenerationAgent/schema.json +1 -0
  246. package/contracts/agents/VoiceGenerationAgent/error.json +1 -0
  247. package/contracts/agents/VoiceGenerationAgent/example.json +1 -0
  248. package/contracts/agents/VoiceGenerationAgent/request.json +1 -0
  249. package/contracts/agents/VoiceGenerationAgent/response.json +1 -0
  250. package/contracts/agents/VoiceGenerationAgent/schema.json +1 -0
  251. package/contracts/api/README.md +4 -0
  252. package/contracts/api/endpoint-template/error.json +7 -0
  253. package/contracts/api/endpoint-template/example.json +11 -0
  254. package/contracts/api/endpoint-template/request.json +7 -0
  255. package/contracts/api/endpoint-template/response.json +6 -0
  256. package/contracts/api/endpoint-template/schema.json +9 -0
  257. package/contracts/events/README.md +4 -0
  258. package/contracts/events/event-template/error.json +4 -0
  259. package/contracts/events/event-template/example.json +6 -0
  260. package/contracts/events/event-template/request.json +6 -0
  261. package/contracts/events/event-template/response.json +3 -0
  262. package/contracts/events/event-template/schema.json +8 -0
  263. package/contracts/ui/README.md +4 -0
  264. package/contracts/ui/screen-template/error.json +4 -0
  265. package/contracts/ui/screen-template/example.json +7 -0
  266. package/contracts/ui/screen-template/request.json +4 -0
  267. package/contracts/ui/screen-template/response.json +4 -0
  268. package/contracts/ui/screen-template/schema.json +8 -0
  269. package/fixtures/agents/agent-fixture-template.md +14 -0
  270. package/fixtures/api/api-fixture-template.md +14 -0
  271. package/fixtures/images/image-fixture-template.md +14 -0
  272. package/fixtures/pipeline/pipeline-fixture-template.md +14 -0
  273. package/fixtures/render/render-fixture-template.md +14 -0
  274. package/fixtures/tts/tts-fixture-template.md +14 -0
  275. package/fixtures/videos/video-fixture-template.md +14 -0
  276. package/observability/agent-runs/agent-run-template.md +22 -0
  277. package/observability/decision-logs/decision-log-template.md +18 -0
  278. package/observability/failures/failure-template.md +18 -0
  279. package/package.json +8 -2
  280. package/playwright/e2e/e2e-template.md +4 -0
  281. package/playwright/fixtures/ui-fixture-template.md +4 -0
  282. package/playwright/smoke/smoke-template.md +4 -0
  283. package/playwright/visual/visual-regression-template.md +4 -0
  284. package/scripts/README.md +342 -0
  285. package/scripts/compact-context.sh +54 -0
  286. package/scripts/detect-changes.sh +152 -0
  287. package/scripts/install.sh +103 -69
  288. package/scripts/offload-log.sh +72 -0
  289. package/scripts/run-evals.sh +118 -52
  290. package/scripts/run-verify-loop.sh +75 -0
  291. package/scripts/uninstall.sh +81 -52
  292. package/scripts/verify.sh +380 -109
  293. package/tests/contracts/contract-template.test.md +10 -0
  294. package/tests/fixtures/fixture-index.md +4 -0
  295. package/tests/integration/integration-template.test.md +4 -0
  296. package/tests/unit/unit-template.test.md +4 -0
  297. package/.codex/skills/project-genesis-harness/SKILL.md +0 -727
  298. package/.codex/skills/project-genesis-harness/agents/openai.yaml +0 -9
  299. /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/planning-schema.md +0 -0
  300. /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/quality-rubric.md +0 -0
  301. /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/research-rubric.md +0 -0
  302. /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/workflows.md +0 -0
  303. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/agents-template.md +0 -0
  304. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/api-docs-template.md +0 -0
  305. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/architecture-template.md +0 -0
  306. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/audit-template.md +0 -0
  307. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/bug-template.md +0 -0
  308. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/check-template.md +0 -0
  309. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/conventions-template.md +0 -0
  310. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/decision-template.md +0 -0
  311. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/design-template.md +0 -0
  312. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/escalation-template.md +0 -0
  313. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/feature-template.md +0 -0
  314. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/integrations-template.md +0 -0
  315. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/journeys-template.md +0 -0
  316. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/lessons-learned-template.md +0 -0
  317. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/observability-template.md +0 -0
  318. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/phase-template.md +0 -0
  319. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/pitfalls-template.md +0 -0
  320. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/planning-tree-template.md +0 -0
  321. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/project-template.md +0 -0
  322. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/quality-score-template.md +0 -0
  323. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/requirements-template.md +0 -0
  324. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/research-template.md +0 -0
  325. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/review-template.md +0 -0
  326. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/spec-changelog-template.md +0 -0
  327. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/stack-template.md +0 -0
  328. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/verification-template.md +0 -0
@@ -0,0 +1,384 @@
1
+ # Phase-Specific Update Verification
2
+
3
+ Verify that each phase was updated correctly after automatic propagation.
4
+
5
+ ---
6
+
7
+ ## Phase 2: Test Updates
8
+
9
+ ### Checklist: Test Mocks Updated
10
+
11
+ - [ ] Mock data file identified: `tests/fixtures/mocks/*.js`
12
+ - [ ] Old mock data removed (if breaking)
13
+ - [ ] New mock data structure matches API spec
14
+ - [ ] All required fields in mocks
15
+ - [ ] Optional fields handled correctly
16
+ - [ ] Test data types match API response types
17
+
18
+ **Example**:
19
+ ```javascript
20
+ // Before propagation
21
+ const mockUser = {
22
+ id: 1,
23
+ name: 'John',
24
+ avatar: '/avatar.png' // This was removed
25
+ };
26
+
27
+ // After propagation
28
+ const mockUser = {
29
+ id: 1,
30
+ name: 'John'
31
+ // avatar removed - matches new API spec
32
+ };
33
+ ```
34
+
35
+ ### Checklist: Test Assertions Updated
36
+
37
+ - [ ] Assertions check new fields (if feature change)
38
+ - [ ] Assertions removed for deleted fields (if breaking)
39
+ - [ ] Type assertions match new types
40
+ - [ ] Optional vs required assertions correct
41
+ - [ ] Test descriptions updated
42
+
43
+ **Example**:
44
+ ```javascript
45
+ // Before
46
+ expect(response.avatar).toBeDefined();
47
+ expect(response.avatar).toMatch(/^\/\w+\.png$/);
48
+
49
+ // After (avatar removed)
50
+ expect(response).not.toHaveProperty('avatar');
51
+ ```
52
+
53
+ ### Checklist: Test Descriptions
54
+
55
+ - [ ] Test descriptions match new spec
56
+ - [ ] Comments explain new test scenarios
57
+ - [ ] "What changed" explained in test comments
58
+ - [ ] No outdated comments about removed fields
59
+
60
+ ### Validation
61
+
62
+ ```bash
63
+ # Run Phase 2 tests
64
+ npm test -- tests/
65
+ # All tests passing? ✅
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Phase 3: Backend Contract Updates
71
+
72
+ ### Checklist: API Contract Schema
73
+
74
+ - [ ] Contract file identified: `contracts/api/response.json`
75
+ - [ ] Schema matches new API spec exactly
76
+ - [ ] New fields added (if feature)
77
+ - [ ] Old fields removed (if breaking)
78
+ - [ ] Field types correct
79
+ - [ ] Required vs optional correct
80
+ - [ ] Validation rules updated
81
+ - [ ] Comments/descriptions updated
82
+
83
+ **Example**:
84
+ ```json
85
+ {
86
+ "type": "object",
87
+ "properties": {
88
+ "id": { "type": "integer" },
89
+ "name": { "type": "string" },
90
+ // "avatar" removed - breaking change
91
+ "email": { "type": "string", "format": "email" } // new optional
92
+ },
93
+ "required": ["id", "name"] // avatar removed from required
94
+ }
95
+ ```
96
+
97
+ ### Checklist: Database Schema
98
+
99
+ If database schema affected:
100
+ - [ ] Schema change identified in `contracts/db/schema.json`
101
+ - [ ] Migration script generated (if breaking)
102
+ - [ ] Backward compatibility considered (if applicable)
103
+ - [ ] Indexes updated (if necessary)
104
+ - [ ] Rollback procedure documented
105
+
106
+ ### Checklist: Implementation Docstring
107
+
108
+ - [ ] Handler docstring updated with new parameters
109
+ - [ ] Response structure documented correctly
110
+ - [ ] Breaking changes noted in docstring
111
+ - [ ] Migration path mentioned (if breaking)
112
+
113
+ **Example**:
114
+ ```javascript
115
+ /**
116
+ * GET /api/users/:id
117
+ *
118
+ * Returns user data (v2 format).
119
+ *
120
+ * BREAKING CHANGE (v2): Field 'avatar' removed. Use 'avatarUrl' instead.
121
+ * Migration: https://docs.example.com/migration-v1-to-v2
122
+ *
123
+ * Response: { id, name, avatarUrl?, email? }
124
+ */
125
+ handler.get('/users/:id', (req, res) => { ... });
126
+ ```
127
+
128
+ ### Validation
129
+
130
+ ```bash
131
+ # Validate API contract
132
+ npm run validate:contracts
133
+
134
+ # Type check
135
+ npm run tsc --noEmit
136
+
137
+ # All valid? ✅
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Phase 4: Client SDK Updates
143
+
144
+ ### Checklist: Type Definitions
145
+
146
+ - [ ] Type file identified: `types/api.ts`
147
+ - [ ] Interface definition matches API contract
148
+ - [ ] New fields added with correct types (if feature)
149
+ - [ ] Old fields removed (if breaking)
150
+ - [ ] Optional vs required correct
151
+ - [ ] Union types updated if applicable
152
+
153
+ **Example**:
154
+ ```typescript
155
+ // Before
156
+ interface User {
157
+ id: number;
158
+ name: string;
159
+ avatar: string;
160
+ }
161
+
162
+ // After
163
+ interface User {
164
+ id: number;
165
+ name: string;
166
+ avatarUrl?: string; // Optional, new field
167
+ email?: string; // Optional, new field
168
+ // avatar removed
169
+ }
170
+ ```
171
+
172
+ ### Checklist: Client Methods
173
+
174
+ - [ ] Client method signatures updated (if breaking)
175
+ - [ ] Return types match new API contract
176
+ - [ ] Parameter types updated
177
+ - [ ] Optional parameters marked correctly
178
+
179
+ **Example**:
180
+ ```typescript
181
+ // Before
182
+ fetchUser(id: number): Promise<User & { avatar: string }> { ... }
183
+
184
+ // After
185
+ fetchUser(id: number): Promise<User> { ... }
186
+ // avatar removed from return type
187
+ ```
188
+
189
+ ### Checklist: Serialization/Deserialization
190
+
191
+ - [ ] Serialization logic updated (request → API)
192
+ - [ ] Deserialization logic updated (API → client)
193
+ - [ ] Field mapping updated if breaking
194
+ - [ ] Type casting correct
195
+
196
+ ### Checklist: Deprecation Warnings (BREAKING ONLY)
197
+
198
+ - [ ] Deprecation notice added to affected methods
199
+ - [ ] Migration path documented
200
+ - [ ] Timeline for removal specified
201
+ - [ ] Alternative methods suggested
202
+
203
+ **Example**:
204
+ ```typescript
205
+ /**
206
+ * @deprecated Use fetchUser() instead, avatar field removed in v2
207
+ * Migration: https://docs.example.com/migration-v1-to-v2
208
+ * Removal date: 2026-12-31
209
+ */
210
+ fetchUserWithAvatar(id: number): Promise<User> { ... }
211
+ ```
212
+
213
+ ### Validation
214
+
215
+ ```bash
216
+ # Type check
217
+ npm run tsc --noEmit
218
+
219
+ # Any type errors? ❌
220
+ # All types valid? ✅
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Phase 5: E2E Test Updates
226
+
227
+ ### Checklist: Scenario Files
228
+
229
+ - [ ] Scenario file identified: `playwright/e2e/scenarios.md`
230
+ - [ ] New scenarios added for new fields (if feature)
231
+ - [ ] Old scenarios removed or updated (if breaking)
232
+ - [ ] Scenarios reference correct Phase 4 SDK methods
233
+ - [ ] Test data matches updated spec
234
+
235
+ **Example**:
236
+ ```markdown
237
+ ## Create User with Email
238
+
239
+ - Input: { name: "John", email: "john@example.com" }
240
+ - Expected: User created with email field
241
+ - ❌ Removed: "Create User with Avatar" (avatar removed in v2)
242
+ ```
243
+
244
+ ### Checklist: E2E Assertions
245
+
246
+ - [ ] Assertions check new fields (if feature)
247
+ - [ ] Assertions removed for deleted fields (if breaking)
248
+ - [ ] Assertions match new API response structure
249
+ - [ ] Element selectors still valid (if UI affected)
250
+
251
+ **Example**:
252
+ ```javascript
253
+ // Before
254
+ page.locator('[data-test="user-avatar"]').isVisible()
255
+
256
+ // After (avatar removed from UI)
257
+ page.locator('[data-test="user-avatar"]').isHidden()
258
+ // OR removed entirely if no UI replacement
259
+ ```
260
+
261
+ ### Checklist: Test Data
262
+
263
+ - [ ] Test data fixtures match new API spec
264
+ - [ ] Mock responses updated if needed
265
+ - [ ] Page objects reference updated fields
266
+ - [ ] Helper functions updated
267
+
268
+ ### Checklist: Page Objects
269
+
270
+ - [ ] Page object selectors match updated UI
271
+ - [ ] Methods return correct data types
272
+ - [ ] No references to removed fields
273
+
274
+ ### Validation
275
+
276
+ ```bash
277
+ # Run E2E tests (subset to verify updates)
278
+ npm run test:e2e -- --grep "User"
279
+
280
+ # All E2E tests passing? ✅
281
+ ```
282
+
283
+ ---
284
+
285
+ ## Cross-Phase Consistency Check
286
+
287
+ After all phases updated, verify they're still aligned.
288
+
289
+ ### Type System Alignment
290
+
291
+ - [ ] Phase 3 API contract types ⊂ Phase 4 SDK types?
292
+ - [ ] Phase 2 test data types match Phase 3 API response?
293
+ - [ ] Phase 5 test data types match Phase 4 SDK input?
294
+
295
+ **Check**: Types shouldn't require conversion between phases
296
+
297
+ ### Data Flow Alignment
298
+
299
+ ```
300
+ Phase 2: Mock data
301
+ ↓ (matches)
302
+ Phase 3: API response schema
303
+ ↓ (matches)
304
+ Phase 4: Client type definitions
305
+ ↓ (matches)
306
+ Phase 5: E2E test expectations
307
+ ```
308
+
309
+ - [ ] Mock → API Contract: Same fields & types
310
+ - [ ] API Contract → Client Types: Same structure
311
+ - [ ] Client Types → E2E Tests: Same data
312
+
313
+ ### Method Call Alignment
314
+
315
+ - [ ] Phase 5 E2E calls Phase 4 methods correctly
316
+ - [ ] Phase 4 SDK methods call Phase 3 endpoints correctly
317
+ - [ ] Phase 2 tests verify same behavior as Phase 3
318
+
319
+ ### Validation
320
+
321
+ ```bash
322
+ # Run all tests together
323
+ npm run test:full
324
+
325
+ # No integration errors? ✅
326
+ # No type mismatches? ✅
327
+ ```
328
+
329
+ ---
330
+
331
+ ## Conflict Resolution
332
+
333
+ If any phase is out of sync with others, document the conflict.
334
+
335
+ ### Conflict Recording
336
+
337
+ Create `CONFLICT_LOG.md` entry:
338
+
339
+ ```markdown
340
+ ## Conflict: Phase 3 ↔ Phase 4 Type Mismatch
341
+
342
+ **Date**: 2026-05-31
343
+ **Severity**: HIGH
344
+ **Change**: API response removed 'avatar' field
345
+
346
+ **Conflict Details**:
347
+ - Phase 3 API contract: { id, name, email } ✓
348
+ - Phase 4 SDK types: { id, name, avatar, email } ✗
349
+ - Mismatch: avatar field in SDK but not in API
350
+
351
+ **Resolution**:
352
+ 1. Remove avatar from Phase 4 types
353
+ 2. Add deprecation warning
354
+ 3. Re-run validation
355
+
356
+ **Status**: RESOLVED
357
+ ```
358
+
359
+ ### Manual Intervention
360
+
361
+ If conflicts found:
362
+ 1. **Identify**: Which phases are misaligned?
363
+ 2. **Cause**: Why did propagation miss this?
364
+ 3. **Fix**: Manual update to misaligned phase
365
+ 4. **Document**: Add to CONFLICT_LOG.md
366
+ 5. **Re-validate**: Run tests again
367
+ 6. **Improve**: Update patterns to prevent recurrence
368
+
369
+ ---
370
+
371
+ ## Sign-Off Checklist
372
+
373
+ Once all updates complete and validated:
374
+
375
+ - [ ] Phase 2 tests: All green ✅
376
+ - [ ] Phase 3 contract: Valid & aligned ✅
377
+ - [ ] Phase 4 SDK: Types correct & synchronized ✅
378
+ - [ ] Phase 5 E2E: Tests pass & scenarios updated ✅
379
+ - [ ] Cross-phase consistency: Verified ✅
380
+ - [ ] No conflicts: All aligned ✅
381
+ - [ ] Migration guide: Complete (if breaking) ✅
382
+ - [ ] SPEC_CHANGELOG.md: Entry added ✅
383
+ - [ ] Ready for commit ✅
384
+
@@ -0,0 +1,257 @@
1
+ # Spec Change Detection Checklist
2
+
3
+ ## Pre-Propagation Verification
4
+
5
+ Verify before starting automatic propagation.
6
+
7
+ ### 1. Change Documentation ✓
8
+
9
+ - [ ] Change is well-documented (why changed, impact)
10
+ - [ ] Old spec vs new spec available for comparison
11
+ - [ ] Change type identified (breaking/feature/non-impact)
12
+ - [ ] SPEC_CHANGELOG.md entry created (if not, auto-append)
13
+
14
+ ### 2. Change Validity
15
+
16
+ - [ ] Change is intentional (not a mistake)
17
+ - [ ] Change doesn't introduce new technical debt
18
+ - [ ] Change is aligned with project architecture
19
+ - [ ] Change doesn't violate any contracts or constraints
20
+
21
+ **If any "No"**: STOP propagation, review change with team before continuing.
22
+
23
+ ---
24
+
25
+ ## Change Type Classification
26
+
27
+ Classify the change before propagation determines update strategy.
28
+
29
+ ### BREAKING CHANGE
30
+
31
+ **Indicators**:
32
+ - ❌ Removed field from API response
33
+ - ❌ Changed field type (number → string, optional → required)
34
+ - ❌ Removed database column
35
+ - ❌ Changed endpoint URL or method
36
+ - ❌ Changed validation rule (stricter or behavioral change)
37
+ - ❌ Renamed field
38
+
39
+ **Examples**:
40
+ ```diff
41
+ - { "userId": 123 } → { "id": 123 } // Renamed field
42
+ - { "status": "active" } → { "status": 1 } // Type changed
43
+ + { "email": "required" } // Made required when optional
44
+ ```
45
+
46
+ **Propagation Complexity**: HIGH (manual review recommended)
47
+ **Downstream Impact**: Major (all phases affected)
48
+ **Time to Update**: 2-4 hours (includes design decisions)
49
+
50
+ ---
51
+
52
+ ### FEATURE CHANGE
53
+
54
+ **Indicators**:
55
+ - ✅ Added new optional field to API response
56
+ - ✅ Added new optional parameter to function
57
+ - ✅ Added new endpoint or operation
58
+ - ✅ Added new validation (optional field)
59
+ - ✅ Extended enum with new value
60
+ - ✅ Made field optional (was required)
61
+
62
+ **Examples**:
63
+ ```diff
64
+ + { "avatarUrl": "https://..." } // New optional field
65
+ + { "tags": [] } // New optional array
66
+ + POST /api/users/export // New endpoint
67
+ + "status" in ["active", "inactive", "archived"] // Extended enum
68
+ ```
69
+
70
+ **Propagation Complexity**: MEDIUM (mostly automatic)
71
+ **Downstream Impact**: Moderate (Phase 2, 3, 5 affected)
72
+ **Time to Update**: 30-60 minutes
73
+
74
+ ---
75
+
76
+ ### NON-IMPACT CHANGE
77
+
78
+ **Indicators**:
79
+ - 📝 Updated description/documentation
80
+ - 📝 Updated example values
81
+ - 📝 Formatting/styling change
82
+ - 📝 Reordered fields (same data)
83
+ - 📝 Updated comment (code, not logic)
84
+
85
+ **Examples**:
86
+ ```diff
87
+ - "description": "User name" → "description": "Full name of user"
88
+ - { "id": 1, "name": "John" } → { "name": "John", "id": 1 } // Reordered
89
+ - 200 → 200 // Same HTTP status, just reformatted
90
+ ```
91
+
92
+ **Propagation Complexity**: LOW (minimal updates)
93
+ **Downstream Impact**: Minimal (maybe Phase 2 only for docs)
94
+ **Time to Update**: 5-10 minutes
95
+
96
+ ---
97
+
98
+ ## Affected Phase Detection Checklist
99
+
100
+ Verify the right phases are identified as affected.
101
+
102
+ ### Phase 2: Tests
103
+ - [ ] Test mocks need updating? (breaking/feature)
104
+ - [ ] Test data needs updating? (breaking/feature)
105
+ - [ ] Test assertions need updating? (breaking)
106
+ - [ ] Affected test file identified?
107
+
108
+ ### Phase 3: Backend Implementation
109
+ - [ ] API contract changes? (all types)
110
+ - [ ] Response builder affected? (breaking/feature)
111
+ - [ ] Request validation affected? (breaking)
112
+ - [ ] Database schema affected? (breaking - migration needed)
113
+ - [ ] Handler docstring needs update? (breaking)
114
+
115
+ ### Phase 4: Client SDK
116
+ - [ ] Client method signatures affected? (breaking)
117
+ - [ ] Type definitions need update? (breaking/feature)
118
+ - [ ] Serialization logic affected? (breaking)
119
+ - [ ] Deprecation warnings needed? (breaking)
120
+
121
+ ### Phase 5: E2E Tests
122
+ - [ ] E2E scenarios need new test cases? (feature)
123
+ - [ ] E2E assertions need updating? (breaking)
124
+ - [ ] E2E data needs updating? (breaking/feature)
125
+ - [ ] New scenarios for new fields? (feature)
126
+
127
+ **Validation**: At least Phase 2 OR Phase 3 should be "Yes" for any change.
128
+
129
+ ---
130
+
131
+ ## Dependency Path Verification
132
+
133
+ Confirm propagation order is correct (topological sort).
134
+
135
+ ### Valid Propagation Order
136
+
137
+ 1. **Phase 1**: Original spec change ✅
138
+ 2. **Phase 2**: Tests updated (independent of implementation)
139
+ 3. **Phase 3**: Backend implementation aligned with updated tests
140
+ 4. **Phase 4**: Client SDK updated to match Phase 3 API
141
+ 5. **Phase 5**: E2E tests updated to use Phase 4 SDK + Phase 3 API
142
+
143
+ ### Order Validation Checklist
144
+
145
+ - [ ] Phase 2 updates don't depend on Phase 3 changes (true for mocks)
146
+ - [ ] Phase 3 updates use Phase 2 tests as reference
147
+ - [ ] Phase 4 updates don't precede Phase 3 (SDK depends on API)
148
+ - [ ] Phase 5 updates reference Phase 4 SDK + Phase 3 API
149
+
150
+ **If any violated**: Stop, reorder phases before propagation.
151
+
152
+ ---
153
+
154
+ ## Manual Update Trigger
155
+
156
+ When should manual review override automatic updates?
157
+
158
+ ### Require Manual Review If...
159
+
160
+ **CRITICAL TRIGGERS** (Stop propagation):
161
+ - [ ] Breaking change + no clear migration path
162
+ - [ ] Change affects 5+ files in Phase 3
163
+ - [ ] Database migration needed (breaking + data loss risk)
164
+ - [ ] API version bump needed (breaking)
165
+ - [ ] SDK deprecation policy violated
166
+ - [ ] Contract violates architectural constraint
167
+
168
+ **RECOMMENDED REVIEW** (Proceed with caution):
169
+ - [ ] Feature change affecting Phase 3 + Phase 4 together
170
+ - [ ] Type system needs re-design (e.g., union type)
171
+ - [ ] Performance implications (schema change, new indexes)
172
+ - [ ] Security implication (new validation, encryption)
173
+
174
+ **AUTOMATIC OK** (Can auto-propagate):
175
+ - [ ] Optional field addition (feature)
176
+ - [ ] Optional parameter addition (feature)
177
+ - [ ] New endpoint (feature)
178
+ - [ ] New enum value (feature)
179
+ - [ ] Documentation update (non-impact)
180
+
181
+ ---
182
+
183
+ ## Conflict Detection Checklist
184
+
185
+ Watch for conflicts during propagation.
186
+
187
+ ### Potential Conflicts
188
+
189
+ **Phase 2 ↔ Phase 3**:
190
+ - [ ] Phase 2 mocks outdated when Phase 3 was implemented?
191
+ - [ ] Phase 3 handler not aligned with Phase 2 expectations?
192
+
193
+ **Phase 3 ↔ Phase 4**:
194
+ - [ ] Phase 4 SDK has workarounds for Phase 3 quirks?
195
+ - [ ] Backward compatibility code in Phase 4 would break?
196
+
197
+ **Phase 4 ↔ Phase 5**:
198
+ - [ ] Phase 5 tests rely on deprecated Phase 4 methods?
199
+ - [ ] Phase 5 hardcodes values from Phase 4 SDK?
200
+
201
+ **All Phases**:
202
+ - [ ] Any hardcoded values in tests/implementation?
203
+ - [ ] Any duplicate data definitions (brittleness)?
204
+ - [ ] Any circular dependencies?
205
+
206
+ **If conflicts found**: Document in CONFLICT_LOG.md, escalate for manual resolution.
207
+
208
+ ---
209
+
210
+ ## Post-Propagation Validation
211
+
212
+ After automatic updates, verify everything still works.
213
+
214
+ ### Syntax Validation
215
+
216
+ - [ ] Phase 2 test files are valid JavaScript
217
+ - [ ] Phase 3 contract files are valid JSON
218
+ - [ ] Phase 4 type files are valid TypeScript
219
+ - [ ] Phase 5 scenario files are valid Markdown
220
+
221
+ ### Semantic Validation
222
+
223
+ - [ ] Phase 2 tests make logical sense (not just syntactically valid)
224
+ - [ ] Phase 3 contract accurately describes new API
225
+ - [ ] Phase 4 types match Phase 3 contract structure
226
+ - [ ] Phase 5 scenarios reference Phase 4 SDK correctly
227
+
228
+ ### Integration Testing
229
+
230
+ - [ ] Run Phase 2 tests: `npm test -- tests/`
231
+ - [ ] Run Phase 3 validation: `npm run validate:contracts`
232
+ - [ ] Run Phase 4 type check: `npm run tsc --noEmit`
233
+ - [ ] Run Phase 5 E2E: `npm run test:e2e` (subset)
234
+
235
+ ### All Tests Green?
236
+
237
+ - [ ] Yes → Propagation successful ✅
238
+ - [ ] No → Identify failing tests, manual review needed ⚠️
239
+
240
+ ---
241
+
242
+ ## Migration Guide Checklist (BREAKING CHANGES ONLY)
243
+
244
+ For breaking changes, verify migration guide is complete.
245
+
246
+ - [ ] Migration guide file exists (e.g., `docs/migration-v2-to-v3.md`)
247
+ - [ ] "What changed" section complete
248
+ - [ ] "Why changed" section explains rationale
249
+ - [ ] "Impact" section lists affected consumers
250
+ - [ ] "Migration steps" are clear and step-by-step
251
+ - [ ] "Timeline" specified (deprecation period, cutoff date)
252
+ - [ ] "Rollback procedure" documented
253
+ - [ ] "Backward compatibility period" specified (if any)
254
+ - [ ] Examples of old vs new code provided
255
+
256
+ **If migration guide incomplete**: Block commit until complete.
257
+
@@ -0,0 +1,63 @@
1
+ # Example: Propagating a Breaking API Change Across Phases
2
+
3
+ ## Scenario
4
+
5
+ The Phase 1 API contract for `GET /api/users/:id` is updated to change the response:
6
+
7
+ ```
8
+ Before: { name, email, role }
9
+ After: { id, name, email, roles[] }
10
+ ```
11
+
12
+ This is a **BREAKING** change — `role` (string) is replaced by `roles[]` (array).
13
+
14
+ ## Trigger
15
+
16
+ ```
17
+ /spec-change .planning/API_DOCS.md
18
+ ```
19
+
20
+ Auto-triggered after `/spec-change` completes.
21
+
22
+ ## Phase 1: Change Detection (5 min)
23
+
24
+ ```
25
+ Detected: BREAKING change in .planning/API_DOCS.md
26
+ - Removed field: role (string)
27
+ - Added field: roles (array)
28
+ - Affected section: GET /api/users/:id response
29
+ ```
30
+
31
+ ## Phase 2: Impact Analysis (10 min)
32
+
33
+ ```
34
+ Dependency graph traced:
35
+ Phase 2 (Tests): HIGH — 5 mock assertions use role field
36
+ Phase 3 (Backend): HIGH — response builder must return roles array
37
+ Phase 4 (SDK): MEDIUM — interface User needs roles: string[]
38
+ Phase 5 (E2E): LOW — update 2 role-checking scenarios
39
+ ```
40
+
41
+ ## Phase 3: Auto-Updates Applied (15 min)
42
+
43
+ - **Phase 2** `tests/api-mocks.test.ts` — Updated `expect(response.role)` → `expect(response.roles[0])`
44
+ - **Phase 3** `contracts/api/GetUser/response.json` — Schema updated to include `roles` array
45
+ - **Phase 4** `types/api.ts` — `interface User { roles: string[] }` replacing `role: string`
46
+ - **Phase 5** `playwright/e2e/user-profile.spec.ts` — Updated 2 role-check assertions
47
+
48
+ ## Migration Guide Generated
49
+
50
+ ```markdown
51
+ ## BREAKING: role → roles[] in GET /api/users/:id
52
+
53
+ Migration: Replace `user.role` with `user.roles[0]` for primary role access.
54
+ Timeline: Migrate before v3.0.0 release.
55
+ ```
56
+
57
+ ## Outcome
58
+
59
+ - ✅ All 4 phases updated automatically
60
+ - ✅ Tests re-run and passing
61
+ - ✅ Migration guide created
62
+ - ✅ SPEC_CHANGELOG.md entry added
63
+ - ✅ 45 min manual work → 30 min automated