@su-record/vibe 2.9.2 → 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 (59) hide show
  1. package/CLAUDE.md +30 -10
  2. package/README.ko.md +90 -25
  3. package/README.md +139 -25
  4. package/agents/teams/figma/figma-builder.md +29 -1
  5. package/agents/teams/review-debate-team.md +1 -1
  6. package/commands/vibe.analyze.md +324 -170
  7. package/commands/vibe.figma.md +549 -34
  8. package/commands/vibe.harness.md +177 -0
  9. package/commands/vibe.run.md +44 -27
  10. package/commands/vibe.scaffold.md +195 -0
  11. package/commands/vibe.spec.md +375 -947
  12. package/commands/vibe.trace.md +17 -0
  13. package/commands/vibe.verify.md +19 -10
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +29 -1
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/commands/update.d.ts.map +1 -1
  18. package/dist/cli/commands/update.js +4 -2
  19. package/dist/cli/commands/update.js.map +1 -1
  20. package/dist/cli/postinstall/constants.d.ts +1 -1
  21. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  22. package/dist/cli/postinstall/constants.js +6 -1
  23. package/dist/cli/postinstall/constants.js.map +1 -1
  24. package/dist/cli/setup/ProjectSetup.d.ts +12 -1
  25. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  26. package/dist/cli/setup/ProjectSetup.js +259 -72
  27. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  28. package/dist/cli/setup.d.ts +1 -1
  29. package/dist/cli/setup.d.ts.map +1 -1
  30. package/dist/cli/setup.js +1 -1
  31. package/dist/cli/setup.js.map +1 -1
  32. package/hooks/scripts/figma-guard.js +220 -0
  33. package/package.json +1 -1
  34. package/skills/arch-guard/SKILL.md +1 -1
  35. package/skills/capability-loop/SKILL.md +106 -2
  36. package/skills/chub-usage/SKILL.md +43 -43
  37. package/skills/claude-md-guide/SKILL.md +175 -175
  38. package/skills/design-teach/SKILL.md +33 -33
  39. package/skills/devlog/SKILL.md +38 -38
  40. package/skills/event-comms/SKILL.md +23 -13
  41. package/skills/event-ops/SKILL.md +28 -19
  42. package/skills/event-planning/SKILL.md +13 -1
  43. package/skills/priority-todos/SKILL.md +1 -1
  44. package/skills/vibe.figma/SKILL.md +234 -154
  45. package/skills/vibe.figma.convert/SKILL.md +123 -112
  46. package/skills/vibe.figma.extract/SKILL.md +141 -129
  47. package/skills/vibe.interview/SKILL.md +358 -0
  48. package/skills/vibe.interview/checklists/api.md +101 -0
  49. package/skills/vibe.interview/checklists/feature.md +88 -0
  50. package/skills/vibe.interview/checklists/library.md +95 -0
  51. package/skills/vibe.interview/checklists/mobile.md +89 -0
  52. package/skills/vibe.interview/checklists/webapp.md +97 -0
  53. package/skills/vibe.interview/checklists/website.md +99 -0
  54. package/skills/vibe.plan/SKILL.md +216 -0
  55. package/skills/vibe.spec/SKILL.md +1155 -0
  56. package/{commands/vibe.spec.review.md → skills/vibe.spec.review/SKILL.md} +269 -108
  57. package/vibe/templates/claudemd-template.md +74 -0
  58. package/vibe/templates/constitution-template.md +15 -0
  59. package/vibe/templates/plan-template.md +194 -0
@@ -1,1135 +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}`.
82
+ ## Rules Reference
36
83
 
37
- ## Input Mode Detection (Auto-detect)
84
+ **`~/.claude/vibe/rules/` (global) 준수:**
38
85
 
39
- **Input priority:**
86
+ - `core/development-philosophy.md`
87
+ - `core/quick-start.md` — Korean first
88
+ - `core/communication-guide.md`
40
89
 
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
- ```
46
-
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.
112
-
113
- **Gemini disabled - analyze via Claude Read tool:**
125
+ #### Smart Resume Fallback (인자 없는 `/vibe.spec` 호출 시)
114
126
 
115
- Use the Read tool directly on the image file. Claude can read images natively.
127
+ **목적**: feature 이름을 기억하지 못해도 진행 작업을 자동 발견해서 이어서 진행할 있게 한다.
116
128
 
117
- **Image input example:**
118
129
  ```
119
- /vibe.spec "designs/login-wireframe.png"
130
+ 알고리즘:
120
131
 
121
- 🖼️ Image analysis: designs/login-wireframe.png
122
- (via Gemini Flash / Claude Opus)
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 작성)
123
142
 
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)
143
+ 이어서 진행할까요?
144
+ Enter / yes → 이어서 진행
145
+ list → 다른 진행 중 작업 목록 보기
146
+ new → 아이디어로 시작
147
+ abort → 종료"
130
148
 
131
- Confirmation needed:
132
- 1. Feature name? (e.g., "login")
133
- 2. Additional requirements?
149
+ - yes → Phase 0.5의 인자 분석 경로 3번 (feature name)으로 진입
150
+ - list Step 2로
151
+ - new → Step 3으로
152
+ - abort → 종료
134
153
 
135
- Generate SPEC
136
- ```
137
-
138
- ## Rules Reference
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 스캔
139
163
 
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
164
+ 정렬: 가장 최근 작업 (max mtime)
165
+ 최대 10개까지 표시
144
166
 
145
- ## Description
167
+ 진행 중 작업 0개 → Step 3으로
168
+ 1개 이상 → 목록 출력 + 선택 질문:
169
+ "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
170
+ 🔍 진행 중인 작업
171
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
146
172
 
147
- Collect requirements through conversation with the user and create an **AI-executable PTCF structured SPEC document**.
173
+ 1. bean-landing [interview: partial] 2일
174
+ 2. todo-app [plan: complete] 어제
175
+ 3. payment-api [spec: complete] 방금 전
176
+ ─────────────────────────────────────────────
177
+ n. ➕ 새로 시작
178
+ a. 종료
148
179
 
149
- > **PTCF**: Persona, Task, Context, Format - Google Gemini prompt optimization framework
180
+ 선택 번호 또는 feature 이름을 입력하세요:"
150
181
 
151
- ## External LLM Integration (GPT/Gemini)
182
+ 사용자 응답 처리:
183
+ - 숫자 (1~N) → 해당 feature 선택 → 인자 분석 경로 3번으로
184
+ - 정확한 feature 이름 → 인자 분석 경로 3번으로
185
+ - "n" 또는 "new" → Step 3으로
186
+ - "a" 또는 "abort" → 종료
187
+ - 자유 텍스트 (매칭 없음) → "{입력}은 기존 feature가 아닙니다. 새로 시작할까요? (y/n)" 확인
152
188
 
153
- When GPT/Gemini are enabled, they are automatically utilized during SPEC creation:
154
-
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
- ```
166
-
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
231
+ ### Phase 1: Interview (조건부)
238
232
 
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
233
+ **진입 조건:** interview 파일이 아직 없음
243
234
 
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
235
+ **진입 방식:**
250
236
 
251
- ### 2.1 Critical Requirements Confirmation (askUser) - v2.6.1
237
+ 1. **인자 있음** (`/vibe.spec "아이디어"`)
238
+ → `vibe.interview` 스킬 로드 + 아이디어 전달
252
239
 
253
- **🚨 IMPORTANT: Use `askUser` tool for CRITICAL requirements that must not be missed**
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
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
254
250
 
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
251
+ 예:
252
+ - "패럴랙스 웹사이트"
253
+ - "할 관리 앱"
254
+ - "Stripe 결제 연동 API"
255
+ - 또는 자유롭게 설명
260
256
 
261
- **When to use askUser vs conversation:**
257
+ (파일/이미지 첨부도 가능)
258
+ ```
259
+ → 사용자 응답 → `vibe.interview` 스킬 로드
262
260
 
263
- | Scenario | Method |
264
- |----------|--------|
265
- | Exploratory (feature scope, style) | Natural conversation |
266
- | **Critical** (auth, security, session) | `askUser` tool |
267
- | Optional (performance, integration) | Natural conversation |
261
+ **스킬 로드:**
268
262
 
269
- **Usage:**
270
-
271
- ```typescript
272
- import { askUser, askUserQuick } from '@su-record/vibe/tools';
273
-
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
- });
284
263
  ```
285
-
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
293
-
294
- **Example output:**
295
-
264
+ Load skill `vibe.interview` with input: {user_idea}
296
265
  ```
297
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
298
- 📋 Requirements Confirmation
299
- Feature: login
300
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
301
-
302
- ## 🔐 Authentication
303
266
 
304
- ### 🔐 Q-AUTHENTICATION-001
267
+ > **`.last-feature` 갱신**: vibe.interview 스킬이 feature name을 확정하는 즉시 `.claude/vibe/.last-feature` 에 한 줄로 기록. 이후 Phase 2/3/4 진입 시에도 동일 기록 유지 (값이 같으면 no-op).
305
268
 
306
- **Which authentication methods should be supported?**
307
- (Multiple selection allowed)
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` 저장
308
274
 
309
- 1. **Email/Password**
310
- 2. **Google Social Login**
311
- 3. **Apple Social Login**
312
- ...
275
+ **Stop Gate 1**: Interview 완료 후 (ultrawork 모드 스킵)
313
276
 
314
- **Required**
277
+ ```
315
278
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
316
- Total 6 questions (Required: 4)
279
+ Interview 완료
317
280
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
318
- ```
319
-
320
- **Response parsing:**
321
281
 
322
- ```typescript
323
- import { parseUserResponse } from '@su-record/vibe/tools';
282
+ 📄 .claude/vibe/interviews/{feature}.md
283
+ Required: N/M | Optional: K/L | Discovered: X
324
284
 
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
- ```
285
+ 다음 단계: 기획서 작성
286
+ 1. 계속 진행 (기본)
287
+ 2. Interview만 저장하고 종료
288
+ 3. Interview 수정 후 다시 (vibe.interview 재실행)
329
289
 
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
- }
290
+ Enter → 계속
363
291
  ```
364
292
 
365
- **Workflow:**
293
+ ### Phase 2: Plan (조건부)
366
294
 
367
- 1. Read `.claude/vibe/config.json`
368
- 2. Extract `references.languages[]` paths
369
- 3. Read each language document for stack-specific guidelines
295
+ **진입 조건:** plan 파일이 아직 없음
370
296
 
371
- **Example:**
372
- ```bash
373
- # 1. Check references in config.json
374
- Read .claude/vibe/config.json
375
-
376
- # 2. Reference documents specified in references.languages
377
- Read ~/.claude/vibe/languages/typescript-react.md
378
297
  ```
379
-
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: []}"
420
-
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: []}"
423
-
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: []}"
426
-
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: []}"
298
+ Load skill `vibe.plan` with input: .claude/vibe/interviews/{feature}.md
429
299
  ```
430
300
 
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: []}"
435
-
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: []}"
301
+ `vibe.plan` 스킬이 자체적으로:
302
+ - 템플릿 로드 (`~/.claude/vibe/templates/plan-template.md`)
303
+ - Interview 섹션별 정제
304
+ - UI 섹션 조건부 포함 (type 기반)
305
+ - `.claude/vibe/plans/{feature}.md` 저장
438
306
 
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: []}"
307
+ **Stop Gate 2**: 기획서 완료 후 + 분기 판단 (ultrawork 모드 스킵)
441
308
 
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: []}"
444
309
  ```
310
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
311
+ ✅ 기획서 완성
312
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
445
313
 
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
- > **팀 정의**: `agents/teams/research-team.md` 참조
462
- > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 — postinstall 자동 설정)
463
-
464
- **토론 결과는 SPEC의 Context 섹션에 반영됩니다.**
465
-
466
- #### 3.1 Result Merge Rules
467
-
468
- | Area | Merge Strategy |
469
- |------|----------------|
470
- | Best Practices | Deduplicate, keep most detailed |
471
- | Security | ALL included (no dedup for safety) |
472
- | Libraries | Consensus recommendations |
473
-
474
- **IMPORTANT:**
475
- - ❌ DO NOT skip research step
476
- - ❌ DO NOT ask user "should I run research?"
477
- - ✅ ALWAYS run after requirements confirmed
478
- - ✅ Show "Running parallel research (Claude + GPT + Gemini)..." message
479
- - ✅ Include all agent + LLM results in SPEC Context
480
- - ✅ Run all 4 Bash LLM calls in parallel + 4 Task agents in parallel
481
-
482
- **Research results are reflected in SPEC's Context section.**
483
-
484
- ### 3.2 UI/UX Design Intelligence (Auto-triggered)
314
+ 📄 .claude/vibe/plans/{feature}.md
315
+ Type: {type}
485
316
 
486
- > **조건**: SPEC 컨텍스트에 UI/UX 키워드 포함 시 자동 실행 (website, landing, dashboard, app, e-commerce, portfolio, SaaS, mobile app, web app, UI, UX, frontend, 디자인)
487
- > **비활성화**: `.claude/vibe/config.json`에 `"uiUxAnalysis": false` 설정
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. 여기서 종료
488
323
 
489
- **UI/UX 키워드 감지 시, 리서치와 병렬로 3개 에이전트 순차 실행:**
324
+ {type non-UI}:
325
+ 자동 경로: SPEC 작성 → Review → Logic Track
326
+ 1. 계속 (권장)
327
+ 2. 여기서 종료
490
328
 
329
+ Enter → 계속
491
330
  ```
492
- [Parallel Research] GPT + Gemini + Claude agents
493
- ↓ (동시 실행)
494
- [UI/UX Intelligence]
495
- ① ui-industry-analyzer (Haiku) → 산업 분석 + 디자인 전략
496
-
497
- ②③ 병렬 실행:
498
- ② ui-design-system-gen (Sonnet) → MASTER.md 생성
499
- ③ ui-layout-architect (Haiku) → 레이아웃 설계
500
- ```
501
-
502
- **실행 방법:**
503
331
 
504
- 1. **① ui-industry-analyzer** Task(haiku) 에이전트로 실행:
505
- ```text
506
- Task(subagent_type="ui-industry-analyzer",
507
- 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")
508
- ```
332
+ ### Phase 3: SPEC 작성
509
333
 
510
- 2. **②③ 병렬 실행** ①의 결과를 입력으로:
511
- ```text
512
- # ② 디자인 시스템 생성 (Sonnet)
513
- Task(subagent_type="ui-design-system-gen",
514
- 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.")
334
+ **진입 조건:** spec 파일이 아직 없음 (또는 재작성 요청)
515
335
 
516
- # ③ 레이아웃 설계 (Haiku) — 병렬 실행
517
- Task(subagent_type="ui-layout-architect",
518
- prompt="Design layout from analysis-result.json for project '{project}'. Use core_ui_search for landing patterns and dashboard layout.")
519
336
  ```
520
-
521
- 3. **결과를 SPEC Context에 주입:**
522
- ```markdown
523
- ### Design System (Auto-generated)
524
- - Category: {①의 category}
525
- - Style: {①의 style_priority}
526
- - MASTER.md: .claude/vibe/design-system/{project}/MASTER.md
527
- - Layout: {③의 pattern + sections}
337
+ Load skill `vibe.spec` with input: .claude/vibe/plans/{feature}.md
528
338
  ```
529
339
 
530
- ### 4. Write SPEC Document (PTCF Structure)
531
-
532
- #### 4.0 Large Scope Detection & Auto-Split (MANDATORY)
340
+ `vibe.spec` 스킬이 PTCF 구조 SPEC 문서 + Feature(BDD) 파일 생성.
533
341
 
534
- **🚨 CRITICAL: Automatically split SPEC when scope is large**
342
+ **핵심 단계** (상세는 `skills/vibe.spec/SKILL.md` 참조):
535
343
 
536
- **❌ DO NOT ask user for confirmation - auto-split silently**
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점, 수렴까지 루프)
537
352
 
538
- **Detection criteria (ANY triggers split):**
353
+ **출력:**
539
354
 
540
- | Criteria | Threshold |
541
- |----------|-----------|
542
- | Phases | 5+ phases |
543
- | Files to create | 15+ files |
544
- | Platforms | 2+ platforms |
545
- | Major features | 4+ distinct features |
355
+ - `.claude/vibe/specs/{feature-name}.md` (또는 split folder)
356
+ - `.claude/vibe/features/{feature-name}.feature` (또는 split folder)
546
357
 
547
- **Auto-split output (SPEC + Feature files must match):**
358
+ ### Phase 4: SPEC Review
548
359
 
549
360
  ```
550
- .claude/vibe/specs/{feature-name}/
551
- ├── _index.md # Master SPEC
552
- ├── phase-1-setup.md
553
- ├── phase-2-core.md
554
- └── ...
555
-
556
- .claude/vibe/features/{feature-name}/
557
- ├── _index.feature # Master Feature
558
- ├── phase-1-setup.feature
559
- ├── phase-2-core.feature
560
- └── ...
361
+ Load skill `vibe.spec.review` with feature: {feature-name}
561
362
  ```
562
363
 
563
- **🚨 CRITICAL: Each SPEC phase file MUST have a matching Feature file**
564
-
565
- **Master SPEC (`_index.md`):**
364
+ `vibe.spec.review` 스킬이 Race Review + 품질 검증 + 사용자 체크포인트 실행.
566
365
 
567
- ```markdown
568
- # SPEC: {feature-name} (Master)
366
+ **핵심 단계** (상세는 `skills/vibe.spec.review/SKILL.md` 참조):
569
367
 
570
- ## Overview
571
- - Total phases: N
572
- - Dependencies: [list]
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. 사용자 최종 체크포인트
573
374
 
574
- ## Sub-SPECs
375
+ ### Phase 5a: Logic Track
575
376
 
576
- | Order | SPEC File | Feature File | Status |
577
- |-------|-----------|--------------|--------|
578
- | 1 | phase-1-setup.md | phase-1-setup.feature | ⬜ |
579
- | 2 | phase-2-core.md | phase-2-core.feature | ⬜ |
580
-
581
- ## Shared Context
582
- - Tech Stack: [all phases]
583
- - Constraints: [all phases]
584
377
  ```
585
-
586
- **Master Feature (`_index.feature`):**
587
-
588
- ```markdown
589
- # Feature: {feature-name} (Master)
590
-
591
- **Master SPEC**: `.claude/vibe/specs/{feature-name}/_index.md`
592
-
593
- ## Sub-Features
594
-
595
- | Order | Feature File | SPEC File | Status |
596
- |-------|--------------|-----------|--------|
597
- | 1 | phase-1-setup.feature | phase-1-setup.md | ⬜ |
598
- | 2 | phase-2-core.feature | phase-2-core.md | ⬜ |
599
-
600
- ## Overall User Story
601
- **As a** {user}
602
- **I want** {complete feature}
603
- **So that** {value}
378
+ /vibe.run "{feature-name}"
604
379
  ```
605
380
 
606
- **Small scope (default):**
381
+ SPEC 코드 구현.
607
382
 
608
- Create `.claude/vibe/specs/{feature-name}.md`:
383
+ ### Phase 5b: UI Track (type ∈ {website, webapp, mobile}일 때만)
609
384
 
610
- ```markdown
611
- ---
612
- status: pending
613
- currentPhase: 0
614
- totalPhases: 3
615
- createdAt: {ISO-timestamp}
616
- lastUpdated: {ISO-timestamp}
617
- ---
385
+ **5a와 병렬 실행** (또는 순차 — 사용자 선택):
618
386
 
619
- # SPEC: {feature-name}
620
-
621
- ## Persona
622
- <role>
623
- Define AI role and expertise for implementation
624
- - Senior developer on the project
625
- - Follow existing code patterns
626
- - Write testable code
627
- </role>
628
-
629
- ## Context
630
- <context>
631
- ### Background
632
- - Why this feature is needed
633
- - Who will use it
634
-
635
- ### Tech Stack
636
- - Backend: {technology}
637
- - Frontend: {technology}
638
- - Database: {technology}
639
-
640
- ### Related Code
641
- - `src/xxx/`: Existing implementation to reference
642
- - `src/yyy/`: Files to modify
643
-
644
- ### Design Reference
645
- - {Reference app/service}
646
- </context>
647
-
648
- ## Task
649
- <task>
650
- ### Phase 1: {phase-name}
651
- 1. [ ] {specific task}
652
- - File: `path/to/file`
653
- - Verify: `command`
654
- 2. [ ] {specific task}
655
-
656
- ### Phase 2: {phase-name}
657
- 1. [ ] {specific task}
658
- 2. [ ] {specific task}
659
-
660
- ### Phase 3: Testing and Verification
661
- 1. [ ] Unit Tests
662
- 2. [ ] Integration Tests
663
- </task>
664
-
665
- ## Constraints
666
- <constraints>
667
- - Follow existing code patterns
668
- - Localize error messages
669
- - Separate configuration via environment variables
670
- - {other constraints}
671
- </constraints>
672
-
673
- ## Output Format
674
- <output_format>
675
- ### Files to Create
676
- - `path/to/new/file.ts`
677
- - `path/to/new/file.test.ts`
678
-
679
- ### Files to Modify
680
- - `path/to/existing/file.ts`
681
-
682
- ### Verification Commands
683
- - `npm test`
684
- - `npm run build`
685
- </output_format>
686
-
687
- ## Acceptance Criteria
688
- <acceptance>
689
- - [ ] {verifiable criterion 1}
690
- - [ ] {verifiable criterion 2}
691
- - [ ] All tests pass
692
- - [ ] Build succeeds
693
- </acceptance>
694
387
  ```
695
-
696
- ### 5. Create Feature File (BDD) - Required
697
-
698
- **🚨 CRITICAL: Feature files MUST match SPEC file structure**
699
-
700
- | SPEC Structure | Feature Structure |
701
- |----------------|-------------------|
702
- | Single file (`{feature}.md`) | Single file (`{feature}.feature`) |
703
- | Split (`{feature}/_index.md` + phases) | Split (`{feature}/_index.feature` + phases) |
704
-
705
- #### 5.1 Single File (Small Scope)
706
-
707
- Create `.claude/vibe/features/{feature-name}.feature`:
708
-
709
- **Creation rules:**
710
- 1. Convert each SPEC Acceptance Criteria → one Scenario
711
- 2. Include Happy Path (normal case) + Edge Case (exception case)
712
- 3. Follow Given-When-Then format
713
-
714
- ```markdown
715
- # Feature: {feature-name}
716
-
717
- **SPEC**: `.claude/vibe/specs/{feature-name}.md`
718
-
719
- ## User Story
720
- **As a** {user}
721
- **I want** {feature}
722
- **So that** {value}
723
-
724
- ## Scenarios
725
-
726
- ### Scenario 1: {Happy Path}
727
- \`\`\`gherkin
728
- Scenario: {title}
729
- Given {precondition}
730
- When {action}
731
- Then {result}
732
- \`\`\`
733
- **Verification**: SPEC AC #1
734
-
735
- ### Scenario 2: {Edge Case}
736
- ...
737
-
738
- ## Coverage
739
- | Scenario | SPEC AC | Status |
740
- |----------|---------|--------|
741
- | 1 | AC-1 | ⬜ |
388
+ /vibe.figma
742
389
  ```
743
390
 
744
- #### 5.2 Split Files (Large Scope)
391
+ **`/vibe.figma`에 전달할 컨텍스트:**
392
+
393
+ - `.claude/vibe/plans/{feature}.md` 경로
394
+ - 기획서의 §7 Look & Feel, §8 레이아웃, §9 반응형 섹션을 Phase 1 스토리보드 입력으로 사용
745
395
 
746
- When SPEC is split into phases, Feature files MUST also be split:
396
+ ### Phase 6: Verify
747
397
 
748
398
  ```
749
- .claude/vibe/features/{feature-name}/
750
- ├── _index.feature # Master: links to all phase features
751
- ├── phase-1-setup.feature # Scenarios for phase-1-setup.md
752
- ├── phase-2-core.feature # Scenarios for phase-2-core.md
753
- └── ...
399
+ /vibe.verify "{feature-name}"
754
400
  ```
755
401
 
756
- **Phase Feature file structure:**
757
-
758
- ```markdown
759
- # Feature: {feature-name} - Phase {N}: {phase-name}
760
-
761
- **SPEC**: `.claude/vibe/specs/{feature-name}/phase-{N}-{name}.md`
762
- **Master Feature**: `.claude/vibe/features/{feature-name}/_index.feature`
763
-
764
- ## User Story (Phase Scope)
765
- **As a** {user}
766
- **I want** {phase-specific feature}
767
- **So that** {phase-specific value}
402
+ UI + 로직 + 연결 검증 (후속 PR에서 3축 확장 예정).
768
403
 
769
- ## Scenarios
404
+ ### Phase 7: Trace
770
405
 
771
- ### Scenario 1: {Phase Happy Path}
772
- ...
773
-
774
- ## Coverage
775
- | Scenario | SPEC AC | Status |
776
- |----------|---------|--------|
777
- | 1 | Phase {N} AC-1 | ⬜ |
406
+ ```
407
+ /vibe.trace "{feature-name}"
778
408
  ```
779
409
 
780
- ### 6. Ambiguity Scan - Required
781
-
782
- After creating SPEC draft, **must perform systematic ambiguity check**.
783
-
784
- #### 6.1 Mandatory Check Categories
785
-
786
- | Category | Check Items | Red Flags |
787
- |----------|-------------|-----------|
788
- | **Functional Scope** | Missing features, unclear behavior | "etc.", "other", "if needed" |
789
- | **Data Model** | Undefined entities, relationships | Undefined types, missing fields |
790
- | **Non-Functional** | Performance, security requirements | Performance requirements without numbers |
791
- | **Edge Cases** | Boundary conditions, errors | 0 failure scenarios |
792
- | **Integration Points** | External APIs, contracts | API version/endpoint undefined |
793
- | **User Input** | Validation rules, limits | Input limits not specified |
794
- | **State Management** | State transitions, persistence | Missing state diagram |
410
+ SPEC 구현 추적.
795
411
 
796
- #### 6.2 Forbidden Ambiguous Terms
412
+ > **Phase 7 완료 시**: `.claude/vibe/.last-feature` 삭제 (워크플로 완주 — 다음 `/vibe.spec` 호출은 시작 또는 진행 중 작업 목록에서 시작).
797
413
 
798
- If the following terms exist in SPEC, **clarification is mandatory**:
414
+ ## ultrawork 모드
799
415
 
800
- | Forbidden Term | Replacement Method |
801
- |----------------|-------------------|
802
- | "appropriately", "properly" | Provide specific criteria (e.g., "within 3 seconds") |
803
- | "quickly", "rapidly" | Specify with numbers (e.g., "under 100ms") |
804
- | "various", "multiple" | List specific items |
805
- | "etc.", "other" | Specify complete list or limit scope |
806
- | "if needed", "depending on situation" | Specify conditions (e.g., "when credits < 10") |
807
- | "later", "in the future" | Explicitly exclude from current scope |
416
+ `ultrawork` (또는 `ulw`)가 인자에 포함되면:
808
417
 
809
- #### 6.3 Check Process
418
+ - **모든 Stop Gate 스킵**
419
+ - interview → plan → spec → review → run → (figma 병렬) 전체 자동 실행
420
+ - askUser 체크포인트 스킵, 기본값 사용
421
+ - 수동 개입 없이 완주
810
422
 
811
423
  ```
812
- 1. Write SPEC draft
813
-
814
- 2. Auto-scan for forbidden terms
815
-
816
- 3. Review checklist by category
817
-
818
- 4. List discovered ambiguities
819
-
820
- 5. Auto-fixable items → Fix immediately
821
- Needs user confirmation → Ask question
822
-
823
- 6. Re-verify (max 2 rounds — remaining ambiguities → user confirmation or TODO)
424
+ /vibe.spec "패럴랙스 웹사이트" ultrawork
824
425
  ```
825
426
 
826
- #### 6.4 Auto-Fix for Common Ambiguities
827
-
828
- | Ambiguity Type | Auto-Fix Method |
829
- |----------------|-----------------|
830
- | Timeout undefined | Apply default 30 seconds |
831
- | Retry count undefined | Apply default 3 retries |
832
- | Pagination undefined | Apply default 20 items/page |
833
- | Input length undefined | Text 500 chars, password 8-64 chars |
834
- | File size undefined | Image 5MB, video 100MB |
835
-
836
- #### 6.5 Ambiguity Output Format
427
+ ## Smart Resume 예시
837
428
 
838
- ```markdown
839
- ## 🔍 Ambiguity Scan Results
840
-
841
- ### Found Issues: 3
842
-
843
- #### 1. Functional Scope
844
- - ⚠️ "Login failure behavior" not defined
845
- → **Auto-fix**: Apply 5-minute lockout after 3 failures
846
- - ⚠️ "Session expiration handling" unclear
847
- → **Question**: Session expiration time? (30min/1hour/24hours)
848
-
849
- #### 2. Edge Cases
850
- - ⚠️ Concurrent login permission undefined
851
- → **Question**: Allow concurrent login? (Y/N)
852
-
853
- ### Auto-fixed: 1
854
- ### Needs clarification: 2
429
+ ### 예시 1: 신규 프로젝트
855
430
  ```
431
+ User: /vibe.spec "원두 브랜드 랜딩"
856
432
 
857
- ### 7. Quality Validation (Self-Check)
858
-
859
- **Must perform self-quality check after SPEC completion**
860
-
861
- #### 7.1 Quality Checklist (Required Items)
433
+ Claude: 🔍 Input 분석
434
+ 입력: "원두 브랜드 랜딩"
435
+ 분류: 신규 아이디어
436
+ 기존 파일: 없음
437
+ 시작 단계: Phase 1 (vibe.interview)
862
438
 
863
- | Category | Check Item | Weight |
864
- |----------|------------|--------|
865
- | **Completeness** | All user flows included in Task | 15% |
866
- | **Completeness** | All ACs converted to Feature scenarios | 10% |
867
- | **Clarity** | No ambiguous terms (e.g., "appropriately", "quickly") | 10% |
868
- | **Clarity** | All numbers/limits specified (e.g., "max 500 chars") | 10% |
869
- | **Testability** | All ACs are auto-testable | 10% |
870
- | **Security** | Authentication/authorization requirements defined | 10% |
871
- | **Security** | Sensitive data handling method specified | 5% |
872
- | **Error Handling** | Major failure scenarios defined | 10% |
873
- | **Error Handling** | User error messages specified | 5% |
874
- | **Performance** | Response time/throughput targets specified | 5% |
875
- | **Edge Cases** | Boundary condition handling defined | 5% |
876
- | **Dependencies** | External systems/APIs specified | 5% |
877
-
878
- #### 7.2 Quality Score Calculation
879
-
880
- ```
881
- Score = Σ(Check item met × Weight) / 100
882
-
883
- Grades:
884
- - 95-100: ✅ EXCELLENT - Ready to start implementation
885
- - 90-94: ⚠️ GOOD - Minor improvements required before implementation
886
- - 80-89: ⚠️ FAIR - Significant improvements required
887
- - 0-79: ❌ POOR - Rewrite required
439
+ [vibe.interview 스킬 로드]
440
+ Type: website 감지 → checklists/website.md 로드
441
+ ...
888
442
  ```
889
443
 
890
- #### 7.3 Quality Gate (Auto-verification)
891
-
892
- **Minimum 95 points required to complete SPEC draft**
893
-
894
- ```
895
- SPEC writing complete
896
-
897
- [Calculate Quality Score]
898
-
899
- Score < 95? → Show missing items → Attempt auto-fix → Re-evaluate
900
-
901
- Score ≥ 95 → SPEC Draft Complete → Handoff to /vibe.spec.review
444
+ ### 예시 2: 기획서에서 시작
902
445
  ```
446
+ User: /vibe.spec ".claude/vibe/plans/bean-landing.md"
903
447
 
904
- #### 7.4 Auto-Fix for Low Score
905
-
906
- If score is below 95, attempt automatic fixes:
907
-
908
- | Missing Item | Auto-Fix Method |
909
- |--------------|-----------------|
910
- | Missing AC | Auto-generate AC based on Task |
911
- | Numbers not specified | Apply project defaults (e.g., timeout 30s) |
912
- | Missing error handling | Add common error scenarios |
913
- | Missing performance targets | Apply industry standard criteria |
914
-
915
- ### 8. SPEC Draft Complete - Handoff to Review
916
-
917
- **🚨 IMPORTANT: GPT/Gemini review is now a SEPARATE command**
918
-
919
- After SPEC draft is complete (score ≥ 95):
920
-
921
- **If `ultrawork` mode:**
922
- - ❌ DO NOT show handoff message
923
- - ❌ DO NOT ask for confirmation
924
- - ✅ Immediately proceed to `/vibe.spec.review "{feature-name}"`
925
- - ✅ After review passes, immediately proceed to `/vibe.run "{feature-name}" ultrawork`
926
-
927
- **If normal mode:**
928
- Output the handoff message:
448
+ Claude: 🔍 Input 분석
449
+ 입력: plan 파일 경로
450
+ 분류: 기존 기획서
451
+ Feature: bean-landing
452
+ 시작 단계: Phase 3 (vibe.spec)
929
453
 
454
+ [vibe.spec 스킬 로드]
455
+ 기획서 읽기 → research → PTCF 작성 ...
930
456
  ```
931
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
932
- ✅ SPEC DRAFT COMPLETE: {feature-name}
933
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
934
-
935
- 📋 SPEC: .claude/vibe/specs/{feature-name}.md
936
- 📋 Feature: .claude/vibe/features/{feature-name}.feature
937
- 📊 Quality Score: {score}/100
938
- ⏱️ Started: {start_time}
939
- ⏱️ Completed: {getCurrentTime 결과}
940
-
941
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
942
- ⚠️ NEXT STEP: Run SPEC review
943
-
944
- Option 1 (same session):
945
- /vibe.spec.review "{feature-name}"
946
457
 
947
- Option 2 (recommended for large context):
948
- /new → /vibe.spec.review "{feature-name}"
949
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
458
+ ### 예시 3: 기존 feature 재개
950
459
  ```
460
+ User: /vibe.spec "bean-landing"
951
461
 
952
- **Tip:** New session recommended when context > 50% to ensure review accuracy
953
-
954
- ## Output (MANDATORY File Creation)
955
-
956
- **🚨 CRITICAL: Files MUST be created in these EXACT paths. NO exceptions.**
957
-
958
- ### Small Scope (Single File)
959
-
960
- | File | Path | When |
961
- |------|------|------|
962
- | SPEC | `.claude/vibe/specs/{feature-name}.md` | After quality validation (Step 7) |
963
- | Feature | `.claude/vibe/features/{feature-name}.feature` | Immediately after SPEC |
964
-
965
- ### Large Scope (Split Files)
966
-
967
- | File | Path | When |
968
- |------|------|------|
969
- | Master SPEC | `.claude/vibe/specs/{feature-name}/_index.md` | After quality validation |
970
- | Phase SPEC | `.claude/vibe/specs/{feature-name}/phase-{N}-{name}.md` | Per phase |
971
- | Master Feature | `.claude/vibe/features/{feature-name}/_index.feature` | After Master SPEC |
972
- | Phase Feature | `.claude/vibe/features/{feature-name}/phase-{N}-{name}.feature` | Per phase SPEC |
973
-
974
- **❌ FORBIDDEN:**
975
-
976
- - Creating files in project root (e.g., `feature-name.md`)
977
- - Creating files outside `.claude/vibe/` directory
978
- - Skipping file creation
979
- - Using different file names than feature-name
980
- - Creating split SPEC without matching split Feature files
981
-
982
- **✅ REQUIRED:**
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)
983
469
 
984
- - Use Write tool to create files
985
- - Verify directories exist (create if needed)
986
- - Confirm file creation in response
987
- - **Each SPEC file must have a matching Feature file**
988
-
989
- ### File Creation Template
990
-
991
- **Single file:**
992
- ```
993
- 1. Write .claude/vibe/specs/{feature-name}.md
994
- 2. Write .claude/vibe/features/{feature-name}.feature
995
- 3. Confirm: "✅ Created: specs/{feature-name}.md + features/{feature-name}.feature"
470
+ [vibe.spec 스킬 로드]
471
+ ...
996
472
  ```
997
473
 
998
- **Split files:**
999
- ```
1000
- 1. Write .claude/vibe/specs/{feature-name}/_index.md
1001
- 2. Write .claude/vibe/specs/{feature-name}/phase-1-setup.md
1002
- 3. Write .claude/vibe/specs/{feature-name}/phase-2-core.md
1003
- 4. Write .claude/vibe/features/{feature-name}/_index.feature
1004
- 5. Write .claude/vibe/features/{feature-name}/phase-1-setup.feature
1005
- 6. Write .claude/vibe/features/{feature-name}/phase-2-core.feature
1006
- 7. Confirm: "✅ Created: {N} SPEC files + {N} Feature files"
474
+ ### 예시 4: SPEC 리뷰 재실행
1007
475
  ```
476
+ User: /vibe.spec "bean-landing"
1008
477
 
1009
- ## Example
478
+ Claude: 🔍 Input 분석
479
+ 기존 파일:
480
+ ✅ spec: .claude/vibe/specs/bean-landing.md
481
+ ✅ feature: .claude/vibe/features/bean-landing.feature
1010
482
 
483
+ 이미 SPEC이 존재합니다. 어떻게 진행할까요?
484
+ 1. SPEC 리뷰 (Phase 4: vibe.spec.review 스킬 로드)
485
+ 2. /vibe.run 실행 (구현)
486
+ 3. SPEC 재작성 (기존 백업 후 새로 작성)
487
+ 4. 종료
1011
488
  ```
1012
- User: /vibe.spec "brick-game"
1013
489
 
1014
- Claude:
1015
- You're making a brick game! What style are you thinking of?
1016
-
1017
- 1. Classic Breakout style
1018
- 2. Arkanoid (with power-up items)
1019
- 3. Custom style with special gameplay
490
+ ### 예시 5: feature 이름을 잊고 인자 없이 호출 (Smart Resume Fallback)
491
+ ```
492
+ User: /vibe.spec
1020
493
 
1021
- Feel free to describe in your own words.
494
+ Claude: (.last-feature 읽기 "bean-landing" 발견)
1022
495
 
1023
- User: 1
496
+ 🔄 마지막 작업: bean-landing
497
+ ✅ interview: .claude/vibe/interviews/bean-landing.md (status: partial, 2일 전)
498
+ ❌ plan: 없음
499
+ ❌ spec: 없음
500
+ → 다음 단계: Phase 2 (vibe.plan — 기획서 작성)
1024
501
 
1025
- Claude: What platform will it run on?
502
+ 이어서 진행할까요?
503
+ Enter / yes → 이어서 진행
504
+ list → 다른 진행 중 작업 목록 보기
505
+ new → 새 아이디어로 시작
506
+ abort → 종료
1026
507
 
1027
- 1. Web (browser)
1028
- 2. Mobile (iOS/Android)
1029
- 3. Desktop
508
+ User: yes
1030
509
 
1031
- User: 1
510
+ Claude: [Phase 2 진입]
511
+ .last-feature = bean-landing
512
+ [vibe.plan 스킬 로드]
513
+ ...
514
+ ```
1032
515
 
1033
- Claude:
1034
- Here are tech stack suggestions for web game development:
516
+ ### 예시 6: 여러 feature 중 선택 (Fallback list 모드)
517
+ ```
518
+ User: /vibe.spec
1035
519
 
1036
- 1. **Phaser.js** (Recommended) - Game framework with built-in physics engine
1037
- 2. **Canvas + JavaScript** - Lightweight with fine control
1038
- 3. **PixiJS + Matter.js** - High-performance rendering
520
+ Claude: (.last-feature 없음 디렉토리 스캔)
1039
521
 
1040
- User: 1
522
+ 🔍 진행 중인 작업
1041
523
 
1042
- Claude: What design style?
524
+ 1. bean-landing [interview: partial] 2일
525
+ 2. todo-app [plan: complete] 어제
526
+ 3. payment-api [spec: complete] 방금 전
527
+ ─────────────────────────────────────────────
528
+ n. ➕ 새로 시작
529
+ a. 종료
1043
530
 
1044
- 1. Retro pixel (Atari Breakout)
1045
- 2. Neon graphics (Arkanoid)
1046
- 3. Modern 3D effects
531
+ 선택 번호 또는 feature 이름을 입력하세요:
1047
532
 
1048
533
  User: 2
1049
534
 
1050
- [Conversation continues...]
1051
-
1052
- Claude: SPEC draft created. Running ambiguity scan.
1053
-
1054
- ## 🔍 Ambiguity Scan Results
1055
-
1056
- ### Functional Scope
1057
- - ⚠️ Game over condition not defined (ball drop vs lives system)
1058
- - ⚠️ Stage clear condition unclear
1059
-
1060
- ### Edge Cases
1061
- - ⚠️ Ball reflection angle when hitting paddle edge
1062
- - ⚠️ Multiple brick collision handling
1063
-
1064
- Please clarify the above items.
1065
-
1066
- User: 3 lives, clear when all bricks destroyed, edge reflects at 45 degrees
1067
-
1068
- Claude: Thank you. SPEC has been refined.
1069
-
1070
- 🔍 Re-check result: 0 ambiguities
1071
- 📊 Quality score: 92/100 (A)
1072
-
1073
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1074
- 🔍 SPEC REVIEW (Gemini)
1075
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1076
-
1077
- 📤 Sending SPEC...
1078
- 📝 Gemini feedback:
1079
- 1. [Edge] Ball speed increase logic undefined
1080
- 2. [Security] Need score manipulation prevention
1081
-
1082
- ✅ 2 improvements auto-applied
1083
- 🔍 Re-verifying... ✅ Passed
1084
-
1085
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1086
- ✅ SPEC Complete!
1087
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1088
-
1089
- 📄 .claude/vibe/specs/brick-game.md (PTCF structure)
1090
- 📄 .claude/vibe/features/brick-game.feature
1091
- 📊 Quality score: 95/100 (A) ← Improved after review
1092
- ```
1093
-
1094
- ## Core Tools (Semantic Analysis & Memory)
1095
-
1096
- ### Tool Invocation
1097
- All tools are called via:
1098
- ```bash
1099
- 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)))"
535
+ Claude: Feature: todo-app 선택
536
+ ✅ plan 완성 → Phase 3 (vibe.spec) 진입
537
+ .last-feature = todo-app
538
+ ...
1100
539
  ```
1101
540
 
1102
- ### Recommended Tools for SPEC Creation
1103
-
1104
- | Tool | Purpose | When to Use |
1105
- |------|---------|-------------|
1106
- | `findSymbol` | Find symbol definitions | Locate existing implementations to reference |
1107
- | `findReferences` | Find all references | Understand how existing code is used |
1108
- | `analyzeComplexity` | Code complexity analysis | Evaluate complexity of code to modify |
1109
- | `saveMemory` | Save important decisions | Store confirmed requirements, design decisions |
1110
- | `recallMemory` | Recall saved memory | Retrieve previous project decisions |
541
+ ## Rollback / Resume
1111
542
 
1112
- ### Example Tool Usage in SPEC Creation
1113
-
1114
- **1. Find existing auth implementation:**
1115
- ```bash
1116
- 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)))"
1117
- ```
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` 등)
1118
549
 
1119
- **2. Save confirmed requirements:**
1120
- ```bash
1121
- 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)))"
1122
- ```
550
+ ## Next Step
1123
551
 
1124
- **3. Recall previous decisions:**
1125
- ```bash
1126
- 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)))"
1127
552
  ```
553
+ # 전형적인 사용
554
+ /vibe.spec "프로젝트 아이디어"
1128
555
 
1129
- ## Next Step
556
+ # 중간 단계 재개
557
+ /vibe.spec "feature-name"
1130
558
 
1131
- ```
1132
- /vibe.run "brick-game"
559
+ # ultrawork 자동 완주
560
+ /vibe.spec "feature-name" ultrawork
1133
561
  ```
1134
562
 
1135
563
  ---