@su-record/vibe 2.9.40 → 2.10.2

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 (182) hide show
  1. package/CLAUDE.md +28 -12
  2. package/README.en.md +2 -3
  3. package/README.md +33 -27
  4. package/agents/{teams/figma → figma}/figma-analyst.md +2 -2
  5. package/agents/research/{best-practices-agent.md → best-practices.md} +1 -1
  6. package/agents/research/{codebase-patterns-agent.md → codebase-patterns.md} +1 -1
  7. package/agents/research/{framework-docs-agent.md → framework-docs.md} +1 -1
  8. package/agents/research/{security-advisory-agent.md → security-advisory.md} +1 -1
  9. package/agents/teams/research-team.md +4 -4
  10. package/agents/teams/review-debate-team.md +2 -2
  11. package/agents/teams/security-team.md +4 -4
  12. package/dist/cli/auth.d.ts +0 -1
  13. package/dist/cli/auth.d.ts.map +1 -1
  14. package/dist/cli/auth.js +1 -18
  15. package/dist/cli/auth.js.map +1 -1
  16. package/dist/cli/collaborator.d.ts +3 -3
  17. package/dist/cli/collaborator.js +4 -4
  18. package/dist/cli/collaborator.js.map +1 -1
  19. package/dist/cli/commands/info.d.ts.map +1 -1
  20. package/dist/cli/commands/info.js +0 -1
  21. package/dist/cli/commands/info.js.map +1 -1
  22. package/dist/cli/commands/init.d.ts +3 -4
  23. package/dist/cli/commands/init.d.ts.map +1 -1
  24. package/dist/cli/commands/init.js +15 -20
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/remove.d.ts.map +1 -1
  27. package/dist/cli/commands/remove.js +2 -7
  28. package/dist/cli/commands/remove.js.map +1 -1
  29. package/dist/cli/commands/update.d.ts.map +1 -1
  30. package/dist/cli/commands/update.js +10 -10
  31. package/dist/cli/commands/update.js.map +1 -1
  32. package/dist/cli/index.js +1 -3
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/postinstall/claude-agents.d.ts +3 -1
  35. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  36. package/dist/cli/postinstall/claude-agents.js +47 -9
  37. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  38. package/dist/cli/postinstall/constants.d.ts +5 -0
  39. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  40. package/dist/cli/postinstall/constants.js +165 -23
  41. package/dist/cli/postinstall/constants.js.map +1 -1
  42. package/dist/cli/postinstall/cursor-skills.js +2 -2
  43. package/dist/cli/postinstall/main.d.ts.map +1 -1
  44. package/dist/cli/postinstall/main.js +26 -24
  45. package/dist/cli/postinstall/main.js.map +1 -1
  46. package/dist/cli/setup/LegacyMigration.d.ts +3 -3
  47. package/dist/cli/setup/LegacyMigration.d.ts.map +1 -1
  48. package/dist/cli/setup/LegacyMigration.js +3 -5
  49. package/dist/cli/setup/LegacyMigration.js.map +1 -1
  50. package/dist/cli/setup/ProjectSetup.d.ts +18 -8
  51. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  52. package/dist/cli/setup/ProjectSetup.js +70 -19
  53. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  54. package/dist/cli/setup.d.ts +1 -1
  55. package/dist/cli/setup.d.ts.map +1 -1
  56. package/dist/cli/setup.js +1 -1
  57. package/dist/cli/setup.js.map +1 -1
  58. package/dist/cli/utils/cli-detector.d.ts +0 -7
  59. package/dist/cli/utils/cli-detector.d.ts.map +1 -1
  60. package/dist/cli/utils/cli-detector.js +0 -95
  61. package/dist/cli/utils/cli-detector.js.map +1 -1
  62. package/dist/cli/utils.d.ts +1 -1
  63. package/dist/cli/utils.d.ts.map +1 -1
  64. package/dist/cli/utils.js +1 -2
  65. package/dist/cli/utils.js.map +1 -1
  66. package/dist/infra/lib/OrchestrateWorkflow.js +1 -1
  67. package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
  68. package/dist/infra/lib/memory/MemoryStorage.d.ts +1 -1
  69. package/dist/infra/lib/memory/MemoryStorage.d.ts.map +1 -1
  70. package/dist/infra/lib/memory/MemoryStorage.js +2 -3
  71. package/dist/infra/lib/memory/MemoryStorage.js.map +1 -1
  72. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +4 -4
  73. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
  74. package/dist/infra/orchestrator/parallelResearch.js +4 -4
  75. package/dist/infra/orchestrator/parallelResearch.js.map +1 -1
  76. package/hooks/scripts/__tests__/pre-tool-guard.test.js +1 -1
  77. package/hooks/scripts/clone-extract.js +712 -0
  78. package/hooks/scripts/clone-refine.js +510 -0
  79. package/hooks/scripts/clone-to-scss.js +275 -0
  80. package/hooks/scripts/clone-validate.js +280 -0
  81. package/hooks/scripts/codex-notify.js +49 -0
  82. package/hooks/scripts/command-log.js +1 -1
  83. package/hooks/scripts/lib/dispatcher.js +2 -3
  84. package/hooks/scripts/lib/scope-from-spec.js +2 -4
  85. package/hooks/scripts/llm-orchestrate.js +2 -7
  86. package/hooks/scripts/prompt-dispatcher.js +3 -3
  87. package/hooks/scripts/step-counter.js +1 -1
  88. package/hooks/scripts/utils.js +5 -10
  89. package/package.json +2 -1
  90. package/skills/agents-md/SKILL.md +2 -0
  91. package/skills/arch-guard/SKILL.md +2 -0
  92. package/skills/brand-assets/SKILL.md +1 -0
  93. package/skills/capability-loop/SKILL.md +2 -0
  94. package/skills/characterization-test/SKILL.md +2 -0
  95. package/skills/chub-usage/SKILL.md +1 -0
  96. package/skills/claude-md-guide/SKILL.md +2 -0
  97. package/skills/clone/SKILL.md +361 -0
  98. package/skills/commerce-patterns/SKILL.md +1 -0
  99. package/skills/commit-push-pr/SKILL.md +1 -0
  100. package/skills/context7-usage/SKILL.md +1 -0
  101. package/skills/{vibe-contract → contract}/SKILL.md +7 -8
  102. package/skills/create-prd/SKILL.md +1 -0
  103. package/skills/design-audit/SKILL.md +1 -0
  104. package/skills/design-critique/SKILL.md +1 -0
  105. package/skills/design-distill/SKILL.md +1 -0
  106. package/skills/design-normalize/SKILL.md +1 -0
  107. package/skills/design-polish/SKILL.md +1 -0
  108. package/skills/design-teach/SKILL.md +2 -0
  109. package/skills/devlog/SKILL.md +1 -0
  110. package/skills/{vibe-docs → docs}/SKILL.md +8 -8
  111. package/skills/e2e-commerce/SKILL.md +1 -0
  112. package/skills/event-comms/SKILL.md +1 -0
  113. package/skills/event-ops/SKILL.md +1 -0
  114. package/skills/event-planning/SKILL.md +1 -0
  115. package/skills/exec-plan/SKILL.md +2 -0
  116. package/skills/{vibe-figma → figma}/SKILL.md +4 -3
  117. package/skills/{vibe-figma-convert → figma-convert}/SKILL.md +4 -3
  118. package/skills/{vibe-figma-extract → figma-extract}/SKILL.md +4 -3
  119. package/skills/git-worktree/SKILL.md +1 -0
  120. package/skills/handoff/SKILL.md +2 -0
  121. package/skills/{vibe-interview → interview}/SKILL.md +16 -16
  122. package/skills/parallel-research/SKILL.md +2 -0
  123. package/skills/{vibe-plan → plan}/SKILL.md +9 -9
  124. package/skills/prioritization-frameworks/SKILL.md +1 -0
  125. package/skills/priority-todos/SKILL.md +2 -0
  126. package/skills/{vibe-regress → regress}/SKILL.md +5 -6
  127. package/skills/rob-pike/SKILL.md +2 -0
  128. package/skills/seo-checklist/SKILL.md +1 -0
  129. package/skills/{vibe-spec → spec}/SKILL.md +14 -14
  130. package/skills/{vibe-spec-review → spec-review}/SKILL.md +8 -9
  131. package/skills/systematic-debugging/SKILL.md +2 -0
  132. package/skills/techdebt/SKILL.md +2 -0
  133. package/skills/{vibe-test → test}/SKILL.md +19 -19
  134. package/skills/tool-fallback/SKILL.md +1 -0
  135. package/skills/typescript-advanced-types/SKILL.md +1 -0
  136. package/skills/ui-ux-pro-max/SKILL.md +1 -0
  137. package/skills/user-personas/SKILL.md +1 -0
  138. package/skills/vercel-react-best-practices/SKILL.md +1 -0
  139. package/skills/vibe/SKILL.md +288 -0
  140. package/{commands/vibe.analyze.md → skills/vibe.analyze/SKILL.md} +2 -0
  141. package/skills/vibe.clone/SKILL.md +117 -0
  142. package/{commands/vibe.contract.md → skills/vibe.contract/SKILL.md} +3 -1
  143. package/{commands/vibe.docs.md → skills/vibe.docs/SKILL.md} +3 -1
  144. package/{commands/vibe.event.md → skills/vibe.event/SKILL.md} +2 -0
  145. package/{commands/vibe.figma.md → skills/vibe.figma/SKILL.md} +25 -23
  146. package/{commands/vibe.harness.md → skills/vibe.harness/SKILL.md} +2 -0
  147. package/{commands/vibe.reason.md → skills/vibe.reason/SKILL.md} +2 -0
  148. package/{commands/vibe.regress.md → skills/vibe.regress/SKILL.md} +5 -3
  149. package/{commands/vibe.review.md → skills/vibe.review/SKILL.md} +2 -0
  150. package/{commands/vibe.run.md → skills/vibe.run/SKILL.md} +5 -1
  151. package/{commands/vibe.scaffold.md → skills/vibe.scaffold/SKILL.md} +2 -0
  152. package/{commands/vibe.spec.md → skills/vibe.spec/SKILL.md} +36 -34
  153. package/{commands/vibe.test.md → skills/vibe.test/SKILL.md} +8 -6
  154. package/{commands/vibe.trace.md → skills/vibe.trace/SKILL.md} +7 -0
  155. package/{commands/vibe.utils.md → skills/vibe.utils/SKILL.md} +2 -0
  156. package/{commands/vibe.verify.md → skills/vibe.verify/SKILL.md} +4 -2
  157. package/skills/video-production/SKILL.md +1 -0
  158. package/vibe/rules/principles/dual-harness-doctrine.md +50 -0
  159. /package/agents/{teams/figma → figma}/figma-architect.md +0 -0
  160. /package/agents/{teams/figma → figma}/figma-auditor.md +0 -0
  161. /package/agents/{teams/figma → figma}/figma-builder.md +0 -0
  162. /package/skills/{vibe-docs → docs}/templates/architecture.md +0 -0
  163. /package/skills/{vibe-docs → docs}/templates/behavioral-principles.md +0 -0
  164. /package/skills/{vibe-docs → docs}/templates/readme.md +0 -0
  165. /package/skills/{vibe-docs → docs}/templates/release-notes.md +0 -0
  166. /package/skills/{vibe-figma → figma}/rubrics/extraction-checklist.md +0 -0
  167. /package/skills/{vibe-figma → figma}/templates/component-index.md +0 -0
  168. /package/skills/{vibe-figma → figma}/templates/component-spec.md +0 -0
  169. /package/skills/{vibe-figma → figma}/templates/figma-handoff.md +0 -0
  170. /package/skills/{vibe-figma → figma}/templates/remapped-tree.md +0 -0
  171. /package/skills/{vibe-figma-convert → figma-convert}/rubrics/conversion-rules.md +0 -0
  172. /package/skills/{vibe-figma-convert → figma-convert}/templates/component.md +0 -0
  173. /package/skills/{vibe-figma-extract → figma-extract}/rubrics/image-rules.md +0 -0
  174. /package/skills/{vibe-interview → interview}/checklists/api.md +0 -0
  175. /package/skills/{vibe-interview → interview}/checklists/feature.md +0 -0
  176. /package/skills/{vibe-interview → interview}/checklists/library.md +0 -0
  177. /package/skills/{vibe-interview → interview}/checklists/mobile.md +0 -0
  178. /package/skills/{vibe-interview → interview}/checklists/webapp.md +0 -0
  179. /package/skills/{vibe-interview → interview}/checklists/website.md +0 -0
  180. /package/skills/{vibe-regress → regress}/templates/bug.md +0 -0
  181. /package/skills/{vibe-regress → regress}/templates/test-jest.md +0 -0
  182. /package/skills/{vibe-regress → regress}/templates/test-vitest.md +0 -0
@@ -1,6 +1,8 @@
1
1
  ---
2
+ name: vibe.regress
2
3
  description: Regression test auto-evolution — register bugs, generate preventive tests, cluster patterns
3
4
  argument-hint: "register | generate | list | import | cluster [args]"
5
+ user-invocable: true
4
6
  ---
5
7
 
6
8
  # /vibe.regress
@@ -26,11 +28,11 @@ argument-hint: "register | generate | list | import | cluster [args]"
26
28
 
27
29
  ## Process
28
30
 
29
- Load skill `vibe-regress` with subcommand: `$ARGUMENTS`
31
+ Load skill `regress` with subcommand: `$ARGUMENTS`
30
32
 
31
- The `vibe-regress` skill performs registration, generation, and clustering.
33
+ The `regress` skill performs registration, generation, and clustering.
32
34
 
33
- **Core steps** (see `skills/vibe-regress/SKILL.md` for details):
35
+ **Core steps** (see `skills/regress/SKILL.md` for details):
34
36
 
35
37
  1. Parse subcommand
36
38
  2. Read/write `.vibe/regressions/<slug>.md` (frontmatter schema enforced)
@@ -1,6 +1,8 @@
1
1
  ---
2
+ name: vibe.review
2
3
  description: Multi-agent parallel code review with priority-based findings
3
4
  argument-hint: "PR number, branch name, or file path"
5
+ user-invocable: true
4
6
  ---
5
7
 
6
8
  # /vibe.review
@@ -1,6 +1,8 @@
1
1
  ---
2
+ name: vibe.run
2
3
  description: Execute implementation from SPEC
3
4
  argument-hint: "feature name" or --phase N
5
+ user-invocable: true
4
6
  ---
5
7
 
6
8
  # /vibe.run
@@ -57,7 +59,7 @@ Execute **Scenario-Driven Implementation** with automatic quality verification.
57
59
  Run immediately after start:
58
60
 
59
61
  ```
60
- Load skill `vibe-regress` with: list --feature "{feature-name}"
62
+ Load skill `regress` with: list --feature "{feature-name}"
61
63
  ```
62
64
 
63
65
  - If any open regressions exist:
@@ -122,6 +124,8 @@ Scenario 3 → Implement → Verify ❌ → Fix → ✅
122
124
  All pass = Quality guaranteed
123
125
  ```
124
126
 
127
+ > **하네스-안전 증분 (Dual-Harness Doctrine)**: 시나리오는 **가장 작은 검증 단위**다. 한 시나리오 구현 → 즉시 검증 → 다음. 여러 시나리오를 묶어 빅뱅으로 구현하지 않는다 — Codex(직역) 에서 성공률이 급락하고 CC 에서도 디버깅 비용만 늘린다. `ultrawork` 모드라도 이 단위는 무너뜨리지 않는다 (병렬은 시나리오 간, 검증은 시나리오별). 전문: `vibe/rules/principles/dual-harness-doctrine.md`.
128
+
125
129
  ### Automated Verification (Closed Loop)
126
130
 
127
131
  **자율적 AI 코딩 = 구현 + 검증 + 반복. 검증을 AI에게 맡기는 순간 루프가 닫힌다.**
@@ -1,6 +1,8 @@
1
1
  ---
2
+ name: vibe.scaffold
2
3
  description: Generate or audit project folder structure optimized for AI-assisted development
3
4
  argument-hint: --check (audit existing) or project-type
5
+ user-invocable: true
4
6
  ---
5
7
 
6
8
  # /vibe.scaffold
@@ -1,6 +1,8 @@
1
1
  ---
2
+ name: vibe.spec
2
3
  description: 프로젝트 명세 통합 진입점 — interview → plan → spec → review → run/figma 전체 워크플로 오케스트레이션
3
4
  argument-hint: "(선택) feature name, plan/interview file path, or idea"
5
+ user-invocable: true
4
6
  ---
5
7
 
6
8
  # /vibe.spec
@@ -25,7 +27,7 @@ argument-hint: "(선택) feature name, plan/interview file path, or idea"
25
27
 
26
28
  - **단일 진입점**: `/vibe.spec` 하나로 전체 워크플로 시작. 다른 `/vibe.*` 커맨드 이름 외울 필요 없음.
27
29
  - **Smart resume**: 기존 interview/plan/spec 파일 존재 여부로 어느 단계부터 시작할지 자동 판단.
28
- - **자동 체이닝**: 스킬 `chain-next` 메타데이터 따라 vibe-interview → vibe-plan → vibe-spec → vibe-spec-review 진행.
30
+ - **자동 체이닝**: 스킬 `chain-next` 메타데이터 따라 interview → plan → spec → spec-review 진행.
29
31
  - **분기 판단**: 기획서의 `type` 필드로 UI 트랙/로직 트랙 여부 결정.
30
32
  - **사용자 제어**: 각 단계 사이에 사용자 확인 지점(stop gate) 제공 (ultrawork 모드는 스킵).
31
33
 
@@ -41,14 +43,14 @@ Phase 0.5: Input 분석 + Smart resume 결정
41
43
  - 기존 .vibe/{interviews,plans,specs}/ 확인
42
44
  - 시작 단계 결정: interview | plan | spec | review
43
45
 
44
- Phase 1: Interview (skill: vibe-interview)
46
+ Phase 1: Interview (skill: interview)
45
47
  - 조건: interview 파일 없음
46
48
  - 사용자 "그만"까지 반복 인터뷰
47
49
  - 출력: .vibe/interviews/{feature}.md
48
50
 
49
51
  [Stop Gate 1] — ultrawork 모드에서는 스킵
50
52
 
51
- Phase 2: Plan (skill: vibe-plan)
53
+ Phase 2: Plan (skill: plan)
52
54
  - 조건: plan 파일 없음
53
55
  - interview → 마크다운 기획서 정제
54
56
  - 출력: .vibe/plans/{feature}.md
@@ -58,14 +60,14 @@ Phase 2: Plan (skill: vibe-plan)
58
60
  - website/webapp/mobile → UI + Logic 병렬
59
61
  - api/library/feature-data → Logic만
60
62
 
61
- Phase 3: SPEC 작성 (skill: vibe-spec)
63
+ Phase 3: SPEC 작성 (skill: spec)
62
64
  - PTCF 구조 SPEC 문서 + Feature(BDD) 파일
63
65
  - Parallel research (GPT/Gemini/Claude agents)
64
66
  - Large scope 자동 분할
65
67
  - Ambiguity scan + 품질 게이트(100점, 수렴까지 루프)
66
68
  - 출력: .vibe/specs/{feature}.md + .vibe/features/{feature}.feature
67
69
 
68
- Phase 4: SPEC Review (skill: vibe-spec-review)
70
+ Phase 4: SPEC Review (skill: spec-review)
69
71
  - Race Review (GPT + Gemini, 라운드 수 캡 없음, 수렴까지 루프)
70
72
  - (옵션) Codex adversarial review
71
73
  - 사용자 최종 체크포인트
@@ -138,7 +140,7 @@ Step 1) .vibe/.last-feature 확인 (pointer 파일)
138
140
  ✅ interview: .vibe/interviews/{feature}.md (status: complete, N일 전)
139
141
  ✅ plan: .vibe/plans/{feature}.md (N일 전)
140
142
  ❌ spec: 없음
141
- → 다음 단계: Phase 3 (vibe-spec 스킬 — SPEC 작성)
143
+ → 다음 단계: Phase 3 (spec 스킬 — SPEC 작성)
142
144
 
143
145
  이어서 진행할까요?
144
146
  Enter / yes → 이어서 진행
@@ -224,7 +226,7 @@ Step 3) 빈 시작 (기존 동작)
224
226
  분류: 신규 아이디어
225
227
  기존 파일: 없음
226
228
 
227
- → 시작 단계: Phase 1 (vibe-interview)
229
+ → 시작 단계: Phase 1 (interview)
228
230
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
229
231
  ```
230
232
 
@@ -235,7 +237,7 @@ Step 3) 빈 시작 (기존 동작)
235
237
  **진입 방식:**
236
238
 
237
239
  1. **인자 있음** (`/vibe.spec "아이디어"`)
238
- → `vibe-interview` 스킬 로드 + 아이디어 전달
240
+ → `interview` 스킬 로드 + 아이디어 전달
239
241
 
240
242
  2. **인자 없음** (`/vibe.spec`)
241
243
  → **Smart Resume Fallback 먼저** (Phase 0.5 참조):
@@ -256,19 +258,19 @@ Step 3) 빈 시작 (기존 동작)
256
258
 
257
259
  (파일/이미지 첨부도 가능)
258
260
  ```
259
- → 사용자 응답 → `vibe-interview` 스킬 로드
261
+ → 사용자 응답 → `interview` 스킬 로드
260
262
 
261
263
  **스킬 로드:**
262
264
 
263
265
  ```
264
- Load skill `vibe-interview` with input: {user_idea}
266
+ Load skill `interview` with input: {user_idea}
265
267
  ```
266
268
 
267
- > **`.last-feature` 갱신**: vibe-interview 스킬이 feature name을 확정하는 즉시 `.vibe/.last-feature` 에 한 줄로 기록. 이후 Phase 2/3/4 진입 시에도 동일 기록 유지 (값이 같으면 no-op).
269
+ > **`.last-feature` 갱신**: interview 스킬이 feature name을 확정하는 즉시 `.vibe/.last-feature` 에 한 줄로 기록. 이후 Phase 2/3/4 진입 시에도 동일 기록 유지 (값이 같으면 no-op).
268
270
 
269
- `vibe-interview` 스킬이 자체적으로:
271
+ `interview` 스킬이 자체적으로:
270
272
  - 프로젝트 타입 감지 (website/webapp/mobile/api/library/feature)
271
- - 타입별 체크리스트 로드 (`skills/vibe-interview/checklists/{type}.md`)
273
+ - 타입별 체크리스트 로드 (`skills/interview/checklists/{type}.md`)
272
274
  - 반복 인터뷰 실행 (사용자 "그만"까지)
273
275
  - `.vibe/interviews/{feature-name}.md` 저장
274
276
 
@@ -285,7 +287,7 @@ Load skill `vibe-interview` with input: {user_idea}
285
287
  다음 단계: 기획서 작성
286
288
  1. 계속 진행 (기본)
287
289
  2. Interview만 저장하고 종료
288
- 3. Interview 수정 후 다시 (vibe-interview 재실행)
290
+ 3. Interview 수정 후 다시 (interview 재실행)
289
291
 
290
292
  Enter → 계속
291
293
  ```
@@ -295,10 +297,10 @@ Enter → 계속
295
297
  **진입 조건:** plan 파일이 아직 없음
296
298
 
297
299
  ```
298
- Load skill `vibe-plan` with input: .vibe/interviews/{feature}.md
300
+ Load skill `plan` with input: .vibe/interviews/{feature}.md
299
301
  ```
300
302
 
301
- `vibe-plan` 스킬이 자체적으로:
303
+ `plan` 스킬이 자체적으로:
302
304
  - 템플릿 로드 (`~/.claude/vibe/templates/plan-template.md`)
303
305
  - Interview 섹션별 정제
304
306
  - UI 섹션 조건부 포함 (type 기반)
@@ -334,12 +336,12 @@ Enter → 계속
334
336
  **진입 조건:** spec 파일이 아직 없음 (또는 재작성 요청)
335
337
 
336
338
  ```
337
- Load skill `vibe-spec` with input: .vibe/plans/{feature}.md
339
+ Load skill `spec` with input: .vibe/plans/{feature}.md
338
340
  ```
339
341
 
340
- `vibe-spec` 스킬이 PTCF 구조 SPEC 문서 + Feature(BDD) 파일 생성.
342
+ `spec` 스킬이 PTCF 구조 SPEC 문서 + Feature(BDD) 파일 생성.
341
343
 
342
- **핵심 단계** (상세는 `skills/vibe-spec/SKILL.md` 참조):
344
+ **핵심 단계** (상세는 `skills/spec/SKILL.md` 참조):
343
345
 
344
346
  1. Project analysis (explorer agent)
345
347
  2. config.json references 로드
@@ -358,12 +360,12 @@ Load skill `vibe-spec` with input: .vibe/plans/{feature}.md
358
360
  ### Phase 4: SPEC Review
359
361
 
360
362
  ```
361
- Load skill `vibe-spec-review` with feature: {feature-name}
363
+ Load skill `spec-review` with feature: {feature-name}
362
364
  ```
363
365
 
364
- `vibe-spec-review` 스킬이 Race Review + 품질 검증 + 사용자 체크포인트 실행.
366
+ `spec-review` 스킬이 Race Review + 품질 검증 + 사용자 체크포인트 실행.
365
367
 
366
- **핵심 단계** (상세는 `skills/vibe-spec-review/SKILL.md` 참조):
368
+ **핵심 단계** (상세는 `skills/spec-review/SKILL.md` 참조):
367
369
 
368
370
  1. SPEC/Feature 파일 로드 (single/split 자동 감지)
369
371
  2. Quality Validation (100점 게이트, 수렴까지 auto-fix 루프)
@@ -375,7 +377,7 @@ Load skill `vibe-spec-review` with feature: {feature-name}
375
377
  ### Phase 4.5: Contract Extract (auto, only for features with an API)
376
378
 
377
379
  ```
378
- Load skill `vibe-contract` with: extract "{feature-name}"
380
+ Load skill `contract` with: extract "{feature-name}"
379
381
  ```
380
382
 
381
383
  If the SPEC has a `## API` / `## Endpoints` / `## Interface` section, extract the contract to `.vibe/contracts/{feature-name}.md`. If the section is absent, exit cleanly (not every feature has an API).
@@ -446,9 +448,9 @@ Claude: 🔍 Input 분석
446
448
  입력: "원두 브랜드 랜딩"
447
449
  분류: 신규 아이디어
448
450
  기존 파일: 없음
449
- → 시작 단계: Phase 1 (vibe-interview)
451
+ → 시작 단계: Phase 1 (interview)
450
452
 
451
- [vibe-interview 스킬 로드]
453
+ [interview 스킬 로드]
452
454
  Type: website 감지 → checklists/website.md 로드
453
455
  ...
454
456
  ```
@@ -461,9 +463,9 @@ Claude: 🔍 Input 분석
461
463
  입력: plan 파일 경로
462
464
  분류: 기존 기획서
463
465
  Feature: bean-landing
464
- → 시작 단계: Phase 3 (vibe-spec)
466
+ → 시작 단계: Phase 3 (spec)
465
467
 
466
- [vibe-spec 스킬 로드]
468
+ [spec 스킬 로드]
467
469
  기획서 읽기 → research → PTCF 작성 ...
468
470
  ```
469
471
 
@@ -477,9 +479,9 @@ Claude: 🔍 Input 분석
477
479
  ✅ interview: .vibe/interviews/bean-landing.md
478
480
  ✅ plan: .vibe/plans/bean-landing.md
479
481
  ❌ spec: 없음
480
- → 시작 단계: Phase 3 (vibe-spec)
482
+ → 시작 단계: Phase 3 (spec)
481
483
 
482
- [vibe-spec 스킬 로드]
484
+ [spec 스킬 로드]
483
485
  ...
484
486
  ```
485
487
 
@@ -493,7 +495,7 @@ Claude: 🔍 Input 분석
493
495
  ✅ feature: .vibe/features/bean-landing.feature
494
496
 
495
497
  이미 SPEC이 존재합니다. 어떻게 진행할까요?
496
- 1. SPEC 리뷰 (Phase 4: vibe-spec-review 스킬 로드)
498
+ 1. SPEC 리뷰 (Phase 4: spec-review 스킬 로드)
497
499
  2. /vibe.run 실행 (구현)
498
500
  3. SPEC 재작성 (기존 백업 후 새로 작성)
499
501
  4. 종료
@@ -509,7 +511,7 @@ Claude: (.last-feature 읽기 → "bean-landing" 발견)
509
511
  ✅ interview: .vibe/interviews/bean-landing.md (status: partial, 2일 전)
510
512
  ❌ plan: 없음
511
513
  ❌ spec: 없음
512
- → 다음 단계: Phase 2 (vibe-plan — 기획서 작성)
514
+ → 다음 단계: Phase 2 (plan — 기획서 작성)
513
515
 
514
516
  이어서 진행할까요?
515
517
  Enter / yes → 이어서 진행
@@ -521,7 +523,7 @@ User: yes
521
523
 
522
524
  Claude: [Phase 2 진입]
523
525
  .last-feature = bean-landing
524
- [vibe-plan 스킬 로드]
526
+ [plan 스킬 로드]
525
527
  ...
526
528
  ```
527
529
 
@@ -545,7 +547,7 @@ Claude: (.last-feature 없음 → 디렉토리 스캔)
545
547
  User: 2
546
548
 
547
549
  Claude: Feature: todo-app 선택
548
- ✅ plan 완성 → Phase 3 (vibe-spec) 진입
550
+ ✅ plan 완성 → Phase 3 (spec) 진입
549
551
  .last-feature = todo-app
550
552
  ...
551
553
  ```
@@ -557,7 +559,7 @@ Claude: Feature: todo-app 선택
557
559
  - 중단 시 다시 `/vibe.spec`으로 돌아오면 Smart Resume Fallback 동작:
558
560
  - 인자 있음 (`/vibe.spec "feature-name"` 또는 파일 경로) → 해당 feature의 가장 진행된 단계 다음으로 바로 진입
559
561
  - 인자 없음 → `.last-feature` 우선 제안 → 거부하면 진행 중 작업 목록 제시 → 또 거부하면 빈 시작
560
- - 수동 개입 필요시 스킬 직접 호출 가능 (`Load skill vibe-interview` 등)
562
+ - 수동 개입 필요시 스킬 직접 호출 가능 (`Load skill interview` 등)
561
563
 
562
564
  ## Next Step
563
565
 
@@ -1,6 +1,8 @@
1
1
  ---
2
+ name: vibe.test
2
3
  description: Self-test vibe — probe every command/skill/hook/agent in the target harness install dir and write a pass/fail report
3
- argument-hint: "[cc|coco] (empty = current harness)"
4
+ argument-hint: "[cc|codex] (empty = current harness)"
5
+ user-invocable: true
4
6
  ---
5
7
 
6
8
  # /vibe.test
@@ -12,10 +14,10 @@ argument-hint: "[cc|coco] (empty = current harness)"
12
14
  ```
13
15
  /vibe.test # Test current harness (auto-detect)
14
16
  /vibe.test cc # Force-test ~/.claude/
15
- /vibe.test coco # Force-test ~/.coco/
17
+ /vibe.test codex # Force-test ~/.codex/
16
18
  ```
17
19
 
18
- No subcommands. No CC-vs-coco comparison semantics. One command, one report.
20
+ No subcommands. No CC-vs-Codex comparison semantics. One command, one report.
19
21
 
20
22
  ## Report
21
23
 
@@ -30,12 +32,12 @@ Markdown summary is also printed to the console when the run finishes.
30
32
 
31
33
  ## Process
32
34
 
33
- Load skill `vibe-test` with target harness: `$ARGUMENTS`
35
+ Load skill `test` with target harness: `$ARGUMENTS`
34
36
 
35
- - If `$ARGUMENTS` is empty, detect the current harness (CC vs coco) and use that.
37
+ - If `$ARGUMENTS` is empty, detect the current harness (CC vs Codex) and use that.
36
38
  - If the target install dir is missing, exit cleanly with guidance (not an error).
37
39
 
38
- See `skills/vibe-test/SKILL.md` for the probe spec and the report template.
40
+ See `skills/test/SKILL.md` for the probe spec and the report template.
39
41
 
40
42
  ## Done Criteria
41
43
 
@@ -1,3 +1,10 @@
1
+ ---
2
+ name: vibe.trace
3
+ description: Generate and display Requirements Traceability Matrix (RTM) — REQ → SPEC → Feature → Code 관계 추적
4
+ argument-hint: "feature-name [--html] [--save]"
5
+ user-invocable: true
6
+ ---
7
+
1
8
  # /vibe.trace
2
9
 
3
10
  Generate and display Requirements Traceability Matrix (RTM).
@@ -1,6 +1,8 @@
1
1
  ---
2
+ name: vibe.utils
2
3
  description: Utility tools (UI preview, diagram, E2E test, image generation, etc.)
3
4
  argument-hint: "--ui, --diagram, --e2e, --image, or other options"
5
+ user-invocable: true
4
6
  ---
5
7
 
6
8
  # /vibe.utils
@@ -1,6 +1,8 @@
1
1
  ---
2
+ name: vibe.verify
2
3
  description: Verify implementation against SPEC requirements
3
4
  argument-hint: "feature name"
5
+ user-invocable: true
4
6
  ---
5
7
 
6
8
  # /vibe.verify
@@ -255,7 +257,7 @@ Before printing the failure report, **auto-register each failed scenario as a re
255
257
 
256
258
  ```
257
259
  For each failed scenario:
258
- Load skill `vibe-regress` with:
260
+ Load skill `regress` with:
259
261
  subcommand: register --from-verify
260
262
  feature: {feature-name}
261
263
  scenario: {scenario-name}
@@ -435,7 +437,7 @@ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index
435
437
  After all scenarios pass, auto-invoke:
436
438
 
437
439
  ```
438
- Load skill `vibe-contract` with: check "{feature-name}"
440
+ Load skill `contract` with: check "{feature-name}"
439
441
  ```
440
442
 
441
443
  - Skip if `.vibe/contracts/{feature-name}.md` does not exist
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: video-production
3
+ invocation: [auto]
3
4
  tier: standard
4
5
  description: "Video processing gotchas — FFmpeg commands, transcoding pipelines, HLS/DASH streaming setup, subtitle embedding (SRT/VTT), and thumbnail extraction. Use when the project involves any video manipulation, media processing, or streaming infrastructure. Covers codec selection, bitrate optimization, and common FFmpeg pitfalls. Must use this skill when user works with video files, mentions FFmpeg, or needs media processing — even for simple tasks like 'generate a thumbnail'."
5
6
  triggers: [video, ffmpeg, transcode, encode, stream, media, subtitle, thumbnail, hls, dash]
@@ -0,0 +1,50 @@
1
+ # Dual-Harness Doctrine
2
+
3
+ > vibe는 여러 하네스(Claude Code, Codex, Gemini) 위에서 동작한다.
4
+ > 차이는 경로·파일명 같은 **인프라**가 아니라 **인지 방식**에 있다.
5
+
6
+ ## 비대칭의 본질
7
+
8
+ | | Claude Code | Codex |
9
+ |---|---|---|
10
+ | 모호한 요청 | 의도를 **추론**해 알아서 채움 | **직역** — 지시한 그대로만, 예시 텍스트도 실데이터로 |
11
+ | research 트리거 | planning mode를 켜야 시작 | 모드 없이 **자발적** 탐색 |
12
+ | 작업 단위 | 한 번에 working solution → 끝에 QA | **작게 순차** + 단계별 검증이 성공률 높음 |
13
+ | 도메인 지식 | 탐색을 맡겨도 됨 | 직접 주입할수록(라이브러리·함수·위치) 정확도↑ |
14
+
15
+ ## Core Principle
16
+
17
+ > **vibe는 어떤 하네스의 *암묵적 동작*에도 의존하지 않는다.**
18
+ > **추론은 `/vibe` 디스패처가 앞단에서 한 번 하고, skill 본문은 모든 것을 명시적으로 쓴다.**
19
+
20
+ = **"명시성 공통분모 + 추론 앞단"** 모델
21
+
22
+ - **skill 본문 = 낮은 공통분모**: 명시적·직역-안전. Codex에서 안전하고 CC에서도 여전히 정확.
23
+ - **`/vibe` 디스패처 = 추론 레이어**: 모호한 자연어를 명시적 지시로 *먼저* 펼쳐, 모든 하네스에서 CC급 편의를 제공.
24
+
25
+ ## Operating Rules
26
+
27
+ 1. **추론은 앞단에서 단 한 번.** `/vibe`가 모호한 NL → 명시적·직역 가능한 지시로 전개한다. 하위 skill은 모호한 입력을 받지 않는다.
28
+ 2. **예시·placeholder는 명시 표기.** 직역 하네스가 실데이터로 넣을 수 있는 예시 텍스트를 무표기로 쓰지 않는다. `<예시>`, `[채워넣을 값]`, `{{placeholder}}` 사용. (Codex는 무표기 예시를 그대로 테스트 데이터에 넣는다.)
29
+ 3. **research는 명시적으로 트리거.** "planning mode" 스위치에 의존하지 않는다. 조사·탐색이 필요한 단계는 skill이 말로 지시한다.
30
+ 4. **가장 작은 검증 단위로 분해.** 구현 → 검증 → 다음. 여러 단위를 묶지 않는다. (`vibe.run`의 시나리오 루프가 이미 이 방식 — ultrawork가 빅뱅으로 무너뜨리지 않게 유지.)
31
+ 5. **도메인 지식은 SPEC에 주입.** SPEC/plan은 구체적 라이브러리명·함수명·파일 위치를 담는다. 선택이 아닌 **의무 출력** — Codex 정확도가 여기에 비례한다.
32
+
33
+ ## Hooks Across Harnesses
34
+
35
+ CC의 풍부한 hook 모델(PreToolUse/PostToolUse/UserPromptSubmit/Stop)에는 Codex에 완전한 등가물이 없다. hook의 **의도**별로 하네스에 맞는 메커니즘에 매핑한다.
36
+
37
+ | hook 의도 | Claude Code | Codex |
38
+ |---|---|---|
39
+ | 라이프사이클 (turn 완료, 세션 시작/종료) | `Stop` / `SessionStart` hook | `config.toml`의 `notify` 프로그램 (agent-turn-complete 시 JSON 발화) |
40
+ | pre-edit / scope guard | `PreToolUse` (동기 deny) | ❌ 동기 인터셉트 없음 → AGENTS.md 운영 규칙 + notify 기반 사후 검증 |
41
+ | 키워드 디스패치 (ralph/ultrawork) | `UserPromptSubmit` | AGENTS.md 지시 (Codex가 직역 실행) |
42
+ | 금지 패턴 차단 | `PreToolUse` | AGENTS.md 규칙 + 에이전트에게 실행하라 지시한 check 명령 |
43
+
44
+ **핵심 통찰: Codex의 직역 성향이 AGENTS.md "soft hook"을 신뢰성 있게 만든다.** CC는 soft 지시를 가끔 무시해 hard hook이 필요하지만, Codex는 적힌 대로 실행한다. 따라서:
45
+
46
+ - **하드 라이프사이클 이벤트** → Codex `config.toml notify` (실제·결정적). `stop-dispatcher` 로직(auto-commit, devlog, review gate) 재사용 가능.
47
+ - **행동 가드** → AGENTS.md 운영 규칙. 직역이라 *오히려* 신뢰성 있음.
48
+ - **진짜 동기 pre-edit 차단은 Codex에서 불가** — 사후 검증을 완화책으로 수용한다.
49
+
50
+ > **Action item (미구현):** `.codex/settings.local.json`에 죽은 hook을 쓰는 것을 중단하고, 대신 `.codex/config.toml`에 `notify` 핸들러를 생성해 `stop-dispatcher` 로직을 재사용하며, 가드 규칙은 AGENTS.md로 방출한다.
File without changes
File without changes
File without changes