@su-record/vibe 2.2.5 → 2.3.0
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/settings.json +0 -117
- package/.claude/settings.local.json +2 -1
- package/.claude/vibe/rules/languages/dart-flutter.md +509 -0
- package/.claude/vibe/rules/languages/go.md +396 -0
- package/.claude/vibe/rules/languages/java-spring.md +586 -0
- package/.claude/vibe/rules/languages/kotlin-android.md +491 -0
- package/.claude/vibe/rules/languages/python-django.md +371 -0
- package/.claude/vibe/rules/languages/python-fastapi.md +386 -0
- package/.claude/vibe/rules/languages/rust.md +425 -0
- package/.claude/vibe/rules/languages/swift-ios.md +516 -0
- package/.claude/vibe/rules/languages/typescript-nextjs.md +441 -0
- package/.claude/vibe/rules/languages/typescript-node.md +375 -0
- package/.claude/vibe/rules/languages/typescript-nuxt.md +521 -0
- package/.claude/vibe/rules/languages/typescript-react-native.md +446 -0
- package/.claude/vibe/rules/languages/typescript-react.md +525 -0
- package/.claude/vibe/rules/languages/typescript-vue.md +353 -0
- package/README.md +96 -96
- package/commands/vibe.analyze.md +14 -73
- package/commands/vibe.reason.md +49 -172
- package/commands/vibe.review.md +72 -260
- package/commands/vibe.utils.md +101 -0
- package/commands/vibe.verify.md +4 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +46 -16
- package/dist/cli/index.js.map +1 -1
- package/{templates/hooks-template.json → hooks/hooks.json} +6 -6
- package/package.json +2 -3
- package/commands/vibe.continue.md +0 -88
- package/commands/vibe.setup.md +0 -97
- /package/{rules → .claude/vibe/rules}/core/communication-guide.md +0 -0
- /package/{rules → .claude/vibe/rules}/core/development-philosophy.md +0 -0
- /package/{rules → .claude/vibe/rules}/core/quick-start.md +0 -0
- /package/{rules → .claude/vibe/rules}/quality/bdd-contract-testing.md +0 -0
- /package/{rules → .claude/vibe/rules}/quality/checklist.md +0 -0
- /package/{rules → .claude/vibe/rules}/quality/testing-strategy.md +0 -0
- /package/{rules → .claude/vibe/rules}/standards/anti-patterns.md +0 -0
- /package/{rules → .claude/vibe/rules}/standards/code-structure.md +0 -0
- /package/{rules → .claude/vibe/rules}/standards/complexity-metrics.md +0 -0
- /package/{rules → .claude/vibe/rules}/standards/naming-conventions.md +0 -0
- /package/{templates → .claude/vibe/templates}/constitution-template.md +0 -0
- /package/{templates → .claude/vibe/templates}/contract-backend-template.md +0 -0
- /package/{templates → .claude/vibe/templates}/contract-frontend-template.md +0 -0
- /package/{templates → .claude/vibe/templates}/feature-template.md +0 -0
- /package/{templates → .claude/vibe/templates}/spec-template.md +0 -0
- /package/{commands/vibe.compound.md → agents/compounder.md} +0 -0
- /package/{commands/vibe.diagram.md → agents/diagrammer.md} +0 -0
- /package/{commands/vibe.e2e.md → agents/e2e-tester.md} +0 -0
- /package/{commands/vibe.ui.md → agents/ui-previewer.md} +0 -0
package/commands/vibe.review.md
CHANGED
|
@@ -10,214 +10,87 @@ argument-hint: "PR number, branch name, or file path"
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
12
12
|
```
|
|
13
|
-
/vibe.review
|
|
14
|
-
/vibe.review PR#123
|
|
15
|
-
/vibe.review feature/login
|
|
16
|
-
/vibe.review src/api/
|
|
13
|
+
/vibe.review # Review current branch
|
|
14
|
+
/vibe.review PR#123 # Review specific PR
|
|
15
|
+
/vibe.review feature/login # Review specific branch
|
|
16
|
+
/vibe.review src/api/ # Review specific path
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Priority System
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
│ 🟡 P2 (Important): Should fix - Before merge │
|
|
27
|
-
│ 🔵 P3 (Nice-to-have): Enhancement - When time permits │
|
|
28
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
29
|
-
```
|
|
21
|
+
| Priority | Criteria | Action |
|
|
22
|
+
|----------|----------|--------|
|
|
23
|
+
| P1 | Security vulnerabilities, data loss, crashes | Block merge, fix immediately |
|
|
24
|
+
| P2 | Performance issues, architecture violations, missing tests | Fix before merge |
|
|
25
|
+
| P3 | Style, refactoring suggestions, documentation | Add to backlog |
|
|
30
26
|
|
|
31
27
|
## Process
|
|
32
28
|
|
|
33
|
-
### Phase 1: Tech Stack Detection
|
|
34
|
-
|
|
35
|
-
**Detect project tech stack FIRST before launching reviewers:**
|
|
29
|
+
### Phase 1: Tech Stack Detection
|
|
36
30
|
|
|
37
|
-
|
|
38
|
-
📋 Tech Stack Detection
|
|
39
|
-
├── Read package.json → TypeScript, React, Node.js
|
|
40
|
-
├── Read pyproject.toml → Python, FastAPI, Django
|
|
41
|
-
├── Read Gemfile → Ruby, Rails
|
|
42
|
-
├── Read pubspec.yaml → Flutter, Dart
|
|
43
|
-
├── Read go.mod → Go
|
|
44
|
-
├── Read CLAUDE.md → Explicit tech stack declaration
|
|
45
|
-
└── Analyze file extensions in changed files
|
|
46
|
-
```
|
|
31
|
+
Detect project tech stack FIRST before launching reviewers:
|
|
47
32
|
|
|
48
|
-
**Detection Logic:**
|
|
49
|
-
```javascript
|
|
50
|
-
// Stack detection from project files
|
|
51
|
-
const stack = {
|
|
52
|
-
typescript: hasFile("package.json") && (hasDep("typescript") || hasFile("tsconfig.json")),
|
|
53
|
-
react: hasDep("react") || hasDep("next"),
|
|
54
|
-
python: hasFile("pyproject.toml") || hasFile("requirements.txt"),
|
|
55
|
-
rails: hasFile("Gemfile") && hasDep("rails"),
|
|
56
|
-
go: hasFile("go.mod"),
|
|
57
|
-
flutter: hasFile("pubspec.yaml")
|
|
58
|
-
};
|
|
59
33
|
```
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
├── app/models/*.rb → Rails reviewer needed
|
|
67
|
-
└── No .ts files → Skip TypeScript reviewer
|
|
34
|
+
Read package.json -> TypeScript, React, Node.js
|
|
35
|
+
Read pyproject.toml -> Python, FastAPI, Django
|
|
36
|
+
Read Gemfile -> Ruby, Rails
|
|
37
|
+
Read pubspec.yaml -> Flutter, Dart
|
|
38
|
+
Read go.mod -> Go
|
|
39
|
+
Read CLAUDE.md -> Explicit tech stack declaration
|
|
68
40
|
```
|
|
69
41
|
|
|
70
42
|
### Phase 2: Parallel Agent Review (STACK-AWARE)
|
|
71
43
|
|
|
72
44
|
**Launch ONLY relevant agents based on detected stack!**
|
|
73
45
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
│ ├── architecture-reviewer # Layer violations, cycles │
|
|
84
|
-
│ ├── complexity-reviewer # Cyclomatic complexity, length │
|
|
85
|
-
│ ├── simplicity-reviewer # Over-abstraction, dead code │
|
|
86
|
-
│ ├── git-history-reviewer # Churn files, risk patterns │
|
|
87
|
-
│ └── test-coverage-reviewer # Missing tests, edge cases │
|
|
88
|
-
│ │
|
|
89
|
-
│ 🔍 CONDITIONAL (Based on Detected Stack) │
|
|
90
|
-
│ ├── python-reviewer # IF: .py files in diff │
|
|
91
|
-
│ ├── typescript-reviewer # IF: .ts/.tsx files OR tsconfig │
|
|
92
|
-
│ ├── rails-reviewer # IF: Gemfile has rails │
|
|
93
|
-
│ └── react-reviewer # IF: package.json has react │
|
|
94
|
-
│ │
|
|
95
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**Stack-Aware Agent Invocation:**
|
|
99
|
-
```javascript
|
|
100
|
-
// Core reviewers (ALWAYS)
|
|
101
|
-
const coreAgents = [
|
|
102
|
-
"security-reviewer",
|
|
103
|
-
"data-integrity-reviewer",
|
|
104
|
-
"performance-reviewer",
|
|
105
|
-
"architecture-reviewer",
|
|
106
|
-
"complexity-reviewer",
|
|
107
|
-
"simplicity-reviewer",
|
|
108
|
-
"git-history-reviewer",
|
|
109
|
-
"test-coverage-reviewer"
|
|
110
|
-
];
|
|
111
|
-
|
|
112
|
-
// Language reviewers (CONDITIONAL)
|
|
113
|
-
const languageAgents = [];
|
|
114
|
-
if (stack.python || changedFiles.some(f => f.endsWith('.py'))) {
|
|
115
|
-
languageAgents.push("python-reviewer");
|
|
116
|
-
}
|
|
117
|
-
if (stack.typescript || changedFiles.some(f => f.match(/\.tsx?$/))) {
|
|
118
|
-
languageAgents.push("typescript-reviewer");
|
|
119
|
-
}
|
|
120
|
-
if (stack.react) {
|
|
121
|
-
languageAgents.push("react-reviewer");
|
|
122
|
-
}
|
|
123
|
-
if (stack.rails) {
|
|
124
|
-
languageAgents.push("rails-reviewer");
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Launch ALL selected agents in parallel
|
|
128
|
-
const allAgents = [...coreAgents, ...languageAgents];
|
|
129
|
-
```
|
|
46
|
+
**ALWAYS RUN (Core Reviewers):**
|
|
47
|
+
- security-reviewer: OWASP Top 10, vulnerabilities
|
|
48
|
+
- data-integrity-reviewer: Data validation, constraints
|
|
49
|
+
- performance-reviewer: N+1 queries, memory leaks
|
|
50
|
+
- architecture-reviewer: Layer violations, cycles
|
|
51
|
+
- complexity-reviewer: Cyclomatic complexity, length
|
|
52
|
+
- simplicity-reviewer: Over-abstraction, dead code
|
|
53
|
+
- git-history-reviewer: Churn files, risk patterns
|
|
54
|
+
- test-coverage-reviewer: Missing tests, edge cases
|
|
130
55
|
|
|
131
|
-
**
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
🚀 Launching 10 agents (8 core + 2 language-specific):
|
|
137
|
-
✅ security-reviewer
|
|
138
|
-
✅ data-integrity-reviewer
|
|
139
|
-
✅ performance-reviewer
|
|
140
|
-
✅ architecture-reviewer
|
|
141
|
-
✅ complexity-reviewer
|
|
142
|
-
✅ simplicity-reviewer
|
|
143
|
-
✅ git-history-reviewer
|
|
144
|
-
✅ test-coverage-reviewer
|
|
145
|
-
✅ typescript-reviewer ← Detected: tsconfig.json
|
|
146
|
-
✅ react-reviewer ← Detected: react in package.json
|
|
147
|
-
⏭️ python-reviewer ← Skipped: No Python files
|
|
148
|
-
⏭️ rails-reviewer ← Skipped: No Gemfile
|
|
149
|
-
```
|
|
56
|
+
**CONDITIONAL (Based on Detected Stack):**
|
|
57
|
+
- python-reviewer: IF .py files in diff
|
|
58
|
+
- typescript-reviewer: IF .ts/.tsx files OR tsconfig
|
|
59
|
+
- rails-reviewer: IF Gemfile has rails
|
|
60
|
+
- react-reviewer: IF package.json has react
|
|
150
61
|
|
|
151
|
-
### Phase 3:
|
|
62
|
+
### Phase 3: Deep Analysis
|
|
152
63
|
|
|
153
|
-
|
|
64
|
+
After agent results:
|
|
154
65
|
|
|
155
|
-
|
|
156
|
-
|
|
66
|
+
1. **System Context**: Component interactions, data flow, external dependencies
|
|
67
|
+
2. **Stakeholder Perspectives**: Developers, Ops, Security, Business
|
|
68
|
+
3. **Edge Cases**: Race conditions, resource exhaustion, network failures
|
|
69
|
+
4. **Multiple Angles**: Technical excellence, business value, risk management
|
|
157
70
|
|
|
158
|
-
|
|
159
|
-
- Component interactions
|
|
160
|
-
- Data flow
|
|
161
|
-
- External dependencies
|
|
162
|
-
|
|
163
|
-
2. **Stakeholder Perspectives**
|
|
164
|
-
- Developers: Maintainability
|
|
165
|
-
- Ops: Deployment risk
|
|
166
|
-
- Security: Vulnerabilities
|
|
167
|
-
- Business: Impact
|
|
168
|
-
|
|
169
|
-
3. **Edge Cases & Failure Scenarios**
|
|
170
|
-
- Race conditions
|
|
171
|
-
- Resource exhaustion
|
|
172
|
-
- Network failures
|
|
173
|
-
- Malicious input
|
|
71
|
+
### Phase 4: Findings Synthesis
|
|
174
72
|
|
|
175
|
-
4. **Multiple Angles**
|
|
176
|
-
- Technical excellence
|
|
177
|
-
- Business value
|
|
178
|
-
- Risk management
|
|
179
|
-
- Team dynamics
|
|
180
73
|
```
|
|
74
|
+
REVIEW FINDINGS
|
|
181
75
|
|
|
182
|
-
|
|
76
|
+
P1 CRITICAL (Blocks Merge) - N issues
|
|
77
|
+
1. [SECURITY] SQL Injection in user query
|
|
78
|
+
Location: src/api/users.py:42
|
|
79
|
+
Fix: Use parameterized queries
|
|
183
80
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
|
|
191
|
-
│ 1. [SECURITY] SQL Injection in user query │
|
|
192
|
-
│ 📍 src/api/users.py:42 │
|
|
193
|
-
│ 💡 Use parameterized queries │
|
|
194
|
-
│ │
|
|
195
|
-
│ 2. [DATA] Missing transaction rollback │
|
|
196
|
-
│ 📍 src/services/payment.py:128 │
|
|
197
|
-
│ 💡 Wrap in try/except with rollback │
|
|
198
|
-
│ │
|
|
199
|
-
│ 🟡 P2 IMPORTANT (Should Fix) - 5 issues │
|
|
200
|
-
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
|
|
201
|
-
│ 3. [PERF] N+1 query in user list │
|
|
202
|
-
│ 4. [ARCH] Circular dependency detected │
|
|
203
|
-
│ 5. [TEST] Missing edge case tests │
|
|
204
|
-
│ ... │
|
|
205
|
-
│ │
|
|
206
|
-
│ 🔵 P3 NICE-TO-HAVE (Enhancement) - 3 issues │
|
|
207
|
-
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
|
|
208
|
-
│ 8. [STYLE] Consider extracting helper function │
|
|
209
|
-
│ ... │
|
|
210
|
-
│ │
|
|
211
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
81
|
+
P2 IMPORTANT (Should Fix) - N issues
|
|
82
|
+
2. [PERF] N+1 query in user list
|
|
83
|
+
3. [ARCH] Circular dependency detected
|
|
84
|
+
|
|
85
|
+
P3 NICE-TO-HAVE (Enhancement) - N issues
|
|
86
|
+
4. [STYLE] Consider extracting helper function
|
|
212
87
|
```
|
|
213
88
|
|
|
214
89
|
### Phase 5: Todo File Creation
|
|
215
90
|
|
|
216
91
|
Save findings to `.claude/vibe/todos/`:
|
|
217
92
|
|
|
218
|
-
```
|
|
219
|
-
## File Naming Convention
|
|
220
|
-
|
|
93
|
+
```
|
|
221
94
|
{priority}-{category}-{short-desc}.md
|
|
222
95
|
|
|
223
96
|
Examples:
|
|
@@ -226,98 +99,37 @@ Examples:
|
|
|
226
99
|
- P3-style-extract-helper.md
|
|
227
100
|
```
|
|
228
101
|
|
|
229
|
-
|
|
230
|
-
```markdown
|
|
231
|
-
# [P1] SQL Injection Vulnerability
|
|
232
|
-
|
|
233
|
-
## Summary
|
|
234
|
-
User input directly concatenated in SQL query
|
|
235
|
-
|
|
236
|
-
## Location
|
|
237
|
-
- File: src/api/users.py
|
|
238
|
-
- Line: 42
|
|
239
|
-
- Function: get_user_by_email()
|
|
102
|
+
## Output
|
|
240
103
|
|
|
241
|
-
## Current Code
|
|
242
|
-
```python
|
|
243
|
-
query = f"SELECT * FROM users WHERE email = '{email}'"
|
|
244
104
|
```
|
|
105
|
+
CODE REVIEW SUMMARY
|
|
106
|
+
PR #123: Add user authentication
|
|
245
107
|
|
|
246
|
-
|
|
247
|
-
```python
|
|
248
|
-
query = "SELECT * FROM users WHERE email = %s"
|
|
249
|
-
cursor.execute(query, (email,))
|
|
250
|
-
```
|
|
108
|
+
Reviewers: 13 agents | Duration: 45s
|
|
251
109
|
|
|
252
|
-
|
|
253
|
-
- OWASP SQL Injection: https://owasp.org/...
|
|
254
|
-
- Project DB Guide: docs/database.md
|
|
110
|
+
Score: 72/100 (Needs Work)
|
|
255
111
|
|
|
256
|
-
|
|
257
|
-
-
|
|
258
|
-
-
|
|
259
|
-
-
|
|
260
|
-
```
|
|
112
|
+
Issues Found:
|
|
113
|
+
- P1 Critical: 2 (BLOCKS MERGE)
|
|
114
|
+
- P2 Important: 5
|
|
115
|
+
- P3 Nice-to-have: 3
|
|
261
116
|
|
|
262
|
-
|
|
117
|
+
By Category:
|
|
118
|
+
- Security: 2
|
|
119
|
+
- Performance: 3
|
|
120
|
+
- Architecture: 1
|
|
121
|
+
- Testing: 2
|
|
122
|
+
- Style: 2
|
|
263
123
|
|
|
264
|
-
|
|
265
|
-
Suggest E2E tests based on project type:
|
|
266
|
-
├── Web: /vibe.e2e (Playwright)
|
|
267
|
-
├── iOS: Xcode Test
|
|
268
|
-
├── Android: Espresso
|
|
269
|
-
└── API: Contract Test
|
|
270
|
-
```
|
|
124
|
+
Todos created: .claude/vibe/todos/ (10 files)
|
|
271
125
|
|
|
272
|
-
|
|
126
|
+
MERGE BLOCKED - Fix P1 issues first
|
|
273
127
|
|
|
128
|
+
Next Steps:
|
|
129
|
+
1. Fix P1-security-sql-injection.md
|
|
130
|
+
2. Fix P1-data-transaction-rollback.md
|
|
131
|
+
3. Re-run: /vibe.review
|
|
274
132
|
```
|
|
275
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
276
|
-
│ 📊 CODE REVIEW SUMMARY │
|
|
277
|
-
│ PR #123: Add user authentication │
|
|
278
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
279
|
-
│ │
|
|
280
|
-
│ Reviewers: 13 agents | Duration: 45s │
|
|
281
|
-
│ │
|
|
282
|
-
│ 📈 Score: 72/100 (Needs Work) │
|
|
283
|
-
│ │
|
|
284
|
-
│ Issues Found: │
|
|
285
|
-
│ ├── 🔴 P1 Critical: 2 (BLOCKS MERGE) │
|
|
286
|
-
│ ├── 🟡 P2 Important: 5 │
|
|
287
|
-
│ └── 🔵 P3 Nice-to-have: 3 │
|
|
288
|
-
│ │
|
|
289
|
-
│ By Category: │
|
|
290
|
-
│ ├── Security: 2 │
|
|
291
|
-
│ ├── Performance: 3 │
|
|
292
|
-
│ ├── Architecture: 1 │
|
|
293
|
-
│ ├── Testing: 2 │
|
|
294
|
-
│ └── Style: 2 │
|
|
295
|
-
│ │
|
|
296
|
-
│ 📁 Todos created: .claude/vibe/todos/ (10 files) │
|
|
297
|
-
│ │
|
|
298
|
-
│ ❌ MERGE BLOCKED - Fix P1 issues first │
|
|
299
|
-
│ │
|
|
300
|
-
│ Next Steps: │
|
|
301
|
-
│ 1. Fix P1-security-sql-injection.md │
|
|
302
|
-
│ 2. Fix P1-data-transaction-rollback.md │
|
|
303
|
-
│ 3. Re-run: /vibe.review │
|
|
304
|
-
│ │
|
|
305
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
## Priority Guidelines
|
|
309
|
-
|
|
310
|
-
| Priority | Criteria | Action |
|
|
311
|
-
|----------|----------|--------|
|
|
312
|
-
| 🔴 P1 | Security vulnerabilities, data loss, crashes | Block merge, fix immediately |
|
|
313
|
-
| 🟡 P2 | Performance issues, architecture violations, missing tests | Fix before merge |
|
|
314
|
-
| 🔵 P3 | Style, refactoring suggestions, documentation | Add to backlog |
|
|
315
|
-
|
|
316
|
-
## Related Commands
|
|
317
|
-
|
|
318
|
-
- `/vibe.e2e` - Run E2E tests
|
|
319
|
-
- `/vibe.compound` - Document solutions
|
|
320
|
-
- `/vibe.verify` - SPEC-based verification
|
|
321
133
|
|
|
322
134
|
---
|
|
323
135
|
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Utility tools (UI preview, diagram, E2E test, etc.)
|
|
3
|
+
argument-hint: "--ui, --diagram, --e2e, or other options"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /vibe.utils
|
|
7
|
+
|
|
8
|
+
Collection of utility tools. Use with options.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/vibe.utils --ui "설명" # UI ASCII preview
|
|
14
|
+
/vibe.utils --diagram # Architecture diagram
|
|
15
|
+
/vibe.utils --diagram --er # ERD diagram
|
|
16
|
+
/vibe.utils --diagram --flow # Flowchart
|
|
17
|
+
/vibe.utils --e2e "scenario" # E2E browser test (Playwright)
|
|
18
|
+
/vibe.utils --e2e --visual # Visual regression test
|
|
19
|
+
/vibe.utils --e2e --record # Video recording
|
|
20
|
+
/vibe.utils --compound # Document solution (usually auto-triggered)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## --ui (UI Preview)
|
|
26
|
+
|
|
27
|
+
Read and follow `agents/ui-previewer.md` for ASCII UI preview generation.
|
|
28
|
+
|
|
29
|
+
Generate ASCII-based UI preview from description.
|
|
30
|
+
|
|
31
|
+
**Example:**
|
|
32
|
+
```
|
|
33
|
+
/vibe.utils --ui "로그인 폼 - 이메일, 비밀번호 입력 + 로그인 버튼"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## --diagram (Diagram Generation)
|
|
39
|
+
|
|
40
|
+
Read and follow `agents/diagrammer.md` for diagram generation.
|
|
41
|
+
|
|
42
|
+
Generate Mermaid diagrams for architecture visualization.
|
|
43
|
+
|
|
44
|
+
**Options:**
|
|
45
|
+
- `--diagram`: Architecture overview
|
|
46
|
+
- `--diagram --er`: Entity-Relationship Diagram
|
|
47
|
+
- `--diagram --flow`: Flowchart
|
|
48
|
+
- `--diagram --seq`: Sequence Diagram
|
|
49
|
+
|
|
50
|
+
**Example:**
|
|
51
|
+
```
|
|
52
|
+
/vibe.utils --diagram --er
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## --e2e (E2E Testing)
|
|
58
|
+
|
|
59
|
+
Read and follow `agents/e2e-tester.md` for Playwright-based E2E testing.
|
|
60
|
+
|
|
61
|
+
**Options:**
|
|
62
|
+
- `--e2e "scenario"`: Run specific scenario
|
|
63
|
+
- `--e2e --visual`: Visual regression testing
|
|
64
|
+
- `--e2e --record`: Video recording
|
|
65
|
+
|
|
66
|
+
**Features:**
|
|
67
|
+
- Screenshot capture and comparison
|
|
68
|
+
- Console error collection
|
|
69
|
+
- Accessibility (a11y) testing
|
|
70
|
+
- Bug reproduction automation
|
|
71
|
+
|
|
72
|
+
**Example:**
|
|
73
|
+
```
|
|
74
|
+
/vibe.utils --e2e "login flow"
|
|
75
|
+
/vibe.utils --e2e --visual --record
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## --compound (Solution Documentation)
|
|
81
|
+
|
|
82
|
+
Read and follow `agents/compounder.md` for solution documentation.
|
|
83
|
+
|
|
84
|
+
Document solved problems for knowledge accumulation.
|
|
85
|
+
|
|
86
|
+
**Usually auto-triggered by hooks when:**
|
|
87
|
+
- "버그 해결됨", "bug fixed", "PR merged" detected
|
|
88
|
+
|
|
89
|
+
**Output location:** `.claude/vibe/solutions/`
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
.claude/vibe/solutions/
|
|
93
|
+
├── security/ # Security solutions
|
|
94
|
+
├── performance/ # Performance optimizations
|
|
95
|
+
├── database/ # Database related
|
|
96
|
+
└── integration/ # External integrations
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
ARGUMENTS: $ARGUMENTS
|
package/commands/vibe.verify.md
CHANGED
|
@@ -12,7 +12,10 @@ argument-hint: "feature name"
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
/vibe.verify "feature-name"
|
|
15
|
+
/vibe.verify "feature-name" # SPEC 기반 검증
|
|
16
|
+
/vibe.verify --e2e "feature-name" # E2E 브라우저 테스트 (agents/e2e-tester.md)
|
|
17
|
+
/vibe.verify --e2e --visual # 시각적 회귀 테스트
|
|
18
|
+
/vibe.verify --e2e --record # 비디오 녹화
|
|
16
19
|
```
|
|
17
20
|
|
|
18
21
|
## 핵심 원칙
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AA+3EH,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
|