@su-record/vibe 2.9.36 β 2.9.38
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/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +12 -9
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +5 -3
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/llm/gpt-commands.js +1 -1
- package/dist/cli/postinstall/constants.js +1 -1
- package/dist/cli/postinstall/global-config.d.ts.map +1 -1
- package/dist/cli/postinstall/global-config.js +21 -15
- package/dist/cli/postinstall/global-config.js.map +1 -1
- package/dist/cli/setup/LegacyMigration.d.ts.map +1 -1
- package/dist/cli/setup/LegacyMigration.js +28 -6
- package/dist/cli/setup/LegacyMigration.js.map +1 -1
- package/dist/cli/utils.d.ts +6 -0
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +23 -0
- package/dist/cli/utils.js.map +1 -1
- package/dist/infra/lib/ReviewRace.js +1 -1
- package/dist/infra/lib/codex-proxy.js +1 -1
- package/dist/infra/lib/gpt/chat.d.ts +1 -1
- package/dist/infra/lib/gpt/chat.js +24 -24
- package/dist/infra/lib/gpt/chat.js.map +1 -1
- package/dist/infra/lib/gpt/orchestration.js +1 -1
- package/dist/infra/lib/gpt/specializations.d.ts +2 -2
- package/dist/infra/lib/gpt/specializations.js +3 -3
- package/hooks/scripts/lib/scope-from-spec.js +30 -0
- package/hooks/scripts/llm-orchestrate.js +2 -2
- package/hooks/scripts/prompt-dispatcher.js +15 -0
- package/hooks/scripts/session-start.js +7 -5
- package/hooks/scripts/utils.js +6 -1
- 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
|
@@ -27,7 +27,7 @@ vibe init
|
|
|
27
27
|
μΈν°λ·° βββ "νκΉμ λꡬ?" "μ΄λ€ μΉμ
?" "λ€ν¬ λͺ¨λ?" βββ
|
|
28
28
|
| (μ¬μ©μκ° "κ·Έλ§"ν λκΉμ§ λ°λ³΅)
|
|
29
29
|
v
|
|
30
|
-
κΈ°νμ βββ ꡬ쑰νλ λ§ν¬λ€μ΄ κΈ°νμ (.
|
|
30
|
+
κΈ°νμ βββ ꡬ쑰νλ λ§ν¬λ€μ΄ κΈ°νμ (.vibe/plans/)
|
|
31
31
|
|
|
|
32
32
|
v
|
|
33
33
|
SPEC βββ PTCF λͺ
μΈ + BDD νΌμ², GPT+Gemini λ³λ ¬ 리μμΉ
|
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
|
|