@su-record/vibe 2.9.1 → 2.9.3

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 (79) hide show
  1. package/CLAUDE.md +31 -10
  2. package/README.ko.md +90 -25
  3. package/README.md +139 -25
  4. package/agents/teams/debug-team.md +70 -0
  5. package/agents/teams/dev-team.md +88 -0
  6. package/agents/teams/docs-team.md +80 -0
  7. package/agents/teams/figma/figma-analyst.md +52 -0
  8. package/agents/teams/figma/figma-architect.md +112 -0
  9. package/agents/teams/figma/figma-auditor.md +82 -0
  10. package/agents/teams/figma/figma-builder.md +100 -0
  11. package/agents/teams/figma-team.md +85 -0
  12. package/agents/teams/fullstack-team.md +83 -0
  13. package/agents/teams/lite-team.md +69 -0
  14. package/agents/teams/migration-team.md +78 -0
  15. package/agents/teams/refactor-team.md +94 -0
  16. package/agents/teams/research-team.md +86 -0
  17. package/agents/teams/review-debate-team.md +125 -0
  18. package/agents/teams/security-team.md +81 -0
  19. package/commands/vibe.analyze.md +324 -170
  20. package/commands/vibe.figma.md +549 -34
  21. package/commands/vibe.harness.md +177 -0
  22. package/commands/vibe.review.md +1 -63
  23. package/commands/vibe.run.md +52 -403
  24. package/commands/vibe.scaffold.md +195 -0
  25. package/commands/vibe.spec.md +373 -1003
  26. package/commands/vibe.trace.md +17 -0
  27. package/commands/vibe.verify.md +19 -10
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +29 -1
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/update.d.ts.map +1 -1
  32. package/dist/cli/commands/update.js +4 -2
  33. package/dist/cli/commands/update.js.map +1 -1
  34. package/dist/cli/postinstall/constants.d.ts +1 -1
  35. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  36. package/dist/cli/postinstall/constants.js +6 -1
  37. package/dist/cli/postinstall/constants.js.map +1 -1
  38. package/dist/cli/setup/ProjectSetup.d.ts +12 -1
  39. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  40. package/dist/cli/setup/ProjectSetup.js +259 -72
  41. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  42. package/dist/cli/setup.d.ts +1 -1
  43. package/dist/cli/setup.d.ts.map +1 -1
  44. package/dist/cli/setup.js +1 -1
  45. package/dist/cli/setup.js.map +1 -1
  46. package/hooks/scripts/figma-guard.js +220 -0
  47. package/hooks/scripts/figma-refine.js +315 -0
  48. package/hooks/scripts/figma-to-scss.js +394 -0
  49. package/hooks/scripts/figma-validate.js +353 -0
  50. package/package.json +1 -1
  51. package/skills/arch-guard/SKILL.md +1 -1
  52. package/skills/capability-loop/SKILL.md +106 -2
  53. package/skills/chub-usage/SKILL.md +43 -43
  54. package/skills/claude-md-guide/SKILL.md +175 -175
  55. package/skills/design-teach/SKILL.md +33 -33
  56. package/skills/devlog/SKILL.md +38 -38
  57. package/skills/event-comms/SKILL.md +23 -13
  58. package/skills/event-ops/SKILL.md +28 -19
  59. package/skills/event-planning/SKILL.md +13 -1
  60. package/skills/priority-todos/SKILL.md +1 -1
  61. package/skills/vibe.figma/SKILL.md +263 -115
  62. package/skills/vibe.figma/templates/component-spec.md +168 -0
  63. package/skills/vibe.figma.convert/SKILL.md +131 -84
  64. package/skills/vibe.figma.convert/rubrics/conversion-rules.md +12 -0
  65. package/skills/vibe.figma.extract/SKILL.md +148 -108
  66. package/skills/vibe.figma.extract/rubrics/image-rules.md +15 -3
  67. package/skills/vibe.interview/SKILL.md +358 -0
  68. package/skills/vibe.interview/checklists/api.md +101 -0
  69. package/skills/vibe.interview/checklists/feature.md +88 -0
  70. package/skills/vibe.interview/checklists/library.md +95 -0
  71. package/skills/vibe.interview/checklists/mobile.md +89 -0
  72. package/skills/vibe.interview/checklists/webapp.md +97 -0
  73. package/skills/vibe.interview/checklists/website.md +99 -0
  74. package/skills/vibe.plan/SKILL.md +216 -0
  75. package/skills/vibe.spec/SKILL.md +1155 -0
  76. package/{commands/vibe.spec.review.md → skills/vibe.spec.review/SKILL.md} +272 -155
  77. package/vibe/templates/claudemd-template.md +74 -0
  78. package/vibe/templates/constitution-template.md +15 -0
  79. package/vibe/templates/plan-template.md +194 -0
@@ -1,1193 +1,563 @@
1
1
  ---
2
- description: Create SPEC document with Specification Agent
3
- argument-hint: "feature name"
2
+ description: 프로젝트 명세 통합 진입점 interview → plan → spec → review → run/figma 전체 워크플로 오케스트레이션
3
+ argument-hint: "(선택) feature name, plan/interview file path, or idea"
4
4
  ---
5
5
 
6
6
  # /vibe.spec
7
7
 
8
- Create a SPEC document (Specification Agent).
8
+ **vibe 워크플로 통합 진입점.** "무엇을 개발할지" 질문으로 시작해서 interview → plan → SPEC 작성 review → 구현 + UI 디자인까지 전체 흐름을 오케스트레이션한다.
9
9
 
10
10
  ## Usage
11
11
 
12
12
  ```
13
- /vibe.spec "feature-name" # Conversation mode (requirements gathering)
14
- /vibe.spec "feature-name" ultrawork # Auto: SPEC → Review → Implementation
15
- /vibe.spec "docs/login-prd.md" # File path input (auto-detected)
16
- /vibe.spec + 📎 file attachment # Use attached file
13
+ /vibe.spec # 시작 "무엇을 만들까요?"부터
14
+ /vibe.spec "패럴랙스 웹사이트" # 아이디어/피처명 지정 시작
15
+ /vibe.spec ".claude/vibe/plans/{feature}.md" # 기획서 입력 (plan 단계 스킵)
16
+ /vibe.spec ".claude/vibe/interviews/{feature}.md" # interview 입력 (interview 단계 스킵)
17
+ /vibe.spec "docs/prd.md" # 외부 PRD/아이디어 파일 입력
18
+ /vibe.spec + 📎 첨부 # 첨부 기반 시작
19
+ /vibe.spec "feature-name" ultrawork # 중단 게이트 없이 자동 전 흐름 실행
17
20
  ```
18
21
 
19
- ### ultrawork Mode
22
+ ## Philosophy
20
23
 
21
- When `ultrawork` (or `ulw`) is included, automatically chains:
24
+ > **사용자는 "무엇을 만들지"만 말하면 된다. 어떤 스킬을 언제 부를지는 vibe가 결정한다.**
25
+
26
+ - **단일 진입점**: `/vibe.spec` 하나로 전체 워크플로 시작. 다른 `/vibe.*` 커맨드 이름 외울 필요 없음.
27
+ - **Smart resume**: 기존 interview/plan/spec 파일 존재 여부로 어느 단계부터 시작할지 자동 판단.
28
+ - **자동 체이닝**: 스킬 `chain-next` 메타데이터 따라 vibe.interview → vibe.plan → vibe.spec → vibe.spec.review 진행.
29
+ - **분기 판단**: 기획서의 `type` 필드로 UI 트랙/로직 트랙 여부 결정.
30
+ - **사용자 제어**: 각 단계 사이에 사용자 확인 지점(stop gate) 제공 (ultrawork 모드는 스킵).
31
+
32
+ ## Flow
22
33
 
23
34
  ```
24
- /vibe.spec "feature" ultrawork
35
+ /vibe.spec ["input"?]
36
+
37
+ Phase 0: Git branch setup
38
+
39
+ Phase 0.5: Input 분석 + Smart resume 결정
40
+ - 첨부/파일/아이디어 감지
41
+ - 기존 .claude/vibe/{interviews,plans,specs}/ 확인
42
+ - 시작 단계 결정: interview | plan | spec | review
43
+
44
+ Phase 1: Interview (skill: vibe.interview)
45
+ - 조건: interview 파일 없음
46
+ - 사용자 "그만"까지 반복 인터뷰
47
+ - 출력: .claude/vibe/interviews/{feature}.md
48
+
49
+ [Stop Gate 1] — ultrawork 모드에서는 스킵
50
+
51
+ Phase 2: Plan (skill: vibe.plan)
52
+ - 조건: plan 파일 없음
53
+ - interview → 마크다운 기획서 정제
54
+ - 출력: .claude/vibe/plans/{feature}.md
25
55
 
26
- [1] SPEC Creation (this command)
56
+ [Stop Gate 2 + 분기 판단]
57
+ 기획서 type 읽고 경로 결정:
58
+ - website/webapp/mobile → UI + Logic 병렬
59
+ - api/library/feature-data → Logic만
27
60
 
28
- [2] Auto: /vibe.spec.review "{feature}"
61
+ Phase 3: SPEC 작성 (skill: vibe.spec)
62
+ - PTCF 구조 SPEC 문서 + Feature(BDD) 파일
63
+ - Parallel research (GPT/Gemini/Claude agents)
64
+ - Large scope 자동 분할
65
+ - Ambiguity scan + 품질 게이트(100점, 수렴까지 루프)
66
+ - 출력: .claude/vibe/specs/{feature}.md + .claude/vibe/features/{feature}.feature
29
67
 
30
- [3] Auto: /vibe.run "{feature}" ultrawork
68
+ Phase 4: SPEC Review (skill: vibe.spec.review)
69
+ - Race Review (GPT + Gemini, 라운드 수 캡 없음, 수렴까지 루프)
70
+ - (옵션) Codex adversarial review
71
+ - 사용자 최종 체크포인트
72
+
73
+ Phase 5a: Logic Track → /vibe.run
74
+ Phase 5b: UI Track (병렬, UI 프로젝트만) → /vibe.figma
75
+
76
+ Phase 6: Verify (/vibe.verify)
77
+ Phase 7: Trace (/vibe.trace)
78
+
79
+ Done
31
80
  ```
32
81
 
33
- **No manual intervention between steps.**
34
-
35
- > **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
36
-
37
- ## Input Mode Detection (Auto-detect)
82
+ ## Rules Reference
38
83
 
39
- **Input priority:**
84
+ **`~/.claude/vibe/rules/` (global) 준수:**
40
85
 
41
- ```
42
- 1. Attachment exists? → Use attached file
43
- 2. Argument is file path? (existence check) → Read file
44
- 3. Otherwise → Conversation mode (start with feature name)
45
- ```
86
+ - `core/development-philosophy.md`
87
+ - `core/quick-start.md` Korean first
88
+ - `core/communication-guide.md`
46
89
 
47
- | Input | Result |
48
- |-------|--------|
49
- | 📎 Attached file | → Analyze attached file |
50
- | File path (exists) | → Read file (Read tool) |
51
- | Feature name | → Start conversation mode |
90
+ ## Process
52
91
 
53
- **All supported files:**
54
- - Text: `.md`, `.txt`, `.rst`, `.html`, `.json`, `.yaml`, etc.
55
- - Documents: `.pdf` (page-by-page analysis)
56
- - Images: `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.svg`, etc.
57
- - Notebooks: `.ipynb` (Jupyter)
58
- - **All formats Claude can read**
92
+ > **⏱️ Timer**: 시작 시 `getCurrentTime` 호출, `{start_time}`로 기록.
59
93
 
60
- **File input mode flow:**
94
+ ### Phase 0: Git Branch Setup (MANDATORY)
61
95
 
96
+ ```bash
97
+ git branch --show-current
62
98
  ```
63
- /vibe.spec "docs/login-prd.md"
64
99
 
65
- 📄 File loaded: docs/login-prd.md (2.3KB)
66
-
67
- 📋 Parsed requirements:
68
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
69
- Feature: Login
70
- - Email/password login
71
- - Social login (Google, Apple)
72
- - Password recovery
73
- - Auto login persistence
74
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
100
+ | 현재 | 행동 |
101
+ |-----|-----|
102
+ | `main`/`master` | 임시 이름으로 `git checkout -b vibe/tmp` (이후 feature 이름 확정되면 리네임) |
103
+ | `feature/*`, `plan/*`, `interview/*`, `vibe/*` | 확인: "이 브랜치에서 계속?" |
104
+ | 기타 | 사용자 확인 |
75
105
 
76
- Additional confirmation needed:
77
- 1. Session expiration time? (default: 24 hours)
78
- 2. Allow concurrent login?
79
- 3. Confirm tech stack? (current: React + Supabase)
106
+ ### Phase 0.5: Input 분석 + Smart Resume
80
107
 
81
- User: 1 hour, disallow, confirm
108
+ **입력 우선순위:**
82
109
 
83
- ✅ Requirements confirmed → Run research → Generate SPEC → Review
84
110
  ```
85
-
86
- **Supported file formats:**
87
-
88
- | Format | Extension | Purpose |
89
- |--------|-----------|---------|
90
- | Markdown | `.md` | PRD, planning docs, README |
91
- | Text | `.txt` | Requirements list |
92
- | PDF | `.pdf` | Planning docs, design documents |
93
- | Image | `.png`, `.jpg`, `.jpeg`, `.webp` | Wireframes, UI design, screenshots |
94
-
95
- **Image input analysis:**
96
-
97
- When image files (`.png`, `.jpg`, `.jpeg`, `.webp`) are provided as input, analyze them using the best available method:
98
-
99
- - **Gemini Enabled**: `llm-orchestrate.js gemini analyze-image` (Gemini Flash - best image recognition)
100
- - **Gemini Disabled**: Claude Opus Read tool (built-in multimodal, existing behavior)
101
-
102
- **Gemini enabled - analyze via llm-orchestrate.js:**
103
-
104
- ```bash
105
- # [LLM_SCRIPT] = {{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js
106
- node "[LLM_SCRIPT]" gemini analyze-image "./designs/login-wireframe.png" "Analyze this UI design image. Identify all UI elements, layout structure, colors, typography, and component hierarchy. Output a structured breakdown."
111
+ 1. 📎 첨부 파일 있음? → 첨부 분석 → feature name 추출
112
+ 2. 인자가 파일 경로? → 파일 위치로 시작 단계 결정:
113
+ .claude/vibe/interviews/*.md → Phase 2 (plan)
114
+ .claude/vibe/plans/*.md → Phase 3 (spec)
115
+ .claude/vibe/specs/*.md → Phase 4 (review)
116
+ 기타 (.md/.txt/.pdf) → Phase 2 (plan, 외부 PRD 흡수)
117
+ 3. 인자가 feature name? .claude/vibe/에서 기존 파일 검색
118
+ existing spec "리뷰 재실행? 이어서? 재작성?" 물음
119
+ existing plan Phase 3 (spec)
120
+ existing interview → Phase 2 (plan)
121
+ 아무것도 없음 → Phase 1 (interview)
122
+ 4. 인자 없음 → Smart Resume Fallback 알고리즘 실행 (아래 참조)
107
123
  ```
108
124
 
109
- Parse the JSON result: `{ success: true, analysis: "..." }` use `analysis` field content.
110
-
111
- If `success: false`, fall back to Claude Read tool.
125
+ #### Smart Resume Fallback (인자 없는 `/vibe.spec` 호출 시)
112
126
 
113
- **Gemini disabled - analyze via Claude Read tool:**
127
+ **목적**: feature 이름을 기억하지 못해도 진행 작업을 자동 발견해서 이어서 진행할 수 있게 한다.
114
128
 
115
- Use the Read tool directly on the image file. Claude can read images natively.
116
-
117
- **Image input example:**
118
129
  ```
119
- /vibe.spec "designs/login-wireframe.png"
120
-
121
- 🖼️ Image analysis: designs/login-wireframe.png
122
- (via Gemini Flash / Claude Opus)
130
+ 알고리즘:
123
131
 
124
- 📋 Detected UI elements:
125
- - Email input field
126
- - Password input field
127
- - "Login" button
128
- - "Forgot password" link
129
- - Social login buttons (Google, Apple)
130
-
131
- Confirmation needed:
132
- 1. Feature name? (e.g., "login")
133
- 2. Additional requirements?
134
-
135
- → Generate SPEC
136
- ```
132
+ Step 1) .claude/vibe/.last-feature 확인 (pointer 파일)
133
+ - 파일 없음 → Step 2로
134
+ - 존재 해당 feature의 상태 요약 출력 + 확인 질문:
135
+ "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
136
+ 🔄 마지막 작업: {feature-name}
137
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
138
+ ✅ interview: .claude/vibe/interviews/{feature}.md (status: complete, N일 전)
139
+ plan: .claude/vibe/plans/{feature}.md (N일 전)
140
+ spec: 없음
141
+ → 다음 단계: Phase 3 (vibe.spec 스킬 — SPEC 작성)
137
142
 
138
- ## Rules Reference
143
+ 이어서 진행할까요?
144
+ Enter / yes → 이어서 진행
145
+ list → 다른 진행 중 작업 목록 보기
146
+ new → 새 아이디어로 시작
147
+ abort → 종료"
139
148
 
140
- **Must follow `~/.claude/vibe/rules/` (global):**
141
- - `core/development-philosophy.md` - Surgical precision, simplicity
142
- - `core/quick-start.md` - Korean first, DRY, SRP
143
- - `core/communication-guide.md` - Communication principles
149
+ - yes Phase 0.5의 인자 분석 경로 3번 (feature name)으로 진입
150
+ - list Step 2로
151
+ - new Step 3으로
152
+ - abort 종료
144
153
 
145
- ## Description
154
+ Step 2) 진행 중 작업 목록 표시 (.claude/vibe/ 디렉토리 스캔)
155
+ 수집:
156
+ features = {} (feature name → {hasInterview, hasPlan, hasSpec, mtime})
157
+ for each file in .claude/vibe/interviews/*.md:
158
+ feature = basename without .md
159
+ features[feature].hasInterview = true
160
+ features[feature].interviewMtime = file.mtime
161
+ features[feature].interviewStatus = frontmatter의 status (complete/partial)
162
+ 동일하게 plans/*.md, specs/*.md 스캔
146
163
 
147
- Collect requirements through conversation with the user and create an **AI-executable PTCF structured SPEC document**.
164
+ 정렬: 가장 최근 작업 (max mtime)
165
+ 최대 10개까지 표시
148
166
 
149
- > **PTCF**: Persona, Task, Context, Format - Google Gemini prompt optimization framework
167
+ 진행 작업 0개 Step 3으로
168
+ 1개 이상 → 목록 출력 + 선택 질문:
169
+ "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
170
+ 🔍 진행 중인 작업
171
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
150
172
 
151
- ## External LLM Integration (GPT/Gemini)
173
+ 1. bean-landing [interview: partial] 2일
174
+ 2. todo-app [plan: complete] 어제
175
+ 3. payment-api [spec: complete] 방금 전
176
+ ─────────────────────────────────────────────
177
+ n. ➕ 새로 시작
178
+ a. 종료
152
179
 
153
- When GPT/Gemini are enabled, they are automatically utilized during SPEC creation:
180
+ 선택 번호 또는 feature 이름을 입력하세요:"
154
181
 
155
- ```
156
- /vibe.spec "feature"
157
-
158
- [Claude] Draft SPEC
159
-
160
- [Parallel Research] GPT + Gemini + Claude agents (8 parallel)
161
-
162
- [SPEC Review] GPT + Gemini parallel review
163
-
164
- [Claude] Finalize SPEC
165
- ```
182
+ 사용자 응답 처리:
183
+ - 숫자 (1~N) → 해당 feature 선택 → 인자 분석 경로 3번으로
184
+ - 정확한 feature 이름 → 인자 분석 경로 3번으로
185
+ - "n" 또는 "new" → Step 3으로
186
+ - "a" 또는 "abort" → 종료
187
+ - 자유 텍스트 (매칭 없음) "{입력}은 기존 feature가 아닙니다. 새로 시작할까요? (y/n)" 확인
166
188
 
167
- **Setup:**
168
- ```bash
169
- vibe gpt key <key> # Enable GPT
170
- vibe gemini key <key> # Enable Gemini
171
- vibe status # Check current settings
189
+ Step 3) 빈 시작 (기존 동작)
190
+ "👋 무엇을 만들고 싶으신가요?" 질문 → Phase 1 (interview)
172
191
  ```
173
192
 
174
- ## Process
193
+ #### `.last-feature` 포인터 파일 갱신 규칙
175
194
 
176
- ### 0. Git Branch Setup (MANDATORY - Execute First!)
195
+ ```
196
+ 경로: .claude/vibe/.last-feature
197
+ 형식: 한 줄, feature name만 저장
198
+ 예: "bean-landing\n"
177
199
 
178
- > ⚠️ **CRITICAL: You MUST execute this step FIRST before anything else!**
179
- > This is NOT optional documentation - you must RUN these git commands.
200
+ 파일은 **개인 작업 포인터**이므로 git에 커밋하지 않는다.
201
+ `.gitignore` `.claude/vibe/.last-feature` 엔트리 필수.
180
202
 
181
- **Step 0 is BLOCKING - do not proceed to Step 1 until branch is ready.**
203
+ 갱신 시점:
204
+ - Phase 1 (interview) 진입 시 → feature name 결정되면 즉시 기록
205
+ - Phase 2 (plan) 진입 시 → 기록 (이미 맞으면 no-op)
206
+ - Phase 3 (spec) 진입 시 → 기록
207
+ - Phase 4 (review) 진입 시 → 기록
182
208
 
183
- **Execute these commands using Bash tool:**
209
+ 즉, 어느 Phase에서 멈추든 다음 /vibe.spec 호출 시 이 feature가 1순위로 제안된다.
184
210
 
185
- ```bash
186
- # 1. Check current branch
187
- git branch --show-current
211
+ 삭제 시점:
212
+ - Phase 7 (trace) 완료 시 → 파일 삭제 (워크플로 완주)
213
+ - 사용자가 명시적으로 종료/abort 선택 시 → 삭제하지 않음 (재개 가능하게)
188
214
  ```
189
215
 
190
- **Then based on result:**
191
-
192
- | Current Branch | Action |
193
- |----------------|--------|
194
- | `main` or `master` | **MUST** create feature branch: `git checkout -b feature/{feature-name}` |
195
- | `feature/*` | Ask user: "Continue on this branch or create new?" |
196
- | Other | Ask user to confirm |
197
-
198
- **Example execution:**
216
+ **출력 예시:**
199
217
 
200
218
  ```
201
219
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
202
- 🌿 GIT BRANCH SETUP
220
+ 🔍 Input 분석
203
221
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
204
222
 
205
- Current branch: main
206
-
207
- Creating feature branch...
208
- $ git checkout -b feature/login-page
209
-
210
- ✅ Switched to new branch: feature/login-page
223
+ 입력: "패럴랙스 웹사이트"
224
+ 분류: 신규 아이디어
225
+ 기존 파일: 없음
211
226
 
227
+ → 시작 단계: Phase 1 (vibe.interview)
212
228
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
213
229
  ```
214
230
 
215
- **Branch naming rules:**
216
- - Convert to lowercase: `Login Page` → `login-page`
217
- - Replace spaces with hyphens
218
- - Prefix with `feature/`
219
- - Example: `feature/passkey-auth`, `feature/dark-mode`
220
-
221
- ### 1. Project Analysis
222
-
223
- **Existing project** (`vibe init`):
224
- - Reference `CLAUDE.md` file (tech stack)
225
- - **Delegate codebase analysis to explorer agent** — do NOT read project files in main session:
226
-
227
- ```text
228
- Task(subagent_type="explorer-low",
229
- prompt="Analyze project structure: package.json, pyproject.toml, pubspec.yaml, go.mod.
230
- Find existing implementations related to [FEATURE]. Return: tech stack, relevant files, patterns used.
231
- Keep summary under 200 tokens.")
232
- ```
233
-
234
- **New project** (`vibe init <project-name>`):
235
- - Suggest tech stack (2-3 options)
236
-
237
- ### 2. Collect Requirements via Conversation
238
-
239
- **Principles:**
240
- - Ask **one question at a time**
241
- - Present options **with numbers** + "Feel free to describe in your own words"
242
- - **Natural conversation** without fixed order
243
-
244
- **Required confirmations:**
245
- - Purpose (Why): Why is it needed?
246
- - User (Who): Who will use it?
247
- - Feature scope (What): What features are needed?
248
- - Tech stack: Confirm existing stack or suggest new
249
- - Design reference: UI/UX to reference
231
+ ### Phase 1: Interview (조건부)
250
232
 
251
- ### 2.1 Critical Requirements Confirmation (askUser) - v2.6.1
233
+ **진입 조건:** interview 파일이 아직 없음
252
234
 
253
- **🚨 IMPORTANT: Use `askUser` tool for CRITICAL requirements that must not be missed**
235
+ **진입 방식:**
254
236
 
255
- After initial conversation, use the structured `askUser` tool for:
256
- - 🔐 Authentication: method, MFA, password policy
257
- - 🛡️ Security: rate limiting, session management
258
- - ⏱️ Session: duration, concurrent login policy
259
- - 📊 Data Model: required fields, relationships
237
+ 1. **인자 있음** (`/vibe.spec "아이디어"`)
238
+ `vibe.interview` 스킬 로드 + 아이디어 전달
260
239
 
261
- **When to use askUser vs conversation:**
240
+ 2. **인자 없음** (`/vibe.spec`)
241
+ → **Smart Resume Fallback 먼저** (Phase 0.5 참조):
242
+ - `.last-feature` 있고 사용자가 "이어서" 선택 → 해당 feature로 진입 (이 Phase 1 건너뛸 수 있음)
243
+ - 진행 중 작업 목록에서 선택 → 해당 feature로 진입
244
+ - "new" 선택 or 진행 중 작업 없음 → 아래 질문으로 빈 시작
245
+ → 빈 시작 질문:
246
+ ```
247
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
248
+ 👋 무엇을 만들고 싶으신가요?
249
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
262
250
 
263
- | Scenario | Method |
264
- |----------|--------|
265
- | Exploratory (feature scope, style) | Natural conversation |
266
- | **Critical** (auth, security, session) | `askUser` tool |
267
- | Optional (performance, integration) | Natural conversation |
251
+ 예:
252
+ - "패럴랙스 웹사이트"
253
+ - "할 관리 앱"
254
+ - "Stripe 결제 연동 API"
255
+ - 또는 자유롭게 설명
268
256
 
269
- **Usage:**
257
+ (파일/이미지 첨부도 가능)
258
+ ```
259
+ → 사용자 응답 → `vibe.interview` 스킬 로드
270
260
 
271
- ```typescript
272
- import { askUser, askUserQuick } from '@su-record/vibe/tools';
261
+ **스킬 로드:**
273
262
 
274
- // Quick helper for common scenarios
275
- const result = await askUserQuick.login('my-login-feature');
276
- console.log(result.content[0].text);
277
-
278
- // Custom categories
279
- const result = await askUser({
280
- featureName: 'user-dashboard',
281
- categories: ['authentication', 'security', 'session', 'data_model'],
282
- context: 'Building a user dashboard with role-based access',
283
- });
263
+ ```
264
+ Load skill `vibe.interview` with input: {user_idea}
284
265
  ```
285
266
 
286
- **Available categories:**
287
- - `authentication`: Auth methods, MFA
288
- - `security`: Password policy, rate limiting
289
- - `session`: Session expiry, concurrent login
290
- - `data_model`: User profile fields
291
- - `performance`: Response time targets
292
- - `integration`: External service integration
267
+ > **`.last-feature` 갱신**: vibe.interview 스킬이 feature name을 확정하는 즉시 `.claude/vibe/.last-feature` 에 한 줄로 기록. 이후 Phase 2/3/4 진입 시에도 동일 기록 유지 (값이 같으면 no-op).
293
268
 
294
- **Example output:**
269
+ `vibe.interview` 스킬이 자체적으로:
270
+ - 프로젝트 타입 감지 (website/webapp/mobile/api/library/feature)
271
+ - 타입별 체크리스트 로드 (`skills/vibe.interview/checklists/{type}.md`)
272
+ - 반복 인터뷰 실행 (사용자 "그만"까지)
273
+ - `.claude/vibe/interviews/{feature-name}.md` 저장
274
+
275
+ **Stop Gate 1**: Interview 완료 후 (ultrawork 모드 스킵)
295
276
 
296
277
  ```
297
278
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
298
- 📋 Requirements Confirmation
299
- Feature: login
279
+ Interview 완료
300
280
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
301
281
 
302
- ## 🔐 Authentication
303
-
304
- ### 🔐 Q-AUTHENTICATION-001
282
+ 📄 .claude/vibe/interviews/{feature}.md
283
+ Required: N/M | Optional: K/L | Discovered: X
305
284
 
306
- **Which authentication methods should be supported?**
307
- (Multiple selection allowed)
285
+ 다음 단계: 기획서 작성
286
+ 1. 계속 진행 (기본)
287
+ 2. Interview만 저장하고 종료
288
+ 3. Interview 수정 후 다시 (vibe.interview 재실행)
308
289
 
309
- 1. **Email/Password**
310
- 2. **Google Social Login**
311
- 3. **Apple Social Login**
312
- ...
313
-
314
- **Required**
315
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
316
- Total 6 questions (Required: 4)
317
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
290
+ Enter 계속
318
291
  ```
319
292
 
320
- **Response parsing:**
293
+ ### Phase 2: Plan (조건부)
321
294
 
322
- ```typescript
323
- import { parseUserResponse } from '@su-record/vibe/tools';
295
+ **진입 조건:** plan 파일이 아직 없음
324
296
 
325
- // User responds: "1, 2, 4" (selected option numbers)
326
- const response = parseUserResponse(question, "1, 2, 4");
327
- // { questionId: "Q-AUTH-001", value: ["email_password", "social_google", "passkey"], timestamp: "..." }
328
297
  ```
329
-
330
- **ultrawork mode:**
331
- - askUser is **skipped** in ultrawork mode
332
- - Uses default values from templates automatically
333
-
334
- ### 2.5. Reference Documents via config.json (MANDATORY after tech stack confirmed)
335
-
336
- **🚨 CRITICAL: Read config.json references IMMEDIATELY after tech stack is confirmed**
337
-
338
- Reference documents are automatically generated in `config.json` based on the stack detected during `vibe init`:
339
-
340
- ```json
341
- // .claude/vibe/config.json
342
- {
343
- "language": "ko",
344
- "stacks": [
345
- { "type": "typescript-react", "path": "package.json" }
346
- ],
347
- "references": {
348
- "rules": [
349
- "~/.claude/vibe/rules/code-quality.md",
350
- "~/.claude/vibe/rules/error-handling.md",
351
- "~/.claude/vibe/rules/security.md"
352
- ],
353
- "languages": [
354
- "~/.claude/vibe/languages/typescript-react.md"
355
- ],
356
- "templates": [
357
- "~/.claude/vibe/templates/spec-template.md",
358
- "~/.claude/vibe/templates/feature-template.md",
359
- "~/.claude/vibe/templates/constitution-template.md"
360
- ]
361
- }
362
- }
298
+ Load skill `vibe.plan` with input: .claude/vibe/interviews/{feature}.md
363
299
  ```
364
300
 
365
- **Workflow:**
366
-
367
- 1. Read `.claude/vibe/config.json`
368
- 2. Extract `references.languages[]` paths
369
- 3. Read each language document for stack-specific guidelines
301
+ `vibe.plan` 스킬이 자체적으로:
302
+ - 템플릿 로드 (`~/.claude/vibe/templates/plan-template.md`)
303
+ - Interview 섹션별 정제
304
+ - UI 섹션 조건부 포함 (type 기반)
305
+ - `.claude/vibe/plans/{feature}.md` 저장
370
306
 
371
- **Example:**
372
- ```bash
373
- # 1. Check references in config.json
374
- Read .claude/vibe/config.json
307
+ **Stop Gate 2**: 기획서 완료 후 + 분기 판단 (ultrawork 모드 스킵)
375
308
 
376
- # 2. Reference documents specified in references.languages
377
- Read ~/.claude/vibe/languages/typescript-react.md
378
309
  ```
310
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
311
+ ✅ 기획서 완성
312
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
379
313
 
380
- **Important:**
381
-
382
- - No manual mapping needed - config.json contains all reference paths
383
- - `config.json.references` is automatically referenced when running `/vibe.run`
384
- - Not copied to project (referenced from global package)
385
-
386
- ### 3. Parallel Research (v2.5.0) - MANDATORY AFTER requirements confirmed
387
-
388
- **🚨🚨🚨 ABSOLUTE RULES FOR RESEARCH PHASE 🚨🚨🚨**
389
-
390
- **STOP! Before doing ANY research, read this carefully:**
391
-
392
- 1. **DO NOT** use Task tool to spawn research agents
393
- 2. **DO NOT** use context7 MCP directly for research
394
- 3. **DO NOT** use WebSearch tool directly for research
395
- 4. **YOU MUST** use Bash tool to call llm-orchestrate.js directly
396
-
397
- **🚨🚨🚨 CRITICAL: NO FILE CREATION DURING RESEARCH 🚨🚨🚨**
398
-
399
- 5. **DO NOT** create any files in project root during research
400
- 6. **DO NOT** create SECURITY_*.md, RESEARCH_*.md, SUMMARY_*.md files
401
- 7. **DO NOT** use Write tool during research phase
402
- 8. **ALL research results** must be returned as text output only
403
- 9. **Files are ONLY created** in Step 4 (SPEC) and Step 5 (Feature) in `.claude/vibe/` directory
404
-
405
- **When to trigger:**
406
- 1. ✅ Feature type decided (e.g., "passkey authentication")
407
- 2. ✅ Tech stack confirmed (e.g., "React + Supabase")
408
- 3. ✅ Language guide copied (step 2.5)
409
- 4. ✅ Core requirements collected
410
-
411
- **→ IMMEDIATELY run these 6 Bash commands IN PARALLEL (all at once):**
412
-
413
- **Step 0: Script path:**
414
- - `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
415
-
416
- **Run all 4 in PARALLEL (each as separate Bash tool call):**
417
- ```bash
418
- # 1. GPT: Best practices (codex — code review & analysis)
419
- node "[LLM_SCRIPT]" gpt-codex orchestrate-json "Best practices for [FEATURE] with [STACK]. Focus: architecture patterns, code conventions. Return JSON: {patterns: [], antiPatterns: [], libraries: []}"
314
+ 📄 .claude/vibe/plans/{feature}.md
315
+ Type: {type}
420
316
 
421
- # 2. GPT: Security (codex — code review & analysis)
422
- node "[LLM_SCRIPT]" gpt-codex orchestrate-json "Security vulnerabilities for [FEATURE] with [STACK]. Focus: CVE database, known exploits. Return JSON: {vulnerabilities: [], mitigations: [], checklist: []}"
317
+ {type UI}:
318
+ 자동 경로: SPEC 작성 Review Logic Track + UI Track 병렬 실행
319
+ 1. 계속 (권장)
320
+ 2. Logic Track만 (SPEC만)
321
+ 3. UI Track만 (/vibe.figma 바로)
322
+ 4. 여기서 종료
423
323
 
424
- # 3. Gemini: Best practices
425
- node "[LLM_SCRIPT]" gemini orchestrate-json "Best practices for [FEATURE] with [STACK]. Focus: latest trends, framework updates. Return JSON: {patterns: [], antiPatterns: [], libraries: []}"
324
+ {type non-UI}:
325
+ 자동 경로: SPEC 작성 Review Logic Track
326
+ 1. 계속 (권장)
327
+ 2. 여기서 종료
426
328
 
427
- # 4. Gemini: Security
428
- node "[LLM_SCRIPT]" gemini orchestrate-json "Security advisories for [FEATURE] with [STACK]. Focus: latest patches, recent incidents. Return JSON: {advisories: [], patches: [], incidents: []}"
329
+ Enter 계속
429
330
  ```
430
331
 
431
- **Concrete example - run all 4 in parallel:**
432
- ```bash
433
- # GPT best practices (codex — code review & analysis)
434
- node "[LLM_SCRIPT]" gpt-codex orchestrate-json "Best practices for passkey authentication with React, Supabase. Focus: architecture patterns, code conventions. Return JSON: {patterns: [], antiPatterns: [], libraries: []}"
332
+ ### Phase 3: SPEC 작성
435
333
 
436
- # GPT security (codex code review & analysis)
437
- node "[LLM_SCRIPT]" gpt-codex orchestrate-json "Security vulnerabilities for passkey authentication with React, Supabase. Focus: CVE database, known exploits. Return JSON: {vulnerabilities: [], mitigations: [], checklist: []}"
334
+ **진입 조건:** spec 파일이 아직 없음 (또는 재작성 요청)
438
335
 
439
- # Gemini best practices
440
- node "[LLM_SCRIPT]" gemini orchestrate-json "Best practices for passkey authentication with React, Supabase. Focus: latest trends, framework updates. Return JSON: {patterns: [], antiPatterns: [], libraries: []}"
441
-
442
- # Gemini security
443
- node "[LLM_SCRIPT]" gemini orchestrate-json "Security advisories for passkey authentication with React, Supabase. Focus: latest patches, recent incidents. Return JSON: {advisories: [], patches: [], incidents: []}"
336
+ ```
337
+ Load skill `vibe.spec` with input: .claude/vibe/plans/{feature}.md
444
338
  ```
445
339
 
446
- **ALSO run Claude research agents in parallel using Task tool:**
447
-
448
- | Claude Agent | Role | Source |
449
- |--------------|------|--------|
450
- | `best-practices-agent` | Best practices for [feature] + [stack] | WebSearch |
451
- | `framework-docs-agent` | Latest docs via context7 | context7 MCP |
452
- | `codebase-patterns-agent` | Similar patterns in existing codebase | Glob, Grep |
453
- | `security-advisory-agent` | Security advisories for [feature] | WebSearch |
454
-
455
- **Total: 4 GPT/Gemini calls (Bash) + 4 Claude agents (Task) = 8 parallel research tasks**
456
-
457
- **🚨 GPT/Gemini MUST be called via Bash with llm-orchestrate.js! 🚨**
458
-
459
- #### 3.0.1 Agent Teams — Research Collaboration
460
-
461
- > **Agent Teams**: 개별 리서치 결과를 실제 팀으로 교차 검증하여 더 깊은 인사이트를 도출합니다.
462
- > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 — postinstall 자동 설정)
463
-
464
- **팀 구성:**
465
-
466
- | 팀원 | 역할 |
467
- |------|------|
468
- | best-practices (리더) | 패턴/안티패턴 종합, 충돌 해결, 최종 요약 |
469
- | security-advisory | 보안 관점 검증, 보안 리스크 식별 |
470
- | codebase-patterns | 기존 코드와의 일관성 검증 |
471
- | framework-docs | 최신 문서/API 변경사항 확인 |
472
-
473
- **실행 순서:**
474
-
475
- 1. `TeamCreate(team_name="research-{feature}")` — 팀 + 공유 태스크 리스트 생성
476
- 2. 4개 팀원 병렬 생성 — 각각 `Task(team_name=..., name=..., subagent_type=...)` 으로 spawn
477
- 3. 팀원들이 공유 TaskList에서 작업을 claim하고, SendMessage로 상호 검증
478
- 4. 리더(best-practices)가 최종 통합 요약 작성 → SPEC Context에 반영
479
- 5. 모든 팀원 shutdown_request → TeamDelete로 정리
340
+ `vibe.spec` 스킬이 PTCF 구조 SPEC 문서 + Feature(BDD) 파일 생성.
480
341
 
481
- **팀원 spawn 패턴:**
342
+ **핵심 단계** (상세는 `skills/vibe.spec/SKILL.md` 참조):
482
343
 
483
- ```text
484
- TeamCreate(team_name="research-{feature}", description="Research collaboration for {feature}")
344
+ 1. Project analysis (explorer agent)
345
+ 2. config.json references 로드
346
+ 3. Parallel research (GPT + Gemini + Claude agents, 8개 병렬)
347
+ 4. UI/UX Design Intelligence (UI 키워드 시 자동)
348
+ 5. PTCF SPEC 작성 (Large scope 자동 분할)
349
+ 6. Feature file (BDD) 생성
350
+ 7. Ambiguity scan
351
+ 8. Quality gate (100점, 수렴까지 루프)
485
352
 
486
- # 4개 병렬 spawn
487
- Task(team_name="research-{feature}", name="best-practices", subagent_type="best-practices-agent",
488
- prompt="리서치 팀 리더. 10개 병렬 리서치 결과를 종합하세요.
489
- 리서치 결과: {all_research_results}
490
- 역할: 패턴/안티패턴 종합, 팀원 간 충돌 해결, 최종 통합 요약 작성.
491
- TaskList를 확인하고 작업을 claim하세요. 팀원에게 SendMessage로 검증을 요청하세요.
492
- 모든 작업 완료 후 최종 요약을 작성하세요.")
353
+ **출력:**
493
354
 
494
- Task(team_name="research-{feature}", name="security-advisory", subagent_type="security-advisory-agent",
495
- prompt="리서치 보안 담당. 리서치 결과: {all_research_results}
496
- 역할: 보안 관점에서 모든 권장사항 검증.
497
- 보안 리스크 발견 시 best-practices에게 SendMessage로 알리세요.
498
- TaskList에서 보안 관련 작업을 claim하세요.")
355
+ - `.claude/vibe/specs/{feature-name}.md` (또는 split folder)
356
+ - `.claude/vibe/features/{feature-name}.feature` (또는 split folder)
499
357
 
500
- Task(team_name="research-{feature}", name="codebase-patterns", subagent_type="codebase-patterns-agent",
501
- prompt="리서치 팀 코드베이스 담당. 리서치 결과: {all_research_results}
502
- 역할: 권장사항이 기존 코드 패턴과 호환되는지 검증.
503
- 비호환 발견 시 best-practices에게 SendMessage로 알리세요.
504
- TaskList에서 호환성 관련 작업을 claim하세요.")
358
+ ### Phase 4: SPEC Review
505
359
 
506
- Task(team_name="research-{feature}", name="framework-docs", subagent_type="framework-docs-agent",
507
- prompt="리서치 팀 문서 담당. 리서치 결과: {all_research_results}
508
- 역할: 최신 API/문서와 권장사항 대조 검증.
509
- 폐기/변경된 API 발견 시 best-practices에게 SendMessage로 알리세요.
510
- TaskList에서 문서 검증 관련 작업을 claim하세요.")
511
360
  ```
512
-
513
- **팀원 간 통신 예시:**
514
-
515
- ```text
516
- security-advisory → best-practices: "JWT 라이브러리 권장사항에 CVE-2024-xxxx 취약점. 대안 필요"
517
- codebase-patterns → best-practices: "기존 코드가 class 패턴인데 함수형 권장은 비호환. 점진적 마이그레이션 제안"
518
- framework-docs → best-practices: "React 19에서 useEffect 패턴 변경됨. 리서치 결과의 패턴은 구버전"
519
- best-practices → broadcast: "최종 합의: JWT는 jose 라이브러리로 교체, 함수형 전환은 신규 파일만 적용"
361
+ Load skill `vibe.spec.review` with feature: {feature-name}
520
362
  ```
521
363
 
522
- **토론 결과는 SPEC의 Context 섹션에 반영됩니다.**
523
-
524
- #### 3.1 Result Merge Rules
525
-
526
- | Area | Merge Strategy |
527
- |------|----------------|
528
- | Best Practices | Deduplicate, keep most detailed |
529
- | Security | ALL included (no dedup for safety) |
530
- | Libraries | Consensus recommendations |
531
-
532
- **IMPORTANT:**
533
- - ❌ DO NOT skip research step
534
- - ❌ DO NOT ask user "should I run research?"
535
- - ✅ ALWAYS run after requirements confirmed
536
- - ✅ Show "Running parallel research (Claude + GPT + Gemini)..." message
537
- - ✅ Include all agent + LLM results in SPEC Context
538
- - ✅ Run all 4 Bash LLM calls in parallel + 4 Task agents in parallel
539
-
540
- **Research results are reflected in SPEC's Context section.**
364
+ `vibe.spec.review` 스킬이 Race Review + 품질 검증 + 사용자 체크포인트 실행.
541
365
 
542
- ### 3.2 UI/UX Design Intelligence (Auto-triggered)
366
+ **핵심 단계** (상세는 `skills/vibe.spec.review/SKILL.md` 참조):
543
367
 
544
- > **조건**: SPEC 컨텍스트에 UI/UX 키워드 포함 자동 실행 (website, landing, dashboard, app, e-commerce, portfolio, SaaS, mobile app, web app, UI, UX, frontend, 디자인)
545
- > **비활성화**: `.claude/vibe/config.json`에 `"uiUxAnalysis": false` 설정
368
+ 1. SPEC/Feature 파일 로드 (single/split 자동 감지)
369
+ 2. Quality Validation (100점 게이트, 수렴까지 auto-fix 루프)
370
+ 3. Race Review (GPT + Gemini parallel, 라운드 수 캡 없음, P1=0 + 수렴 시 종료)
371
+ 4. (옵션) Codex adversarial review
372
+ 5. Review Debate Team (2+ P1/P2 이슈 시)
373
+ 6. 사용자 최종 체크포인트
546
374
 
547
- **UI/UX 키워드 감지 시, 리서치와 병렬로 3개 에이전트 순차 실행:**
375
+ ### Phase 5a: Logic Track
548
376
 
549
377
  ```
550
- [Parallel Research] GPT + Gemini + Claude agents
551
- ↓ (동시 실행)
552
- [UI/UX Intelligence]
553
- ① ui-industry-analyzer (Haiku) → 산업 분석 + 디자인 전략
554
-
555
- ②③ 병렬 실행:
556
- ② ui-design-system-gen (Sonnet) → MASTER.md 생성
557
- ③ ui-layout-architect (Haiku) → 레이아웃 설계
378
+ /vibe.run "{feature-name}"
558
379
  ```
559
380
 
560
- **실행 방법:**
381
+ SPEC → 코드 구현.
561
382
 
562
- 1. **① ui-industry-analyzer** Task(haiku) 에이전트로 실행:
563
- ```text
564
- Task(subagent_type="ui-industry-analyzer",
565
- prompt="Analyze product: [USER_DESCRIPTION]. Use core_ui_search to detect category, style priority, color mood, typography mood. Save result to .claude/vibe/design-system/{project}/analysis-result.json")
566
- ```
383
+ ### Phase 5b: UI Track (type {website, webapp, mobile}일 때만)
567
384
 
568
- 2. **②③ 병렬 실행** — ①의 결과를 입력으로:
569
- ```text
570
- # ② 디자인 시스템 생성 (Sonnet)
571
- Task(subagent_type="ui-design-system-gen",
572
- prompt="Generate design system from analysis-result.json for project '{project}'. Use core_ui_search for style/color/typography, then core_ui_generate_design_system and core_ui_persist_design_system.")
385
+ **5a와 병렬 실행** (또는 순차 사용자 선택):
573
386
 
574
- # ③ 레이아웃 설계 (Haiku) — 병렬 실행
575
- Task(subagent_type="ui-layout-architect",
576
- prompt="Design layout from analysis-result.json for project '{project}'. Use core_ui_search for landing patterns and dashboard layout.")
577
387
  ```
578
-
579
- 3. **결과를 SPEC Context에 주입:**
580
- ```markdown
581
- ### Design System (Auto-generated)
582
- - Category: {①의 category}
583
- - Style: {①의 style_priority}
584
- - MASTER.md: .claude/vibe/design-system/{project}/MASTER.md
585
- - Layout: {③의 pattern + sections}
388
+ /vibe.figma
586
389
  ```
587
390
 
588
- ### 4. Write SPEC Document (PTCF Structure)
589
-
590
- #### 4.0 Large Scope Detection & Auto-Split (MANDATORY)
591
-
592
- **🚨 CRITICAL: Automatically split SPEC when scope is large**
391
+ **`/vibe.figma`에 전달할 컨텍스트:**
593
392
 
594
- **❌ DO NOT ask user for confirmation - auto-split silently**
393
+ - `.claude/vibe/plans/{feature}.md` 경로
394
+ - 기획서의 §7 Look & Feel, §8 레이아웃, §9 반응형 섹션을 Phase 1 스토리보드 입력으로 사용
595
395
 
596
- **Detection criteria (ANY triggers split):**
597
-
598
- | Criteria | Threshold |
599
- |----------|-----------|
600
- | Phases | 5+ phases |
601
- | Files to create | 15+ files |
602
- | Platforms | 2+ platforms |
603
- | Major features | 4+ distinct features |
604
-
605
- **Auto-split output (SPEC + Feature files must match):**
396
+ ### Phase 6: Verify
606
397
 
607
398
  ```
608
- .claude/vibe/specs/{feature-name}/
609
- ├── _index.md # Master SPEC
610
- ├── phase-1-setup.md
611
- ├── phase-2-core.md
612
- └── ...
613
-
614
- .claude/vibe/features/{feature-name}/
615
- ├── _index.feature # Master Feature
616
- ├── phase-1-setup.feature
617
- ├── phase-2-core.feature
618
- └── ...
399
+ /vibe.verify "{feature-name}"
619
400
  ```
620
401
 
621
- **🚨 CRITICAL: Each SPEC phase file MUST have a matching Feature file**
622
-
623
- **Master SPEC (`_index.md`):**
402
+ UI + 로직 + 연결 검증 (후속 PR에서 3축 확장 예정).
624
403
 
625
- ```markdown
626
- # SPEC: {feature-name} (Master)
404
+ ### Phase 7: Trace
627
405
 
628
- ## Overview
629
- - Total phases: N
630
- - Dependencies: [list]
631
-
632
- ## Sub-SPECs
633
-
634
- | Order | SPEC File | Feature File | Status |
635
- |-------|-----------|--------------|--------|
636
- | 1 | phase-1-setup.md | phase-1-setup.feature | ⬜ |
637
- | 2 | phase-2-core.md | phase-2-core.feature | ⬜ |
638
-
639
- ## Shared Context
640
- - Tech Stack: [all phases]
641
- - Constraints: [all phases]
642
406
  ```
643
-
644
- **Master Feature (`_index.feature`):**
645
-
646
- ```markdown
647
- # Feature: {feature-name} (Master)
648
-
649
- **Master SPEC**: `.claude/vibe/specs/{feature-name}/_index.md`
650
-
651
- ## Sub-Features
652
-
653
- | Order | Feature File | SPEC File | Status |
654
- |-------|--------------|-----------|--------|
655
- | 1 | phase-1-setup.feature | phase-1-setup.md | ⬜ |
656
- | 2 | phase-2-core.feature | phase-2-core.md | ⬜ |
657
-
658
- ## Overall User Story
659
- **As a** {user}
660
- **I want** {complete feature}
661
- **So that** {value}
662
- ```
663
-
664
- **Small scope (default):**
665
-
666
- Create `.claude/vibe/specs/{feature-name}.md`:
667
-
668
- ```markdown
669
- ---
670
- status: pending
671
- currentPhase: 0
672
- totalPhases: 3
673
- createdAt: {ISO-timestamp}
674
- lastUpdated: {ISO-timestamp}
675
- ---
676
-
677
- # SPEC: {feature-name}
678
-
679
- ## Persona
680
- <role>
681
- Define AI role and expertise for implementation
682
- - Senior developer on the project
683
- - Follow existing code patterns
684
- - Write testable code
685
- </role>
686
-
687
- ## Context
688
- <context>
689
- ### Background
690
- - Why this feature is needed
691
- - Who will use it
692
-
693
- ### Tech Stack
694
- - Backend: {technology}
695
- - Frontend: {technology}
696
- - Database: {technology}
697
-
698
- ### Related Code
699
- - `src/xxx/`: Existing implementation to reference
700
- - `src/yyy/`: Files to modify
701
-
702
- ### Design Reference
703
- - {Reference app/service}
704
- </context>
705
-
706
- ## Task
707
- <task>
708
- ### Phase 1: {phase-name}
709
- 1. [ ] {specific task}
710
- - File: `path/to/file`
711
- - Verify: `command`
712
- 2. [ ] {specific task}
713
-
714
- ### Phase 2: {phase-name}
715
- 1. [ ] {specific task}
716
- 2. [ ] {specific task}
717
-
718
- ### Phase 3: Testing and Verification
719
- 1. [ ] Unit Tests
720
- 2. [ ] Integration Tests
721
- </task>
722
-
723
- ## Constraints
724
- <constraints>
725
- - Follow existing code patterns
726
- - Localize error messages
727
- - Separate configuration via environment variables
728
- - {other constraints}
729
- </constraints>
730
-
731
- ## Output Format
732
- <output_format>
733
- ### Files to Create
734
- - `path/to/new/file.ts`
735
- - `path/to/new/file.test.ts`
736
-
737
- ### Files to Modify
738
- - `path/to/existing/file.ts`
739
-
740
- ### Verification Commands
741
- - `npm test`
742
- - `npm run build`
743
- </output_format>
744
-
745
- ## Acceptance Criteria
746
- <acceptance>
747
- - [ ] {verifiable criterion 1}
748
- - [ ] {verifiable criterion 2}
749
- - [ ] All tests pass
750
- - [ ] Build succeeds
751
- </acceptance>
407
+ /vibe.trace "{feature-name}"
752
408
  ```
753
409
 
754
- ### 5. Create Feature File (BDD) - Required
755
-
756
- **🚨 CRITICAL: Feature files MUST match SPEC file structure**
757
-
758
- | SPEC Structure | Feature Structure |
759
- |----------------|-------------------|
760
- | Single file (`{feature}.md`) | Single file (`{feature}.feature`) |
761
- | Split (`{feature}/_index.md` + phases) | Split (`{feature}/_index.feature` + phases) |
762
-
763
- #### 5.1 Single File (Small Scope)
764
-
765
- Create `.claude/vibe/features/{feature-name}.feature`:
410
+ SPEC 구현 추적.
766
411
 
767
- **Creation rules:**
768
- 1. Convert each SPEC Acceptance Criteria → one Scenario
769
- 2. Include Happy Path (normal case) + Edge Case (exception case)
770
- 3. Follow Given-When-Then format
412
+ > **Phase 7 완료 시**: `.claude/vibe/.last-feature` 삭제 (워크플로 완주 — 다음 `/vibe.spec` 호출은 빈 시작 또는 진행 중 작업 목록에서 시작).
771
413
 
772
- ```markdown
773
- # Feature: {feature-name}
414
+ ## ultrawork 모드
774
415
 
775
- **SPEC**: `.claude/vibe/specs/{feature-name}.md`
416
+ `ultrawork` (또는 `ulw`)가 인자에 포함되면:
776
417
 
777
- ## User Story
778
- **As a** {user}
779
- **I want** {feature}
780
- **So that** {value}
781
-
782
- ## Scenarios
783
-
784
- ### Scenario 1: {Happy Path}
785
- \`\`\`gherkin
786
- Scenario: {title}
787
- Given {precondition}
788
- When {action}
789
- Then {result}
790
- \`\`\`
791
- **Verification**: SPEC AC #1
792
-
793
- ### Scenario 2: {Edge Case}
794
- ...
795
-
796
- ## Coverage
797
- | Scenario | SPEC AC | Status |
798
- |----------|---------|--------|
799
- | 1 | AC-1 | ⬜ |
800
- ```
801
-
802
- #### 5.2 Split Files (Large Scope)
803
-
804
- When SPEC is split into phases, Feature files MUST also be split:
418
+ - **모든 Stop Gate 스킵**
419
+ - interview → plan → spec → review → run → (figma 병렬) 전체 자동 실행
420
+ - askUser 체크포인트 스킵, 기본값 사용
421
+ - 수동 개입 없이 완주
805
422
 
806
423
  ```
807
- .claude/vibe/features/{feature-name}/
808
- ├── _index.feature # Master: links to all phase features
809
- ├── phase-1-setup.feature # Scenarios for phase-1-setup.md
810
- ├── phase-2-core.feature # Scenarios for phase-2-core.md
811
- └── ...
424
+ /vibe.spec "패럴랙스 웹사이트" ultrawork
812
425
  ```
813
426
 
814
- **Phase Feature file structure:**
427
+ ## Smart Resume 예시
815
428
 
816
- ```markdown
817
- # Feature: {feature-name} - Phase {N}: {phase-name}
818
-
819
- **SPEC**: `.claude/vibe/specs/{feature-name}/phase-{N}-{name}.md`
820
- **Master Feature**: `.claude/vibe/features/{feature-name}/_index.feature`
821
-
822
- ## User Story (Phase Scope)
823
- **As a** {user}
824
- **I want** {phase-specific feature}
825
- **So that** {phase-specific value}
826
-
827
- ## Scenarios
828
-
829
- ### Scenario 1: {Phase Happy Path}
830
- ...
831
-
832
- ## Coverage
833
- | Scenario | SPEC AC | Status |
834
- |----------|---------|--------|
835
- | 1 | Phase {N} AC-1 | ⬜ |
429
+ ### 예시 1: 신규 프로젝트
836
430
  ```
431
+ User: /vibe.spec "원두 브랜드 랜딩"
837
432
 
838
- ### 6. Ambiguity Scan - Required
839
-
840
- After creating SPEC draft, **must perform systematic ambiguity check**.
841
-
842
- #### 6.1 Mandatory Check Categories
433
+ Claude: 🔍 Input 분석
434
+ 입력: "원두 브랜드 랜딩"
435
+ 분류: 신규 아이디어
436
+ 기존 파일: 없음
437
+ 시작 단계: Phase 1 (vibe.interview)
843
438
 
844
- | Category | Check Items | Red Flags |
845
- |----------|-------------|-----------|
846
- | **Functional Scope** | Missing features, unclear behavior | "etc.", "other", "if needed" |
847
- | **Data Model** | Undefined entities, relationships | Undefined types, missing fields |
848
- | **Non-Functional** | Performance, security requirements | Performance requirements without numbers |
849
- | **Edge Cases** | Boundary conditions, errors | 0 failure scenarios |
850
- | **Integration Points** | External APIs, contracts | API version/endpoint undefined |
851
- | **User Input** | Validation rules, limits | Input limits not specified |
852
- | **State Management** | State transitions, persistence | Missing state diagram |
853
-
854
- #### 6.2 Forbidden Ambiguous Terms
855
-
856
- If the following terms exist in SPEC, **clarification is mandatory**:
857
-
858
- | Forbidden Term | Replacement Method |
859
- |----------------|-------------------|
860
- | "appropriately", "properly" | Provide specific criteria (e.g., "within 3 seconds") |
861
- | "quickly", "rapidly" | Specify with numbers (e.g., "under 100ms") |
862
- | "various", "multiple" | List specific items |
863
- | "etc.", "other" | Specify complete list or limit scope |
864
- | "if needed", "depending on situation" | Specify conditions (e.g., "when credits < 10") |
865
- | "later", "in the future" | Explicitly exclude from current scope |
866
-
867
- #### 6.3 Check Process
868
-
869
- ```
870
- 1. Write SPEC draft
871
-
872
- 2. Auto-scan for forbidden terms
873
-
874
- 3. Review checklist by category
875
-
876
- 4. List discovered ambiguities
877
-
878
- 5. Auto-fixable items → Fix immediately
879
- Needs user confirmation → Ask question
880
-
881
- 6. Re-verify (max 2 rounds — remaining ambiguities → user confirmation or TODO)
439
+ [vibe.interview 스킬 로드]
440
+ Type: website 감지 → checklists/website.md 로드
441
+ ...
882
442
  ```
883
443
 
884
- #### 6.4 Auto-Fix for Common Ambiguities
885
-
886
- | Ambiguity Type | Auto-Fix Method |
887
- |----------------|-----------------|
888
- | Timeout undefined | Apply default 30 seconds |
889
- | Retry count undefined | Apply default 3 retries |
890
- | Pagination undefined | Apply default 20 items/page |
891
- | Input length undefined | Text 500 chars, password 8-64 chars |
892
- | File size undefined | Image 5MB, video 100MB |
893
-
894
- #### 6.5 Ambiguity Output Format
895
-
896
- ```markdown
897
- ## 🔍 Ambiguity Scan Results
898
-
899
- ### Found Issues: 3
900
-
901
- #### 1. Functional Scope
902
- - ⚠️ "Login failure behavior" not defined
903
- → **Auto-fix**: Apply 5-minute lockout after 3 failures
904
- - ⚠️ "Session expiration handling" unclear
905
- → **Question**: Session expiration time? (30min/1hour/24hours)
906
-
907
- #### 2. Edge Cases
908
- - ⚠️ Concurrent login permission undefined
909
- → **Question**: Allow concurrent login? (Y/N)
910
-
911
- ### Auto-fixed: 1
912
- ### Needs clarification: 2
444
+ ### 예시 2: 기획서에서 시작
913
445
  ```
446
+ User: /vibe.spec ".claude/vibe/plans/bean-landing.md"
914
447
 
915
- ### 7. Quality Validation (Self-Check)
916
-
917
- **Must perform self-quality check after SPEC completion**
918
-
919
- #### 7.1 Quality Checklist (Required Items)
920
-
921
- | Category | Check Item | Weight |
922
- |----------|------------|--------|
923
- | **Completeness** | All user flows included in Task | 15% |
924
- | **Completeness** | All ACs converted to Feature scenarios | 10% |
925
- | **Clarity** | No ambiguous terms (e.g., "appropriately", "quickly") | 10% |
926
- | **Clarity** | All numbers/limits specified (e.g., "max 500 chars") | 10% |
927
- | **Testability** | All ACs are auto-testable | 10% |
928
- | **Security** | Authentication/authorization requirements defined | 10% |
929
- | **Security** | Sensitive data handling method specified | 5% |
930
- | **Error Handling** | Major failure scenarios defined | 10% |
931
- | **Error Handling** | User error messages specified | 5% |
932
- | **Performance** | Response time/throughput targets specified | 5% |
933
- | **Edge Cases** | Boundary condition handling defined | 5% |
934
- | **Dependencies** | External systems/APIs specified | 5% |
935
-
936
- #### 7.2 Quality Score Calculation
448
+ Claude: 🔍 Input 분석
449
+ 입력: plan 파일 경로
450
+ 분류: 기존 기획서
451
+ Feature: bean-landing
452
+ 시작 단계: Phase 3 (vibe.spec)
937
453
 
454
+ [vibe.spec 스킬 로드]
455
+ 기획서 읽기 → research → PTCF 작성 ...
938
456
  ```
939
- Score = Σ(Check item met × Weight) / 100
940
457
 
941
- Grades:
942
- - 95-100: ✅ EXCELLENT - Ready to start implementation
943
- - 90-94: ⚠️ GOOD - Minor improvements required before implementation
944
- - 80-89: ⚠️ FAIR - Significant improvements required
945
- - 0-79: ❌ POOR - Rewrite required
458
+ ### 예시 3: 기존 feature 재개
946
459
  ```
460
+ User: /vibe.spec "bean-landing"
947
461
 
948
- #### 7.3 Quality Gate (Auto-verification)
949
-
950
- **Minimum 95 points required to complete SPEC draft**
462
+ Claude: 🔍 Input 분석
463
+ 입력: feature name
464
+ 기존 파일 검색...
465
+ ✅ interview: .claude/vibe/interviews/bean-landing.md
466
+ ✅ plan: .claude/vibe/plans/bean-landing.md
467
+ ❌ spec: 없음
468
+ → 시작 단계: Phase 3 (vibe.spec)
951
469
 
470
+ [vibe.spec 스킬 로드]
471
+ ...
952
472
  ```
953
- SPEC writing complete
954
-
955
- [Calculate Quality Score]
956
-
957
- Score < 95? → Show missing items → Attempt auto-fix → Re-evaluate
958
-
959
- Score ≥ 95 → SPEC Draft Complete → Handoff to /vibe.spec.review
960
- ```
961
-
962
- #### 7.4 Auto-Fix for Low Score
963
-
964
- If score is below 95, attempt automatic fixes:
965
-
966
- | Missing Item | Auto-Fix Method |
967
- |--------------|-----------------|
968
- | Missing AC | Auto-generate AC based on Task |
969
- | Numbers not specified | Apply project defaults (e.g., timeout 30s) |
970
- | Missing error handling | Add common error scenarios |
971
- | Missing performance targets | Apply industry standard criteria |
972
-
973
- ### 8. SPEC Draft Complete - Handoff to Review
974
-
975
- **🚨 IMPORTANT: GPT/Gemini review is now a SEPARATE command**
976
-
977
- After SPEC draft is complete (score ≥ 95):
978
-
979
- **If `ultrawork` mode:**
980
- - ❌ DO NOT show handoff message
981
- - ❌ DO NOT ask for confirmation
982
- - ✅ Immediately proceed to `/vibe.spec.review "{feature-name}"`
983
- - ✅ After review passes, immediately proceed to `/vibe.run "{feature-name}" ultrawork`
984
-
985
- **If normal mode:**
986
- Output the handoff message:
987
473
 
474
+ ### 예시 4: SPEC 리뷰 재실행
988
475
  ```
989
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
990
- ✅ SPEC DRAFT COMPLETE: {feature-name}
991
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
476
+ User: /vibe.spec "bean-landing"
992
477
 
993
- 📋 SPEC: .claude/vibe/specs/{feature-name}.md
994
- 📋 Feature: .claude/vibe/features/{feature-name}.feature
995
- 📊 Quality Score: {score}/100
996
- ⏱️ Started: {start_time}
997
- ⏱️ Completed: {getCurrentTime 결과}
478
+ Claude: 🔍 Input 분석
479
+ 기존 파일:
480
+ spec: .claude/vibe/specs/bean-landing.md
481
+ feature: .claude/vibe/features/bean-landing.feature
998
482
 
999
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1000
- ⚠️ NEXT STEP: Run SPEC review
1001
-
1002
- Option 1 (same session):
1003
- /vibe.spec.review "{feature-name}"
1004
-
1005
- Option 2 (recommended for large context):
1006
- /new → /vibe.spec.review "{feature-name}"
1007
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
483
+ 이미 SPEC이 존재합니다. 어떻게 진행할까요?
484
+ 1. SPEC 리뷰 (Phase 4: vibe.spec.review 스킬 로드)
485
+ 2. /vibe.run 실행 (구현)
486
+ 3. SPEC 재작성 (기존 백업 후 새로 작성)
487
+ 4. 종료
1008
488
  ```
1009
489
 
1010
- **Tip:** New session recommended when context > 50% to ensure review accuracy
1011
-
1012
- ## Output (MANDATORY File Creation)
1013
-
1014
- **🚨 CRITICAL: Files MUST be created in these EXACT paths. NO exceptions.**
1015
-
1016
- ### Small Scope (Single File)
1017
-
1018
- | File | Path | When |
1019
- |------|------|------|
1020
- | SPEC | `.claude/vibe/specs/{feature-name}.md` | After quality validation (Step 7) |
1021
- | Feature | `.claude/vibe/features/{feature-name}.feature` | Immediately after SPEC |
1022
-
1023
- ### Large Scope (Split Files)
1024
-
1025
- | File | Path | When |
1026
- |------|------|------|
1027
- | Master SPEC | `.claude/vibe/specs/{feature-name}/_index.md` | After quality validation |
1028
- | Phase SPEC | `.claude/vibe/specs/{feature-name}/phase-{N}-{name}.md` | Per phase |
1029
- | Master Feature | `.claude/vibe/features/{feature-name}/_index.feature` | After Master SPEC |
1030
- | Phase Feature | `.claude/vibe/features/{feature-name}/phase-{N}-{name}.feature` | Per phase SPEC |
1031
-
1032
- **❌ FORBIDDEN:**
490
+ ### 예시 5: feature 이름을 잊고 인자 없이 호출 (Smart Resume Fallback)
491
+ ```
492
+ User: /vibe.spec
1033
493
 
1034
- - Creating files in project root (e.g., `feature-name.md`)
1035
- - Creating files outside `.claude/vibe/` directory
1036
- - Skipping file creation
1037
- - Using different file names than feature-name
1038
- - Creating split SPEC without matching split Feature files
494
+ Claude: (.last-feature 읽기 "bean-landing" 발견)
1039
495
 
1040
- **✅ REQUIRED:**
496
+ 🔄 마지막 작업: bean-landing
497
+ ✅ interview: .claude/vibe/interviews/bean-landing.md (status: partial, 2일 전)
498
+ ❌ plan: 없음
499
+ ❌ spec: 없음
500
+ → 다음 단계: Phase 2 (vibe.plan — 기획서 작성)
1041
501
 
1042
- - Use Write tool to create files
1043
- - Verify directories exist (create if needed)
1044
- - Confirm file creation in response
1045
- - **Each SPEC file must have a matching Feature file**
502
+ 이어서 진행할까요?
503
+ Enter / yes 이어서 진행
504
+ list → 다른 진행 작업 목록 보기
505
+ new → 아이디어로 시작
506
+ abort → 종료
1046
507
 
1047
- ### File Creation Template
508
+ User: yes
1048
509
 
1049
- **Single file:**
1050
- ```
1051
- 1. Write .claude/vibe/specs/{feature-name}.md
1052
- 2. Write .claude/vibe/features/{feature-name}.feature
1053
- 3. Confirm: "✅ Created: specs/{feature-name}.md + features/{feature-name}.feature"
510
+ Claude: [Phase 2 진입]
511
+ .last-feature = bean-landing
512
+ [vibe.plan 스킬 로드]
513
+ ...
1054
514
  ```
1055
515
 
1056
- **Split files:**
516
+ ### 예시 6: 여러 feature 중 선택 (Fallback list 모드)
1057
517
  ```
1058
- 1. Write .claude/vibe/specs/{feature-name}/_index.md
1059
- 2. Write .claude/vibe/specs/{feature-name}/phase-1-setup.md
1060
- 3. Write .claude/vibe/specs/{feature-name}/phase-2-core.md
1061
- 4. Write .claude/vibe/features/{feature-name}/_index.feature
1062
- 5. Write .claude/vibe/features/{feature-name}/phase-1-setup.feature
1063
- 6. Write .claude/vibe/features/{feature-name}/phase-2-core.feature
1064
- 7. Confirm: "✅ Created: {N} SPEC files + {N} Feature files"
1065
- ```
1066
-
1067
- ## Example
518
+ User: /vibe.spec
1068
519
 
1069
- ```
1070
- User: /vibe.spec "brick-game"
520
+ Claude: (.last-feature 없음 → 디렉토리 스캔)
1071
521
 
1072
- Claude:
1073
- You're making a brick game! What style are you thinking of?
522
+ 🔍 진행 중인 작업
1074
523
 
1075
- 1. Classic Breakout style
1076
- 2. Arkanoid (with power-up items)
1077
- 3. Custom style with special gameplay
524
+ 1. bean-landing [interview: partial] 2일
525
+ 2. todo-app [plan: complete] 어제
526
+ 3. payment-api [spec: complete] 방금
527
+ ─────────────────────────────────────────────
528
+ n. ➕ 새로 시작
529
+ a. 종료
1078
530
 
1079
- Feel free to describe in your own words.
1080
-
1081
- User: 1
1082
-
1083
- Claude: What platform will it run on?
1084
-
1085
- 1. Web (browser)
1086
- 2. Mobile (iOS/Android)
1087
- 3. Desktop
1088
-
1089
- User: 1
1090
-
1091
- Claude:
1092
- Here are tech stack suggestions for web game development:
1093
-
1094
- 1. **Phaser.js** (Recommended) - Game framework with built-in physics engine
1095
- 2. **Canvas + JavaScript** - Lightweight with fine control
1096
- 3. **PixiJS + Matter.js** - High-performance rendering
1097
-
1098
- User: 1
1099
-
1100
- Claude: What design style?
1101
-
1102
- 1. Retro pixel (Atari Breakout)
1103
- 2. Neon graphics (Arkanoid)
1104
- 3. Modern 3D effects
531
+ 선택 번호 또는 feature 이름을 입력하세요:
1105
532
 
1106
533
  User: 2
1107
534
 
1108
- [Conversation continues...]
1109
-
1110
- Claude: SPEC draft created. Running ambiguity scan.
1111
-
1112
- ## 🔍 Ambiguity Scan Results
1113
-
1114
- ### Functional Scope
1115
- - ⚠️ Game over condition not defined (ball drop vs lives system)
1116
- - ⚠️ Stage clear condition unclear
1117
-
1118
- ### Edge Cases
1119
- - ⚠️ Ball reflection angle when hitting paddle edge
1120
- - ⚠️ Multiple brick collision handling
1121
-
1122
- Please clarify the above items.
1123
-
1124
- User: 3 lives, clear when all bricks destroyed, edge reflects at 45 degrees
1125
-
1126
- Claude: Thank you. SPEC has been refined.
1127
-
1128
- 🔍 Re-check result: 0 ambiguities
1129
- 📊 Quality score: 92/100 (A)
1130
-
1131
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1132
- 🔍 SPEC REVIEW (Gemini)
1133
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1134
-
1135
- 📤 Sending SPEC...
1136
- 📝 Gemini feedback:
1137
- 1. [Edge] Ball speed increase logic undefined
1138
- 2. [Security] Need score manipulation prevention
1139
-
1140
- ✅ 2 improvements auto-applied
1141
- 🔍 Re-verifying... ✅ Passed
1142
-
1143
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1144
- ✅ SPEC Complete!
1145
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1146
-
1147
- 📄 .claude/vibe/specs/brick-game.md (PTCF structure)
1148
- 📄 .claude/vibe/features/brick-game.feature
1149
- 📊 Quality score: 95/100 (A) ← Improved after review
535
+ Claude: Feature: todo-app 선택
536
+ ✅ plan 완성 → Phase 3 (vibe.spec) 진입
537
+ .last-feature = todo-app
538
+ ...
1150
539
  ```
1151
540
 
1152
- ## Core Tools (Semantic Analysis & Memory)
541
+ ## Rollback / Resume
1153
542
 
1154
- ### Tool Invocation
1155
- All tools are called via:
1156
- ```bash
1157
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.TOOL_NAME({...args}).then(r => console.log(r.content[0].text)))"
1158
- ```
1159
-
1160
- ### Recommended Tools for SPEC Creation
1161
-
1162
- | Tool | Purpose | When to Use |
1163
- |------|---------|-------------|
1164
- | `findSymbol` | Find symbol definitions | Locate existing implementations to reference |
1165
- | `findReferences` | Find all references | Understand how existing code is used |
1166
- | `analyzeComplexity` | Code complexity analysis | Evaluate complexity of code to modify |
1167
- | `saveMemory` | Save important decisions | Store confirmed requirements, design decisions |
1168
- | `recallMemory` | Recall saved memory | Retrieve previous project decisions |
1169
-
1170
- ### Example Tool Usage in SPEC Creation
1171
-
1172
- **1. Find existing auth implementation:**
1173
- ```bash
1174
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.findSymbol({symbolName: 'login', searchPath: 'src/'}).then(r => console.log(r.content[0].text)))"
1175
- ```
543
+ - Phase 종료 시 상태가 `.claude/vibe/{interviews,plans,specs,features}/`에 저장됨
544
+ - **`.claude/vibe/.last-feature` pointer**가 Phase 진입 시 갱신되어 "가장 최근에 작업한 feature" 추적 (Phase 7 완주 시 삭제)
545
+ - 중단 시 다시 `/vibe.spec`으로 돌아오면 Smart Resume Fallback 동작:
546
+ - 인자 있음 (`/vibe.spec "feature-name"` 또는 파일 경로) 해당 feature의 가장 진행된 단계 다음으로 바로 진입
547
+ - 인자 없음 → `.last-feature` 우선 제안 → 거부하면 진행 중 작업 목록 제시 → 또 거부하면 빈 시작
548
+ - 수동 개입 필요시 스킬 직접 호출 가능 (`Load skill vibe.interview` 등)
1176
549
 
1177
- **2. Save confirmed requirements:**
1178
- ```bash
1179
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.saveMemory({key: 'brick-game-requirements', value: 'Platform: Web, Stack: Phaser.js, Style: Neon', category: 'spec', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
1180
- ```
550
+ ## Next Step
1181
551
 
1182
- **3. Recall previous decisions:**
1183
- ```bash
1184
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.recallMemory({key: 'brick-game-requirements', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
1185
552
  ```
553
+ # 전형적인 사용
554
+ /vibe.spec "프로젝트 아이디어"
1186
555
 
1187
- ## Next Step
556
+ # 중간 단계 재개
557
+ /vibe.spec "feature-name"
1188
558
 
1189
- ```
1190
- /vibe.run "brick-game"
559
+ # ultrawork 자동 완주
560
+ /vibe.spec "feature-name" ultrawork
1191
561
  ```
1192
562
 
1193
563
  ---