@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,16 +1,29 @@
1
- # /vibe.spec.review - SPEC Quality Review
1
+ ---
2
+ name: vibe.spec.review
3
+ tier: core
4
+ description: "Review and enhance an existing SPEC with GPT/Gemini cross-validation. Runs 100-point quality gate (loop until perfect or stuck), Race Review with convergence-based termination (no round cap), optional Codex adversarial review, Review Debate Team, and final user checkpoint. Must use this skill after vibe.spec completes, or when the user says 'review spec', '스펙 리뷰'."
5
+ triggers: ["spec review", "review spec", "SPEC 리뷰", "명세 리뷰", race review]
6
+ priority: 80
7
+ chain-next: []
8
+ ---
9
+
10
+ # vibe.spec.review — SPEC Quality Review
2
11
 
3
12
  Review and enhance SPEC with GPT/Gemini cross-validation.
4
13
 
5
- **Purpose:** Run this command in a NEW session after `/vibe.spec` to ensure accurate review execution.
14
+ **Purpose:** Run this skill after `vibe.spec` to ensure accurate review execution. For large contexts, invoke in a new session.
6
15
 
7
16
  ---
8
17
 
9
18
  ## Usage
10
19
 
11
- ```bash
12
- /vibe.spec.review "feature-name"
20
+ This skill is automatically called in Phase 4 of the `/vibe.spec` orchestrator. If direct invocation is needed:
21
+
13
22
  ```
23
+ Load skill `vibe.spec.review` with feature: "feature-name"
24
+ ```
25
+
26
+ Or via natural language trigger: "스펙 리뷰", "review spec", "명세 리뷰".
14
27
 
15
28
  **Prerequisites:**
16
29
  - SPEC file exists: `.claude/vibe/specs/{feature-name}.md` (single) or `.claude/vibe/specs/{feature-name}/_index.md` (split)
@@ -20,30 +33,37 @@ Review and enhance SPEC with GPT/Gemini cross-validation.
20
33
 
21
34
  ## Codex Plugin Integration
22
35
 
23
- > **Codex 플러그인 감지**: 워크플로우 시작 아래 명령으로 자동 감지.
36
+ > **Codex plugin detection**: Auto-detected at workflow start with the command below.
24
37
  >
25
38
  > ```bash
26
39
  > CODEX_AVAILABLE=$(node "{{VIBE_PATH}}/hooks/scripts/codex-detect.js" 2>/dev/null || echo "unavailable")
27
40
  > ```
28
41
  >
29
- > `available`이면 `/codex:adversarial-review` 자동 호출. `unavailable`이면 기존 GPT+Gemini 워크플로우로 동작.
42
+ > If `available`, `/codex:adversarial-review` is automatically invoked. If `unavailable`, falls back to the existing GPT+Gemini workflow.
30
43
 
31
44
  ---
32
45
 
33
46
  > **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
34
47
 
48
+ **`.last-feature` pointer update** (immediately after Timer):
49
+
50
+ ```
51
+ Write ".claude/vibe/.last-feature" ← feature-name (one line)
52
+ If the value is already the same, no-op.
53
+ ```
54
+
35
55
  ## Workflow
36
56
 
37
57
  ```
38
- /vibe.spec "feature" → SPEC created
58
+ /vibe.spec "feature" → SPEC created (Phase 3)
39
59
 
40
- /new (new session)
41
-
42
- /vibe.spec.review "feature" → Quality validation + GPT/Gemini review
60
+ Phase 4: vibe.spec.review skill (this) → Quality validation + GPT/Gemini review
43
61
 
44
62
  /vibe.run "feature"
45
63
  ```
46
64
 
65
+ **For large contexts**: After `/new`, re-enter `/vibe.spec "feature"` → Smart Resume will start from Phase 4.
66
+
47
67
  ---
48
68
 
49
69
  ## File Reading Policy (Mandatory)
@@ -103,9 +123,9 @@ Extracted info:
103
123
 
104
124
  ---
105
125
 
106
- ## Step 2: Quality Validation (95-Point Gate)
126
+ ## Step 2: Quality Validation (100-Point Gate)
107
127
 
108
- **🚨 MANDATORY: Score must be 95 to proceed**
128
+ **🚨 MANDATORY: Score must reach 100 to proceed. Loop until perfect or stuck.**
109
129
 
110
130
  ### 2.1 Quality Checklist
111
131
 
@@ -121,23 +141,56 @@ Extracted info:
121
141
  | **Security** | Auth/permission requirements specified | 10% |
122
142
  | **Performance** | Response time/load requirements specified | 10% |
123
143
 
124
- ### 2.2 Quality Gate Loop
144
+ ### 2.2 Quality Gate Loop (No Round Cap)
125
145
 
126
146
  ```python
127
- max_iterations = 3
128
147
  iteration = 0
148
+ prev_score = -1
129
149
 
130
- while iteration < max_iterations:
150
+ while True:
131
151
  iteration += 1
132
152
  score = calculate_quality_score(spec, feature)
133
153
 
134
- print(f"━━━ Quality Check [{iteration}/{max_iterations}] ━━━")
154
+ print(f"━━━ Quality Check [{iteration}] ━━━")
135
155
  print(f"Score: {score}/100")
136
156
 
137
- if score >= 95:
138
- print("✅ Quality Gate PASSED")
157
+ if score >= 100:
158
+ print("✅ Quality Gate PASSED (100/100)")
139
159
  break
140
160
 
161
+ # Auto-fixer hit a wall → ask the user (prevents runaway AND respects 100 target)
162
+ if score == prev_score:
163
+ missing_items = identify_missing_items(spec)
164
+ print(f"⚠️ Auto-fixer limit reached: stuck at {score}/100")
165
+ print(f"Remaining items require human input:")
166
+ for item in missing_items:
167
+ print(f" ❌ {item}")
168
+
169
+ if ultrawork_mode:
170
+ # ultrawork: no user intervention, record TODO and proceed
171
+ print("ℹ️ ultrawork mode — recording gaps to TODO and proceeding")
172
+ record_todo(missing_items)
173
+ break
174
+
175
+ # Interactive: ask the user to fill in or explicitly approve
176
+ user_input = ask_user(
177
+ "Please either:\n"
178
+ " 1. Provide values for the remaining items (I'll apply them)\n"
179
+ " 2. Type 'proceed' to accept current score and continue\n"
180
+ " 3. Type 'abort' to stop the workflow"
181
+ )
182
+
183
+ if user_input == "abort":
184
+ raise WorkflowAborted("User aborted at Quality Gate")
185
+ if user_input == "proceed":
186
+ record_todo(missing_items)
187
+ break
188
+ # otherwise: apply user-provided values → re-evaluate
189
+ apply_user_values(user_input)
190
+ continue
191
+
192
+ prev_score = score
193
+
141
194
  # Auto-fix missing items
142
195
  missing_items = identify_missing_items(spec)
143
196
  for item in missing_items:
@@ -146,18 +199,23 @@ while iteration < max_iterations:
146
199
  update_feature()
147
200
 
148
201
  print(f"✅ Applied {len(missing_items)} fixes - Re-evaluating...")
149
-
150
- if score < 95:
151
- print(f"⚠️ Score {score} < 95 after {max_iterations} iterations")
152
- print("Remaining gaps added to TODO. Proceeding with current quality.")
153
202
  ```
154
203
 
204
+ **Termination conditions:**
205
+ - `score == 100` → pass (primary success)
206
+ - `score == prev_score` (auto-fixer stuck) → **ask the user**:
207
+ - User provides values → re-evaluate (loop continues, may reach 100)
208
+ - User says "proceed" → record gaps as TODO and continue to Step 3
209
+ - User says "abort" → stop entire workflow
210
+ - `ultrawork` mode → skip prompt, auto-record TODO and continue
211
+ - No iteration cap — the only way to exit without 100 is explicit user approval or ultrawork.
212
+
155
213
  **Output format:**
156
214
  ```
157
215
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
158
- 📊 QUALITY GATE [1/3]
216
+ 📊 QUALITY GATE [1]
159
217
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
160
- Score: 87/100 ⚠️ BELOW THRESHOLD (95)
218
+ Score: 87/100 ⚠️ BELOW 100
161
219
 
162
220
  Missing items:
163
221
  ❌ Error handling scenarios (10%)
@@ -171,14 +229,50 @@ Re-evaluating...
171
229
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
172
230
 
173
231
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
174
- 📊 QUALITY GATE [2/3]
232
+ 📊 QUALITY GATE [2]
175
233
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
176
- Score: 96/100 PASSED
234
+ Score: 96/100 ⚠️ BELOW 100
235
+
236
+ Missing items:
237
+ ❌ Concurrent session policy (4%)
238
+
239
+ Auto-fixing...
240
+ ✅ Added concurrent session policy
241
+
242
+ Re-evaluating...
243
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
244
+
245
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
246
+ 📊 QUALITY GATE [3]
247
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
248
+ Score: 100/100 ✅ PASSED
177
249
 
178
250
  ✅ Quality Gate PASSED - proceeding to GPT/Gemini review
179
251
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
180
252
  ```
181
253
 
254
+ **Stuck case (auto-fixer limit reached):**
255
+ ```
256
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
257
+ 📊 QUALITY GATE [4]
258
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
259
+ Score: 87/100 ⚠️ STUCK (same as previous iteration)
260
+
261
+ Auto-fixer hit a wall. These items need human input:
262
+ ❌ Business rule: monthly subscription renewal grace period (days?)
263
+ ❌ Target latency for search API (<?ms)
264
+ ❌ Data retention policy for audit logs (how many days?)
265
+
266
+ How would you like to proceed?
267
+ 1. Provide the values directly (e.g., "grace period 7 days, search 500ms, audit logs 90 days")
268
+ → Values will be applied and the score re-evaluated (100 may be reachable)
269
+ 2. "proceed" — Accept the current score, record remaining items as TODO, then continue to Step 3
270
+ 3. "abort" — Stop the workflow
271
+
272
+ (In ultrawork mode, this prompt is skipped — TODO is auto-recorded and execution continues)
273
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
274
+ ```
275
+
182
276
  ### 2.3 Auto-Fix Rules
183
277
 
184
278
  | Missing Item | Auto-Fix Method |
@@ -192,25 +286,93 @@ Score: 96/100 ✅ PASSED
192
286
 
193
287
  ---
194
288
 
195
- ## Step 3: Race Review (GPT + Gemini Cross-Validation) - Max 3 Rounds (v2.6.9)
289
+ ## Step 3: Race Review (GPT + Gemini Cross-Validation) - Convergence-Based (No Round Cap)
196
290
 
197
291
  **RULES FOR RACE REVIEW:**
198
292
 
199
293
  1. **YOU MUST** use the Bash tool to call `llm-orchestrate.js` directly
200
294
  2. **DO NOT** simulate or fake review results
201
295
  3. Run rounds sequentially (each round uses updated SPEC)
296
+ 4. **No hard round cap** — loop until P1=0 AND no new findings (convergence)
297
+
298
+ > Race Mode reviews SPEC with GPT and Gemini in parallel, then cross-validates findings for higher confidence. The loop continues until quality converges naturally.
299
+
300
+ ### Termination Rules
301
+
302
+ - **P1 = 0 AND no new findings this round** → converged, stop (primary success)
303
+ - **Round 1 with P1 = 0 AND no P2/P3** → perfect on first try, stop (early success)
304
+ - **Round N findings == Round N-1 findings** → **stuck**: LLMs keep flagging same issues that auto-applier can't resolve → **ask the user** (see 3.2.1)
305
+
306
+ ### Stuck Handling (3.2.1)
307
+
308
+ When the same findings repeat across rounds, the auto-apply loop has hit a wall. This typically means:
309
+ - The fix requires human judgment (architectural trade-off, domain rule, etc.)
310
+ - The LLMs are producing a false positive that the auto-applier can't dismiss
311
+ - The suggested fix conflicts with an existing constraint
312
+
313
+ **Interactive mode** — prompt the user:
314
+
315
+ ```
316
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
317
+ ⚠️ RACE REVIEW STUCK at Round {N}
318
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
319
+
320
+ Same findings repeated from Round {N-1}. Auto-applier cannot resolve:
321
+
322
+ | # | Issue | Severity | GPT | Gemini | Reason it's stuck |
323
+ |---|-------|----------|-----|--------|-------------------|
324
+ | 1 | {issue title} | P1 | ✅ | ✅ | {e.g., "fix requires domain decision"} |
325
+ | 2 | {issue title} | P2 | ✅ | ❌ | {e.g., "conflicts with existing constraint"} |
326
+
327
+ How would you like to proceed?
328
+ 1. Provide a resolution directly (e.g., "issue 1: retry 5 times, issue 2: ignore")
329
+ → Changes will be applied and the next round re-run
330
+ 2. "proceed" — Record current issues as TODO and continue to Step 4
331
+ 3. "abort" — Stop the workflow
332
+
333
+ (In ultrawork mode, this prompt is skipped — TODO is auto-recorded and execution continues)
334
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
335
+ ```
336
+
337
+ **Pseudocode:**
338
+
339
+ ```python
340
+ if current_findings == prev_findings:
341
+ if ultrawork_mode:
342
+ print("ℹ️ ultrawork mode — recording stuck issues to TODO and proceeding")
343
+ record_todo(current_findings)
344
+ break
345
+
346
+ user_input = ask_user(
347
+ "Race Review stuck. Please either:\n"
348
+ " 1. Provide resolution for the listed issues\n"
349
+ " 2. Type 'proceed' to record as TODO and continue to Step 4\n"
350
+ " 3. Type 'abort' to stop the workflow"
351
+ )
352
+
353
+ if user_input == "abort":
354
+ raise WorkflowAborted("User aborted at Race Review")
355
+ if user_input == "proceed":
356
+ record_todo(current_findings)
357
+ break
358
+ # otherwise: apply user-provided resolutions → next round
359
+ apply_user_resolutions(user_input)
360
+ continue # re-run the round with updated SPEC
361
+ ```
202
362
 
203
- > Race Mode reviews SPEC with GPT and Gemini in parallel, then cross-validates findings for higher confidence.
363
+ ### Narrowing Scope (Noise Reduction)
204
364
 
205
- ### Convergence Rule (Early Exit)
365
+ To prevent LLM cosmetic noise from causing infinite loops while still reaching 100% quality:
206
366
 
207
- - **Round N findings == Round N-1 findings** → converged, stop immediately (no need to reach Round 3)
208
- - **Round 1 with P1 = 0** → skip Round 2 and stop
209
- - **Max 3 rounds** if new P1s still appear after 3 rounds, record as TODO and stop
367
+ | Round | Scope |
368
+ |-------|-------|
369
+ | 1 | Full scope (P1 + P2 + P3) |
370
+ | 2 | P1 + P2 only |
371
+ | 3+ | P1 only (until P1=0 or convergence) |
210
372
 
211
- ### 3.1 Review Loop (Max 3 Rounds)
373
+ ### 3.1 Review Loop (No Round Cap)
212
374
 
213
- **For EACH round (1, 2, 3), run GPT + Gemini in PARALLEL via Bash tool. Stop early if converged.**
375
+ **Run GPT + Gemini in PARALLEL via Bash tool for each round. Stop when termination rules trigger.**
214
376
 
215
377
  **🚨 IMPORTANT: SPEC content is too large for CLI arguments. Use --input file method (no pipe needed).**
216
378
 
@@ -219,9 +381,10 @@ Score: 96/100 ✅ PASSED
219
381
  **Step A: Save SPEC content + prompt as JSON to scratchpad temp file (using Write tool):**
220
382
  - Write JSON to `[SCRATCHPAD]/spec-review-input.json` with content:
221
383
  ```json
222
- {"prompt": "Review this SPEC for completeness, specificity, testability, security, and performance. Round [N]/3. Find issues and improvements. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. SPEC content: [SPEC_CONTENT]"}
384
+ {"prompt": "Review this SPEC for completeness, specificity, testability, security, and performance. Round [N] (scope: [SCOPE]). Find issues and improvements. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. SPEC content: [SPEC_CONTENT]"}
223
385
  ```
224
386
  - Where `[SPEC_CONTENT]` is the full SPEC text (properly JSON-escaped inside the prompt string)
387
+ - `[SCOPE]` is `P1+P2+P3` for round 1, `P1+P2` for round 2, `P1` for rounds 3+
225
388
 
226
389
  **Step B: Script path:**
227
390
  - `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
@@ -239,13 +402,13 @@ node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/spec-review-in
239
402
  ```
240
403
 
241
404
  **🚨 MANDATORY: Replace `[SCRATCHPAD]` with the actual scratchpad directory path.**
242
- **🚨 Replace `[N]` with the current round number (1, 2, or 3).**
405
+ **🚨 Replace `[N]` with the current round number (1, 2, 3, ...).**
243
406
  **🚨 Replace `[LLM_SCRIPT]` with the resolved absolute path from Step B.**
244
407
  **🚨 Run GPT and Gemini calls in PARALLEL (two separate Bash tool calls at once).**
245
408
 
246
- - Round 1: Write SPEC → Run GPT + Gemini in parallel → Cross-validate → Apply fixes → Update SPEC file
247
- - Round 2: Write updated SPEC → Run → Cross-validate → Apply fixes → Update SPEC file
248
- - Round 3: Write final SPEC → Run → Cross-validate → Confirm no issues remain
409
+ - Round 1: Write SPEC → Run GPT + Gemini in parallel (full scope) → Cross-validate → Apply fixes → Update SPEC file
410
+ - Round 2: Write updated SPEC → Run (P1+P2 scope) → Cross-validate → Apply fixes → Update SPEC file
411
+ - Round 3+: Write updated SPEC → Run (P1-only scope) → Cross-validate → Apply fixes → Continue until P1=0 AND no new findings (or convergence detected)
249
412
 
250
413
  ### 3.2 Cross-Validation Rules
251
414
 
@@ -261,46 +424,46 @@ node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/spec-review-in
261
424
  3. Auto-apply P1/P2 improvements to SPEC and Feature files (use Edit tool)
262
425
  4. Continue to next round with updated SPEC content
263
426
 
264
- ### 3.3 User Decision Checkpoint (Round 3 이후)
427
+ ### 3.3 User Decision Checkpoint (After Convergence)
265
428
 
266
- **🚨 MANDATORY: 3라운드 완료 사용자 판단 체크포인트 실행**
429
+ **🚨 MANDATORY: Run user judgment checkpoint when the review loop reaches convergence**
267
430
 
268
- > Type 6 (Iterative-Reasoning) 패턴: AI 혼자 결정하지 않고, 사용자와 함께 판단
431
+ > Type 6 (Iterative-Reasoning) pattern: AI does not decide alone judges together with the user
269
432
 
270
433
  ```
271
434
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
272
- 🔍 USER CHECKPOINT: 리뷰 결과 검토
435
+ 🔍 USER CHECKPOINT: Review Results
273
436
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
274
437
 
275
- 3라운드 리뷰에서 발견된 주요 변경사항:
438
+ Key changes found across {N} review rounds:
276
439
 
277
- | # | 변경 내용 | 출처 | 신뢰도 |
278
- |---|----------|------|--------|
279
- | 1 | {변경1} | GPT+Gemini | 100% |
280
- | 2 | {변경2} | GPT only | 50% |
440
+ | # | Change | Source | Confidence |
441
+ |---|--------|--------|------------|
442
+ | 1 | {change1} | GPT+Gemini | 100% |
443
+ | 2 | {change2} | GPT only | 50% |
281
444
  | ... | ... | ... | ... |
282
445
 
283
- 질문:
284
- 1. 변경사항 제외하고 싶은 항목이 있나요?
285
- 2. 추가로 명시해야 요구사항이 있나요?
286
- 3. 기술적 접근 방식에 동의하시나요?
446
+ Questions:
447
+ 1. Are there any changes above you'd like to exclude?
448
+ 2. Are there any additional requirements that should be specified?
449
+ 3. Do you agree with the technical approach?
287
450
 
288
451
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
289
452
  ```
290
453
 
291
- **Checkpoint 행동 규칙:**
454
+ **Checkpoint action rules:**
292
455
 
293
- | 상황 | 행동 |
294
- |------|------|
295
- | `ultrawork` 모드 | 체크포인트 스킵, 자동 진행 |
296
- | 일반 모드 | 반드시 사용자 응답 대기 |
297
- | 사용자가 변경 요청 | 수정 다시 체크포인트 |
298
- | 사용자가 승인 | Step 4 진행 |
456
+ | Situation | Action |
457
+ |-----------|--------|
458
+ | `ultrawork` mode | Skip checkpoint, auto-proceed |
459
+ | Normal mode | Must wait for user response |
460
+ | User requests changes | Apply changes, then re-run checkpoint |
461
+ | User approves | Proceed to Step 4 |
299
462
 
300
463
  **Output format:**
301
464
  ```
302
465
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
303
- 🏁 SPEC RACE REVIEW - Round 1/3
466
+ 🏁 SPEC RACE REVIEW - Round 1 (scope: P1+P2+P3)
304
467
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
305
468
 
306
469
  Model Results:
@@ -325,7 +488,7 @@ Auto-applying...
325
488
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
326
489
 
327
490
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
328
- 🏁 SPEC RACE REVIEW - Round 2/3
491
+ 🏁 SPEC RACE REVIEW - Round 2 (scope: P1+P2)
329
492
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
330
493
 
331
494
  Cross-Validated Issues:
@@ -340,107 +503,65 @@ Auto-applying...
340
503
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
341
504
 
342
505
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
343
- 🏁 SPEC RACE REVIEW - Round 3/3
506
+ 🏁 SPEC RACE REVIEW - Round 3 (scope: P1)
344
507
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
345
508
 
346
509
  Cross-Validated Issues: None
347
510
 
348
- No changes needed - SPEC is complete
511
+ Converged: P1 = 0 AND no new findings
349
512
  ✅ Consensus Rate: 100%
350
513
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
351
514
  ```
352
515
 
353
- ### Step 3.1: Codex Adversarial Review (Codex 플러그인 활성화 시)
516
+ > If new P1s appear at round 3, the loop continues to round 4, 5, ... until convergence.
517
+
518
+ ### Step 3.1: Codex Adversarial Review (When Codex Plugin Is Active)
354
519
 
355
- > **활성화 조건**: Codex 플러그인 설치 자동 실행. 미설치 시 스킵.
356
- > GPT+Gemini Race Review **동시에** 실행하여 3중 교차 검증.
520
+ > **Activation condition**: Automatically runs when Codex plugin is installed. Skipped if not installed.
521
+ > Runs **simultaneously** with GPT+Gemini Race Review for triple cross-validation.
357
522
 
358
- Codex adversarial review SPEC의 **설계 결정에 도전**합니다:
359
- - 대안적 아키텍처가 나은지 검증
360
- - 오버엔지니어링 또는 과소 설계 여부
361
- - 누락된 엣지케이스 비기능 요구사항
523
+ Codex adversarial review **challenges the design decisions** in the SPEC:
524
+ - Validates whether an alternative architecture would be better
525
+ - Checks for over-engineering or under-engineering
526
+ - Identifies missing edge cases and non-functional requirements
362
527
 
363
- **실행 (GPT+Gemini Race와 병렬):**
528
+ **Execution (parallel with GPT+Gemini Race):**
364
529
 
365
530
  ```
366
531
  /codex:adversarial-review
367
532
  ```
368
533
 
369
- **결과 통합**: Race Review 교차 검증 테이블에 Codex 추가:
534
+ **Result integration**: Add Codex column to the Race Review cross-validation table:
370
535
 
371
536
  ```markdown
372
537
  | Issue | GPT | Gemini | Codex | Confidence |
373
538
  |-------|-----|--------|-------|------------|
374
- | {이슈} | ✅/❌ | ✅/❌ | ✅/❌ | {%} |
539
+ | {issue} | ✅/❌ | ✅/❌ | ✅/❌ | {%} |
375
540
  ```
376
541
 
377
- - 3개 모델 2개 이상 동의 → **High Confidence**
378
- - Codex만 발견한 이슈 → **P2** (설계 관점 검토 필요)
379
- - 3 모두 동의 → **P1** (즉시 수정)
542
+ - 2 or more of 3 models agree → **High Confidence**
543
+ - Issue found only by Codex → **P2** (requires design perspective review)
544
+ - All 3 models agree → **P1** (fix immediately)
380
545
 
381
546
  ---
382
547
 
383
548
  ## Step 3.5: Review Debate Team (Agent Teams)
384
549
 
385
- > **조건**: Agent Teams 활성화 + 3라운드 완료 후 P1/P2 이슈 2개 이상 발견 시
386
- > 여러 관점에서 교차 검증하여 오탐 제거 우선순위 조정
387
-
388
- **팀 구성:**
389
-
390
- | 팀원 | 역할 |
391
- |------|------|
392
- | security-reviewer (리더) | 보안 관점 우선순위 결정, 교차 검증 주도 |
393
- | architecture-reviewer | 구조적 영향 평가, 설계 일관성 확인 |
394
- | performance-reviewer | 성능 영향 평가, 불필요한 최적화 식별 |
395
- | simplicity-reviewer | 과잉 설계 여부, YAGNI 위반 식별 |
396
-
397
- **활성화 조건:**
398
-
399
- | 상황 | 행동 |
400
- |------|------|
401
- | P1/P2 이슈 2개 이상 | 자동 활성화 |
402
- | P1/P2 이슈 1개 이하 | 스킵 → Step 4로 진행 |
403
- | Agent Teams 비활성화 | 스킵 → Step 4로 진행 |
404
-
405
- **spawn 패턴:**
406
-
407
- ```text
408
- TeamCreate(team_name="spec-debate-{feature}", description="SPEC review debate for {feature}")
409
-
410
- Task(team_name="spec-debate-{feature}", name="security-reviewer", subagent_type="security-reviewer",
411
- mode="bypassPermissions",
412
- prompt="SPEC 리뷰 팀 리더. GPT/Gemini가 발견한 P1/P2 이슈를 교차 검증하세요.
413
- SPEC: {spec_content}
414
- 발견된 이슈: {p1_p2_issues}
415
- 역할: 각 이슈가 진짜인지(오탐 아닌지) 검증. 실제 영향도 기준으로 우선순위 조정.
416
- 분쟁이 있는 이슈는 해당 리뷰어에게 SendMessage로 확인 요청하세요.")
417
-
418
- Task(team_name="spec-debate-{feature}", name="architecture-reviewer", subagent_type="architecture-reviewer",
419
- mode="bypassPermissions",
420
- prompt="SPEC 리뷰 팀 아키텍처 전문가. 아키텍처 관련 이슈를 검증하세요.
421
- SPEC: {spec_content}
422
- 역할: 구조적 일관성, SOLID 원칙, 레이어 경계 검증.
423
- 우선순위 변경 필요 시 security-reviewer에게 SendMessage로 알리세요.")
424
-
425
- Task(team_name="spec-debate-{feature}", name="performance-reviewer", subagent_type="performance-reviewer",
426
- mode="bypassPermissions",
427
- prompt="SPEC 리뷰 팀 성능 전문가. 성능 관련 이슈를 검증하세요.
428
- SPEC: {spec_content}
429
- 역할: 성능 요구사항 현실성 평가, 불필요한 최적화 식별.
430
- P2→P1 승격이 필요하면 security-reviewer에게 SendMessage로 알리세요.")
431
-
432
- Task(team_name="spec-debate-{feature}", name="simplicity-reviewer", subagent_type="simplicity-reviewer",
433
- mode="bypassPermissions",
434
- prompt="SPEC 리뷰 팀 단순성 전문가. 과잉 설계 여부를 검증하세요.
435
- SPEC: {spec_content}
436
- 역할: YAGNI 위반, 불필요한 복잡성 식별.
437
- P1→P2 강등이 필요하면 security-reviewer에게 SendMessage로 알리세요.")
438
- ```
439
-
440
- **결과 통합:**
441
- - 팀 합의 결과를 SPEC에 반영 (P1 즉시 적용, P2 노트 추가)
442
- - 팀원 shutdown_request → TeamDelete로 정리
443
- - Step 4 (Final Summary)로 진행
550
+ > **Team definition**: See `agents/teams/review-debate-team.md` (SPEC Review context)
551
+ > **Condition**: Agent Teams enabled + 2 or more P1/P2 issues found after review loop convergence
552
+
553
+ **Activation conditions:**
554
+
555
+ | Situation | Action |
556
+ |-----------|--------|
557
+ | 2 or more P1/P2 issues | Auto-activate |
558
+ | 1 or fewer P1/P2 issues | Skip proceed to Step 4 |
559
+ | Agent Teams disabled | Skip proceed to Step 4 |
560
+
561
+ **Result integration:**
562
+ - Apply team consensus results to SPEC (P1 applied immediately, P2 added as notes)
563
+ - Team member shutdown_request → clean up with TeamDelete
564
+ - Proceed to Step 4 (Final Summary)
444
565
 
445
566
  ---
446
567
 
@@ -451,11 +572,11 @@ Task(team_name="spec-debate-{feature}", name="simplicity-reviewer", subagent_typ
451
572
  ✅ SPEC REVIEW COMPLETE: {feature-name}
452
573
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
453
574
 
454
- Quality Score: 96/100 ✅
455
- Review Rounds: 3/3
456
- Total Improvements: 4
575
+ Quality Score: 100/100 ✅
576
+ Review Rounds: {N} (converged: P1=0, no new findings)
577
+ Total Improvements: {M}
457
578
  ⏱️ Started: {start_time}
458
- ⏱️ Completed: {getCurrentTime 결과}
579
+ ⏱️ Completed: {getCurrentTime result}
459
580
 
460
581
  Updated files:
461
582
  📋 .claude/vibe/specs/{feature-name}.md (or split folder)
@@ -516,30 +637,30 @@ If no issues, proceed with /vibe.run "{feature-name}".
516
637
 
517
638
  ### 5.1 Final User Checkpoint
518
639
 
519
- **🚨 MANDATORY: `/vibe.run` 진행 최종 사용자 확인**
640
+ **🚨 MANDATORY: Final user confirmation before proceeding to `/vibe.run`**
520
641
 
521
642
  ```
522
643
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
523
- ✅ SPEC 리뷰 완료 - 최종 확인
644
+ ✅ SPEC Review Complete - Final Confirmation
524
645
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
525
646
 
526
- 다음 질문에 답변해 주세요:
647
+ Please answer the following questions:
527
648
 
528
- 1. **요구사항 정확성**: SPEC 원래 의도한 기능을 정확히 설명하고 있나요?
529
- 2. **범위 적절성**: 구현 범위가 너무 크거나 작지 않나요?
530
- 3. **기술 스택**: 선택된 기술 스택에 동의하시나요?
531
- 4. **우선순위**: Phase 순서와 우선순위가 맞나요?
649
+ 1. **Requirements accuracy**: Does the SPEC above accurately describe the originally intended feature?
650
+ 2. **Scope appropriateness**: Is the implementation scope neither too large nor too small?
651
+ 3. **Tech stack**: Do you agree with the chosen tech stack?
652
+ 4. **Priority**: Is the Phase order and priority correct?
532
653
 
533
654
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
534
- 💡 "ok" 또는 "진행"으로 승인 / 수정 사항이 있으면 말씀해 주세요
655
+ 💡 Type "ok" or "proceed" to approve / share any changes you'd like made
535
656
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
536
657
  ```
537
658
 
538
659
  **Why This Checkpoint Matters:**
539
660
 
540
- > AI 많이 해준다고 좋은 아닙니다.
541
- > 사용자가 AI와 함께 생각하고 판단할 최고의 결과가 나옵니다.
542
- > 체크포인트는 Type 6 (Iterative-Reasoning) 패턴을 유도합니다.
661
+ > More AI doing more is not always better.
662
+ > The best results come when the user thinks and judges together with AI.
663
+ > This checkpoint induces the Type 6 (Iterative-Reasoning) pattern.
543
664
 
544
665
  ---
545
666
 
@@ -586,11 +707,7 @@ Continuing with {other model} results only...
586
707
 
587
708
  ## Quick Mode
588
709
 
589
- For faster iteration (1 round only):
590
-
591
- ```bash
592
- /vibe.spec.review "feature-name" --quick
593
- ```
710
+ For faster iteration (1 round only): pass `--quick` flag when invoking the skill (or via `/vibe.spec "feature-name" --quick` orchestrator).
594
711
 
595
712
  ---
596
713