codex-genesis-harness 0.1.0 → 0.1.1

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 (231) hide show
  1. package/.codebase/API_CONTRACTS.md +12 -0
  2. package/.codebase/ARCHITECTURE.md +6 -0
  3. package/.codebase/CURRENT_STATE.md +6 -0
  4. package/.codebase/DEPENDENCY_GRAPH.md +14 -0
  5. package/.codebase/DOMAIN_MODELS.md +8 -0
  6. package/.codebase/EVOLUTION_PLAN.md +35 -0
  7. package/.codebase/KNOWN_PROBLEMS.md +6 -0
  8. package/.codebase/MODULE_INDEX.md +13 -0
  9. package/.codebase/PIPELINE_FLOW.md +14 -0
  10. package/.codebase/TEST_MATRIX.md +11 -0
  11. package/.codebase/UI_ROUTES.md +4 -0
  12. package/.codebase/context/backend-summary.md +4 -0
  13. package/.codebase/context/frontend-summary.md +4 -0
  14. package/.codebase/context/pipeline-summary.md +4 -0
  15. package/.codebase/context/providers-summary.md +4 -0
  16. package/.codebase/context/render-summary.md +4 -0
  17. package/.codebase/context/tests-summary.md +4 -0
  18. package/.codex/skills/ai-provider-skill/SKILL.md +46 -0
  19. package/.codex/skills/ai-provider-skill/agents/openai.yaml +7 -0
  20. package/.codex/skills/ai-provider-skill/checklists/checklist.md +9 -0
  21. package/.codex/skills/ai-provider-skill/examples/example.md +4 -0
  22. package/.codex/skills/ai-provider-skill/templates/provider-contract-template.md +9 -0
  23. package/.codex/skills/api-contract-skill/SKILL.md +46 -0
  24. package/.codex/skills/api-contract-skill/agents/openai.yaml +7 -0
  25. package/.codex/skills/api-contract-skill/checklists/checklist.md +8 -0
  26. package/.codex/skills/api-contract-skill/examples/example.md +4 -0
  27. package/.codex/skills/api-contract-skill/templates/api-contract-template.md +4 -0
  28. package/.codex/skills/architecture-skill/SKILL.md +46 -0
  29. package/.codex/skills/architecture-skill/agents/openai.yaml +7 -0
  30. package/.codex/skills/architecture-skill/checklists/checklist.md +8 -0
  31. package/.codex/skills/architecture-skill/examples/example.md +4 -0
  32. package/.codex/skills/architecture-skill/templates/architecture-decision-template.md +14 -0
  33. package/.codex/skills/codebase-map-skill/SKILL.md +46 -0
  34. package/.codex/skills/codebase-map-skill/agents/openai.yaml +7 -0
  35. package/.codex/skills/codebase-map-skill/checklists/checklist.md +7 -0
  36. package/.codex/skills/codebase-map-skill/examples/example.md +4 -0
  37. package/.codex/skills/codebase-map-skill/templates/map-update-template.md +8 -0
  38. package/.codex/skills/design-spec-skill/SKILL.md +46 -0
  39. package/.codex/skills/design-spec-skill/agents/openai.yaml +7 -0
  40. package/.codex/skills/design-spec-skill/checklists/checklist.md +7 -0
  41. package/.codex/skills/design-spec-skill/examples/example.md +4 -0
  42. package/.codex/skills/design-spec-skill/templates/design-spec-template.md +9 -0
  43. package/.codex/skills/docs-skill/SKILL.md +46 -0
  44. package/.codex/skills/docs-skill/agents/openai.yaml +7 -0
  45. package/.codex/skills/docs-skill/checklists/checklist.md +7 -0
  46. package/.codex/skills/docs-skill/examples/example.md +4 -0
  47. package/.codex/skills/docs-skill/templates/docs-update-template.md +8 -0
  48. package/.codex/skills/{project-genesis-harness → genesis-harness}/SKILL.md +43 -4
  49. package/.codex/skills/genesis-harness/agents/openai.yaml +9 -0
  50. package/.codex/skills/genesis-harness/checklists/checklist.md +10 -0
  51. package/.codex/skills/genesis-harness/examples/example.md +4 -0
  52. package/.codex/skills/genesis-harness/templates/harness-workflow-template.md +10 -0
  53. package/.codex/skills/genesis-new-design/SKILL.md +95 -0
  54. package/.codex/skills/genesis-new-design/agents/openai.yaml +4 -0
  55. package/.codex/skills/genesis-new-design/checklists/checklist.md +8 -0
  56. package/.codex/skills/genesis-new-design/examples/example.md +4 -0
  57. package/.codex/skills/genesis-new-design/templates/new-design-template.md +9 -0
  58. package/.codex/skills/genesis-upgrade-design/SKILL.md +97 -0
  59. package/.codex/skills/genesis-upgrade-design/agents/openai.yaml +4 -0
  60. package/.codex/skills/genesis-upgrade-design/checklists/checklist.md +8 -0
  61. package/.codex/skills/genesis-upgrade-design/examples/example.md +4 -0
  62. package/.codex/skills/genesis-upgrade-design/templates/upgrade-design-template.md +9 -0
  63. package/.codex/skills/harness-engineering-skill/SKILL.md +45 -0
  64. package/.codex/skills/harness-engineering-skill/agents/openai.yaml +7 -0
  65. package/.codex/skills/harness-engineering-skill/checklists/checklist.md +8 -0
  66. package/.codex/skills/harness-engineering-skill/examples/example.md +4 -0
  67. package/.codex/skills/harness-engineering-skill/templates/harness-change-template.md +8 -0
  68. package/.codex/skills/pipeline-orchestration-skill/SKILL.md +46 -0
  69. package/.codex/skills/pipeline-orchestration-skill/agents/openai.yaml +7 -0
  70. package/.codex/skills/pipeline-orchestration-skill/checklists/checklist.md +12 -0
  71. package/.codex/skills/pipeline-orchestration-skill/examples/example.md +4 -0
  72. package/.codex/skills/pipeline-orchestration-skill/templates/orchestration-template.md +12 -0
  73. package/.codex/skills/planning-skill/SKILL.md +46 -0
  74. package/.codex/skills/planning-skill/agents/openai.yaml +7 -0
  75. package/.codex/skills/planning-skill/checklists/checklist.md +8 -0
  76. package/.codex/skills/planning-skill/examples/example.md +4 -0
  77. package/.codex/skills/planning-skill/templates/plan-template.md +11 -0
  78. package/.codex/skills/release-skill/SKILL.md +46 -0
  79. package/.codex/skills/release-skill/agents/openai.yaml +7 -0
  80. package/.codex/skills/release-skill/checklists/checklist.md +8 -0
  81. package/.codex/skills/release-skill/examples/example.md +4 -0
  82. package/.codex/skills/release-skill/templates/release-checklist-template.md +9 -0
  83. package/.codex/skills/research-skill/SKILL.md +46 -0
  84. package/.codex/skills/research-skill/agents/openai.yaml +7 -0
  85. package/.codex/skills/research-skill/checklists/checklist.md +7 -0
  86. package/.codex/skills/research-skill/examples/example.md +4 -0
  87. package/.codex/skills/research-skill/templates/research-note-template.md +9 -0
  88. package/.codex/skills/ui-ux-test-skill/SKILL.md +46 -0
  89. package/.codex/skills/ui-ux-test-skill/agents/openai.yaml +7 -0
  90. package/.codex/skills/ui-ux-test-skill/checklists/checklist.md +8 -0
  91. package/.codex/skills/ui-ux-test-skill/examples/example.md +4 -0
  92. package/.codex/skills/ui-ux-test-skill/templates/playwright-test-template.md +4 -0
  93. package/.codex-plugin/plugin.json +13 -11
  94. package/README.md +164 -181
  95. package/bin/genesis-harness.js +124 -79
  96. package/contracts/agents/CharacterBibleAgent/error.json +1 -0
  97. package/contracts/agents/CharacterBibleAgent/example.json +1 -0
  98. package/contracts/agents/CharacterBibleAgent/request.json +1 -0
  99. package/contracts/agents/CharacterBibleAgent/response.json +1 -0
  100. package/contracts/agents/CharacterBibleAgent/schema.json +1 -0
  101. package/contracts/agents/ImageGenerationAgent/error.json +1 -0
  102. package/contracts/agents/ImageGenerationAgent/example.json +1 -0
  103. package/contracts/agents/ImageGenerationAgent/request.json +1 -0
  104. package/contracts/agents/ImageGenerationAgent/response.json +1 -0
  105. package/contracts/agents/ImageGenerationAgent/schema.json +1 -0
  106. package/contracts/agents/PipelineOrchestrator/error.json +1 -0
  107. package/contracts/agents/PipelineOrchestrator/example.json +1 -0
  108. package/contracts/agents/PipelineOrchestrator/request.json +1 -0
  109. package/contracts/agents/PipelineOrchestrator/response.json +1 -0
  110. package/contracts/agents/PipelineOrchestrator/schema.json +1 -0
  111. package/contracts/agents/PromptGenerationAgent/error.json +1 -0
  112. package/contracts/agents/PromptGenerationAgent/example.json +1 -0
  113. package/contracts/agents/PromptGenerationAgent/request.json +1 -0
  114. package/contracts/agents/PromptGenerationAgent/response.json +1 -0
  115. package/contracts/agents/PromptGenerationAgent/schema.json +1 -0
  116. package/contracts/agents/RenderAgent/error.json +1 -0
  117. package/contracts/agents/RenderAgent/example.json +1 -0
  118. package/contracts/agents/RenderAgent/request.json +1 -0
  119. package/contracts/agents/RenderAgent/response.json +1 -0
  120. package/contracts/agents/RenderAgent/schema.json +1 -0
  121. package/contracts/agents/ScenePlanningAgent/error.json +1 -0
  122. package/contracts/agents/ScenePlanningAgent/example.json +1 -0
  123. package/contracts/agents/ScenePlanningAgent/request.json +1 -0
  124. package/contracts/agents/ScenePlanningAgent/response.json +1 -0
  125. package/contracts/agents/ScenePlanningAgent/schema.json +1 -0
  126. package/contracts/agents/ScreenplayAgent/error.json +1 -0
  127. package/contracts/agents/ScreenplayAgent/example.json +1 -0
  128. package/contracts/agents/ScreenplayAgent/request.json +1 -0
  129. package/contracts/agents/ScreenplayAgent/response.json +1 -0
  130. package/contracts/agents/ScreenplayAgent/schema.json +1 -0
  131. package/contracts/agents/StoryAnalysisAgent/error.json +1 -0
  132. package/contracts/agents/StoryAnalysisAgent/example.json +1 -0
  133. package/contracts/agents/StoryAnalysisAgent/request.json +1 -0
  134. package/contracts/agents/StoryAnalysisAgent/response.json +1 -0
  135. package/contracts/agents/StoryAnalysisAgent/schema.json +1 -0
  136. package/contracts/agents/SubtitleGenerationAgent/error.json +1 -0
  137. package/contracts/agents/SubtitleGenerationAgent/example.json +1 -0
  138. package/contracts/agents/SubtitleGenerationAgent/request.json +1 -0
  139. package/contracts/agents/SubtitleGenerationAgent/response.json +1 -0
  140. package/contracts/agents/SubtitleGenerationAgent/schema.json +1 -0
  141. package/contracts/agents/VoiceGenerationAgent/error.json +1 -0
  142. package/contracts/agents/VoiceGenerationAgent/example.json +1 -0
  143. package/contracts/agents/VoiceGenerationAgent/request.json +1 -0
  144. package/contracts/agents/VoiceGenerationAgent/response.json +1 -0
  145. package/contracts/agents/VoiceGenerationAgent/schema.json +1 -0
  146. package/contracts/api/README.md +4 -0
  147. package/contracts/api/endpoint-template/error.json +7 -0
  148. package/contracts/api/endpoint-template/example.json +11 -0
  149. package/contracts/api/endpoint-template/request.json +7 -0
  150. package/contracts/api/endpoint-template/response.json +6 -0
  151. package/contracts/api/endpoint-template/schema.json +9 -0
  152. package/contracts/events/README.md +4 -0
  153. package/contracts/events/event-template/error.json +4 -0
  154. package/contracts/events/event-template/example.json +6 -0
  155. package/contracts/events/event-template/request.json +6 -0
  156. package/contracts/events/event-template/response.json +3 -0
  157. package/contracts/events/event-template/schema.json +8 -0
  158. package/contracts/ui/README.md +4 -0
  159. package/contracts/ui/screen-template/error.json +4 -0
  160. package/contracts/ui/screen-template/example.json +7 -0
  161. package/contracts/ui/screen-template/request.json +4 -0
  162. package/contracts/ui/screen-template/response.json +4 -0
  163. package/contracts/ui/screen-template/schema.json +8 -0
  164. package/fixtures/agents/agent-fixture-template.md +14 -0
  165. package/fixtures/api/api-fixture-template.md +14 -0
  166. package/fixtures/images/image-fixture-template.md +14 -0
  167. package/fixtures/pipeline/pipeline-fixture-template.md +14 -0
  168. package/fixtures/render/render-fixture-template.md +14 -0
  169. package/fixtures/tts/tts-fixture-template.md +14 -0
  170. package/fixtures/videos/video-fixture-template.md +14 -0
  171. package/observability/agent-runs/agent-run-template.md +22 -0
  172. package/observability/decision-logs/decision-log-template.md +18 -0
  173. package/observability/failures/failure-template.md +18 -0
  174. package/package.json +8 -2
  175. package/playwright/e2e/e2e-template.md +4 -0
  176. package/playwright/fixtures/ui-fixture-template.md +4 -0
  177. package/playwright/smoke/smoke-template.md +4 -0
  178. package/playwright/visual/visual-regression-template.md +4 -0
  179. package/scripts/install.sh +64 -39
  180. package/scripts/run-evals.sh +61 -22
  181. package/scripts/uninstall.sh +40 -20
  182. package/scripts/verify.sh +234 -55
  183. package/tests/contracts/contract-template.test.md +10 -0
  184. package/tests/fixtures/fixture-index.md +4 -0
  185. package/tests/integration/integration-template.test.md +4 -0
  186. package/tests/unit/unit-template.test.md +4 -0
  187. package/.codex/skills/project-genesis-harness/agents/openai.yaml +0 -9
  188. /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/planning-schema.md +0 -0
  189. /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/quality-rubric.md +0 -0
  190. /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/research-rubric.md +0 -0
  191. /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/workflows.md +0 -0
  192. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/agents-template.md +0 -0
  193. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/api-docs-template.md +0 -0
  194. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/architecture-template.md +0 -0
  195. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/audit-template.md +0 -0
  196. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/bug-template.md +0 -0
  197. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/check-template.md +0 -0
  198. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/conventions-template.md +0 -0
  199. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/decision-template.md +0 -0
  200. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/design-template.md +0 -0
  201. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/escalation-template.md +0 -0
  202. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/feature-template.md +0 -0
  203. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/integrations-template.md +0 -0
  204. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/journeys-template.md +0 -0
  205. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/lessons-learned-template.md +0 -0
  206. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/observability-template.md +0 -0
  207. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/phase-template.md +0 -0
  208. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/pitfalls-template.md +0 -0
  209. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/planning-tree-template.md +0 -0
  210. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/project-template.md +0 -0
  211. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/quality-score-template.md +0 -0
  212. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/requirements-template.md +0 -0
  213. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/research-template.md +0 -0
  214. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/review-template.md +0 -0
  215. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/spec-changelog-template.md +0 -0
  216. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/stack-template.md +0 -0
  217. /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/verification-template.md +0 -0
  218. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-architecture-boundaries.sh +0 -0
  219. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-docs-sync.sh +0 -0
  220. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-no-debug-logs.sh +0 -0
  221. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-required-planning-files.sh +0 -0
  222. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-spec-changelog.sh +0 -0
  223. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-task-tracking.sh +0 -0
  224. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-adr.sh +0 -0
  225. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-bug.sh +0 -0
  226. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-feature.sh +0 -0
  227. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/detect-stack.sh +0 -0
  228. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/init-planning.sh +0 -0
  229. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/list-changed-files.sh +0 -0
  230. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/run-verification.sh +0 -0
  231. /package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/update-state.sh +0 -0
@@ -0,0 +1,14 @@
1
+ # Render Fixture Template
2
+
3
+ ## Input
4
+
5
+ Describe media inputs, timeline, subtitles, voice assets, and image assets.
6
+
7
+ ## Expected Output
8
+
9
+ Describe rendered artifact metadata, duration, dimensions, and validation checks.
10
+
11
+ ## Validation Notes
12
+
13
+ Check missing assets, invalid media, and deterministic output metadata.
14
+
@@ -0,0 +1,14 @@
1
+ # TTS Fixture Template
2
+
3
+ ## Input
4
+
5
+ Text, voice, language, timing, and provider options.
6
+
7
+ ## Expected Output
8
+
9
+ Audio metadata, transcript alignment, and provider response shape.
10
+
11
+ ## Validation Notes
12
+
13
+ Check retries, provider errors, empty text, and persistence.
14
+
@@ -0,0 +1,14 @@
1
+ # Video Fixture Template
2
+
3
+ ## Input
4
+
5
+ Scene plan, audio, subtitles, images, transitions, and render options.
6
+
7
+ ## Expected Output
8
+
9
+ Video artifact metadata, duration, and validation checks.
10
+
11
+ ## Validation Notes
12
+
13
+ Check missing clips, bad timing, retry behavior, and resumability.
14
+
@@ -0,0 +1,22 @@
1
+ # Agent Run Template
2
+
3
+ ## Reason
4
+
5
+ Why the autonomous change was started.
6
+
7
+ ## Predicted Impact
8
+
9
+ Expected files, behavior, and risks.
10
+
11
+ ## Files Changed
12
+
13
+ List changed files.
14
+
15
+ ## Tests Executed
16
+
17
+ List commands and results.
18
+
19
+ ## Result
20
+
21
+ Completed, blocked, or reverted.
22
+
@@ -0,0 +1,18 @@
1
+ # Decision Log Template
2
+
3
+ ## Decision
4
+
5
+ What changed.
6
+
7
+ ## Reason
8
+
9
+ Why this path was chosen.
10
+
11
+ ## Rejected Options
12
+
13
+ Alternatives and reasons.
14
+
15
+ ## Verification
16
+
17
+ Evidence collected.
18
+
@@ -0,0 +1,18 @@
1
+ # Failure Template
2
+
3
+ ## Failure
4
+
5
+ What failed and where.
6
+
7
+ ## Root Cause
8
+
9
+ What caused it.
10
+
11
+ ## Recovery
12
+
13
+ Steps taken or required.
14
+
15
+ ## Prevention
16
+
17
+ Test, contract, or checklist to prevent recurrence.
18
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-genesis-harness",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Install and manage the Project Genesis Harness Codex skill.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -14,7 +14,13 @@
14
14
  },
15
15
  "files": [
16
16
  ".codex-plugin",
17
- ".codex/skills/project-genesis-harness",
17
+ ".codex/skills",
18
+ ".codebase",
19
+ "contracts",
20
+ "fixtures",
21
+ "tests",
22
+ "playwright",
23
+ "observability",
18
24
  "bin",
19
25
  "scripts",
20
26
  "README.md",
@@ -0,0 +1,4 @@
1
+ # Playwright E2E Template
2
+
3
+ For every critical screen: load route, perform primary workflow, assert final UI state, assert API synchronization, and capture trace on failure.
4
+
@@ -0,0 +1,4 @@
1
+ # UI Fixture Template
2
+
3
+ Define route, mocked API responses, user role, viewport, expected text, and expected visual states.
4
+
@@ -0,0 +1,4 @@
1
+ # Playwright Smoke Template
2
+
3
+ For every screen: route loads, core landmark exists, primary action is reachable, and no console errors appear.
4
+
@@ -0,0 +1,4 @@
1
+ # Visual Regression Template
2
+
3
+ Capture desktop and mobile screenshots for default, loading, empty, error, and success states when available.
4
+
@@ -1,19 +1,35 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
- skill_name="project-genesis-harness"
6
- source_dir="$repo_root/.codex/skills/$skill_name"
7
- codex_home="${CODEX_HOME:-$HOME/.codex}"
8
- agents_home="${GENESIS_HARNESS_HOME:-$HOME/.agents}"
9
- target="both"
4
+ repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+ skill_names=(
6
+ genesis-harness
7
+ genesis-new-design
8
+ genesis-upgrade-design
9
+ architecture-skill
10
+ planning-skill
11
+ codebase-map-skill
12
+ design-spec-skill
13
+ api-contract-skill
14
+ ui-ux-test-skill
15
+ harness-engineering-skill
16
+ ai-provider-skill
17
+ pipeline-orchestration-skill
18
+ research-skill
19
+ docs-skill
20
+ release-skill
21
+ )
22
+ source_root="$repo_root/.codex/skills"
23
+ codex_home="${CODEX_HOME:-$HOME/.codex}"
24
+ agents_home="${GENESIS_HARNESS_HOME:-$HOME/.agents}"
25
+ target="both"
10
26
 
11
- usage() {
12
- echo "Usage: $0 [--target agents|legacy|both]" >&2
13
- echo " agents: install to ${agents_home}/skills/${skill_name}" >&2
14
- echo " legacy: install to ${codex_home}/skills/${skill_name}" >&2
15
- echo " both: install to both locations" >&2
16
- }
27
+ usage() {
28
+ echo "Usage: $0 [--target agents|legacy|both]" >&2
29
+ echo " agents: install to ${agents_home}/skills" >&2
30
+ echo " legacy: install to ${codex_home}/skills" >&2
31
+ echo " both: install to both locations" >&2
32
+ }
17
33
 
18
34
  while [ "$#" -gt 0 ]; do
19
35
  case "$1" in
@@ -38,32 +54,41 @@ case "$target" in
38
54
  *) usage; exit 2 ;;
39
55
  esac
40
56
 
41
- if [ ! -f "$source_dir/SKILL.md" ]; then
42
- echo "Missing skill source: $source_dir/SKILL.md" >&2
43
- exit 1
44
- fi
45
-
46
- install_one() {
47
- local target_dir="$1"
48
- mkdir -p "$(dirname "$target_dir")"
49
-
50
- if [ -e "$target_dir" ]; then
51
- backup_dir="${target_dir}.backup.$(date +%Y%m%d%H%M%S)"
52
- mv "$target_dir" "$backup_dir"
53
- echo "Existing skill backed up to: $backup_dir"
54
- fi
55
-
56
- cp -R "$source_dir" "$target_dir"
57
- find "$target_dir/scripts" -type f -name '*.sh' -exec chmod +x {} \;
58
- echo "Installed $skill_name to: $target_dir"
59
- }
57
+ for skill_name in "${skill_names[@]}"; do
58
+ if [ ! -f "$source_root/$skill_name/SKILL.md" ]; then
59
+ echo "Missing skill source: $source_root/$skill_name/SKILL.md" >&2
60
+ exit 1
61
+ fi
62
+ done
63
+
64
+ install_one() {
65
+ local target_root="$1"
66
+ mkdir -p "$target_root"
67
+
68
+ for skill_name in "${skill_names[@]}"; do
69
+ local source_dir="$source_root/$skill_name"
70
+ local target_dir="$target_root/$skill_name"
71
+
72
+ if [ -e "$target_dir" ]; then
73
+ backup_dir="${target_dir}.backup.$(date +%Y%m%d%H%M%S)"
74
+ mv "$target_dir" "$backup_dir"
75
+ echo "Existing skill backed up to: $backup_dir"
76
+ fi
77
+
78
+ cp -R "$source_dir" "$target_dir"
79
+ if [ -d "$target_dir/scripts" ]; then
80
+ find "$target_dir/scripts" -type f -name '*.sh' -exec chmod +x {} \;
81
+ fi
82
+ echo "Installed $skill_name to: $target_dir"
83
+ done
84
+ }
60
85
 
61
86
  if [ "$target" = "agents" ] || [ "$target" = "both" ]; then
62
- install_one "$agents_home/skills/$skill_name"
63
- fi
64
-
65
- if [ "$target" = "legacy" ] || [ "$target" = "both" ]; then
66
- install_one "$codex_home/skills/$skill_name"
67
- fi
68
-
69
- echo "Invoke it in Codex with: Use \$$skill_name"
87
+ install_one "$agents_home/skills"
88
+ fi
89
+
90
+ if [ "$target" = "legacy" ] || [ "$target" = "both" ]; then
91
+ install_one "$codex_home/skills"
92
+ fi
93
+
94
+ echo "Invoke it in Codex with: Use \$genesis-harness"
@@ -1,8 +1,26 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
- skill_dir="$repo_root/.codex/skills/project-genesis-harness"
4
+ repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+ skill_root="$repo_root/.codex/skills"
6
+ harness_dir="$skill_root/genesis-harness"
7
+ skill_names=(
8
+ genesis-harness
9
+ genesis-new-design
10
+ genesis-upgrade-design
11
+ architecture-skill
12
+ planning-skill
13
+ codebase-map-skill
14
+ design-spec-skill
15
+ api-contract-skill
16
+ ui-ux-test-skill
17
+ harness-engineering-skill
18
+ ai-provider-skill
19
+ pipeline-orchestration-skill
20
+ research-skill
21
+ docs-skill
22
+ release-skill
23
+ )
6
24
 
7
25
  fail() {
8
26
  echo "eval failed: $*" >&2
@@ -19,20 +37,37 @@ assert_contains() {
19
37
  grep -q -- "$text" "$file" || fail "missing '$text' in ${file#$repo_root/}"
20
38
  }
21
39
 
22
- assert_file "$repo_root/.codex-plugin/plugin.json"
23
- assert_contains "$repo_root/.codex-plugin/plugin.json" '"skills"'
24
- assert_contains "$repo_root/.codex-plugin/plugin.json" '"project-genesis-harness"'
25
-
26
- for ref in workflows.md planning-schema.md research-rubric.md quality-rubric.md; do
27
- assert_file "$skill_dir/references/$ref"
28
- assert_contains "$skill_dir/SKILL.md" "references/$ref"
29
- done
40
+ assert_file "$repo_root/.codex-plugin/plugin.json"
41
+ assert_contains "$repo_root/.codex-plugin/plugin.json" '"skills"'
42
+ assert_contains "$repo_root/.codex-plugin/plugin.json" '"genesis-skill-set"'
43
+
44
+ for ref in workflows.md planning-schema.md research-rubric.md quality-rubric.md; do
45
+ assert_file "$harness_dir/references/$ref"
46
+ assert_contains "$harness_dir/SKILL.md" "references/$ref"
47
+ done
48
+
49
+ for skill_name in "${skill_names[@]}"; do
50
+ assert_file "$skill_root/$skill_name/SKILL.md"
51
+ assert_file "$skill_root/$skill_name/agents/openai.yaml"
52
+ assert_contains "$skill_root/$skill_name/SKILL.md" "name: $skill_name"
53
+ done
30
54
 
31
55
  assert_contains "$repo_root/scripts/install.sh" '--target agents|legacy|both'
32
- assert_contains "$repo_root/scripts/uninstall.sh" '--target agents|legacy|both'
33
- assert_contains "$repo_root/bin/genesis-harness.js" '--target agents|legacy|both'
34
- assert_contains "$repo_root/package.json" '".codex-plugin"'
35
- assert_contains "$repo_root/README.md" '.agents/skills'
56
+ assert_contains "$repo_root/scripts/uninstall.sh" '--target agents|legacy|both'
57
+ assert_contains "$repo_root/bin/genesis-harness.js" '--target agents|legacy|both'
58
+ assert_contains "$repo_root/package.json" '".codex-plugin"'
59
+ assert_contains "$repo_root/package.json" '".codebase"'
60
+ assert_contains "$repo_root/package.json" '"contracts"'
61
+ assert_contains "$repo_root/package.json" '"fixtures"'
62
+ assert_contains "$repo_root/package.json" '"playwright"'
63
+ assert_contains "$repo_root/package.json" '"observability"'
64
+ assert_contains "$repo_root/README.md" '.agents/skills'
65
+
66
+ for skill_name in "${skill_names[@]}"; do
67
+ assert_contains "$repo_root/bin/genesis-harness.js" "$skill_name"
68
+ assert_contains "$repo_root/scripts/install.sh" "$skill_name"
69
+ assert_contains "$repo_root/scripts/uninstall.sh" "$skill_name"
70
+ done
36
71
 
37
72
  tmp="$(mktemp -d)"
38
73
  cleanup() {
@@ -40,13 +75,17 @@ cleanup() {
40
75
  }
41
76
  trap cleanup EXIT
42
77
 
43
- CODEX_HOME="$tmp/codex" GENESIS_HARNESS_HOME="$tmp/agents" bash "$repo_root/scripts/install.sh" --target both >/dev/null
44
- [ -f "$tmp/agents/skills/project-genesis-harness/SKILL.md" ] || fail "agents install target missing"
45
- [ -f "$tmp/codex/skills/project-genesis-harness/SKILL.md" ] || fail "legacy install target missing"
46
- bash "$repo_root/scripts/verify.sh" "$tmp/agents/skills/project-genesis-harness" >/dev/null
47
- bash "$repo_root/scripts/verify.sh" "$tmp/codex/skills/project-genesis-harness" >/dev/null
48
- CODEX_HOME="$tmp/codex" GENESIS_HARNESS_HOME="$tmp/agents" bash "$repo_root/scripts/uninstall.sh" --target both >/dev/null
49
- [ ! -e "$tmp/agents/skills/project-genesis-harness" ] || fail "agents uninstall target remains"
50
- [ ! -e "$tmp/codex/skills/project-genesis-harness" ] || fail "legacy uninstall target remains"
78
+ CODEX_HOME="$tmp/codex" GENESIS_HARNESS_HOME="$tmp/agents" bash "$repo_root/scripts/install.sh" --target both >/dev/null
79
+ for skill_name in "${skill_names[@]}"; do
80
+ [ -f "$tmp/agents/skills/$skill_name/SKILL.md" ] || fail "agents install target missing: $skill_name"
81
+ [ -f "$tmp/codex/skills/$skill_name/SKILL.md" ] || fail "legacy install target missing: $skill_name"
82
+ done
83
+ bash "$repo_root/scripts/verify.sh" "$tmp/agents/skills" >/dev/null
84
+ bash "$repo_root/scripts/verify.sh" "$tmp/codex/skills" >/dev/null
85
+ CODEX_HOME="$tmp/codex" GENESIS_HARNESS_HOME="$tmp/agents" bash "$repo_root/scripts/uninstall.sh" --target both >/dev/null
86
+ for skill_name in "${skill_names[@]}" project-genesis-harness; do
87
+ [ ! -e "$tmp/agents/skills/$skill_name" ] || fail "agents uninstall target remains: $skill_name"
88
+ [ ! -e "$tmp/codex/skills/$skill_name" ] || fail "legacy uninstall target remains: $skill_name"
89
+ done
51
90
 
52
91
  echo "evals passed"
@@ -1,9 +1,26 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- skill_name="project-genesis-harness"
5
- codex_home="${CODEX_HOME:-$HOME/.codex}"
6
- agents_home="${GENESIS_HARNESS_HOME:-$HOME/.agents}"
4
+ skill_names=(
5
+ genesis-harness
6
+ genesis-new-design
7
+ genesis-upgrade-design
8
+ architecture-skill
9
+ planning-skill
10
+ codebase-map-skill
11
+ design-spec-skill
12
+ api-contract-skill
13
+ ui-ux-test-skill
14
+ harness-engineering-skill
15
+ ai-provider-skill
16
+ pipeline-orchestration-skill
17
+ research-skill
18
+ docs-skill
19
+ release-skill
20
+ project-genesis-harness
21
+ )
22
+ codex_home="${CODEX_HOME:-$HOME/.codex}"
23
+ agents_home="${GENESIS_HARNESS_HOME:-$HOME/.agents}"
7
24
  target="both"
8
25
 
9
26
  usage() {
@@ -33,20 +50,23 @@ case "$target" in
33
50
  *) usage; exit 2 ;;
34
51
  esac
35
52
 
36
- remove_one() {
37
- local target_dir="$1"
38
- if [ ! -e "$target_dir" ]; then
39
- echo "Skill is not installed at: $target_dir"
40
- return
41
- fi
42
- rm -rf "$target_dir"
43
- echo "Removed: $target_dir"
44
- }
45
-
46
- if [ "$target" = "agents" ] || [ "$target" = "both" ]; then
47
- remove_one "$agents_home/skills/$skill_name"
48
- fi
49
-
50
- if [ "$target" = "legacy" ] || [ "$target" = "both" ]; then
51
- remove_one "$codex_home/skills/$skill_name"
52
- fi
53
+ remove_one() {
54
+ local target_root="$1"
55
+ for skill_name in "${skill_names[@]}"; do
56
+ local target_dir="$target_root/$skill_name"
57
+ if [ ! -e "$target_dir" ]; then
58
+ echo "Skill is not installed at: $target_dir"
59
+ continue
60
+ fi
61
+ rm -rf "$target_dir"
62
+ echo "Removed: $target_dir"
63
+ done
64
+ }
65
+
66
+ if [ "$target" = "agents" ] || [ "$target" = "both" ]; then
67
+ remove_one "$agents_home/skills"
68
+ fi
69
+
70
+ if [ "$target" = "legacy" ] || [ "$target" = "both" ]; then
71
+ remove_one "$codex_home/skills"
72
+ fi