oh-my-codex-cli 0.1.0

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 (292) hide show
  1. package/.agent/skills/agent-kb/HOW_TO_USE.md +428 -0
  2. package/.agent/skills/agent-kb/README.md +46 -0
  3. package/.agent/skills/agent-kb/SKILL.md +128 -0
  4. package/.agent/skills/agent-kb/references/intelligent-analysis-explained.md +333 -0
  5. package/.agent/skills/agent-kb/references/query-optimization.md +225 -0
  6. package/.agent/skills/aireview/SKILL.md +704 -0
  7. package/.agent/skills/analyze/SKILL.md +81 -0
  8. package/.agent/skills/architect-planner/HOW_TO_USE.md +238 -0
  9. package/.agent/skills/architect-planner/README.md +41 -0
  10. package/.agent/skills/architect-planner/SKILL.md +539 -0
  11. package/.agent/skills/auto-mbti/SKILL.md +291 -0
  12. package/.agent/skills/autopilot/SKILL.md +222 -0
  13. package/.agent/skills/backend-patterns/SKILL.md +602 -0
  14. package/.agent/skills/bdd-generator/README.md +78 -0
  15. package/.agent/skills/bdd-generator/SKILL.md +436 -0
  16. package/.agent/skills/brainstorming/HOW_TO_USE.md +289 -0
  17. package/.agent/skills/brainstorming/README.md +41 -0
  18. package/.agent/skills/brainstorming/SKILL.md +165 -0
  19. package/.agent/skills/build-fix/SKILL.md +190 -0
  20. package/.agent/skills/cancel/SKILL.md +658 -0
  21. package/.agent/skills/checkpoint/SKILL.md +94 -0
  22. package/.agent/skills/code-review/SKILL.md +273 -0
  23. package/.agent/skills/coding-standards/SKILL.md +535 -0
  24. package/.agent/skills/conductor/SKILL.md +128 -0
  25. package/.agent/skills/conductor/commands/conductor/implement.toml +358 -0
  26. package/.agent/skills/conductor/commands/conductor/newTrack.toml +142 -0
  27. package/.agent/skills/conductor/commands/conductor/revert.toml +123 -0
  28. package/.agent/skills/conductor/commands/conductor/setup.toml +429 -0
  29. package/.agent/skills/conductor/commands/conductor/status.toml +57 -0
  30. package/.agent/skills/conductor/scripts/install.sh +89 -0
  31. package/.agent/skills/conductor/templates/code_styleguides/csharp.md +115 -0
  32. package/.agent/skills/conductor/templates/code_styleguides/dart.md +238 -0
  33. package/.agent/skills/conductor/templates/code_styleguides/general.md +23 -0
  34. package/.agent/skills/conductor/templates/code_styleguides/go.md +48 -0
  35. package/.agent/skills/conductor/templates/code_styleguides/html-css.md +49 -0
  36. package/.agent/skills/conductor/templates/code_styleguides/javascript.md +51 -0
  37. package/.agent/skills/conductor/templates/code_styleguides/python.md +37 -0
  38. package/.agent/skills/conductor/templates/code_styleguides/typescript.md +43 -0
  39. package/.agent/skills/conductor/templates/rules/README.md +23 -0
  40. package/.agent/skills/conductor/templates/rules/agents.md +49 -0
  41. package/.agent/skills/conductor/templates/rules/coding-style.md +70 -0
  42. package/.agent/skills/conductor/templates/rules/dev.md +20 -0
  43. package/.agent/skills/conductor/templates/rules/git-workflow.md +45 -0
  44. package/.agent/skills/conductor/templates/rules/hooks.md +6 -0
  45. package/.agent/skills/conductor/templates/rules/patterns.md +55 -0
  46. package/.agent/skills/conductor/templates/rules/performance.md +47 -0
  47. package/.agent/skills/conductor/templates/rules/research.md +26 -0
  48. package/.agent/skills/conductor/templates/rules/review.md +22 -0
  49. package/.agent/skills/conductor/templates/rules/security.md +36 -0
  50. package/.agent/skills/conductor/templates/rules/testing.md +30 -0
  51. package/.agent/skills/conductor/templates/workflow.md +333 -0
  52. package/.agent/skills/consensus/HOW_TO_USE.md +191 -0
  53. package/.agent/skills/consensus/README.md +41 -0
  54. package/.agent/skills/consensus/SKILL.md +317 -0
  55. package/.agent/skills/content-research-writer/SKILL.md +537 -0
  56. package/.agent/skills/debug-analysis/SKILL.md +331 -0
  57. package/.agent/skills/deepinit/SKILL.md +347 -0
  58. package/.agent/skills/deepsearch/SKILL.md +56 -0
  59. package/.agent/skills/doctor/SKILL.md +158 -0
  60. package/.agent/skills/drawio/EXAMPLES.md +382 -0
  61. package/.agent/skills/drawio/QUICK_START.md +237 -0
  62. package/.agent/skills/drawio/README.md +315 -0
  63. package/.agent/skills/drawio/SETUP_GUIDE.md +254 -0
  64. package/.agent/skills/drawio/SKILL.md +1176 -0
  65. package/.agent/skills/e2e/SKILL.md +396 -0
  66. package/.agent/skills/ecomode/SKILL.md +160 -0
  67. package/.agent/skills/electron-driver/SKILL.md +144 -0
  68. package/.agent/skills/electron-driver/scripts/driver-template.js +71 -0
  69. package/.agent/skills/eval/SKILL.md +140 -0
  70. package/.agent/skills/eval-harness/SKILL.md +242 -0
  71. package/.agent/skills/evolve/SKILL.md +213 -0
  72. package/.agent/skills/frontend-design/SKILL.md +42 -0
  73. package/.agent/skills/frontend-patterns/SKILL.md +646 -0
  74. package/.agent/skills/frontend-ui-ux/SKILL.md +70 -0
  75. package/.agent/skills/git-master/SKILL.md +75 -0
  76. package/.agent/skills/help/SKILL.md +89 -0
  77. package/.agent/skills/iterative-retrieval/SKILL.md +217 -0
  78. package/.agent/skills/local-skills-setup/SKILL.md +483 -0
  79. package/.agent/skills/log-analyzer/SKILL.md +187 -0
  80. package/.agent/skills/mcp-setup/SKILL.md +226 -0
  81. package/.agent/skills/multi-model-research/HOW_TO_USE.md +614 -0
  82. package/.agent/skills/multi-model-research/README.md +233 -0
  83. package/.agent/skills/multi-model-research/SKILL.md +541 -0
  84. package/.agent/skills/multi-model-research/references/troubleshooting.md +415 -0
  85. package/.agent/skills/note/SKILL.md +80 -0
  86. package/.agent/skills/omc-setup/SKILL.md +219 -0
  87. package/.agent/skills/orchestrate/SKILL.md +620 -0
  88. package/.agent/skills/patent-workflow/IMPLEMENTATION_SUMMARY.md +500 -0
  89. package/.agent/skills/patent-workflow/README.md +455 -0
  90. package/.agent/skills/patent-workflow/SKILL.md +1036 -0
  91. package/.agent/skills/patent-workflow/tools/irr_checker.py +260 -0
  92. package/.agent/skills/patent-workflow/tools/sample_terminology.json +49 -0
  93. package/.agent/skills/patent-workflow/tools/term_checker.py +355 -0
  94. package/.agent/skills/pattern-recognition/SKILL.md +792 -0
  95. package/.agent/skills/pipeline/SKILL.md +448 -0
  96. package/.agent/skills/plan/SKILL.md +309 -0
  97. package/.agent/skills/planning-methodology/SKILL.md +370 -0
  98. package/.agent/skills/planning-with-files/SKILL.md +210 -0
  99. package/.agent/skills/planning-with-files/examples.md +202 -0
  100. package/.agent/skills/planning-with-files/reference.md +218 -0
  101. package/.agent/skills/planning-with-files/scripts/check-complete.ps1 +42 -0
  102. package/.agent/skills/planning-with-files/scripts/check-complete.sh +44 -0
  103. package/.agent/skills/planning-with-files/scripts/init-session.ps1 +120 -0
  104. package/.agent/skills/planning-with-files/scripts/init-session.sh +120 -0
  105. package/.agent/skills/planning-with-files/scripts/session-catchup.py +208 -0
  106. package/.agent/skills/planning-with-files/templates/findings.md +95 -0
  107. package/.agent/skills/planning-with-files/templates/progress.md +114 -0
  108. package/.agent/skills/planning-with-files/templates/task_plan.md +132 -0
  109. package/.agent/skills/project-analyze/CLAUDE.md +18 -0
  110. package/.agent/skills/project-analyze/HOW_TO_USE.md +145 -0
  111. package/.agent/skills/project-analyze/README.md +42 -0
  112. package/.agent/skills/project-analyze/SKILL.md +289 -0
  113. package/.agent/skills/project-analyze/SKILL.md.backup +287 -0
  114. package/.agent/skills/project-analyze/SKILL.md.backup_20260105_093646 +287 -0
  115. package/.agent/skills/project-analyze/assets/analysis-report-template.md +433 -0
  116. package/.agent/skills/project-analyze/references/analysis-patterns.md +422 -0
  117. package/.agent/skills/project-analyze/references/projectmind-explained.md +535 -0
  118. package/.agent/skills/project-session-manager/SKILL.md +428 -0
  119. package/.agent/skills/project-session-manager/lib/config.sh +86 -0
  120. package/.agent/skills/project-session-manager/lib/parse.sh +121 -0
  121. package/.agent/skills/project-session-manager/lib/session.sh +132 -0
  122. package/.agent/skills/project-session-manager/lib/tmux.sh +103 -0
  123. package/.agent/skills/project-session-manager/lib/worktree.sh +171 -0
  124. package/.agent/skills/project-session-manager/psm.sh +629 -0
  125. package/.agent/skills/project-session-manager/templates/feature.md +56 -0
  126. package/.agent/skills/project-session-manager/templates/issue-fix.md +57 -0
  127. package/.agent/skills/project-session-manager/templates/pr-review.md +65 -0
  128. package/.agent/skills/project-session-manager/templates/projects.json +19 -0
  129. package/.agent/skills/quality-check/HOW_TO_USE.md +171 -0
  130. package/.agent/skills/quality-check/README.md +50 -0
  131. package/.agent/skills/quality-check/SKILL.md +240 -0
  132. package/.agent/skills/quality-check/SKILL.md.backup +238 -0
  133. package/.agent/skills/quality-check/SKILL.md.backup_20260105_093646 +238 -0
  134. package/.agent/skills/quality-check/assets/quality-report-template.md +437 -0
  135. package/.agent/skills/quality-check/references/refactoring-patterns.md +550 -0
  136. package/.agent/skills/quality-check/references/scoring-criteria.md +454 -0
  137. package/.agent/skills/quality-validation/SKILL.md +519 -0
  138. package/.agent/skills/quality-validation/SKILL.md.backup +573 -0
  139. package/.agent/skills/quality-validation/SKILL.md.backup_20260105_093646 +573 -0
  140. package/.agent/skills/ralph/SKILL.md +236 -0
  141. package/.agent/skills/ralph-init/SKILL.md +78 -0
  142. package/.agent/skills/ralplan/SKILL.md +58 -0
  143. package/.agent/skills/refactor-clean/SKILL.md +49 -0
  144. package/.agent/skills/release/SKILL.md +84 -0
  145. package/.agent/skills/research/SKILL.md +526 -0
  146. package/.agent/skills/research-methodology/SKILL.md +268 -0
  147. package/.agent/skills/review/SKILL.md +53 -0
  148. package/.agent/skills/security-review/SKILL.md +509 -0
  149. package/.agent/skills/security-review/cloud-infrastructure-security.md +361 -0
  150. package/.agent/skills/setup-pm/SKILL.md +102 -0
  151. package/.agent/skills/skill/SKILL.md +424 -0
  152. package/.agent/skills/skill-create/SKILL.md +209 -0
  153. package/.agent/skills/skill-debugger/HOW_TO_USE.md +244 -0
  154. package/.agent/skills/skill-debugger/README.md +44 -0
  155. package/.agent/skills/skill-debugger/SKILL.md +326 -0
  156. package/.agent/skills/skill-debugger/diagnostic_checklist.md +115 -0
  157. package/.agent/skills/skill-development/SKILL.md +661 -0
  158. package/.agent/skills/skill-development/references/skill-creator-original.md +209 -0
  159. package/.agent/skills/skill-doc-generator/README.md +37 -0
  160. package/.agent/skills/skill-doc-generator/SKILL.md +331 -0
  161. package/.agent/skills/skill-quality-analyzer/HOW_TO_USE.md +243 -0
  162. package/.agent/skills/skill-quality-analyzer/README.md +61 -0
  163. package/.agent/skills/skill-quality-analyzer/SKILL.md +247 -0
  164. package/.agent/skills/skill-quality-analyzer/analyzer.py +209 -0
  165. package/.agent/skills/skill-quality-analyzer/expected_output.json +81 -0
  166. package/.agent/skills/skill-quality-analyzer/sample_input.json +9 -0
  167. package/.agent/skills/skill-tester/README.md +46 -0
  168. package/.agent/skills/skill-tester/SKILL.md +345 -0
  169. package/.agent/skills/start-dev/SKILL.md +701 -0
  170. package/.agent/skills/swarm/SKILL.md +691 -0
  171. package/.agent/skills/task-kb-lookup/SKILL.md +211 -0
  172. package/.agent/skills/task-kb-record/SKILL.md +417 -0
  173. package/.agent/skills/tdd/SKILL.md +446 -0
  174. package/.agent/skills/tdd-generator/DEMO.md +516 -0
  175. package/.agent/skills/tdd-generator/README.md +89 -0
  176. package/.agent/skills/tdd-generator/SKILL.md +278 -0
  177. package/.agent/skills/tdd-workflow/SKILL.md +424 -0
  178. package/.agent/skills/test-coverage/SKILL.md +48 -0
  179. package/.agent/skills/thinkdeep/HOW_TO_USE.md +183 -0
  180. package/.agent/skills/thinkdeep/README.md +41 -0
  181. package/.agent/skills/thinkdeep/SKILL.md +343 -0
  182. package/.agent/skills/ui-ux-pro-max/SKILL.md +228 -0
  183. package/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
  184. package/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
  185. package/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
  186. package/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
  187. package/.agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
  188. package/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  189. package/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  190. package/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  191. package/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  192. package/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  193. package/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  194. package/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  195. package/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  196. package/.agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
  197. package/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
  198. package/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  199. package/.agent/skills/ui-ux-pro-max/scripts/core.py +236 -0
  200. package/.agent/skills/ui-ux-pro-max/scripts/search.py +61 -0
  201. package/.agent/skills/ultrapilot/SKILL.md +647 -0
  202. package/.agent/skills/ultraqa/SKILL.md +152 -0
  203. package/.agent/skills/ultrawork/SKILL.md +123 -0
  204. package/.agent/skills/update-codemaps/SKILL.md +38 -0
  205. package/.agent/skills/update-docs/SKILL.md +52 -0
  206. package/.agent/skills/verification-loop/SKILL.md +140 -0
  207. package/.agent/skills/verify/SKILL.md +80 -0
  208. package/.agent/skills/writer-memory/SKILL.md +459 -0
  209. package/.agent/skills/writer-memory/lib/character-tracker.ts +338 -0
  210. package/.agent/skills/writer-memory/lib/memory-manager.ts +804 -0
  211. package/.agent/skills/writer-memory/lib/relationship-graph.ts +400 -0
  212. package/.agent/skills/writer-memory/lib/scene-organizer.ts +544 -0
  213. package/.agent/skills/writer-memory/lib/synopsis-builder.ts +339 -0
  214. package/.agent/skills/writer-memory/templates/synopsis-template.md +46 -0
  215. package/.governance/skill-lint.allowlist +4 -0
  216. package/.governance/skill-llm.allowlist +4 -0
  217. package/AGENTS.md +59 -0
  218. package/LICENSE +21 -0
  219. package/README.md +169 -0
  220. package/README.zh.md +145 -0
  221. package/bin/omcodex.js +8 -0
  222. package/commands/conductor/implement.toml +358 -0
  223. package/commands/conductor/newTrack.toml +142 -0
  224. package/commands/conductor/revert.toml +123 -0
  225. package/commands/conductor/setup.toml +429 -0
  226. package/commands/conductor/status.toml +57 -0
  227. package/docs/ALIGNMENT.md +40 -0
  228. package/docs/CODEX.md +133 -0
  229. package/docs/NOTIFY.md +81 -0
  230. package/docs/SKILL_GOVERNANCE.md +72 -0
  231. package/docs/SKILL_GOVERNANCE_FRAMEWORK.md +182 -0
  232. package/docs/SKILL_GOVERNANCE_FRAMEWORK.zh.md +170 -0
  233. package/package.json +50 -0
  234. package/prompts/architect.md +105 -0
  235. package/prompts/executor.md +134 -0
  236. package/prompts/planner.md +113 -0
  237. package/scripts/check-skill-governance.sh +84 -0
  238. package/scripts/check-skill-llm-governance.js +302 -0
  239. package/scripts/eval-skills.js +217 -0
  240. package/scripts/generate-catalog-docs.js +95 -0
  241. package/scripts/generate-codex-mcp-config.sh +22 -0
  242. package/scripts/install-codex-force.sh +5 -0
  243. package/scripts/install-codex-incremental.sh +5 -0
  244. package/scripts/install-codex.sh +79 -0
  245. package/scripts/notify-dispatch.js +15 -0
  246. package/scripts/setup-package-manager.js +137 -0
  247. package/src/catalog/generated/public-catalog.json +547 -0
  248. package/src/catalog/manifest.json +542 -0
  249. package/src/catalog/reader.js +43 -0
  250. package/src/catalog/schema.js +79 -0
  251. package/src/cli/doctor.js +62 -0
  252. package/src/cli/index.js +85 -0
  253. package/src/cli/notify.js +127 -0
  254. package/src/cli/route.js +43 -0
  255. package/src/cli/setup.js +155 -0
  256. package/src/cli/team.js +125 -0
  257. package/src/config/generator.js +119 -0
  258. package/src/mcp/memory-server.js +241 -0
  259. package/src/mcp/state-server.js +112 -0
  260. package/src/mcp/trace-server.js +168 -0
  261. package/src/notify/dispatch.js +74 -0
  262. package/src/notify/extensibility/dispatcher.js +113 -0
  263. package/src/notify/extensibility/events.js +15 -0
  264. package/src/notify/extensibility/loader.js +54 -0
  265. package/src/router/skill-router.js +90 -0
  266. package/src/team/auto-advance.js +72 -0
  267. package/src/team/orchestrator.js +82 -0
  268. package/src/team/state-store.js +33 -0
  269. package/src/utils/paths.js +33 -0
  270. package/templates/AGENTS.md +15 -0
  271. package/templates/catalog-manifest.json +542 -0
  272. package/templates/code_styleguides/csharp.md +115 -0
  273. package/templates/code_styleguides/dart.md +238 -0
  274. package/templates/code_styleguides/general.md +23 -0
  275. package/templates/code_styleguides/go.md +48 -0
  276. package/templates/code_styleguides/html-css.md +49 -0
  277. package/templates/code_styleguides/javascript.md +51 -0
  278. package/templates/code_styleguides/python.md +37 -0
  279. package/templates/code_styleguides/typescript.md +43 -0
  280. package/templates/rules/README.md +23 -0
  281. package/templates/rules/agents.md +49 -0
  282. package/templates/rules/coding-style.md +70 -0
  283. package/templates/rules/dev.md +20 -0
  284. package/templates/rules/git-workflow.md +45 -0
  285. package/templates/rules/notify.md +6 -0
  286. package/templates/rules/patterns.md +55 -0
  287. package/templates/rules/performance.md +47 -0
  288. package/templates/rules/research.md +26 -0
  289. package/templates/rules/review.md +22 -0
  290. package/templates/rules/security.md +36 -0
  291. package/templates/rules/testing.md +30 -0
  292. package/templates/workflow.md +333 -0
@@ -0,0 +1,446 @@
1
+ ---
2
+ name: tdd
3
+ description: Test-Driven Development enforcement skill - write tests first, always
4
+ ---
5
+
6
+ # TDD Mode
7
+
8
+
9
+ ## Native Subagent Protocol (Codex)
10
+
11
+ Codex supports native subagents. Delegate with `spawn_agent`, coordinate with `send_input`, collect via `wait`, and clean up with `close_agent`.
12
+
13
+ Execution preference:
14
+ 1. Use native subagents first for independent workstreams (parallel when possible).
15
+ 2. Merge results in main thread and run final verification.
16
+ 3. Fallback only when delegation is blocked: use the `[ANALYST]`/`[ARCHITECT]`/`[EXECUTOR]`/`[REVIEWER]` structure in a single response.
17
+
18
+ Minimal orchestration pattern:
19
+ ```text
20
+ spawn_agent -> send_input (optional) -> wait -> close_agent
21
+ ```
22
+
23
+ > Codex invocation: use `$tdd ...` or `tdd: ...`
24
+
25
+
26
+ [TDD MODE ACTIVATED]
27
+
28
+ ## The Iron Law
29
+
30
+ **NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST**
31
+
32
+ Write code before test? DELETE IT. Start over. No exceptions.
33
+
34
+ ## Red-Green-Refactor Cycle
35
+
36
+ ### 1. RED: Write Failing Test
37
+ - Write test for the NEXT piece of functionality
38
+ - Run test - MUST FAIL
39
+ - If it passes, your test is wrong
40
+
41
+ ### 2. GREEN: Minimal Implementation
42
+ - Write ONLY enough code to pass the test
43
+ - No extras. No "while I'm here."
44
+ - Run test - MUST PASS
45
+
46
+ ### 3. REFACTOR: Clean Up
47
+ - Improve code quality
48
+ - Run tests after EVERY change
49
+ - Must stay green
50
+
51
+ ### 4. REPEAT
52
+ - Next failing test
53
+ - Continue cycle
54
+
55
+ ## Enforcement Rules
56
+
57
+ | If You See | Action |
58
+ |------------|--------|
59
+ | Code written before test | STOP. Delete code. Write test first. |
60
+ | Test passes on first run | Test is wrong. Fix it to fail first. |
61
+ | Multiple features in one cycle | STOP. One test, one feature. |
62
+ | Skipping refactor | Go back. Clean up before next feature. |
63
+
64
+ ## Commands
65
+
66
+ Before each implementation:
67
+ ```bash
68
+ npm test # Should have ONE new failure
69
+ ```
70
+
71
+ After implementation:
72
+ ```bash
73
+ npm test # New test should pass, all others still pass
74
+ ```
75
+
76
+ ## Output Format
77
+
78
+ When guiding TDD:
79
+
80
+ ```
81
+ ## TDD Cycle: [Feature Name]
82
+
83
+ ### RED Phase
84
+ Test: [test code]
85
+ Expected failure: [what error you expect]
86
+ Actual: [run result showing failure]
87
+
88
+ ### GREEN Phase
89
+ Implementation: [minimal code]
90
+ Result: [run result showing pass]
91
+
92
+ ### REFACTOR Phase
93
+ Changes: [what was cleaned up]
94
+ Result: [tests still pass]
95
+ ```
96
+
97
+ **Remember:** The discipline IS the value. Shortcuts destroy the benefit.
98
+
99
+ ## Imported from everything-codex
100
+
101
+ ---
102
+ name: ecc-tdd
103
+ description: Imported from everything-codex command tdd
104
+ ---
105
+
106
+ ---
107
+ description: Enforce test-driven development workflow. Scaffold interfaces, generate tests FIRST, then implement minimal code to pass. Ensure 80%+ coverage.
108
+ ---
109
+
110
+ # TDD Command
111
+
112
+
113
+ ## Native Subagent Protocol (Codex)
114
+
115
+ Codex supports native subagents. Delegate with `spawn_agent`, coordinate with `send_input`, collect via `wait`, and clean up with `close_agent`.
116
+
117
+ Execution preference:
118
+ 1. Use native subagents first for independent workstreams (parallel when possible).
119
+ 2. Merge results in main thread and run final verification.
120
+ 3. Fallback only when delegation is blocked: use the `[ANALYST]`/`[ARCHITECT]`/`[EXECUTOR]`/`[REVIEWER]` structure in a single response.
121
+
122
+ Minimal orchestration pattern:
123
+ ```text
124
+ spawn_agent -> send_input (optional) -> wait -> close_agent
125
+ ```
126
+
127
+ This command invokes the **tdd-guide** agent to enforce test-driven development methodology.
128
+
129
+ ## What This Command Does
130
+
131
+ 1. **Scaffold Interfaces** - Define types/interfaces first
132
+ 2. **Generate Tests First** - Write failing tests (RED)
133
+ 3. **Implement Minimal Code** - Write just enough to pass (GREEN)
134
+ 4. **Refactor** - Improve code while keeping tests green (REFACTOR)
135
+ 5. **Verify Coverage** - Ensure 80%+ test coverage
136
+
137
+ ## When to Use
138
+
139
+ Use `$tdd` when:
140
+ - Implementing new features
141
+ - Adding new functions/components
142
+ - Fixing bugs (write test that reproduces bug first)
143
+ - Refactoring existing code
144
+ - Building critical business logic
145
+
146
+ ## How It Works
147
+
148
+ The tdd-guide agent will:
149
+
150
+ 1. **Define interfaces** for inputs/outputs
151
+ 2. **Write tests that will FAIL** (because code doesn't exist yet)
152
+ 3. **Run tests** and verify they fail for the right reason
153
+ 4. **Write minimal implementation** to make tests pass
154
+ 5. **Run tests** and verify they pass
155
+ 6. **Refactor** code while keeping tests green
156
+ 7. **Check coverage** and add more tests if below 80%
157
+
158
+ ## TDD Cycle
159
+
160
+ ```
161
+ RED → GREEN → REFACTOR → REPEAT
162
+
163
+ RED: Write a failing test
164
+ GREEN: Write minimal code to pass
165
+ REFACTOR: Improve code, keep tests passing
166
+ REPEAT: Next feature/scenario
167
+ ```
168
+
169
+ ## Example Usage
170
+
171
+ ```
172
+ User: $tdd I need a function to calculate market liquidity score
173
+
174
+ Agent (tdd-guide):
175
+ # TDD Session: Market Liquidity Score Calculator
176
+
177
+ ## Step 1: Define Interface (SCAFFOLD)
178
+
179
+ ```typescript
180
+ // lib/liquidity.ts
181
+ export interface MarketData {
182
+ totalVolume: number
183
+ bidAskSpread: number
184
+ activeTraders: number
185
+ lastTradeTime: Date
186
+ }
187
+
188
+ export function calculateLiquidityScore(market: MarketData): number {
189
+ // TODO: Implementation
190
+ throw new Error('Not implemented')
191
+ }
192
+ ```
193
+
194
+ ## Step 2: Write Failing Test (RED)
195
+
196
+ ```typescript
197
+ // lib/liquidity.test.ts
198
+ import { calculateLiquidityScore } from './liquidity'
199
+
200
+ describe('calculateLiquidityScore', () => {
201
+ it('should return high score for liquid market', () => {
202
+ const market = {
203
+ totalVolume: 100000,
204
+ bidAskSpread: 0.01,
205
+ activeTraders: 500,
206
+ lastTradeTime: new Date()
207
+ }
208
+
209
+ const score = calculateLiquidityScore(market)
210
+
211
+ expect(score).toBeGreaterThan(80)
212
+ expect(score).toBeLessThanOrEqual(100)
213
+ })
214
+
215
+ it('should return low score for illiquid market', () => {
216
+ const market = {
217
+ totalVolume: 100,
218
+ bidAskSpread: 0.5,
219
+ activeTraders: 2,
220
+ lastTradeTime: new Date(Date.now() - 86400000) // 1 day ago
221
+ }
222
+
223
+ const score = calculateLiquidityScore(market)
224
+
225
+ expect(score).toBeLessThan(30)
226
+ expect(score).toBeGreaterThanOrEqual(0)
227
+ })
228
+
229
+ it('should handle edge case: zero volume', () => {
230
+ const market = {
231
+ totalVolume: 0,
232
+ bidAskSpread: 0,
233
+ activeTraders: 0,
234
+ lastTradeTime: new Date()
235
+ }
236
+
237
+ const score = calculateLiquidityScore(market)
238
+
239
+ expect(score).toBe(0)
240
+ })
241
+ })
242
+ ```
243
+
244
+ ## Step 3: Run Tests - Verify FAIL
245
+
246
+ ```bash
247
+ npm test lib/liquidity.test.ts
248
+
249
+ FAIL lib/liquidity.test.ts
250
+ ✕ should return high score for liquid market (2 ms)
251
+ Error: Not implemented
252
+
253
+ 1 test failed, 0 passed
254
+ ```
255
+
256
+ ✅ Tests fail as expected. Ready to implement.
257
+
258
+ ## Step 4: Implement Minimal Code (GREEN)
259
+
260
+ ```typescript
261
+ // lib/liquidity.ts
262
+ export function calculateLiquidityScore(market: MarketData): number {
263
+ // Handle zero volume edge case
264
+ if (market.totalVolume === 0) {
265
+ return 0
266
+ }
267
+
268
+ // Calculate component scores (0-100 scale)
269
+ const volumeScore = Math.min(market.totalVolume / 1000, 100)
270
+ const spreadScore = Math.max(100 - (market.bidAskSpread * 1000), 0)
271
+ const traderScore = Math.min(market.activeTraders / 10, 100)
272
+
273
+ // Recent activity bonus
274
+ const hoursSinceLastTrade = (Date.now() - market.lastTradeTime.getTime()) / (1000 * 60 * 60)
275
+ const recencyScore = Math.max(100 - (hoursSinceLastTrade * 10), 0)
276
+
277
+ // Weighted average
278
+ const score = (
279
+ volumeScore * 0.4 +
280
+ spreadScore * 0.3 +
281
+ traderScore * 0.2 +
282
+ recencyScore * 0.1
283
+ )
284
+
285
+ return Math.min(Math.max(score, 0), 100) // Clamp to 0-100
286
+ }
287
+ ```
288
+
289
+ ## Step 5: Run Tests - Verify PASS
290
+
291
+ ```bash
292
+ npm test lib/liquidity.test.ts
293
+
294
+ PASS lib/liquidity.test.ts
295
+ ✓ should return high score for liquid market (3 ms)
296
+ ✓ should return low score for illiquid market (2 ms)
297
+ ✓ should handle edge case: zero volume (1 ms)
298
+
299
+ 3 tests passed
300
+ ```
301
+
302
+ ✅ All tests passing!
303
+
304
+ ## Step 6: Refactor (IMPROVE)
305
+
306
+ ```typescript
307
+ // lib/liquidity.ts - Refactored with constants and better readability
308
+ const WEIGHTS = {
309
+ VOLUME: 0.4,
310
+ SPREAD: 0.3,
311
+ TRADERS: 0.2,
312
+ RECENCY: 0.1,
313
+ } as const
314
+
315
+ const SCALE_FACTORS = {
316
+ VOLUME: 1000,
317
+ SPREAD: 1000,
318
+ TRADERS: 10,
319
+ RECENCY_PENALTY: 10,
320
+ } as const
321
+
322
+ function clamp(value: number, min: number, max: number): number {
323
+ return Math.min(Math.max(value, min), max)
324
+ }
325
+
326
+ export function calculateLiquidityScore(market: MarketData): number {
327
+ if (market.totalVolume === 0) return 0
328
+
329
+ const volumeScore = Math.min(market.totalVolume / SCALE_FACTORS.VOLUME, 100)
330
+ const spreadScore = clamp(100 - (market.bidAskSpread * SCALE_FACTORS.SPREAD), 0, 100)
331
+ const traderScore = Math.min(market.activeTraders / SCALE_FACTORS.TRADERS, 100)
332
+
333
+ const hoursSinceLastTrade = (Date.now() - market.lastTradeTime.getTime()) / (1000 * 60 * 60)
334
+ const recencyScore = clamp(100 - (hoursSinceLastTrade * SCALE_FACTORS.RECENCY_PENALTY), 0, 100)
335
+
336
+ const weightedScore =
337
+ volumeScore * WEIGHTS.VOLUME +
338
+ spreadScore * WEIGHTS.SPREAD +
339
+ traderScore * WEIGHTS.TRADERS +
340
+ recencyScore * WEIGHTS.RECENCY
341
+
342
+ return clamp(weightedScore, 0, 100)
343
+ }
344
+ ```
345
+
346
+ ## Step 7: Verify Tests Still Pass
347
+
348
+ ```bash
349
+ npm test lib/liquidity.test.ts
350
+
351
+ PASS lib/liquidity.test.ts
352
+ ✓ should return high score for liquid market (3 ms)
353
+ ✓ should return low score for illiquid market (2 ms)
354
+ ✓ should handle edge case: zero volume (1 ms)
355
+
356
+ 3 tests passed
357
+ ```
358
+
359
+ ✅ Refactoring complete, tests still passing!
360
+
361
+ ## Step 8: Check Coverage
362
+
363
+ ```bash
364
+ npm test -- --coverage lib/liquidity.test.ts
365
+
366
+ File | % Stmts | % Branch | % Funcs | % Lines
367
+ ---------------|---------|----------|---------|--------
368
+ liquidity.ts | 100 | 100 | 100 | 100
369
+
370
+ Coverage: 100% ✅ (Target: 80%)
371
+ ```
372
+
373
+ ✅ TDD session complete!
374
+ ```
375
+
376
+ ## TDD Best Practices
377
+
378
+ **DO:**
379
+ - ✅ Write the test FIRST, before any implementation
380
+ - ✅ Run tests and verify they FAIL before implementing
381
+ - ✅ Write minimal code to make tests pass
382
+ - ✅ Refactor only after tests are green
383
+ - ✅ Add edge cases and error scenarios
384
+ - ✅ Aim for 80%+ coverage (100% for critical code)
385
+
386
+ **DON'T:**
387
+ - ❌ Write implementation before tests
388
+ - ❌ Skip running tests after each change
389
+ - ❌ Write too much code at once
390
+ - ❌ Ignore failing tests
391
+ - ❌ Test implementation details (test behavior)
392
+ - ❌ Mock everything (prefer integration tests)
393
+
394
+ ## Test Types to Include
395
+
396
+ **Unit Tests** (Function-level):
397
+ - Happy path scenarios
398
+ - Edge cases (empty, null, max values)
399
+ - Error conditions
400
+ - Boundary values
401
+
402
+ **Integration Tests** (Component-level):
403
+ - API endpoints
404
+ - Database operations
405
+ - External service calls
406
+ - React components with hooks
407
+
408
+ **E2E Tests** (use `$e2e` command):
409
+ - Critical user flows
410
+ - Multi-step processes
411
+ - Full stack integration
412
+
413
+ ## Coverage Requirements
414
+
415
+ - **80% minimum** for all code
416
+ - **100% required** for:
417
+ - Financial calculations
418
+ - Authentication logic
419
+ - Security-critical code
420
+ - Core business logic
421
+
422
+ ## Important Notes
423
+
424
+ **MANDATORY**: Tests must be written BEFORE implementation. The TDD cycle is:
425
+
426
+ 1. **RED** - Write failing test
427
+ 2. **GREEN** - Implement to pass
428
+ 3. **REFACTOR** - Improve code
429
+
430
+ Never skip the RED phase. Never write code before tests.
431
+
432
+ ## Integration with Other Commands
433
+
434
+ - Use `$plan` first to understand what to build
435
+ - Use `$tdd` to implement with tests
436
+ - Use `$build-and-fix` if build errors occur
437
+ - Use `$code-review` to review implementation
438
+ - Use `$test-coverage` to verify coverage
439
+
440
+ ## Related Agents
441
+
442
+ This command invokes the `tdd-guide` agent located at:
443
+ `~/.codex/agents/tdd-guide.md` (if present)
444
+
445
+ And can reference the `tdd-workflow` skill at:
446
+ `~/.codex/skills/tdd-workflow/` (if present)