@su-record/vibe 2.9.35 → 2.9.37
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.
- package/CLAUDE.md +1 -1
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/agents/compounder.md +6 -6
- package/agents/diagrammer.md +2 -2
- package/agents/e2e-tester.md +5 -5
- package/agents/qa/acceptance-tester.md +2 -2
- package/agents/refactor-cleaner.md +2 -2
- package/agents/tester.md +1 -1
- package/agents/ui/ui-antipattern-detector.md +1 -1
- package/agents/ui/ui-design-system-gen.md +3 -3
- package/agents/ui/ui-industry-analyzer.md +1 -1
- package/agents/ui/ui-layout-architect.md +1 -1
- package/agents/ui/ui-stack-implementer.md +1 -1
- package/commands/vibe.analyze.md +1 -1
- package/commands/vibe.contract.md +2 -2
- package/commands/vibe.figma.md +3 -3
- package/commands/vibe.harness.md +3 -3
- package/commands/vibe.regress.md +2 -2
- package/commands/vibe.review.md +4 -4
- package/commands/vibe.run.md +27 -27
- package/commands/vibe.scaffold.md +1 -1
- package/commands/vibe.spec.md +38 -38
- package/commands/vibe.trace.md +14 -14
- package/commands/vibe.utils.md +3 -3
- package/commands/vibe.verify.md +18 -18
- package/dist/infra/lib/figma/extract.d.ts.map +1 -1
- package/dist/infra/lib/figma/extract.js +55 -0
- package/dist/infra/lib/figma/extract.js.map +1 -1
- package/dist/infra/lib/figma/types.d.ts +8 -0
- package/dist/infra/lib/figma/types.d.ts.map +1 -1
- package/hooks/scripts/__tests__/figma-extract.test.js +338 -0
- package/hooks/scripts/figma-extract.js +144 -31
- package/hooks/scripts/prompt-dispatcher.js +15 -0
- package/hooks/scripts/utils.js +4 -0
- package/package.json +1 -1
- package/skills/arch-guard/SKILL.md +2 -2
- package/skills/arch-guard/agents/rule-generator.md +3 -3
- package/skills/arch-guard/scripts/check-boundaries.js +1 -1
- package/skills/arch-guard/templates/arch-rules.json +1 -1
- package/skills/capability-loop/SKILL.md +2 -2
- package/skills/capability-loop/templates/capability-spec.md +1 -1
- package/skills/claude-md-guide/SKILL.md +2 -2
- package/skills/design-audit/SKILL.md +3 -3
- package/skills/design-critique/SKILL.md +2 -2
- package/skills/design-distill/SKILL.md +1 -1
- package/skills/design-normalize/SKILL.md +4 -4
- package/skills/design-polish/SKILL.md +2 -2
- package/skills/design-teach/SKILL.md +6 -6
- package/skills/design-teach/templates/design-context.json +1 -1
- package/skills/devlog/SKILL.md +1 -1
- package/skills/event-planning/SKILL.md +1 -1
- package/skills/exec-plan/SKILL.md +5 -5
- package/skills/exec-plan/agents/decomposer.md +1 -1
- package/skills/exec-plan/templates/plan.md +2 -2
- package/skills/parallel-research/SKILL.md +3 -3
- package/skills/parallel-research/orchestrator.md +1 -1
- package/skills/parallel-research/templates/paper.md +1 -1
- package/skills/priority-todos/SKILL.md +1 -1
- package/skills/vibe-contract/SKILL.md +6 -6
- package/skills/vibe-interview/SKILL.md +6 -6
- package/skills/vibe-interview/checklists/feature.md +1 -1
- package/skills/vibe-plan/SKILL.md +10 -10
- package/skills/vibe-regress/SKILL.md +5 -5
- package/skills/vibe-regress/templates/bug.md +1 -1
- package/skills/vibe-regress/templates/test-jest.md +1 -1
- package/skills/vibe-regress/templates/test-vitest.md +1 -1
- package/skills/vibe-spec/SKILL.md +45 -45
- package/skills/vibe-spec-review/SKILL.md +21 -21
- package/skills/vibe-test/SKILL.md +1 -1
- package/vibe/constitution.md +2 -2
- package/vibe/templates/claudemd-template.md +4 -4
- package/vibe/templates/constitution-template.md +2 -2
- package/vibe/templates/feature-template.md +1 -1
package/CLAUDE.md
CHANGED
|
@@ -69,7 +69,7 @@ Legacy: 기존 `.claude/vibe/`·`.coco/vibe/` 는 런타임에 자동 인식되
|
|
|
69
69
|
|
|
70
70
|
## Workflow
|
|
71
71
|
|
|
72
|
-
`/vibe.spec` is the single entry point — orchestrates interview → plan → spec → review → `/vibe.run` → `/vibe.verify` → `/vibe.contract` → `/vibe.trace`. For UI types (website/webapp/mobile), `/vibe.figma` branches in parallel. Smart Resume detects existing `.
|
|
72
|
+
`/vibe.spec` is the single entry point — orchestrates interview → plan → spec → review → `/vibe.run` → `/vibe.verify` → `/vibe.contract` → `/vibe.trace`. For UI types (website/webapp/mobile), `/vibe.figma` branches in parallel. Smart Resume detects existing `.vibe/{interviews,plans,specs}/*.md` to skip phases.
|
|
73
73
|
|
|
74
74
|
**Quality-loop commands** (bug → prevention):
|
|
75
75
|
- `/vibe.regress` — Regression test auto-evolution. Auto-registers on `/vibe.verify` failure; `generate` produces preventive tests; `cluster` promotes recurring patterns.
|
package/README.en.md
CHANGED
|
@@ -27,7 +27,7 @@ One entry point. Everything else is automatic.
|
|
|
27
27
|
Interview ─── "Who's the audience?" "What sections?" "Dark mode?" ───
|
|
28
28
|
| (loops until you say stop)
|
|
29
29
|
v
|
|
30
|
-
Plan ─── Structured planning document (.
|
|
30
|
+
Plan ─── Structured planning document (.vibe/plans/)
|
|
31
31
|
|
|
|
32
32
|
v
|
|
33
33
|
SPEC ─── PTCF spec + BDD features, GPT+Gemini parallel research
|
package/README.md
CHANGED
package/agents/compounder.md
CHANGED
|
@@ -75,7 +75,7 @@ Parallel agents analyze the solution:
|
|
|
75
75
|
### Phase 2: Category Classification
|
|
76
76
|
|
|
77
77
|
```
|
|
78
|
-
.
|
|
78
|
+
.vibe/solutions/
|
|
79
79
|
├── security/ # Security related
|
|
80
80
|
│ ├── sql-injection-prevention.md
|
|
81
81
|
│ └── xss-sanitization.md
|
|
@@ -161,7 +161,7 @@ cache_key = f"user:{user_id}:v{updated_at.timestamp()}"
|
|
|
161
161
|
|
|
162
162
|
### Phase 4: Index Update
|
|
163
163
|
|
|
164
|
-
Auto-update `.
|
|
164
|
+
Auto-update `.vibe/solutions/index.md`:
|
|
165
165
|
|
|
166
166
|
```markdown
|
|
167
167
|
# Solution Index
|
|
@@ -196,7 +196,7 @@ When similar problem detected:
|
|
|
196
196
|
│ You're working on: "Cache not updating" │
|
|
197
197
|
│ │
|
|
198
198
|
│ Related solution (85% match): │
|
|
199
|
-
│ 📄 .
|
|
199
|
+
│ 📄 .vibe/solutions/performance/redis-cache-invalidation.md │
|
|
200
200
|
│ │
|
|
201
201
|
│ Key insight: Add version suffix to cache key │
|
|
202
202
|
│ │
|
|
@@ -212,7 +212,7 @@ When similar problem detected:
|
|
|
212
212
|
│ 📚 SOLUTION DOCUMENTED │
|
|
213
213
|
├─────────────────────────────────────────────────────────────────┤
|
|
214
214
|
│ │
|
|
215
|
-
│ ✅ Created: .
|
|
215
|
+
│ ✅ Created: .vibe/solutions/performance/redis-cache-invalid... │
|
|
216
216
|
│ │
|
|
217
217
|
│ 📊 Knowledge Base Stats: │
|
|
218
218
|
│ ├── Total Solutions: 42 │
|
|
@@ -239,7 +239,7 @@ Auto-invoke `core_save_memory`:
|
|
|
239
239
|
"category": "performance",
|
|
240
240
|
"title": "Redis cache invalidation",
|
|
241
241
|
"keywords": ["redis", "cache", "invalidation"],
|
|
242
|
-
"file": ".
|
|
242
|
+
"file": ".vibe/solutions/performance/redis-cache-invalidation.md"
|
|
243
243
|
}
|
|
244
244
|
```
|
|
245
245
|
|
|
@@ -249,7 +249,7 @@ Auto-invoke `core_save_memory`:
|
|
|
249
249
|
/vibe.spec → /vibe.run → /vibe.verify → /vibe.compound
|
|
250
250
|
│
|
|
251
251
|
▼
|
|
252
|
-
.
|
|
252
|
+
.vibe/solutions/
|
|
253
253
|
│
|
|
254
254
|
▼
|
|
255
255
|
Future problem?
|
package/agents/diagrammer.md
CHANGED
|
@@ -159,7 +159,7 @@ erDiagram
|
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
**Diagram save location:**
|
|
162
|
-
.
|
|
162
|
+
.vibe/diagrams/erd-2025-11-17.md
|
|
163
163
|
|
|
164
164
|
**Rendering options:**
|
|
165
165
|
1. Push to GitHub (auto-renders)
|
|
@@ -171,7 +171,7 @@ erDiagram
|
|
|
171
171
|
|
|
172
172
|
- Mermaid is supported in GitHub, GitLab, VSCode, etc.
|
|
173
173
|
- Complex diagrams may need manual adjustments
|
|
174
|
-
- Generated diagrams are saved in `.
|
|
174
|
+
- Generated diagrams are saved in `.vibe/diagrams/` folder
|
|
175
175
|
|
|
176
176
|
---
|
|
177
177
|
|
package/agents/e2e-tester.md
CHANGED
|
@@ -81,8 +81,8 @@ AI에게 필요한 건 후자다.
|
|
|
81
81
|
|
|
82
82
|
```
|
|
83
83
|
Scenario Detection
|
|
84
|
-
├── .
|
|
85
|
-
├── .
|
|
84
|
+
├── .vibe/features/{feature}.feature → Extract BDD scenarios
|
|
85
|
+
├── .vibe/specs/{feature}.md → Check acceptance criteria
|
|
86
86
|
└── Analyze existing e2e/*.spec.ts
|
|
87
87
|
```
|
|
88
88
|
|
|
@@ -189,8 +189,8 @@ E2E scenario FAILED
|
|
|
189
189
|
```
|
|
190
190
|
Comparing screenshots:
|
|
191
191
|
├── login-page.png
|
|
192
|
-
│ ├── Baseline: .
|
|
193
|
-
│ ├── Current: .
|
|
192
|
+
│ ├── Baseline: .vibe/e2e/baseline/login-page.png
|
|
193
|
+
│ ├── Current: .vibe/e2e/current/login-page.png
|
|
194
194
|
│ └── Diff: 0.02% (threshold: 1%) → PASS
|
|
195
195
|
├── dashboard.png
|
|
196
196
|
│ └── Diff: 5.3% (threshold: 1%) → FAIL → auto-fix loop
|
|
@@ -240,7 +240,7 @@ Token Usage: ~2,400 chars (vs ~96,000 with DOM-based approach)
|
|
|
240
240
|
|
|
241
241
|
## Configuration
|
|
242
242
|
|
|
243
|
-
`.
|
|
243
|
+
`.vibe/e2e/config.json`:
|
|
244
244
|
|
|
245
245
|
```json
|
|
246
246
|
{
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
This agent analyzes **SPEC and Feature documents**, NOT source code.
|
|
28
28
|
|
|
29
29
|
Input files:
|
|
30
|
-
- `.
|
|
31
|
-
- `.
|
|
30
|
+
- `.vibe/specs/{feature-name}.md` - SPEC with `<acceptance>` section
|
|
31
|
+
- `.vibe/features/{feature-name}.feature` - Feature with Gherkin scenarios
|
|
32
32
|
|
|
33
33
|
## Checklist
|
|
34
34
|
|
|
@@ -64,7 +64,7 @@ Task(model: "sonnet", prompt: "Find and remove dead code, maintain DELETION_LOG"
|
|
|
64
64
|
|
|
65
65
|
## DELETION_LOG Format
|
|
66
66
|
|
|
67
|
-
Create/update `.
|
|
67
|
+
Create/update `.vibe/DELETION_LOG.md`:
|
|
68
68
|
|
|
69
69
|
```markdown
|
|
70
70
|
# Deletion Log
|
|
@@ -112,7 +112,7 @@ Create/update `.claude/vibe/DELETION_LOG.md`:
|
|
|
112
112
|
|
|
113
113
|
### DELETION_LOG Updated
|
|
114
114
|
- Added 18 entries
|
|
115
|
-
- Location: .
|
|
115
|
+
- Location: .vibe/DELETION_LOG.md
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
## Anti-Patterns
|
package/agents/tester.md
CHANGED
|
@@ -22,7 +22,7 @@ Task(model: "haiku", prompt: "Write tests for the implemented code")
|
|
|
22
22
|
|
|
23
23
|
## Process
|
|
24
24
|
|
|
25
|
-
1. Check `.
|
|
25
|
+
1. Check `.vibe/features/{feature-name}.feature`
|
|
26
26
|
2. Analyze implemented code
|
|
27
27
|
3. Write test cases
|
|
28
28
|
4. Run tests
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
1. Receive list of changed UI files from git diff
|
|
26
26
|
2. Read each changed file
|
|
27
|
-
3. Load MASTER.md from `.
|
|
27
|
+
3. Load MASTER.md from `.vibe/design-system/{project}/MASTER.md` if exists
|
|
28
28
|
4. Use `core_ui_search` for anti-pattern detection rules
|
|
29
29
|
5. Compare implementation against design system tokens
|
|
30
30
|
6. Return findings with anti-pattern name and suggested fix
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
## Process
|
|
26
26
|
|
|
27
|
-
1. Read `.
|
|
27
|
+
1. Read `.vibe/design-system/{project}/analysis-result.json` from ①
|
|
28
28
|
2. Use `core_ui_search` to retrieve detailed style, color, typography data
|
|
29
29
|
3. Use `core_ui_generate_design_system` with product description and project name
|
|
30
30
|
4. Use `core_ui_persist_design_system` to write MASTER.md
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
|
|
33
33
|
## Output
|
|
34
34
|
|
|
35
|
-
- **Primary**: `.
|
|
36
|
-
- **Optional**: `.
|
|
35
|
+
- **Primary**: `.vibe/design-system/{project}/MASTER.md`
|
|
36
|
+
- **Optional**: `.vibe/design-system/{project}/pages/{page}.md`
|
|
37
37
|
|
|
38
38
|
## MASTER.md Structure
|
|
39
39
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
3. Use `core_ui_search` with domain `style` to determine style priority
|
|
28
28
|
4. Use `core_ui_search` with domain `color` to determine color mood
|
|
29
29
|
5. Use `core_ui_search` with domain `typography` to determine typography mood
|
|
30
|
-
6. Save result to `.
|
|
30
|
+
6. Save result to `.vibe/design-system/{project}/analysis-result.json`
|
|
31
31
|
|
|
32
32
|
## Output Format
|
|
33
33
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
## Process
|
|
24
24
|
|
|
25
|
-
1. Read `.
|
|
25
|
+
1. Read `.vibe/design-system/{project}/analysis-result.json` from ①
|
|
26
26
|
2. Use `core_ui_search` with domain `landing` for page patterns
|
|
27
27
|
3. Use `core_ui_search` with domain `product` for product-specific layouts
|
|
28
28
|
4. Design section structure with component hierarchy
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
## Process
|
|
25
25
|
|
|
26
26
|
1. Detect project tech stack from package.json or project files
|
|
27
|
-
2. Load MASTER.md from `.
|
|
27
|
+
2. Load MASTER.md from `.vibe/design-system/{project}/MASTER.md` if exists
|
|
28
28
|
3. Use `core_ui_stack_search` with detected stack for framework patterns
|
|
29
29
|
4. Use `core_ui_search` with domain `react` for performance patterns (if React/Next.js)
|
|
30
30
|
5. Generate implementation guidelines mapping design system to framework
|
package/commands/vibe.analyze.md
CHANGED
|
@@ -12,7 +12,7 @@ argument-hint: "extract | check | diff [feature-name]"
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
/vibe.contract extract <feature> # SPEC → contract record at .
|
|
15
|
+
/vibe.contract extract <feature> # SPEC → contract record at .vibe/contracts/<feature>.md
|
|
16
16
|
/vibe.contract check <feature> # contract vs implementation, drift report
|
|
17
17
|
/vibe.contract diff <feature> # changed fields since last check
|
|
18
18
|
```
|
|
@@ -53,7 +53,7 @@ Load skill `vibe-contract` with subcommand: `$ARGUMENTS`
|
|
|
53
53
|
## Storage Format
|
|
54
54
|
|
|
55
55
|
```
|
|
56
|
-
.
|
|
56
|
+
.vibe/contracts/
|
|
57
57
|
<feature>.md # extracted contract (SSOT)
|
|
58
58
|
<feature>.snapshot.md # implementation snapshot at last check (for diff)
|
|
59
59
|
```
|
package/commands/vibe.figma.md
CHANGED
|
@@ -64,7 +64,7 @@ Step 3) Create 모드 결정
|
|
|
64
64
|
Step 4) 모순 검증 (즉시 reject — 진행 금지)
|
|
65
65
|
isBranch3 AND hasNew → ❌ "--create-* 와 --new는 함께 사용할 수 없습니다."
|
|
66
66
|
isBranch3 AND mdArg == null → ❌ "--create-* 는 plan.md 경로가 필요합니다.
|
|
67
|
-
예: /vibe.figma .
|
|
67
|
+
예: /vibe.figma .vibe/plans/foo.md --create"
|
|
68
68
|
isBranch3 AND urlArgs.length > 0 → ❌ "--create-* 모드에서는 figma URL을 위치 인자로 받지 않습니다.
|
|
69
69
|
target 파일은 Step B에서 질문합니다."
|
|
70
70
|
NOT isBranch3 AND mdArg != null → ⚠ "plan.md를 받았지만 --create-* 플래그가 없습니다.
|
|
@@ -130,7 +130,7 @@ AskUserQuestion 사용 시 절대 선택지(options) 제공 금지. 자유 텍
|
|
|
130
130
|
⛔ design-teach 스킬을 자동으로 로드하지 말 것 (인터랙티브라 흐름이 끊김)
|
|
131
131
|
|
|
132
132
|
알고리즘:
|
|
133
|
-
- Read .
|
|
133
|
+
- Read .vibe/design-context.json
|
|
134
134
|
- 존재 → 메모리에 binding 후 계속
|
|
135
135
|
- 없음 → 다음 한 줄만 출력하고 계속:
|
|
136
136
|
"💡 design-context.json 없음 — 기본값으로 진행합니다.
|
|
@@ -351,7 +351,7 @@ Load skill `design-audit`
|
|
|
351
351
|
✅ 피처명 결정: mdArg 파일명에서 .md 제거한 값을 {feature}로 사용
|
|
352
352
|
|
|
353
353
|
2. Design context 로드 (non-interactive 기본)
|
|
354
|
-
- Read .
|
|
354
|
+
- Read .vibe/design-context.json
|
|
355
355
|
· 존재 → 톤/팔레트 보강용으로 binding
|
|
356
356
|
· 없음 → plan.md의 "## 7. Look & Feel" 값으로 임시 컨텍스트 구성
|
|
357
357
|
- hasTeach == true 인 경우에만 Load skill `design-teach`로 인터랙티브 보강
|
package/commands/vibe.harness.md
CHANGED
|
@@ -35,10 +35,10 @@ Agent(subagent_type="explorer-low", model="haiku",
|
|
|
35
35
|
prompt="Check project scaffolding: 1) Does docs/ exist with business documents? 2) Does .dev/ exist for AI logs? 3) Is src/ organized by role (not flat)? 4) Is tests/ separate from src/? 5) List top-level directory structure.")
|
|
36
36
|
|
|
37
37
|
Agent(subagent_type="explorer-low", model="haiku",
|
|
38
|
-
prompt="Check project context and boundaries: 1) Does CLAUDE.md exist? How many lines? 2) Does .claude/rules/ or .
|
|
38
|
+
prompt="Check project context and boundaries: 1) Does CLAUDE.md exist? How many lines? 2) Does .claude/rules/ or .vibe/ exist? How many rule files? 3) Does .claude/settings.local.json exist with hooks? 4) Does .vibe/config.json exist? 5) Are there any .claude/skills/ directories?")
|
|
39
39
|
|
|
40
40
|
Agent(subagent_type="explorer-low", model="haiku",
|
|
41
|
-
prompt="Check project planning, execution, and verification: 1) Are there SPEC files in .
|
|
41
|
+
prompt="Check project planning, execution, and verification: 1) Are there SPEC files in .vibe/specs/? 2) Are there Feature (BDD) files in .vibe/features/? 3) Are there test files? How many? 4) Is there CI config (.github/workflows, etc.)? 5) Are there .dev/learnings/ files?")
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
### 2. Score Each Axis
|
|
@@ -147,7 +147,7 @@ Proceed with auto-fix? (y/n)
|
|
|
147
147
|
|
|
148
148
|
### 4. Save Report
|
|
149
149
|
|
|
150
|
-
Save results to `.
|
|
150
|
+
Save results to `.vibe/reports/harness-{date}.md` for historical tracking.
|
|
151
151
|
|
|
152
152
|
### 5. Self-Repair Chain
|
|
153
153
|
|
package/commands/vibe.regress.md
CHANGED
|
@@ -33,14 +33,14 @@ The `vibe-regress` skill performs registration, generation, and clustering.
|
|
|
33
33
|
**Core steps** (see `skills/vibe-regress/SKILL.md` for details):
|
|
34
34
|
|
|
35
35
|
1. Parse subcommand
|
|
36
|
-
2. Read/write `.
|
|
36
|
+
2. Read/write `.vibe/regressions/<slug>.md` (frontmatter schema enforced)
|
|
37
37
|
3. On `generate`, detect the project's test stack → choose template (vitest / jest)
|
|
38
38
|
4. On `cluster`, group by `root-cause-tag`; ≥3 entries → propose a shared test
|
|
39
39
|
5. On `import`, parse `git log --grep='^fix:'`; skip duplicates by commit hash
|
|
40
40
|
|
|
41
41
|
## Output
|
|
42
42
|
|
|
43
|
-
- `.
|
|
43
|
+
- `.vibe/regressions/<slug>.md` — bug record (frontmatter + reproduction / root cause)
|
|
44
44
|
- Project test dir — generated vitest file (`*.regression.test.ts`)
|
|
45
45
|
- `list` prints a terminal table
|
|
46
46
|
|
package/commands/vibe.review.md
CHANGED
|
@@ -213,7 +213,7 @@ Read CLAUDE.md -> Explicit tech stack declaration
|
|
|
213
213
|
> When SPEC files exist, verify that code changes align with the SPEC
|
|
214
214
|
|
|
215
215
|
```
|
|
216
|
-
1. Search .
|
|
216
|
+
1. Search .vibe/specs/ for related SPEC files (based on git diff filenames)
|
|
217
217
|
2. Compare SPEC REQ-* list against functionality in changed code
|
|
218
218
|
3. If functionality added that's not in SPEC → P2 finding: "Feature added without SPEC"
|
|
219
219
|
4. If implementation differs from SPEC → P1 finding: "SPEC ↔ code mismatch"
|
|
@@ -256,7 +256,7 @@ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orche
|
|
|
256
256
|
### Phase 2.5: UI/UX Review Agents (Auto-triggered)
|
|
257
257
|
|
|
258
258
|
> **활성화 조건**: 변경된 파일 중 UI 파일 존재 (`.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`, `.scss`)
|
|
259
|
-
> **비활성화**: `.
|
|
259
|
+
> **비활성화**: `.vibe/config.json`에 `"uiUxAnalysis": false` 설정
|
|
260
260
|
|
|
261
261
|
**기존 12+ 리뷰 에이전트와 병렬 실행:**
|
|
262
262
|
|
|
@@ -279,7 +279,7 @@ Task(subagent_type="ui-a11y-auditor",
|
|
|
279
279
|
|
|
280
280
|
# ⑧ 안티패턴 검출 (Haiku)
|
|
281
281
|
Task(subagent_type="ui-antipattern-detector",
|
|
282
|
-
prompt="Detect UI anti-patterns in: {changed_ui_files}. Check against MASTER.md if exists at .
|
|
282
|
+
prompt="Detect UI anti-patterns in: {changed_ui_files}. Check against MASTER.md if exists at .vibe/design-system/{project}/MASTER.md.")
|
|
283
283
|
```
|
|
284
284
|
|
|
285
285
|
**findings 통합**: ⑥⑦⑧ findings를 기존 findings[]와 병합 → P1/P2/P3 통합 정렬
|
|
@@ -427,7 +427,7 @@ Codex 수정 완료 후 해당 리뷰 에이전트가 재검증.
|
|
|
427
427
|
|
|
428
428
|
### Phase 6: Todo File Creation (Items Requiring Manual Handling)
|
|
429
429
|
|
|
430
|
-
Save **remaining** findings to `.
|
|
430
|
+
Save **remaining** findings to `.vibe/todos/`:
|
|
431
431
|
|
|
432
432
|
```
|
|
433
433
|
{priority}-{category}-{short-desc}.md
|
package/commands/vibe.run.md
CHANGED
|
@@ -37,7 +37,7 @@ Execute **Scenario-Driven Implementation** with automatic quality verification.
|
|
|
37
37
|
> **📊 Step Counter Reset (MANDATORY at START)**: Run this Bash command once at the very start to reset the tool-call counter so `/vibe.verify` can report "how many steps to reach the goal":
|
|
38
38
|
>
|
|
39
39
|
> ```bash
|
|
40
|
-
> mkdir -p .
|
|
40
|
+
> mkdir -p .vibe/metrics && printf '{"feature":"%s","startedAt":"%s","steps":0}\n' "{feature-name}" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" > .vibe/metrics/current-run.json
|
|
41
41
|
> ```
|
|
42
42
|
|
|
43
43
|
## File Reading Policy (Mandatory)
|
|
@@ -65,7 +65,7 @@ Load skill `vibe-regress` with: list --feature "{feature-name}"
|
|
|
65
65
|
- ultrawork mode: auto-invoke `/vibe.regress generate <slug>` for each, then proceed
|
|
66
66
|
- No open regressions → silently continue
|
|
67
67
|
|
|
68
|
-
Also load `.
|
|
68
|
+
Also load `.vibe/contracts/{feature-name}.md` if present — use it as the contract reference during implementation.
|
|
69
69
|
|
|
70
70
|
### Core Flow
|
|
71
71
|
|
|
@@ -172,7 +172,7 @@ After implementing each scenario, **automatic verification**:
|
|
|
172
172
|
|
|
173
173
|
**활성화 조건:**
|
|
174
174
|
- Feature 파일에 UI 관련 시나리오 존재 (form, button, page, navigate 등)
|
|
175
|
-
- `.
|
|
175
|
+
- `.vibe/e2e/config.json`의 `closedLoop.enabled: true` (기본값)
|
|
176
176
|
- dev server가 실행 중 (`baseURL` 접근 가능)
|
|
177
177
|
|
|
178
178
|
### Auto-Fix on Failure
|
|
@@ -402,7 +402,7 @@ Type Check: ✅ No errors
|
|
|
402
402
|
|
|
403
403
|
✅ RALPH VERIFIED COMPLETE!
|
|
404
404
|
|
|
405
|
-
📄 RTM saved: .
|
|
405
|
+
📄 RTM saved: .vibe/rtm/login-rtm.md
|
|
406
406
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
407
407
|
```
|
|
408
408
|
|
|
@@ -431,7 +431,7 @@ Claude:
|
|
|
431
431
|
🚀 ULTRAWORK MODE ACTIVATED
|
|
432
432
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
433
433
|
|
|
434
|
-
📄 SPEC: .
|
|
434
|
+
📄 SPEC: .vibe/specs/brick-game.md
|
|
435
435
|
🎯 4 Phases detected
|
|
436
436
|
⚡ Boulder Loop: ENABLED (will continue until all phases complete)
|
|
437
437
|
🔄 Auto-retry: ON (loop until 100% or stuck → auto-TODO)
|
|
@@ -757,7 +757,7 @@ Each agent has tier variants for cost optimization:
|
|
|
757
757
|
|
|
758
758
|
### External LLM Usage (When Enabled)
|
|
759
759
|
|
|
760
|
-
When external LLMs are enabled in `.
|
|
760
|
+
When external LLMs are enabled in `.vibe/config.json`:
|
|
761
761
|
|
|
762
762
|
| Role | Method | Condition |
|
|
763
763
|
|------|--------|-----------|
|
|
@@ -851,25 +851,25 @@ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index
|
|
|
851
851
|
|
|
852
852
|
```
|
|
853
853
|
Step 1: Check if SPLIT structure exists (folder)
|
|
854
|
-
📁 .
|
|
855
|
-
📁 .
|
|
854
|
+
📁 .vibe/specs/{feature-name}/ → Folder with _index.md + phase files
|
|
855
|
+
📁 .vibe/features/{feature-name}/ → Folder with _index.feature + phase files
|
|
856
856
|
|
|
857
857
|
Step 2: If no folder, check single file
|
|
858
|
-
📄 .
|
|
859
|
-
📄 .
|
|
858
|
+
📄 .vibe/specs/{feature-name}.md → Single SPEC file
|
|
859
|
+
📄 .vibe/features/{feature-name}.feature → Single Feature file
|
|
860
860
|
|
|
861
861
|
Step 3: If neither exists → Error
|
|
862
862
|
```
|
|
863
863
|
|
|
864
864
|
**Split structure (folder) detected:**
|
|
865
865
|
```
|
|
866
|
-
📁 .
|
|
866
|
+
📁 .vibe/specs/{feature-name}/
|
|
867
867
|
├── _index.md → Master SPEC (read first for overview)
|
|
868
868
|
├── phase-1-{name}.md → Phase 1 SPEC
|
|
869
869
|
├── phase-2-{name}.md → Phase 2 SPEC
|
|
870
870
|
└── ...
|
|
871
871
|
|
|
872
|
-
📁 .
|
|
872
|
+
📁 .vibe/features/{feature-name}/
|
|
873
873
|
├── _index.feature → Master Feature (read first for scenario overview)
|
|
874
874
|
├── phase-1-{name}.feature → Phase 1 scenarios
|
|
875
875
|
├── phase-2-{name}.feature → Phase 2 scenarios
|
|
@@ -881,15 +881,15 @@ Step 3: If neither exists → Error
|
|
|
881
881
|
|
|
882
882
|
**Single file detected:**
|
|
883
883
|
```
|
|
884
|
-
📄 .
|
|
885
|
-
📄 .
|
|
884
|
+
📄 .vibe/specs/{feature-name}.md → SPEC (structure, constraints, context)
|
|
885
|
+
📄 .vibe/features/{feature-name}.feature → Feature (scenario = implementation unit)
|
|
886
886
|
```
|
|
887
887
|
|
|
888
888
|
**Error if NEITHER file NOR folder found:**
|
|
889
889
|
```
|
|
890
890
|
❌ SPEC not found. Searched:
|
|
891
|
-
- .
|
|
892
|
-
- .
|
|
891
|
+
- .vibe/specs/{feature-name}/ (folder)
|
|
892
|
+
- .vibe/specs/{feature-name}.md (file)
|
|
893
893
|
|
|
894
894
|
Run /vibe.spec "{feature-name}" first.
|
|
895
895
|
```
|
|
@@ -915,13 +915,13 @@ Step 3: If neither exists → Error
|
|
|
915
915
|
│ 3. Extract Phase N scope: files, scenarios, requirements │
|
|
916
916
|
│ 4. Implement Phase N scenarios │
|
|
917
917
|
│ 5. Verify Phase N │
|
|
918
|
-
│ 6. Write Phase Checkpoint → .
|
|
918
|
+
│ 6. Write Phase Checkpoint → .vibe/checkpoints/ │
|
|
919
919
|
│ 7. DISCARD Phase N details from working memory │
|
|
920
920
|
│ Step C: Next Phase — go to Step B │
|
|
921
921
|
└─────────────────────────────────────────────────────────────────┘
|
|
922
922
|
```
|
|
923
923
|
|
|
924
|
-
**Phase Checkpoint Format** (`.
|
|
924
|
+
**Phase Checkpoint Format** (`.vibe/checkpoints/{feature}-phase-{N}.md`):
|
|
925
925
|
|
|
926
926
|
```markdown
|
|
927
927
|
# Checkpoint: {feature} Phase {N}
|
|
@@ -996,7 +996,7 @@ Discovery during implementation: "An API endpoint not in SPEC is needed"
|
|
|
996
996
|
│
|
|
997
997
|
└─ Outside SPEC scope?
|
|
998
998
|
YES → Record as TODO and exclude from current scope
|
|
999
|
-
.
|
|
999
|
+
.vibe/todos/out-of-scope-{item}.md
|
|
1000
1000
|
```
|
|
1001
1001
|
|
|
1002
1002
|
**Required when changing SPEC:**
|
|
@@ -1245,7 +1245,7 @@ core ProjectCache (LRU) caches ts-morph parsing results. Parallel calls share th
|
|
|
1245
1245
|
### UI/UX Design Intelligence (Auto-triggered before Phase 1)
|
|
1246
1246
|
|
|
1247
1247
|
> **조건**: SPEC 또는 Feature에 UI/UX 키워드 포함 시 자동 실행
|
|
1248
|
-
> **비활성화**: `.
|
|
1248
|
+
> **비활성화**: `.vibe/config.json`에 `"uiUxAnalysis": false` 설정
|
|
1249
1249
|
|
|
1250
1250
|
**Phase 1 시작 전, 2개 에이전트 자동 실행:**
|
|
1251
1251
|
|
|
@@ -1267,7 +1267,7 @@ Task(subagent_type="ui-dataviz-advisor",
|
|
|
1267
1267
|
```
|
|
1268
1268
|
|
|
1269
1269
|
**디자인 시스템 자동 참조:**
|
|
1270
|
-
- `.
|
|
1270
|
+
- `.vibe/design-system/{project}/MASTER.md` 존재 시 자동 로드
|
|
1271
1271
|
- 구현 에이전트가 CSS 변수, 폰트, 색상 팔레트를 직접 참조
|
|
1272
1272
|
- 페이지별 오버라이드 `pages/{page}.md` 존재 시 우선 적용
|
|
1273
1273
|
|
|
@@ -1646,8 +1646,8 @@ Follow during implementation:
|
|
|
1646
1646
|
|
|
1647
1647
|
## Input
|
|
1648
1648
|
|
|
1649
|
-
- `.
|
|
1650
|
-
- `.
|
|
1649
|
+
- `.vibe/specs/{feature-name}.md` (PTCF SPEC)
|
|
1650
|
+
- `.vibe/features/{feature-name}.feature` (BDD)
|
|
1651
1651
|
- `CLAUDE.md` (project context)
|
|
1652
1652
|
|
|
1653
1653
|
## Output
|
|
@@ -1662,8 +1662,8 @@ Follow during implementation:
|
|
|
1662
1662
|
User: /vibe.run "login"
|
|
1663
1663
|
|
|
1664
1664
|
Claude:
|
|
1665
|
-
📄 Loading SPEC: .
|
|
1666
|
-
📄 Loading Feature: .
|
|
1665
|
+
📄 Loading SPEC: .vibe/specs/login.md
|
|
1666
|
+
📄 Loading Feature: .vibe/features/login.feature
|
|
1667
1667
|
|
|
1668
1668
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1669
1669
|
📋 Scenarios to Implement
|
|
@@ -1799,7 +1799,7 @@ Then: Login success + JWT token returned
|
|
|
1799
1799
|
User: /vibe.run "brick-game" --phase 2
|
|
1800
1800
|
|
|
1801
1801
|
Claude:
|
|
1802
|
-
📄 Reading SPEC: .
|
|
1802
|
+
📄 Reading SPEC: .vibe/specs/brick-game.md
|
|
1803
1803
|
🎯 Executing Phase 2 only.
|
|
1804
1804
|
|
|
1805
1805
|
Phase 2: Game Logic
|
|
@@ -1923,7 +1923,7 @@ After ALL phases complete successfully, **automatically** perform a brief retros
|
|
|
1923
1923
|
### Execution Steps
|
|
1924
1924
|
|
|
1925
1925
|
1. Generate retrospective based on the implementation session
|
|
1926
|
-
2. Save to `.
|
|
1926
|
+
2. Save to `.vibe/retros/{feature-name}.md`
|
|
1927
1927
|
3. Save key lessons via `core_save_memory` (for cross-session recall)
|
|
1928
1928
|
4. Update `claude-progress.txt` with final status
|
|
1929
1929
|
|
|
@@ -26,7 +26,7 @@ Design and generate a project structure where AI works effectively on its own.
|
|
|
26
26
|
|
|
27
27
|
1. Read `CLAUDE.md`, `package.json`, `pyproject.toml`, `pubspec.yaml`
|
|
28
28
|
2. Scan existing folder structure via `Glob`
|
|
29
|
-
3. Read `.
|
|
29
|
+
3. Read `.vibe/config.json` for detected stacks
|
|
30
30
|
|
|
31
31
|
### 2. Determine Project Type
|
|
32
32
|
|