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
@@ -3,15 +3,41 @@
3
3
 
4
4
  const fs = require("fs");
5
5
  const path = require("path");
6
- const { spawnSync } = require("child_process");
7
-
8
- const packageRoot = path.resolve(__dirname, "..");
9
- const skillName = "project-genesis-harness";
10
- const sourceDir = path.join(packageRoot, ".codex", "skills", skillName);
11
- const codexHome = process.env.CODEX_HOME || path.join(process.env.HOME || "", ".codex");
12
- const agentsHome = process.env.GENESIS_HARNESS_HOME || path.join(process.env.HOME || "", ".agents");
13
- const legacyTargetDir = path.join(codexHome, "skills", skillName);
14
- const agentsTargetDir = path.join(agentsHome, "skills", skillName);
6
+ const { spawnSync } = require("child_process");
7
+
8
+ const packageRoot = path.resolve(__dirname, "..");
9
+ const skillNames = [
10
+ "genesis-harness",
11
+ "genesis-new-design",
12
+ "genesis-upgrade-design",
13
+ "genesis-architecture",
14
+ "genesis-planning",
15
+ "genesis-codebase-map",
16
+ "genesis-design-spec",
17
+ "genesis-api-contract",
18
+ "ui-ux-test-skill",
19
+ "genesis-harness-engineering",
20
+ "genesis-ai-provider",
21
+ "genesis-pipeline-orchestration",
22
+ "genesis-research",
23
+ "genesis-docs",
24
+ "genesis-release",
25
+ "genesis-api-sync",
26
+ "genesis-debug-guide",
27
+ "genesis-docs-automation",
28
+ "genesis-spec-propagation",
29
+ "genesis-release-orchestration",
30
+ "genesis-performance-profiling",
31
+ "genesis-observability-automation",
32
+ "genesis-research-first",
33
+ "spec-impact-engine"
34
+ ];
35
+ const legacySkillNames = ["project-genesis-harness"];
36
+ const sourceRoot = path.join(packageRoot, ".codex", "skills");
37
+ const codexHome = process.env.CODEX_HOME || path.join(process.env.HOME || "", ".codex");
38
+ const agentsHome = process.env.GENESIS_HARNESS_HOME || path.join(process.env.HOME || "", ".agents");
39
+ const legacySkillsRoot = path.join(codexHome, "skills");
40
+ const agentsSkillsRoot = path.join(agentsHome, "skills");
15
41
 
16
42
  function usage(exitCode = 0) {
17
43
  const text = `
@@ -37,12 +63,14 @@ function fail(message) {
37
63
  process.exit(1);
38
64
  }
39
65
 
40
- function ensureSource() {
41
- const skillFile = path.join(sourceDir, "SKILL.md");
42
- if (!fs.existsSync(skillFile)) {
43
- fail(`missing packaged skill at ${skillFile}`);
44
- }
45
- }
66
+ function ensureSource() {
67
+ for (const skillName of skillNames) {
68
+ const skillFile = path.join(sourceRoot, skillName, "SKILL.md");
69
+ if (!fs.existsSync(skillFile)) {
70
+ fail(`missing packaged skill at ${skillFile}`);
71
+ }
72
+ }
73
+ }
46
74
 
47
75
  function parseTarget(args, fallback = "both") {
48
76
  let target = fallback;
@@ -58,55 +86,78 @@ function parseTarget(args, fallback = "both") {
58
86
  return target;
59
87
  }
60
88
 
61
- function targetDirs(target) {
62
- if (target === "agents") return [agentsTargetDir];
63
- if (target === "legacy") return [legacyTargetDir];
64
- return [agentsTargetDir, legacyTargetDir];
65
- }
66
-
67
- function copySkill({ quiet = false, target = "both" } = {}) {
68
- ensureSource();
69
- for (const dir of targetDirs(target)) {
70
- fs.mkdirSync(path.dirname(dir), { recursive: true });
71
-
72
- if (fs.existsSync(dir)) {
73
- const backupDir = `${dir}.backup.${timestamp()}`;
74
- fs.renameSync(dir, backupDir);
75
- if (!quiet) console.log(`Existing skill backed up to: ${backupDir}`);
76
- }
77
-
78
- fs.cpSync(sourceDir, dir, { recursive: true });
79
- chmodScripts(path.join(dir, "scripts"));
80
-
81
- if (!quiet) console.log(`Installed ${skillName} to: ${dir}`);
82
- }
83
-
84
- if (!quiet) console.log(`Restart Codex, then invoke: Use $${skillName}`);
85
- }
86
-
87
- function uninstallSkill(target = "both") {
88
- for (const dir of targetDirs(target)) {
89
- if (!fs.existsSync(dir)) {
90
- console.log(`Skill is not installed at: ${dir}`);
91
- continue;
92
- }
93
- fs.rmSync(dir, { recursive: true, force: true });
94
- console.log(`Removed: ${dir}`);
95
- }
96
- }
97
-
98
- function verifySkill(target = "both") {
99
- const verifyScript = path.join(packageRoot, "scripts", "verify.sh");
100
- if (!fs.existsSync(verifyScript)) fail(`missing verify script at ${verifyScript}`);
101
-
102
- for (const verifyTarget of targetDirs(target)) {
103
- const result = spawnSync("bash", [verifyScript, verifyTarget], {
104
- stdio: "inherit",
105
- env: process.env
106
- });
107
- if (result.status) process.exit(result.status);
108
- }
109
- }
89
+ function targetRoots(target) {
90
+ if (target === "agents") return [agentsSkillsRoot];
91
+ if (target === "legacy") return [legacySkillsRoot];
92
+ return [agentsSkillsRoot, legacySkillsRoot];
93
+ }
94
+
95
+ function copySkills({ quiet = false, target = "both" } = {}) {
96
+ ensureSource();
97
+ for (const root of targetRoots(target)) {
98
+ fs.mkdirSync(root, { recursive: true });
99
+ for (const skillName of skillNames) {
100
+ const sourceDir = path.join(sourceRoot, skillName);
101
+ const dir = path.join(root, skillName);
102
+
103
+ if (fs.existsSync(dir)) {
104
+ const backupDir = `${dir}.backup.${timestamp()}`;
105
+ fs.renameSync(dir, backupDir);
106
+ if (!quiet) console.log(`Existing skill backed up to: ${backupDir}`);
107
+ }
108
+
109
+ fs.cpSync(sourceDir, dir, { recursive: true });
110
+ chmodScripts(path.join(dir, "scripts"));
111
+
112
+ if (!quiet) console.log(`Installed ${skillName} to: ${dir}`);
113
+ }
114
+ }
115
+
116
+ if (!quiet) console.log("Restart Codex, then invoke: Use $genesis-harness");
117
+ }
118
+
119
+ function uninstallSkills(target = "both") {
120
+ for (const root of targetRoots(target)) {
121
+ for (const skillName of [...skillNames, ...legacySkillNames]) {
122
+ const dir = path.join(root, skillName);
123
+ if (!fs.existsSync(dir)) {
124
+ console.log(`Skill is not installed at: ${dir}`);
125
+ continue;
126
+ }
127
+ fs.rmSync(dir, { recursive: true, force: true });
128
+ console.log(`Removed: ${dir}`);
129
+ }
130
+ }
131
+ }
132
+
133
+ function verifySkill(target = "both") {
134
+ const verifyScript = path.join(packageRoot, "scripts", "verify.sh");
135
+ if (!fs.existsSync(verifyScript)) fail(`missing verify script at ${verifyScript}`);
136
+ const bash = resolveBash();
137
+
138
+ for (const root of targetRoots(target)) {
139
+ for (const skillName of skillNames) {
140
+ const result = spawnSync(bash, [verifyScript, path.join(root, skillName)], {
141
+ stdio: "inherit",
142
+ env: process.env
143
+ });
144
+ if (result.status) process.exit(result.status);
145
+ }
146
+ }
147
+ }
148
+
149
+ function resolveBash() {
150
+ if (process.platform === "win32") {
151
+ const candidates = [
152
+ "C:\\Program Files\\Git\\bin\\bash.exe",
153
+ "C:\\Program Files\\Git\\usr\\bin\\bash.exe"
154
+ ];
155
+ for (const candidate of candidates) {
156
+ if (fs.existsSync(candidate)) return candidate;
157
+ }
158
+ }
159
+ return "bash";
160
+ }
110
161
 
111
162
  function chmodScripts(dir) {
112
163
  if (!fs.existsSync(dir)) return;
@@ -135,25 +186,28 @@ const command = process.argv[2] || "help";
135
186
  const args = process.argv.slice(3);
136
187
 
137
188
  switch (command) {
138
- case "install":
139
- copySkill({ target: parseTarget(args, "both") });
140
- break;
189
+ case "install":
190
+ copySkills({ target: parseTarget(args, "both") });
191
+ break;
141
192
  case "postinstall":
142
193
  if (process.env.GENESIS_HARNESS_SKIP_POSTINSTALL === "1") {
143
194
  process.exit(0);
144
195
  }
145
- copySkill({ quiet: true, target: "both" });
146
- break;
147
- case "verify":
148
- verifySkill(parseTarget(args, "both"));
149
- break;
150
- case "uninstall":
151
- uninstallSkill(parseTarget(args, "both"));
152
- break;
153
- case "path":
154
- console.log(agentsTargetDir);
155
- console.log(legacyTargetDir);
156
- break;
196
+ copySkills({ quiet: true, target: "both" });
197
+ break;
198
+ case "verify":
199
+ verifySkill(parseTarget(args, "both"));
200
+ break;
201
+ case "uninstall":
202
+ uninstallSkills(parseTarget(args, "both"));
203
+ break;
204
+ case "path":
205
+ for (const root of [agentsSkillsRoot, legacySkillsRoot]) {
206
+ for (const skillName of skillNames) {
207
+ console.log(path.join(root, skillName));
208
+ }
209
+ }
210
+ break;
157
211
  case "help":
158
212
  case "--help":
159
213
  case "-h":
@@ -0,0 +1 @@
1
+ {"error":"invalid_character_input","message":"CharacterBibleAgent input failed validation.","retryable":false}
@@ -0,0 +1 @@
1
+ {"input":{"storySummary":"A traveler returns home.","characters":["Traveler"]},"expected":{"characters":[{"name":"Traveler"}]}}
@@ -0,0 +1 @@
1
+ {"agent":"CharacterBibleAgent","input":{"storySummary":"Example summary","characters":[]}}
@@ -0,0 +1 @@
1
+ {"agent":"CharacterBibleAgent","output":{"characters":[],"continuityRules":[]}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"CharacterBibleAgent"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"image_provider_failed","message":"Image provider failed or returned invalid output.","retryable":true}
@@ -0,0 +1 @@
1
+ {"input":{"prompts":[{"prompt":"quiet room"}],"provider":"mock"},"expected":{"images":[{"status":"created"}]}}
@@ -0,0 +1 @@
1
+ {"agent":"ImageGenerationAgent","input":{"prompts":[],"provider":"mock"}}
@@ -0,0 +1 @@
1
+ {"agent":"ImageGenerationAgent","output":{"images":[],"providerMetadata":{}}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"ImageGenerationAgent"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"pipeline_orchestration_failed","message":"PipelineOrchestrator could not complete or resume the workflow.","retryable":true}
@@ -0,0 +1 @@
1
+ {"input":{"projectId":"demo","phase":"start"},"expected":{"state":"completed"}}
@@ -0,0 +1 @@
1
+ {"agent":"PipelineOrchestrator","input":{"projectId":"example","phase":"start"}}
@@ -0,0 +1 @@
1
+ {"agent":"PipelineOrchestrator","output":{"state":"completed","steps":[]}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"PipelineOrchestrator"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"invalid_prompt_input","message":"PromptGenerationAgent input failed validation.","retryable":false}
@@ -0,0 +1 @@
1
+ {"input":{"scenePlan":[{"scene":"Return"}],"styleGuide":{"tone":"quiet"}},"expected":{"prompts":[{"scene":"Return"}]}}
@@ -0,0 +1 @@
1
+ {"agent":"PromptGenerationAgent","input":{"scenePlan":[],"styleGuide":{}}}
@@ -0,0 +1 @@
1
+ {"agent":"PromptGenerationAgent","output":{"prompts":[],"negativePrompts":[]}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"PromptGenerationAgent"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"render_failed","message":"RenderAgent failed to produce a valid artifact.","retryable":true}
@@ -0,0 +1 @@
1
+ {"input":{"scenePlan":[],"images":[],"audio":[],"subtitles":[]},"expected":{"video":{"status":"created"}}}
@@ -0,0 +1 @@
1
+ {"agent":"RenderAgent","input":{"scenePlan":[],"images":[],"audio":[],"subtitles":[]}}
@@ -0,0 +1 @@
1
+ {"agent":"RenderAgent","output":{"video":{"status":"created"},"metadata":{}}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"RenderAgent"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"invalid_scene_plan_input","message":"ScenePlanningAgent input failed validation.","retryable":false}
@@ -0,0 +1 @@
1
+ {"input":{"screenplay":[{"title":"Return"}],"constraints":["low-cost"]},"expected":{"scenePlan":[{"scene":"Return"}]}}
@@ -0,0 +1 @@
1
+ {"agent":"ScenePlanningAgent","input":{"screenplay":[],"constraints":[]}}
@@ -0,0 +1 @@
1
+ {"agent":"ScenePlanningAgent","output":{"scenePlan":[],"dependencies":[]}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"ScenePlanningAgent"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"invalid_screenplay_input","message":"ScreenplayAgent input failed validation.","retryable":false}
@@ -0,0 +1 @@
1
+ {"input":{"storySummary":"A traveler returns home.","characterBible":[]},"expected":{"scenes":[{"title":"Return"}]}}
@@ -0,0 +1 @@
1
+ {"agent":"ScreenplayAgent","input":{"storySummary":"Example summary","characterBible":[]}}
@@ -0,0 +1 @@
1
+ {"agent":"ScreenplayAgent","output":{"scenes":[],"dialogue":[]}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"ScreenplayAgent"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"invalid_story_input","message":"StoryAnalysisAgent input failed validation.","retryable":false}
@@ -0,0 +1 @@
1
+ {"input":{"storyText":"A traveler returns home.","constraints":["short"]},"expected":{"summary":"A traveler returns home.","themes":["return"]}}
@@ -0,0 +1 @@
1
+ {"agent":"StoryAnalysisAgent","input":{"storyText":"Example story text","constraints":[]}}
@@ -0,0 +1 @@
1
+ {"agent":"StoryAnalysisAgent","output":{"summary":"Example summary","themes":[],"characters":[]}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"StoryAnalysisAgent"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"invalid_subtitle_input","message":"SubtitleGenerationAgent input failed validation.","retryable":false}
@@ -0,0 +1 @@
1
+ {"input":{"script":[{"text":"Welcome home."}],"timings":[{"start":0,"end":1}]},"expected":{"subtitles":[{"text":"Welcome home."}]}}
@@ -0,0 +1 @@
1
+ {"agent":"SubtitleGenerationAgent","input":{"script":[],"timings":[]}}
@@ -0,0 +1 @@
1
+ {"agent":"SubtitleGenerationAgent","output":{"subtitles":[]}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"SubtitleGenerationAgent"},"input":{"type":"object"}}}
@@ -0,0 +1 @@
1
+ {"error":"voice_provider_failed","message":"Voice provider failed or returned invalid output.","retryable":true}
@@ -0,0 +1 @@
1
+ {"input":{"script":[{"text":"Welcome home."}],"voice":"mock"},"expected":{"audio":[{"status":"created"}]}}
@@ -0,0 +1 @@
1
+ {"agent":"VoiceGenerationAgent","input":{"script":[],"voice":"mock"}}
@@ -0,0 +1 @@
1
+ {"agent":"VoiceGenerationAgent","output":{"audio":[],"timings":[]}}
@@ -0,0 +1 @@
1
+ {"type":"object","required":["agent","input"],"properties":{"agent":{"const":"VoiceGenerationAgent"},"input":{"type":"object"}}}
@@ -0,0 +1,4 @@
1
+ # API Contracts
2
+
3
+ Create one folder per endpoint. Each endpoint contract must include `request.json`, `response.json`, `schema.json`, `example.json`, and `error.json`.
4
+
@@ -0,0 +1,7 @@
1
+ {
2
+ "status": 400,
3
+ "body": {
4
+ "error": "validation_error",
5
+ "message": "Request body failed contract validation."
6
+ }
7
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "request": {
3
+ "method": "POST",
4
+ "path": "/api/example",
5
+ "body": { "id": "demo-001" }
6
+ },
7
+ "expectedResponse": {
8
+ "status": 200,
9
+ "body": { "ok": true }
10
+ }
11
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "method": "POST",
3
+ "path": "/api/example",
4
+ "body": {
5
+ "id": "example-id"
6
+ }
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "status": 200,
3
+ "body": {
4
+ "ok": true
5
+ }
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "object",
3
+ "required": ["method", "path", "body"],
4
+ "properties": {
5
+ "method": { "type": "string" },
6
+ "path": { "type": "string" },
7
+ "body": { "type": "object" }
8
+ }
9
+ }
@@ -0,0 +1,4 @@
1
+ # Event Contracts
2
+
3
+ Define event name, payload schema, producer, consumer, retry behavior, and dead-letter behavior before implementing event code.
4
+
@@ -0,0 +1,4 @@
1
+ {
2
+ "error": "event_validation_failed",
3
+ "retryable": false
4
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "event": "example.created",
3
+ "payload": {
4
+ "id": "demo-001"
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "event": "example.created",
3
+ "payload": {
4
+ "id": "example-id"
5
+ }
6
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "acknowledged": true
3
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "object",
3
+ "required": ["event", "payload"],
4
+ "properties": {
5
+ "event": { "type": "string" },
6
+ "payload": { "type": "object" }
7
+ }
8
+ }
@@ -0,0 +1,4 @@
1
+ # UI Contracts
2
+
3
+ Define route, required data, user actions, states, validation errors, accessibility expectations, and API synchronization requirements before UI implementation.
4
+
@@ -0,0 +1,4 @@
1
+ {
2
+ "state": "error",
3
+ "visibleText": ["Unable to load data"]
4
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "route": "/example",
3
+ "state": "empty",
4
+ "expected": {
5
+ "visibleText": ["No records yet"]
6
+ }
7
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "route": "/example",
3
+ "state": "default"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "renders": true,
3
+ "visibleText": ["Example"]
4
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "type": "object",
3
+ "required": ["route", "state"],
4
+ "properties": {
5
+ "route": { "type": "string" },
6
+ "state": { "type": "string" }
7
+ }
8
+ }
@@ -0,0 +1,14 @@
1
+ # Agent Fixture Template
2
+
3
+ ## Input
4
+
5
+ Provide the exact agent input JSON.
6
+
7
+ ## Expected Output
8
+
9
+ Provide the exact expected JSON output or schema-constrained shape.
10
+
11
+ ## Validation Notes
12
+
13
+ Validate schema, error recovery, retry behavior, and persistence.
14
+
@@ -0,0 +1,14 @@
1
+ # API Fixture Template
2
+
3
+ ## Input
4
+
5
+ Describe request method, path, headers, body, and auth state.
6
+
7
+ ## Expected Output
8
+
9
+ Describe response status, body, headers, and persistence side effects.
10
+
11
+ ## Validation Notes
12
+
13
+ List schema, negative, not-found, and snapshot assertions.
14
+
@@ -0,0 +1,14 @@
1
+ # Image Fixture Template
2
+
3
+ ## Input
4
+
5
+ Prompt, size, style constraints, seed policy, and provider options.
6
+
7
+ ## Expected Output
8
+
9
+ Image artifact metadata and validation rules.
10
+
11
+ ## Validation Notes
12
+
13
+ Check provider failures, unsafe prompts, invalid JSON, and persistence.
14
+
@@ -0,0 +1,14 @@
1
+ # Pipeline Fixture Template
2
+
3
+ ## Input
4
+
5
+ List pipeline phase inputs and initial state.
6
+
7
+ ## Expected Output
8
+
9
+ List phase outputs, state transitions, logs, and persisted artifacts.
10
+
11
+ ## Validation Notes
12
+
13
+ Check resumability, idempotency, retries, and failure recovery.
14
+