@uzysjung/agent-harness 26.83.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 (212) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +279 -0
  3. package/README.md +306 -0
  4. package/dist/chunk-SDVAM5JZ.js +775 -0
  5. package/dist/chunk-SDVAM5JZ.js.map +1 -0
  6. package/dist/index.js +5412 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/trust-tier-drift.js +67 -0
  9. package/dist/trust-tier-drift.js.map +1 -0
  10. package/package.json +53 -0
  11. package/scripts/prune-ecc.sh +310 -0
  12. package/templates/CLAUDE.md +86 -0
  13. package/templates/agents/build-error-resolver.md +114 -0
  14. package/templates/agents/code-reviewer.md +237 -0
  15. package/templates/agents/data-analyst.md +69 -0
  16. package/templates/agents/plan-checker.md +118 -0
  17. package/templates/agents/reviewer.md +128 -0
  18. package/templates/agents/security-reviewer.md +108 -0
  19. package/templates/agents/silent-failure-hunter.md +50 -0
  20. package/templates/agents/strategist.md +86 -0
  21. package/templates/antigravity/AGENTS.md.template +58 -0
  22. package/templates/codex/AGENTS.md.template +94 -0
  23. package/templates/codex/README.md +69 -0
  24. package/templates/codex/config.toml.template +108 -0
  25. package/templates/codex/hooks/README.md +40 -0
  26. package/templates/codex/hooks/gate-check.sh +7 -0
  27. package/templates/codex/hooks/hito-counter.sh +7 -0
  28. package/templates/codex/hooks/session-start.sh +7 -0
  29. package/templates/codex/hooks/uncommitted-check.sh +7 -0
  30. package/templates/codex/skills/uzys-build/SKILL.md +24 -0
  31. package/templates/codex/skills/uzys-plan/SKILL.md +24 -0
  32. package/templates/codex/skills/uzys-review/SKILL.md +24 -0
  33. package/templates/codex/skills/uzys-ship/SKILL.md +24 -0
  34. package/templates/codex/skills/uzys-spec/SKILL.md +28 -0
  35. package/templates/codex/skills/uzys-test/SKILL.md +24 -0
  36. package/templates/commands/ecc/checkpoint.md +32 -0
  37. package/templates/commands/ecc/e2e.md +105 -0
  38. package/templates/commands/ecc/eval.md +88 -0
  39. package/templates/commands/ecc/evolve.md +7 -0
  40. package/templates/commands/ecc/harness-audit.md +73 -0
  41. package/templates/commands/ecc/instinct-status.md +8 -0
  42. package/templates/commands/ecc/promote.md +10 -0
  43. package/templates/commands/ecc/security-scan.md +10 -0
  44. package/templates/commands/uzys/auto.md +190 -0
  45. package/templates/commands/uzys/build.md +42 -0
  46. package/templates/commands/uzys/plan.md +55 -0
  47. package/templates/commands/uzys/review.md +44 -0
  48. package/templates/commands/uzys/ship.md +49 -0
  49. package/templates/commands/uzys/spec.md +93 -0
  50. package/templates/commands/uzys/test.md +58 -0
  51. package/templates/docs/PLAN.template.md +102 -0
  52. package/templates/hooks/agentshield-gate.sh +101 -0
  53. package/templates/hooks/checkpoint-snapshot.sh +115 -0
  54. package/templates/hooks/gate-check.sh +138 -0
  55. package/templates/hooks/hito-counter.sh +26 -0
  56. package/templates/hooks/karpathy-gate.sh +59 -0
  57. package/templates/hooks/mcp-pre-exec.sh +104 -0
  58. package/templates/hooks/protect-files.sh +41 -0
  59. package/templates/hooks/session-start.sh +40 -0
  60. package/templates/hooks/spec-drift-check.sh +86 -0
  61. package/templates/mcp-allowlist.example +24 -0
  62. package/templates/mcp.json +20 -0
  63. package/templates/opencode/.opencode/commands/uzys-build.md +22 -0
  64. package/templates/opencode/.opencode/commands/uzys-plan.md +22 -0
  65. package/templates/opencode/.opencode/commands/uzys-review.md +22 -0
  66. package/templates/opencode/.opencode/commands/uzys-ship.md +22 -0
  67. package/templates/opencode/.opencode/commands/uzys-spec.md +28 -0
  68. package/templates/opencode/.opencode/commands/uzys-test.md +22 -0
  69. package/templates/opencode/.opencode/plugins/uzys-harness.ts +146 -0
  70. package/templates/opencode/AGENTS.md.template +98 -0
  71. package/templates/opencode/README.md +34 -0
  72. package/templates/opencode/opencode.json.template +42 -0
  73. package/templates/project-claude/_base.md +23 -0
  74. package/templates/project-claude/fragments/csr-fastapi/active-rules.md +13 -0
  75. package/templates/project-claude/fragments/csr-fastapi/agents.md +5 -0
  76. package/templates/project-claude/fragments/csr-fastapi/boundaries.md +18 -0
  77. package/templates/project-claude/fragments/csr-fastapi/commands.md +6 -0
  78. package/templates/project-claude/fragments/csr-fastapi/plugins.md +2 -0
  79. package/templates/project-claude/fragments/csr-fastapi/skills.md +5 -0
  80. package/templates/project-claude/fragments/csr-fastapi/stack.md +6 -0
  81. package/templates/project-claude/fragments/csr-fastapi/tagline.md +1 -0
  82. package/templates/project-claude/fragments/csr-fastapi/workflow.md +8 -0
  83. package/templates/project-claude/fragments/csr-fastify/active-rules.md +13 -0
  84. package/templates/project-claude/fragments/csr-fastify/agents.md +5 -0
  85. package/templates/project-claude/fragments/csr-fastify/boundaries.md +18 -0
  86. package/templates/project-claude/fragments/csr-fastify/commands.md +6 -0
  87. package/templates/project-claude/fragments/csr-fastify/plugins.md +2 -0
  88. package/templates/project-claude/fragments/csr-fastify/skills.md +5 -0
  89. package/templates/project-claude/fragments/csr-fastify/stack.md +6 -0
  90. package/templates/project-claude/fragments/csr-fastify/tagline.md +1 -0
  91. package/templates/project-claude/fragments/csr-fastify/workflow.md +8 -0
  92. package/templates/project-claude/fragments/csr-supabase/active-rules.md +12 -0
  93. package/templates/project-claude/fragments/csr-supabase/agents.md +5 -0
  94. package/templates/project-claude/fragments/csr-supabase/boundaries.md +19 -0
  95. package/templates/project-claude/fragments/csr-supabase/commands.md +6 -0
  96. package/templates/project-claude/fragments/csr-supabase/plugins.md +4 -0
  97. package/templates/project-claude/fragments/csr-supabase/skills.md +7 -0
  98. package/templates/project-claude/fragments/csr-supabase/stack.md +6 -0
  99. package/templates/project-claude/fragments/csr-supabase/supabase-auth.md +21 -0
  100. package/templates/project-claude/fragments/csr-supabase/tagline.md +1 -0
  101. package/templates/project-claude/fragments/csr-supabase/workflow.md +8 -0
  102. package/templates/project-claude/fragments/data/active-rules.md +10 -0
  103. package/templates/project-claude/fragments/data/agents.md +6 -0
  104. package/templates/project-claude/fragments/data/boundaries.md +20 -0
  105. package/templates/project-claude/fragments/data/commands.md +6 -0
  106. package/templates/project-claude/fragments/data/plugins.md +2 -0
  107. package/templates/project-claude/fragments/data/skills.md +3 -0
  108. package/templates/project-claude/fragments/data/stack.md +7 -0
  109. package/templates/project-claude/fragments/data/tagline.md +1 -0
  110. package/templates/project-claude/fragments/data/workflow.md +9 -0
  111. package/templates/project-claude/fragments/executive/active-rules.md +6 -0
  112. package/templates/project-claude/fragments/executive/agents.md +6 -0
  113. package/templates/project-claude/fragments/executive/boundaries.md +17 -0
  114. package/templates/project-claude/fragments/executive/commands.md +11 -0
  115. package/templates/project-claude/fragments/executive/plugins.md +1 -0
  116. package/templates/project-claude/fragments/executive/skills.md +7 -0
  117. package/templates/project-claude/fragments/executive/stack.md +4 -0
  118. package/templates/project-claude/fragments/executive/tagline.md +1 -0
  119. package/templates/project-claude/fragments/executive/workflow.md +10 -0
  120. package/templates/project-claude/fragments/growth-marketing/active-rules.md +7 -0
  121. package/templates/project-claude/fragments/growth-marketing/agents.md +6 -0
  122. package/templates/project-claude/fragments/growth-marketing/boundaries.md +17 -0
  123. package/templates/project-claude/fragments/growth-marketing/commands.md +11 -0
  124. package/templates/project-claude/fragments/growth-marketing/plugins.md +9 -0
  125. package/templates/project-claude/fragments/growth-marketing/skills.md +8 -0
  126. package/templates/project-claude/fragments/growth-marketing/stack.md +7 -0
  127. package/templates/project-claude/fragments/growth-marketing/tagline.md +1 -0
  128. package/templates/project-claude/fragments/growth-marketing/workflow.md +11 -0
  129. package/templates/project-claude/fragments/project-management/active-rules.md +7 -0
  130. package/templates/project-claude/fragments/project-management/agents.md +6 -0
  131. package/templates/project-claude/fragments/project-management/boundaries.md +16 -0
  132. package/templates/project-claude/fragments/project-management/commands.md +10 -0
  133. package/templates/project-claude/fragments/project-management/plugins.md +6 -0
  134. package/templates/project-claude/fragments/project-management/skills.md +5 -0
  135. package/templates/project-claude/fragments/project-management/stack.md +4 -0
  136. package/templates/project-claude/fragments/project-management/tagline.md +1 -0
  137. package/templates/project-claude/fragments/project-management/workflow.md +12 -0
  138. package/templates/project-claude/fragments/ssr-htmx/active-rules.md +11 -0
  139. package/templates/project-claude/fragments/ssr-htmx/agents.md +5 -0
  140. package/templates/project-claude/fragments/ssr-htmx/boundaries.md +20 -0
  141. package/templates/project-claude/fragments/ssr-htmx/commands.md +6 -0
  142. package/templates/project-claude/fragments/ssr-htmx/plugins.md +2 -0
  143. package/templates/project-claude/fragments/ssr-htmx/skills.md +3 -0
  144. package/templates/project-claude/fragments/ssr-htmx/stack.md +6 -0
  145. package/templates/project-claude/fragments/ssr-htmx/tagline.md +1 -0
  146. package/templates/project-claude/fragments/ssr-htmx/workflow.md +8 -0
  147. package/templates/project-claude/fragments/ssr-nextjs/active-rules.md +12 -0
  148. package/templates/project-claude/fragments/ssr-nextjs/agents.md +5 -0
  149. package/templates/project-claude/fragments/ssr-nextjs/boundaries.md +20 -0
  150. package/templates/project-claude/fragments/ssr-nextjs/commands.md +6 -0
  151. package/templates/project-claude/fragments/ssr-nextjs/plugins.md +2 -0
  152. package/templates/project-claude/fragments/ssr-nextjs/skills.md +5 -0
  153. package/templates/project-claude/fragments/ssr-nextjs/stack.md +5 -0
  154. package/templates/project-claude/fragments/ssr-nextjs/tagline.md +1 -0
  155. package/templates/project-claude/fragments/ssr-nextjs/workflow.md +8 -0
  156. package/templates/project-claude/fragments/tooling/active-rules.md +11 -0
  157. package/templates/project-claude/fragments/tooling/agents.md +5 -0
  158. package/templates/project-claude/fragments/tooling/boundaries.md +17 -0
  159. package/templates/project-claude/fragments/tooling/commands.md +4 -0
  160. package/templates/project-claude/fragments/tooling/skills.md +4 -0
  161. package/templates/project-claude/fragments/tooling/stack.md +5 -0
  162. package/templates/project-claude/fragments/tooling/tagline.md +1 -0
  163. package/templates/project-claude/fragments/tooling/workflow.md +5 -0
  164. package/templates/rules/api-contract.md +33 -0
  165. package/templates/rules/change-management.md +80 -0
  166. package/templates/rules/cli-development.md +39 -0
  167. package/templates/rules/code-style.md +23 -0
  168. package/templates/rules/data-analysis.md +61 -0
  169. package/templates/rules/database.md +29 -0
  170. package/templates/rules/design-workflow.md +17 -0
  171. package/templates/rules/error-handling.md +23 -0
  172. package/templates/rules/gates-taxonomy.md +21 -0
  173. package/templates/rules/git-policy.md +102 -0
  174. package/templates/rules/htmx.md +42 -0
  175. package/templates/rules/nextjs.md +35 -0
  176. package/templates/rules/playwright-launch.md +66 -0
  177. package/templates/rules/pyside6.md +59 -0
  178. package/templates/rules/shadcn.md +33 -0
  179. package/templates/rules/ship-checklist.md +24 -0
  180. package/templates/rules/tauri.md +40 -0
  181. package/templates/rules/test-policy.md +62 -0
  182. package/templates/settings.json +71 -0
  183. package/templates/skills/agent-introspection-debugging/SKILL.md +153 -0
  184. package/templates/skills/continuous-learning-v2/SKILL.md +365 -0
  185. package/templates/skills/continuous-learning-v2/config.json +8 -0
  186. package/templates/skills/continuous-learning-v2/hooks/observe.sh +428 -0
  187. package/templates/skills/continuous-learning-v2/scripts/detect-project.sh +228 -0
  188. package/templates/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
  189. package/templates/skills/deep-research/SKILL.md +155 -0
  190. package/templates/skills/deep-research/agents/openai.yaml +7 -0
  191. package/templates/skills/e2e-testing/SKILL.md +326 -0
  192. package/templates/skills/e2e-testing/agents/openai.yaml +7 -0
  193. package/templates/skills/eval-harness/SKILL.md +279 -0
  194. package/templates/skills/eval-harness/agents/openai.yaml +7 -0
  195. package/templates/skills/gh-issue-workflow/ISSUE.template.md +58 -0
  196. package/templates/skills/gh-issue-workflow/SKILL.md +184 -0
  197. package/templates/skills/investor-materials/SKILL.md +96 -0
  198. package/templates/skills/investor-outreach/SKILL.md +91 -0
  199. package/templates/skills/market-research/SKILL.md +75 -0
  200. package/templates/skills/market-research/agents/openai.yaml +7 -0
  201. package/templates/skills/nextjs-turbopack/SKILL.md +44 -0
  202. package/templates/skills/north-star/NORTH_STAR.template.md +114 -0
  203. package/templates/skills/north-star/SKILL.md +103 -0
  204. package/templates/skills/python-patterns/SKILL.md +750 -0
  205. package/templates/skills/python-testing/SKILL.md +816 -0
  206. package/templates/skills/spec-scaling/SKILL.md +89 -0
  207. package/templates/skills/strategic-compact/SKILL.md +131 -0
  208. package/templates/skills/strategic-compact/suggest-compact.sh +54 -0
  209. package/templates/skills/ui-visual-review/SKILL.md +154 -0
  210. package/templates/skills/verification-loop/SKILL.md +126 -0
  211. package/templates/skills/verification-loop/agents/openai.yaml +7 -0
  212. package/templates/track-mcp-map.tsv +15 -0
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: silent-failure-hunter
3
+ description: Review code for silent failures, swallowed errors, bad fallbacks, and missing error propagation.
4
+ model: sonnet
5
+ tools: [Read, Grep, Glob, Bash]
6
+ ---
7
+
8
+ # Silent Failure Hunter Agent
9
+
10
+ You have zero tolerance for silent failures.
11
+
12
+ ## Hunt Targets
13
+
14
+ ### 1. Empty Catch Blocks
15
+
16
+ - `catch {}` or ignored exceptions
17
+ - errors converted to `null` / empty arrays with no context
18
+
19
+ ### 2. Inadequate Logging
20
+
21
+ - logs without enough context
22
+ - wrong severity
23
+ - log-and-forget handling
24
+
25
+ ### 3. Dangerous Fallbacks
26
+
27
+ - default values that hide real failure
28
+ - `.catch(() => [])`
29
+ - graceful-looking paths that make downstream bugs harder to diagnose
30
+
31
+ ### 4. Error Propagation Issues
32
+
33
+ - lost stack traces
34
+ - generic rethrows
35
+ - missing async handling
36
+
37
+ ### 5. Missing Error Handling
38
+
39
+ - no timeout or error handling around network/file/db paths
40
+ - no rollback around transactional work
41
+
42
+ ## Output Format
43
+
44
+ For each finding:
45
+
46
+ - location
47
+ - severity
48
+ - issue
49
+ - impact
50
+ - fix recommendation
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: strategist
3
+ description: "Business strategy and executive document specialist. Creates proposals, due diligence reports, competitive analysis, financial models, and presentations. Use for executive-track deliverables. Integrates with Anthropic document-skills (pptx/docx/xlsx/pdf)."
4
+ tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
5
+ model: opus
6
+ ---
7
+
8
+ # Strategist Agent
9
+
10
+ ## Expertise Domains
11
+
12
+ ### Proposals & Reports
13
+ - **사업 제안서**: 문제 정의 → 솔루션 → 시장 기회 → 실행 계획 → 재무 전망
14
+ - **Due Diligence**: 기술 DD, 재무 DD, 법률 DD 각 관점별 체크리스트
15
+ - **경쟁 분석**: 포터 5 Forces, SWOT, 기능 비교 매트릭스, 포지셔닝 맵
16
+ - **시장 분석**: TAM/SAM/SOM, 성장률 추정, 트렌드 분석
17
+ - **정기 보고서**: 주간/월간 리더십 업데이트, KPI 대시보드, 이슈 에스컬레이션
18
+
19
+ ### Financial Modeling
20
+ - **수익 모델**: SaaS(MRR/ARR/Churn), 트랜잭션 기반, 구독 + 사용량 하이브리드
21
+ - **비용 구조**: 인건비, 인프라(AWS/GCP/Railway), 마케팅, 운영비
22
+ - **시나리오 분석**: Base/Bull/Bear 3개 시나리오, 민감도 분석
23
+ - **KPI**: CAC, LTV, LTV/CAC, Burn Rate, Runway, Unit Economics
24
+
25
+ ### Presentation Design
26
+ - **구조**: 1페이지 executive summary + 3-5페이지 detail sections
27
+ - **원칙**: 슬라이드당 하나의 메시지, 시각적 일관성, 데이터 기반
28
+ - **도구**: Anthropic `document-skills:pptx` 연동
29
+
30
+ ## Document Types & Templates
31
+
32
+ ### 1-Page Executive Summary
33
+ ```
34
+ [문제] → [솔루션] → [시장 기회] → [경쟁 우위] → [재무 요약] → [요청 사항]
35
+ ```
36
+
37
+ ### 사업 제안서 구조
38
+ 1. Executive Summary
39
+ 2. 문제 정의 & 시장 기회
40
+ 3. 솔루션 개요
41
+ 4. 비즈니스 모델
42
+ 5. 경쟁 환경 & 차별화
43
+ 6. GTM 전략
44
+ 7. 팀 구성
45
+ 8. 재무 계획 (3년)
46
+ 9. 리스크 & 완화 방안
47
+ 10. 요청 사항 & 다음 단계
48
+
49
+ ### 옵션 비교 테이블
50
+ | 기준 | 가중치 | 옵션 A | 옵션 B | 옵션 C |
51
+ |------|--------|--------|--------|--------|
52
+ | [기준 1] | [%] | [점수] | [점수] | [점수] |
53
+ | **가중 합계** | | | | |
54
+
55
+ ## Integration with document-skills
56
+
57
+ - **pptx**: `document-skills:pptx` 스킬로 PowerPoint 생성/편집
58
+ - **docx**: `document-skills:docx` 스킬로 Word 문서 생성/편집
59
+ - **xlsx**: `document-skills:xlsx` 스킬로 Excel 스프레드시트 생성/편집
60
+ - **pdf**: `document-skills:pdf` 스킬로 PDF 조작
61
+
62
+ 산출물 유형에 따라 적절한 document-skills를 자동 선택한다.
63
+
64
+ ## Quality Standards
65
+
66
+ ### 데이터 기반
67
+ - 모든 주장에 근거(수치, 출처) 필수
68
+ - 출처 불명 데이터는 "추정" 또는 "가정" 명시
69
+ - 시장 데이터는 발행일 기준 2년 이내만 사용
70
+
71
+ ### 청중 수준 적합
72
+ - C-level: 핵심 메시지 + 의사결정 포인트 (디테일 부록으로)
73
+ - 실무자: 구체적 실행 계획 + 일정 + 담당자
74
+ - 투자자: 재무 중심 + 성장 내러티브 + 리스크 대응
75
+
76
+ ### 한국어 비즈니스 문서 규칙
77
+ - 존칭 일관성 유지
78
+ - 숫자/단위 표기 통일 (천원, 백만원, 억원)
79
+ - 영문 약어 최초 등장 시 한글 병기: "SaaS(서비스형 소프트웨어)"
80
+
81
+ ## Anti-Patterns
82
+
83
+ - "일반적으로", "통상적으로" 등 모호한 표현 금지 — 구체적 수치 사용
84
+ - 경쟁사 분석 시 감정적 표현 금지 — 객관적 기능/성능 비교만
85
+ - 재무 모델에서 비현실적 성장률(연 300%+) 무비판 사용 금지
86
+ - 근거 없는 시장 규모 추정 금지
@@ -0,0 +1,58 @@
1
+ # {PROJECT_NAME} — Antigravity Agent Guide
2
+
3
+ > **Generated from**: `.claude/CLAUDE.md` via TS CLI `src/antigravity/transform.ts`
4
+ > **Antigravity**: 2.0+ (`agy` CLI + desktop IDE)
5
+ > **Location**: workspace rule — `.agents/rules/uzys-harness.md`
6
+
7
+ ## Project Rules
8
+
9
+ {PROJECT_RULES}
10
+
11
+ ## Workflow Gates
12
+
13
+ ```
14
+ Define(/uzys-spec) → Plan(/uzys-plan) → Build(/uzys-build) → Verify(/uzys-test) → Review(/uzys-review) → Ship(/uzys-ship)
15
+ ```
16
+
17
+ 각 단계 완료 없이 다음 진행 금지. 6-Gate workflow 는 `uzys-harness 6-Gate workflow` opt-in 시에만 `.agents/workflows/` 에 설치됨.
18
+
19
+ **Hotfix 단축**: Build → Verify → Ship (긴급 수정에 한함)
20
+ **Executive track**: 6단계 게이트 미적용. 자연어 요청 → strategist + document-skills → 산출물 → 검토.
21
+
22
+ ## Command Reference (Antigravity workflows)
23
+
24
+ `.agents/workflows/uzys-{phase}.md` 파일은 `/` prefix 슬래시로 호출됨:
25
+
26
+ | Slash | 용도 |
27
+ |-------|------|
28
+ | `/uzys-spec` | Define — 구조화된 스펙 작성 |
29
+ | `/uzys-plan` | Plan — 검증 가능한 작은 단위로 분해 |
30
+ | `/uzys-build` | Build — TDD 점진적 구현 |
31
+ | `/uzys-test` | Verify — 테스트 실행 + 커버리지 |
32
+ | `/uzys-review` | Review — 5축 리뷰 (correctness, readability, architecture, security, performance) |
33
+ | `/uzys-ship` | Ship — 프리런치 체크리스트 + 배포 |
34
+
35
+ Antigravity 는 워크플로우를 파일명 기반 `/` 슬래시로 호출 → `uzys-{phase}.md` = `/uzys-{phase}`. Claude Code 원본은 `/uzys:*` 유지.
36
+
37
+ ## Protected Files (DO NOT EDIT)
38
+
39
+ - `.env*`, `**/credentials.json`
40
+ - `*.lock`, `package-lock.json`, `pnpm-lock.yaml`, `poetry.lock`, `Cargo.lock`, `uv.lock`
41
+ - `.git/` 내부 파일 (커밋 메시지/hook 제외)
42
+ - `~/.gemini/`, `~/.claude/`, `~/.codex/` 글로벌 (D16 보호)
43
+
44
+ 보호 영역 이슈 발견 시 **보고만**. 직접 수정 금지.
45
+
46
+ ## Scopes
47
+
48
+ | Scope | 위치 | 비고 |
49
+ |-------|------|------|
50
+ | Workspace skills | `.agents/skills/` | 본 프로젝트 한정 (Codex 공유) |
51
+ | Workspace workflows | `.agents/workflows/` | 본 프로젝트 한정 |
52
+ | Workspace rules | `.agents/rules/` | 본 문서 |
53
+ | Global rules | `~/.gemini/GEMINI.md` | 사용자 직접 관리 (harness 미터치) |
54
+ | Global skills | `~/.gemini/antigravity/skills/` | `--with-antigravity-global` + `--scope global` opt-in 시만 |
55
+
56
+ ---
57
+
58
+ *이 문서는 자동 생성됨. 수동 편집 시 harness 재설치가 덮어쓸 수 있음. 원본은 `.claude/CLAUDE.md` 또는 `templates/CLAUDE.md`.*
@@ -0,0 +1,94 @@
1
+ # {PROJECT_NAME} — Codex Agent Guide
2
+
3
+ > **Generated from**: `.claude/CLAUDE.md` via `scripts/claude-to-codex.sh` (Phase C)
4
+ > **Codex Version**: 0.124.0+
5
+ > **Linked SPEC**: `docs/specs/codex-compat.md`
6
+
7
+ ## Project Rules
8
+
9
+ {PROJECT_RULES}
10
+
11
+ ## Workflow Gates
12
+
13
+ ```
14
+ Define(/uzys-spec) → Plan(/uzys-plan) → Build(/uzys-build) → Verify(/uzys-test) → Review(/uzys-review) → Ship(/uzys-ship)
15
+ ```
16
+
17
+ 각 단계 완료 없이 다음 진행 금지. 건너뛰기 시도 시 `pre_tool_use` hook이 exit 2로 차단.
18
+
19
+ **Hotfix 단축**: Build → Verify → Ship (긴급 수정에 한함)
20
+
21
+ **Executive track**: 6단계 게이트 미적용. 자연어 요청 → strategist + document-skills → 산출물 → 검토.
22
+
23
+ ## Session Start
24
+
25
+ 매 세션 시작 시:
26
+ 1. `git pull --rebase`
27
+ 2. `docs/SPEC.md` 및 `docs/specs/*.md` 재참조 (Persistent Anchor)
28
+ 3. `docs/todo.md` 현재 Phase 확인
29
+
30
+ `session_start` hook이 자동 수행. Hook 실패 시 수동 수행.
31
+
32
+ ## Protected Files (DO NOT EDIT)
33
+
34
+ Codex `sandbox_mode = "workspace-write"` + `approval_policy = "on-request"` 가 1차 방어. LLM 추가 준수:
35
+
36
+ - `.env*`
37
+ - `**/credentials.json`
38
+ - `*.lock`, `package-lock.json`, `pnpm-lock.yaml`, `poetry.lock`, `Cargo.lock`, `uv.lock`
39
+ - `.git/` 내부 파일 (커밋 메시지/hook 제외)
40
+ - `~/.codex/`, `~/.claude/` 글로벌 (D16 보호)
41
+
42
+ 보호 영역 이슈 발견 시 **보고만**. 직접 수정 금지.
43
+
44
+ ## Git Policy
45
+
46
+ - 코드/문서 변경 시 **즉시 commit**. "나중에 한꺼번에" 금지.
47
+ - `main` 직접 커밋 금지. feature branch 사용.
48
+ - 세션 시작 시 `git pull` 필수.
49
+ - Conventional Commits — `<type>: <description>` (feat, fix, refactor, docs, test, chore, perf, ci)
50
+
51
+ ## Command Reference (Codex slash)
52
+
53
+ | Slash | 용도 |
54
+ |-------|------|
55
+ | `/uzys-spec` | Define — 구조화된 스펙 작성 |
56
+ | `/uzys-plan` | Plan — 검증 가능한 작은 단위로 분해 |
57
+ | `/uzys-build` | Build — TDD 점진적 구현 |
58
+ | `/uzys-test` | Verify — 테스트 실행 + 커버리지 |
59
+ | `/uzys-review` | Review — 5축 리뷰 (correctness, readability, architecture, security, performance) |
60
+ | `/uzys-ship` | Ship — 프리런치 체크리스트 + 배포 |
61
+
62
+ Codex는 slash namespace(`uzys:`)를 지원하지 않아 `uzys-*` 형식으로 rename됨. Claude Code 원본은 `/uzys:*` 유지.
63
+
64
+ ## Agents (subagent, multi_agent stable)
65
+
66
+ | Agent | Model | 역할 |
67
+ |-------|-------|------|
68
+ | reviewer | opus | 검증 전용 (SOD). 5축 리뷰 |
69
+ | data-analyst | opus | Python / DuckDB / Trino / ML / PySide6 |
70
+ | strategist | opus | 제안서 / DD / PPT / 경쟁분석 / 재무모델 |
71
+ | code-reviewer | sonnet | 일상적 코드 리뷰 |
72
+ | security-reviewer | sonnet | OWASP Top 10, 보안 패턴 |
73
+
74
+ subagent 호출은 `spawn_agent / wait_agent / close_agent` 툴. 부모 컨텍스트 격리.
75
+
76
+ ## Hooks 현황 (Codex 0.124.0 실측 제약)
77
+
78
+ - `pre_tool_use` / `post_tool_use` — **Bash 툴 한정 발화** (Issue #16732). ApplyPatch(파일 쓰기) 가로채기는 불가. `sandbox_mode` + `approval_policy`로 대체 보호.
79
+ - 프로젝트 `.codex/config.toml` 훅은 사용자 `~/.codex/config.toml`에 trust entry 등록된 경우에만 로드.
80
+ - 인터랙티브 세션 hook 로딩 bug (Issue #17532) 존재 가능 — `codex exec` 비대화형은 정상.
81
+
82
+ ## Experience Accumulation
83
+
84
+ - Codex `memories` feature (experimental) — Claude auto memory 유사
85
+ - 검증된 learning만 Rules 승격
86
+
87
+ ## Context Management
88
+
89
+ - SPEC/PRD 매 세션 시작 시 재참조 (Persistent Anchor)
90
+ - `child_agents_md` feature flag는 **under development, disabled** — AGENTS.md 디렉토리 계층 merge 사용 불가. 글로벌 `~/.codex/AGENTS.md` + 프로젝트 `AGENTS.md` 2단만 사용.
91
+
92
+ ---
93
+
94
+ *이 문서는 자동 생성됨. 수동 편집 시 `scripts/claude-to-codex.sh` 재실행이 덮어쓸 수 있음. 원본은 `.claude/CLAUDE.md` 또는 `templates/CLAUDE.md`.*
@@ -0,0 +1,69 @@
1
+ # templates/codex/ — Codex CLI 배포 템플릿
2
+
3
+ > **Linked SPEC**: `docs/specs/codex-compat.md` Phase B
4
+ > **Linked ADR**: `docs/decisions/ADR-002-codex-hook-gap.md` v2
5
+ > **Codex Version**: 0.124.0+ (`codex_hooks=stable, multi_agent=stable, plugins=stable` 전제)
6
+
7
+ ## 목적
8
+
9
+ Claude Code SSOT(`templates/`, `.claude/`)에서 Codex CLI 프로젝트로 **포맷 변환**하여 설치할 때 사용되는 템플릿 집합. 변환 로직은 `scripts/claude-to-codex.sh` (Phase C)에서 구현.
10
+
11
+ ## 디렉토리 레이아웃
12
+
13
+ ```
14
+ templates/codex/
15
+ ├── README.md # 본 파일
16
+ ├── AGENTS.md.template # 프로젝트 AGENTS.md (CLAUDE.md에서 생성)
17
+ ├── config.toml.template # 프로젝트 .codex/config.toml (hooks + mcp + sandbox)
18
+ ├── hooks/ # Shell 스크립트 (.claude/hooks/ 재사용 가능)
19
+ │ ├── README.md # 포팅 상태 + Event 매핑
20
+ │ ├── gate-check.sh # pre_tool_use matcher="Skill"
21
+ │ ├── hito-counter.sh # user_prompt_submit
22
+ │ ├── session-start.sh # session_start
23
+ │ └── uncommitted-check.sh # post_tool_use (Bash 한정)
24
+ └── skills/ # 6 uzys skills (Codex skill 포맷)
25
+ ├── uzys-spec/SKILL.md
26
+ ├── uzys-plan/SKILL.md
27
+ ├── uzys-build/SKILL.md
28
+ ├── uzys-test/SKILL.md
29
+ ├── uzys-review/SKILL.md
30
+ └── uzys-ship/SKILL.md
31
+ ```
32
+
33
+ ## 설치 대상 경로 (`setup-harness.sh --cli=codex` 실행 후)
34
+
35
+ | 템플릿 | 대상 경로 |
36
+ |--------|-----------|
37
+ | `AGENTS.md.template` | `<project>/AGENTS.md` |
38
+ | `config.toml.template` | `<project>/.codex/config.toml` |
39
+ | `hooks/*.sh` | `<project>/.codex/hooks/*.sh` |
40
+ | `skills/uzys-*/` | `~/.codex/skills/uzys-*/` (공식 $CODEX_HOME/skills) |
41
+ | 사용자 `~/.codex/config.toml`에 trust 등록 추가 | (D4 opt-in 확인) |
42
+
43
+ ## Hook Event 매핑 (Claude → Codex)
44
+
45
+ | Claude | Codex event (snake_case) | Blockable | 제약 |
46
+ |--------|--------------------------|-----------|------|
47
+ | `SessionStart` | `session_start` | ❌ | — |
48
+ | `UserPromptSubmit` | `user_prompt_submit` | ✅ (exit 2) | matcher 무시 |
49
+ | `PreToolUse` (Skill) | `pre_tool_use` matcher="Skill" | ✅ | **Bash 툴 한정 발화 (Issue #16732)** |
50
+ | `PreToolUse` (Write) | — | — | **Codex `sandbox_mode`로 이관** (ADR-002 v2 D3) |
51
+ | `PostToolUse` | `post_tool_use` | ❌ | Bash 한정 |
52
+ | `Stop` | `stop` | ✅ | — |
53
+
54
+ stdin JSON 필드(`session_id`, `cwd`, `tool_name`, `tool_input`, `hook_event_name`)는 Claude ↔ Codex 공통 → **shell 스크립트 본체 재사용**.
55
+
56
+ ## 미구현 (후속 Phase)
57
+
58
+ - `AGENTS.md.template` 본문 — CLAUDE.md에서 변환 (Phase C)
59
+ - `hooks/*.sh` 본체 — `.claude/hooks/` 에서 포팅 (Phase C)
60
+ - `skills/uzys-*/SKILL.md` 본문 — `.claude/commands/uzys/*.md`에서 포팅 + slash prefix rename (Phase C)
61
+ - `setup-harness.sh --cli=codex` 경로 — Phase D
62
+ - Trust entry 확인 프롬프트 — Phase D
63
+ - `--cli=codex` dogfood 검증 — Phase F
64
+
65
+ ## DO NOT CHANGE
66
+
67
+ - `.claude/` (Claude SSOT) — 절대 수정 금지
68
+ - `~/.codex/` 글로벌 — `setup-harness.sh`가 opt-in 확인 후에만 trust 등록
69
+ - 본 디렉토리 `AGENTS.md.template`과 `config.toml.template`의 플레이스홀더 토큰 (Phase C 변환 스크립트 계약)
@@ -0,0 +1,108 @@
1
+ # Codex 프로젝트 설정 — {PROJECT_NAME}
2
+ # 위치: <project>/.codex/config.toml
3
+ # 생성: setup-harness.sh --cli=codex (Phase D)
4
+ #
5
+ # 참조:
6
+ # - docs/decisions/ADR-002-codex-hook-gap.md v2
7
+ # - docs/specs/codex-compat.md §3.4 OQ2 (trust entry 규약)
8
+ #
9
+ # 주의:
10
+ # - 프로젝트 스코프 hook은 사용자 ~/.codex/config.toml에 trust entry 등록 후에만 로드됨
11
+ # - `{...}` 플레이스홀더는 scripts/claude-to-codex.sh 에서 치환됨
12
+
13
+ # ============================================================
14
+ # Sandbox & Approval (파일 쓰기 보호 — ADR-002 v2 D3)
15
+ # ============================================================
16
+ approval_policy = "on-request"
17
+ sandbox_mode = "workspace-write"
18
+
19
+ [sandbox_workspace_write]
20
+ # 기본 쓰기 허용: 프로젝트 디렉토리 + /tmp
21
+ writable_roots = [
22
+ "{PROJECT_DIR}",
23
+ "/tmp",
24
+ ]
25
+ network_access = true
26
+ # 민감 경로(.env, credentials, lock)는 AGENTS.md에 명시 — LLM 보조 방어
27
+
28
+ # ============================================================
29
+ # Model & Reasoning
30
+ # ============================================================
31
+ # model = "gpt-5-codex" # 필요 시 활성화. 생략하면 기본값 사용
32
+ # model_reasoning_effort = "medium"
33
+
34
+ # ============================================================
35
+ # Analytics
36
+ # ============================================================
37
+ [analytics]
38
+ enabled = true
39
+
40
+ # ============================================================
41
+ # Hooks — Claude Code `.claude/settings.json` hooks 블록에서 포맷 변환
42
+ # Event 이벤트 매핑: ADR-002 v2 D2 / templates/codex/README.md
43
+ # ============================================================
44
+
45
+ # SessionStart: git pull + SPEC 재참조 안내
46
+ [[hooks.session_start]]
47
+ name = "session-start"
48
+ command = ["{PROJECT_DIR}/.codex/hooks/session-start.sh"]
49
+ type = "command"
50
+ timeout = 10
51
+ async = false
52
+
53
+ # UserPromptSubmit: HITO(Human-In-The-Loop Interrupts) 카운트
54
+ [[hooks.user_prompt_submit]]
55
+ name = "hito-counter"
56
+ command = ["{PROJECT_DIR}/.codex/hooks/hito-counter.sh"]
57
+ type = "command"
58
+ timeout = 5
59
+ async = true # non-blocking 측정
60
+
61
+ # PreToolUse(Skill matcher): Phase 순서 강제 (exit 2로 차단)
62
+ # 주의: Issue #16732 — Bash 툴에만 발화. ApplyPatch(파일 쓰기)에는 fire 안 함
63
+ [[hooks.pre_tool_use]]
64
+ name = "gate-check"
65
+ command = ["{PROJECT_DIR}/.codex/hooks/gate-check.sh"]
66
+ type = "command"
67
+ timeout = 10
68
+ matcher = "Skill"
69
+ async = false
70
+
71
+ # PostToolUse: 미커밋 파일 경고 (Bash 한정)
72
+ [[hooks.post_tool_use]]
73
+ name = "uncommitted-check"
74
+ command = ["{PROJECT_DIR}/.codex/hooks/uncommitted-check.sh"]
75
+ type = "command"
76
+ timeout = 5
77
+ async = false
78
+
79
+ # ============================================================
80
+ # MCP Servers — .mcp.json에서 포맷 변환
81
+ # 조건부 포함: Track 따라 setup-harness가 추가
82
+ # ============================================================
83
+
84
+ [mcp_servers.context7]
85
+ command = "npx"
86
+ args = ["-y", "@upstash/context7-mcp"]
87
+
88
+ # github MCP (필요 시 활성화)
89
+ # [mcp_servers.github]
90
+ # command = "npx"
91
+ # args = ["-y", "@modelcontextprotocol/server-github"]
92
+ # env = { GITHUB_PERSONAL_ACCESS_TOKEN = "{GITHUB_TOKEN}" }
93
+
94
+ # Railway MCP (csr-fastify/csr-fastapi/ssr-*/full 에서만)
95
+ # [mcp_servers.railway]
96
+ # command = "npx"
97
+ # args = ["-y", "railway-mcp-server"]
98
+
99
+ # ============================================================
100
+ # Features (본 설치가 사용하는 stable feature 명시)
101
+ # ============================================================
102
+ [features]
103
+ codex_hooks = true # stable, 기본값 true — 명시적 확정
104
+ multi_agent = true # stable — subagent SOD
105
+ plugins = true # stable — plugin 번들 호환
106
+ tool_search = true # stable
107
+ skill_mcp_dependency_install = true # skill이 MCP 자동 설치
108
+ child_agents_md = false # under dev — 본 SPEC 범위 밖
@@ -0,0 +1,40 @@
1
+ # templates/codex/hooks/ — Codex Hook 스크립트
2
+
3
+ > **Linked**: `docs/decisions/ADR-002-codex-hook-gap.md` v2 D1~D5
4
+ > **Transform**: `scripts/claude-to-codex.sh` (Phase C)가 `.claude/hooks/*.sh`를 대부분 그대로 포팅
5
+
6
+ ## Hook 매핑 요약
7
+
8
+ | Codex event (snake_case) | 스크립트 | 원본 (Claude) | 상태 |
9
+ |--------------------------|----------|---------------|------|
10
+ | `session_start` | `session-start.sh` | `.claude/hooks/session-start.sh` | Phase C 포팅 예정 |
11
+ | `user_prompt_submit` | `hito-counter.sh` | `.claude/hooks/hito-counter.sh` | Phase C 포팅 예정 |
12
+ | `pre_tool_use` matcher="Skill" | `gate-check.sh` | `.claude/hooks/gate-check.sh` | Phase C 포팅 예정 |
13
+ | `post_tool_use` | `uncommitted-check.sh` | `.claude/hooks/uncommitted-check.sh` | Phase C 포팅 예정 |
14
+ | ❌ (hook 사용 안 함) | ❌ | `.claude/hooks/protect-files.sh` | **Codex sandbox로 이관 (ADR-002 v2 D3)** |
15
+
16
+ ## stdin/stdout 호환
17
+
18
+ Claude Code hook 스크립트가 stdin에서 읽는 필드는 Codex에서도 동일 이름으로 제공됨. 본체 수정 불필요:
19
+
20
+ - stdin 공통: `session_id, transcript_path, cwd, permission_mode, hook_event_name` (PascalCase)
21
+ - stdin 이벤트별: `tool_name, tool_input, tool_use_id, prompt, source, model`
22
+ - stdout: `systemMessage, additionalContext, updatedInput, decision (allow|deny|ask), reason, continue`
23
+ - exit 0 = 성공 / exit 2 = blockable 차단 (stderr → reason) / 기타 = non-blocking error
24
+
25
+ ## 치명적 제약 — Issue #16732
26
+
27
+ `pre_tool_use` / `post_tool_use` 가 Bash 툴에만 발화. ApplyPatch(파일 쓰기)에 대해선 fire 안 함.
28
+
29
+ **영향**:
30
+ - `gate-check.sh` matcher="Skill" — Claude Code에서도 Skill matcher 대상이므로 **영향 없음** (Skill 호출 경로는 Bash shell이 감싸므로 발화)
31
+ - `uncommitted-check.sh` — 파일 저장 후 감지가 필요한 경우 ApplyPatch 이후 상태는 못 잡음. Bash 커밋/저장 경로는 잡힘. Codex `stop` 이벤트(turn 종료) 추가 등록으로 보완 가능 (Phase C 설계 옵션)
32
+
33
+ ## 미구현
34
+
35
+ - 각 `.sh` 스크립트 본체 — Phase C에서 `.claude/hooks/`에서 포팅
36
+ - 포팅 과정에서 Codex 전용 env var(`CODEX_HOME` 등) 대응 필요 시 wrapper 추가
37
+
38
+ ## 보안
39
+
40
+ Codex `sandbox_mode = "workspace-write"` + `approval_policy = "on-request"` 가 파일 쓰기 1차 방어. Hook 스크립트는 보조 역할.
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+ # Placeholder — Phase C에서 `.claude/hooks/gate-check.sh`로부터 포팅
3
+ # stdin JSON 필드는 Claude Code와 호환 (ADR-002 v2 D5)
4
+ # Codex event 매핑은 templates/codex/hooks/README.md 참조
5
+ set -euo pipefail
6
+ echo "not-yet-implemented (Phase C)" >&2
7
+ exit 0
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+ # Placeholder — Phase C에서 `.claude/hooks/hito-counter.sh`로부터 포팅
3
+ # stdin JSON 필드는 Claude Code와 호환 (ADR-002 v2 D5)
4
+ # Codex event 매핑은 templates/codex/hooks/README.md 참조
5
+ set -euo pipefail
6
+ echo "not-yet-implemented (Phase C)" >&2
7
+ exit 0
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+ # Placeholder — Phase C에서 `.claude/hooks/session-start.sh`로부터 포팅
3
+ # stdin JSON 필드는 Claude Code와 호환 (ADR-002 v2 D5)
4
+ # Codex event 매핑은 templates/codex/hooks/README.md 참조
5
+ set -euo pipefail
6
+ echo "not-yet-implemented (Phase C)" >&2
7
+ exit 0
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+ # Placeholder — Phase C에서 `.claude/hooks/uncommitted-check.sh`로부터 포팅
3
+ # stdin JSON 필드는 Claude Code와 호환 (ADR-002 v2 D5)
4
+ # Codex event 매핑은 templates/codex/hooks/README.md 참조
5
+ set -euo pipefail
6
+ echo "not-yet-implemented (Phase C)" >&2
7
+ exit 0
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: uzys-build
3
+ description: "Build phase — TDD로 점진적 구현한다. Codex 포팅 (원본: .claude/commands/uzys/build.md)"
4
+ ---
5
+
6
+ # /uzys-build — build Phase (Codex)
7
+
8
+ > **Generated from**: `.claude/commands/uzys/build.md` via `scripts/claude-to-codex.sh` (Phase C)
9
+ > **Slash**: `/uzys-build`
10
+
11
+ ## Pre-flight
12
+
13
+ 이 skill 호출 전 확인:
14
+ - 직전 phase 완료 체크: `docs/todo.md`에서 이전 Phase 체크박스 확인
15
+ - `pre_tool_use` hook이 Skill matcher로 순서 강제 (Codex hook 시스템, ADR-002 v2)
16
+ - 직전 phase 미완료 시 exit 2로 차단됨
17
+
18
+ ## Goal
19
+
20
+ {SKILL_BODY_PLACEHOLDER}
21
+
22
+ ---
23
+
24
+ *Phase C에서 본 SKILL.md 본문이 `.claude/commands/uzys/build.md`로부터 포팅됨.*
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: uzys-plan
3
+ description: "Plan phase — 작업을 검증 가능한 작은 단위로 분해한다. Codex 포팅 (원본: .claude/commands/uzys/plan.md)"
4
+ ---
5
+
6
+ # /uzys-plan — plan Phase (Codex)
7
+
8
+ > **Generated from**: `.claude/commands/uzys/plan.md` via `scripts/claude-to-codex.sh` (Phase C)
9
+ > **Slash**: `/uzys-plan`
10
+
11
+ ## Pre-flight
12
+
13
+ 이 skill 호출 전 확인:
14
+ - 직전 phase 완료 체크: `docs/todo.md`에서 이전 Phase 체크박스 확인
15
+ - `pre_tool_use` hook이 Skill matcher로 순서 강제 (Codex hook 시스템, ADR-002 v2)
16
+ - 직전 phase 미완료 시 exit 2로 차단됨
17
+
18
+ ## Goal
19
+
20
+ {SKILL_BODY_PLACEHOLDER}
21
+
22
+ ---
23
+
24
+ *Phase C에서 본 SKILL.md 본문이 `.claude/commands/uzys/plan.md`로부터 포팅됨.*
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: uzys-review
3
+ description: "Review phase — 다중 관점 리뷰로 품질을 검증한다. Codex 포팅 (원본: .claude/commands/uzys/review.md)"
4
+ ---
5
+
6
+ # /uzys-review — review Phase (Codex)
7
+
8
+ > **Generated from**: `.claude/commands/uzys/review.md` via `scripts/claude-to-codex.sh` (Phase C)
9
+ > **Slash**: `/uzys-review`
10
+
11
+ ## Pre-flight
12
+
13
+ 이 skill 호출 전 확인:
14
+ - 직전 phase 완료 체크: `docs/todo.md`에서 이전 Phase 체크박스 확인
15
+ - `pre_tool_use` hook이 Skill matcher로 순서 강제 (Codex hook 시스템, ADR-002 v2)
16
+ - 직전 phase 미완료 시 exit 2로 차단됨
17
+
18
+ ## Goal
19
+
20
+ {SKILL_BODY_PLACEHOLDER}
21
+
22
+ ---
23
+
24
+ *Phase C에서 본 SKILL.md 본문이 `.claude/commands/uzys/review.md`로부터 포팅됨.*
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: uzys-ship
3
+ description: "Ship phase — 프리런치 체크리스트 실행 후 배포한다. Codex 포팅 (원본: .claude/commands/uzys/ship.md)"
4
+ ---
5
+
6
+ # /uzys-ship — ship Phase (Codex)
7
+
8
+ > **Generated from**: `.claude/commands/uzys/ship.md` via `scripts/claude-to-codex.sh` (Phase C)
9
+ > **Slash**: `/uzys-ship`
10
+
11
+ ## Pre-flight
12
+
13
+ 이 skill 호출 전 확인:
14
+ - 직전 phase 완료 체크: `docs/todo.md`에서 이전 Phase 체크박스 확인
15
+ - `pre_tool_use` hook이 Skill matcher로 순서 강제 (Codex hook 시스템, ADR-002 v2)
16
+ - 직전 phase 미완료 시 exit 2로 차단됨
17
+
18
+ ## Goal
19
+
20
+ {SKILL_BODY_PLACEHOLDER}
21
+
22
+ ---
23
+
24
+ *Phase C에서 본 SKILL.md 본문이 `.claude/commands/uzys/ship.md`로부터 포팅됨.*
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: uzys-spec
3
+ description: "Define phase — 구조화된 스펙을 코드 작성 전에 작성한다. Codex 포팅 (원본: .claude/commands/uzys/spec.md)"
4
+ ---
5
+
6
+ # /uzys-spec — Define Phase (Codex)
7
+
8
+ > **Generated from**: `.claude/commands/uzys/spec.md` via `scripts/claude-to-codex.sh` (Phase C)
9
+ > **Slash**: `/uzys-spec` (Codex namespace 미지원으로 `:` → `-` rename)
10
+
11
+ ## Pre-flight
12
+
13
+ 이 skill 호출 전 확인:
14
+ - 직전 단계 없음 (최초 진입점)
15
+ - `docs/SPEC.md` 또는 `docs/specs/<feature>.md`가 아직 없거나 갱신 필요한 상황
16
+
17
+ ## Goal
18
+
19
+ {SKILL_BODY_PLACEHOLDER}
20
+
21
+ ## Codex 제약 참고
22
+
23
+ - `pre_tool_use` hook이 Bash 툴만 감지 (Issue #16732) — spec 작성 시 ApplyPatch 경로는 sandbox가 보호
24
+ - `child_agents_md=disabled` — docs/specs/*.md 계층 merge 수동 관리 필요
25
+
26
+ ---
27
+
28
+ *Phase C에서 본 SKILL.md 본문이 `.claude/commands/uzys/spec.md`로부터 포팅됨.*