@su-record/vibe 2.4.56 → 2.4.58
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 +7 -18
- package/agents/compounder.md +1 -1
- package/agents/implementer.md +2 -1
- package/agents/simplifier.md +2 -1
- package/commands/vibe.run.md +4 -1
- package/commands/vibe.spec.md +56 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +0 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/postinstall.js +32 -1
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/setup.d.ts +18 -4
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +107 -27
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/types.d.ts +6 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/languages/csharp-unity.md +516 -0
- package/languages/gdscript-godot.md +470 -0
- package/languages/ruby-rails.md +489 -0
- package/languages/typescript-angular.md +433 -0
- package/languages/typescript-astro.md +416 -0
- package/languages/typescript-electron.md +407 -0
- package/languages/typescript-nestjs.md +524 -0
- package/languages/typescript-svelte.md +407 -0
- package/languages/typescript-tauri.md +366 -0
- package/package.json +1 -1
- package/skills/vibe-capabilities.md +1 -1
- package/vibe/constitution.md +130 -97
- package/vibe/rules/core/communication-guide.md +50 -56
- package/vibe/rules/core/development-philosophy.md +35 -36
- package/vibe/rules/core/quick-start.md +66 -85
- package/vibe/rules/quality/bdd-contract-testing.md +94 -89
- package/vibe/rules/quality/checklist.md +132 -132
- package/vibe/rules/quality/testing-strategy.md +132 -129
- package/vibe/rules/standards/anti-patterns.md +74 -74
- package/vibe/rules/standards/code-structure.md +44 -44
- package/vibe/rules/standards/complexity-metrics.md +63 -62
- package/vibe/rules/standards/naming-conventions.md +72 -72
- package/vibe/templates/constitution-template.md +153 -95
- package/vibe/templates/contract-backend-template.md +41 -32
- package/vibe/templates/contract-frontend-template.md +35 -30
- package/vibe/templates/feature-template.md +33 -33
- package/vibe/templates/spec-template.md +118 -96
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Feature: {
|
|
1
|
+
# Feature: {Feature Name}
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> This file is **the core of quality assurance**. All scenarios passing = feature complete.
|
|
4
4
|
|
|
5
|
-
**SPEC**: `.claude/vibe/specs/{
|
|
5
|
+
**SPEC**: `.claude/vibe/specs/{feature-name}.md`
|
|
6
6
|
**Last verified**: -
|
|
7
7
|
**Quality score**: -
|
|
8
8
|
|
|
@@ -10,26 +10,26 @@
|
|
|
10
10
|
|
|
11
11
|
## User Story
|
|
12
12
|
|
|
13
|
-
**As a** {
|
|
14
|
-
**I want** {
|
|
15
|
-
**So that** {
|
|
13
|
+
**As a** {User role}
|
|
14
|
+
**I want** {Desired functionality}
|
|
15
|
+
**So that** {Reason/Value}
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
19
|
## Scenarios
|
|
20
20
|
|
|
21
|
-
>
|
|
21
|
+
> Each scenario is both an implementation unit and a verification unit.
|
|
22
22
|
|
|
23
|
-
### Scenario 1: {Happy Path -
|
|
23
|
+
### Scenario 1: {Happy Path - Normal Case}
|
|
24
24
|
|
|
25
25
|
```gherkin
|
|
26
|
-
Scenario: {
|
|
27
|
-
Given {
|
|
28
|
-
#
|
|
29
|
-
When {
|
|
30
|
-
#
|
|
31
|
-
Then {
|
|
32
|
-
#
|
|
26
|
+
Scenario: {Scenario title}
|
|
27
|
+
Given {Precondition}
|
|
28
|
+
# Verification: {What to check}
|
|
29
|
+
When {User action}
|
|
30
|
+
# Verification: {What functionality is executed}
|
|
31
|
+
Then {Expected result}
|
|
32
|
+
# Verification: {What is visible or returned}
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
**SPEC AC**: #1
|
|
@@ -37,13 +37,13 @@ Scenario: {시나리오 제목}
|
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
40
|
-
### Scenario 2: {Edge Case -
|
|
40
|
+
### Scenario 2: {Edge Case - Error Case}
|
|
41
41
|
|
|
42
42
|
```gherkin
|
|
43
|
-
Scenario: {
|
|
44
|
-
Given {
|
|
45
|
-
When {
|
|
46
|
-
Then {
|
|
43
|
+
Scenario: {Error scenario title}
|
|
44
|
+
Given {Precondition}
|
|
45
|
+
When {Invalid input or exception}
|
|
46
|
+
Then {Error message or appropriate handling}
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
**SPEC AC**: #2
|
|
@@ -51,13 +51,13 @@ Scenario: {에러 시나리오 제목}
|
|
|
51
51
|
|
|
52
52
|
---
|
|
53
53
|
|
|
54
|
-
### Scenario 3: {Boundary Case
|
|
54
|
+
### Scenario 3: {Boundary Case}
|
|
55
55
|
|
|
56
56
|
```gherkin
|
|
57
|
-
Scenario: {
|
|
58
|
-
Given {
|
|
59
|
-
When {
|
|
60
|
-
Then {
|
|
57
|
+
Scenario: {Boundary value test}
|
|
58
|
+
Given {Precondition}
|
|
59
|
+
When {Boundary value input}
|
|
60
|
+
Then {Appropriate handling}
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
**SPEC AC**: #3
|
|
@@ -73,24 +73,24 @@ Scenario: {경계값 테스트}
|
|
|
73
73
|
| 2 | {Edge Case} | AC-2 | ⬜ | - |
|
|
74
74
|
| 3 | {Boundary Case} | AC-3 | ⬜ | - |
|
|
75
75
|
|
|
76
|
-
**Total**: 0/3
|
|
76
|
+
**Total**: 0/3 passed (0%)
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
80
80
|
## Verification Commands
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
#
|
|
84
|
-
/vibe.verify "{
|
|
83
|
+
# Full verification
|
|
84
|
+
/vibe.verify "{feature name}"
|
|
85
85
|
|
|
86
|
-
#
|
|
87
|
-
/vibe.run "{
|
|
86
|
+
# Auto-fix on failure
|
|
87
|
+
/vibe.run "{feature name}" --fix
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
92
92
|
## Notes
|
|
93
93
|
|
|
94
|
-
-
|
|
95
|
-
- Given/When/Then
|
|
96
|
-
-
|
|
94
|
+
- Update Coverage Summary when adding/modifying scenarios
|
|
95
|
+
- Specify verification points for each Given/When/Then
|
|
96
|
+
- Quality is assured when all scenarios pass
|
|
@@ -1,102 +1,118 @@
|
|
|
1
|
-
# SPEC: {
|
|
1
|
+
# SPEC: {Feature Name}
|
|
2
2
|
|
|
3
3
|
## Metadata
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
4
|
+
|
|
5
|
+
- **Created**: {YYYY-MM-DD}
|
|
6
|
+
- **Author**: {Name}
|
|
7
|
+
- **Status**: DRAFT
|
|
8
|
+
- **Priority**: {HIGH | MEDIUM | LOW}
|
|
9
|
+
- **Language**: {en | ko}
|
|
10
|
+
- **Assigned Agent**: {Agent Name}
|
|
11
|
+
- **Tech Stack**: {Project Tech Stack Summary}
|
|
11
12
|
|
|
12
13
|
---
|
|
13
14
|
|
|
14
|
-
## 1.
|
|
15
|
+
## 1. Feature Overview
|
|
16
|
+
|
|
17
|
+
{1-2 sentence summary}
|
|
18
|
+
|
|
19
|
+
### Background
|
|
20
|
+
|
|
21
|
+
{Why is this feature needed}
|
|
22
|
+
|
|
23
|
+
### Goals
|
|
24
|
+
|
|
25
|
+
- Goal 1
|
|
26
|
+
- Goal 2
|
|
15
27
|
|
|
16
|
-
|
|
28
|
+
### Non-Goals
|
|
17
29
|
|
|
18
|
-
|
|
19
|
-
|
|
30
|
+
- What we won't do this time 1
|
|
31
|
+
- What we won't do this time 2
|
|
20
32
|
|
|
21
|
-
###
|
|
22
|
-
- 목표 1
|
|
23
|
-
- 목표 2
|
|
33
|
+
### Tech Stack Context
|
|
24
34
|
|
|
25
|
-
|
|
26
|
-
- 이번에 하지 않을 것 1
|
|
27
|
-
- 이번에 하지 않을 것 2
|
|
35
|
+
**Existing Technology:**
|
|
28
36
|
|
|
29
|
-
|
|
37
|
+
- Backend: {FastAPI, Django, Express, etc.}
|
|
38
|
+
- Frontend: {React, Flutter, Vue, etc.}
|
|
39
|
+
- Database: {PostgreSQL, MySQL, MongoDB, etc.}
|
|
40
|
+
- Infrastructure: {GCP, AWS, Azure, etc.}
|
|
30
41
|
|
|
31
|
-
|
|
32
|
-
- 백엔드: {FastAPI, Django, Express 등}
|
|
33
|
-
- 프론트엔드: {React, Flutter, Vue 등}
|
|
34
|
-
- 데이터베이스: {PostgreSQL, MySQL, MongoDB 등}
|
|
35
|
-
- 인프라: {GCP, AWS, Azure 등}
|
|
42
|
+
**New Technology Required for This Feature:**
|
|
36
43
|
|
|
37
|
-
|
|
38
|
-
- {
|
|
39
|
-
- {새 라이브러리/서비스 2} - {사유}
|
|
44
|
+
- {New library/service 1} - {Reason}
|
|
45
|
+
- {New library/service 2} - {Reason}
|
|
40
46
|
|
|
41
|
-
|
|
42
|
-
- {서비스명} - {용도}
|
|
47
|
+
**External API/Service Integration:**
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
- {Service name} - {Purpose}
|
|
50
|
+
|
|
51
|
+
**Constraints:**
|
|
52
|
+
|
|
53
|
+
- Cost limit: {Amount}
|
|
54
|
+
- Performance requirements: {Target response time, throughput, etc.}
|
|
47
55
|
|
|
48
56
|
---
|
|
49
57
|
|
|
50
|
-
## 2.
|
|
58
|
+
## 2. User Stories
|
|
59
|
+
|
|
60
|
+
### Story 1: {Story Title}
|
|
51
61
|
|
|
52
|
-
|
|
53
|
-
**
|
|
54
|
-
**
|
|
55
|
-
**So that** {이유/가치}
|
|
62
|
+
**As a** {User role}
|
|
63
|
+
**I want** {Desired functionality}
|
|
64
|
+
**So that** {Reason/Value}
|
|
56
65
|
|
|
57
66
|
#### Acceptance Criteria
|
|
58
|
-
|
|
59
|
-
- [ ] {
|
|
67
|
+
|
|
68
|
+
- [ ] {Verifiable condition 1}
|
|
69
|
+
- [ ] {Verifiable condition 2}
|
|
60
70
|
|
|
61
71
|
---
|
|
62
72
|
|
|
63
|
-
## 3. Requirements (EARS
|
|
73
|
+
## 3. Requirements (EARS Format)
|
|
64
74
|
|
|
65
|
-
### REQ-001: {
|
|
75
|
+
### REQ-001: {Requirement Title}
|
|
66
76
|
|
|
67
|
-
**WHEN** {
|
|
68
|
-
**THEN** {
|
|
77
|
+
**WHEN** {Specific condition}
|
|
78
|
+
**THEN** {System behavior} (SHALL | SHOULD | MAY)
|
|
69
79
|
|
|
70
80
|
#### Acceptance Criteria
|
|
71
|
-
|
|
72
|
-
- [ ] {
|
|
81
|
+
|
|
82
|
+
- [ ] {Testable criterion 1}
|
|
83
|
+
- [ ] {Testable criterion 2}
|
|
73
84
|
|
|
74
85
|
#### Example
|
|
75
|
-
|
|
86
|
+
|
|
87
|
+
```text
|
|
76
88
|
Input: {...}
|
|
77
89
|
Output: {...}
|
|
78
90
|
```
|
|
79
91
|
|
|
80
92
|
---
|
|
81
93
|
|
|
82
|
-
## 4.
|
|
94
|
+
## 4. Non-Functional Requirements
|
|
95
|
+
|
|
96
|
+
### Performance
|
|
97
|
+
|
|
98
|
+
- Response time: {Target}
|
|
99
|
+
- Throughput: {Target}
|
|
83
100
|
|
|
84
|
-
###
|
|
85
|
-
- 응답 시간: {목표}
|
|
86
|
-
- 처리량: {목표}
|
|
101
|
+
### Security
|
|
87
102
|
|
|
88
|
-
|
|
89
|
-
-
|
|
90
|
-
- 권한: {규칙}
|
|
103
|
+
- Authentication: {Method}
|
|
104
|
+
- Authorization: {Rules}
|
|
91
105
|
|
|
92
|
-
###
|
|
93
|
-
|
|
106
|
+
### Scalability
|
|
107
|
+
|
|
108
|
+
- Expected growth rate: {Value}
|
|
94
109
|
|
|
95
110
|
---
|
|
96
111
|
|
|
97
|
-
## 5.
|
|
112
|
+
## 5. Data Model (Draft)
|
|
113
|
+
|
|
114
|
+
### Entity: {Name}
|
|
98
115
|
|
|
99
|
-
### Entity: {이름}
|
|
100
116
|
```json
|
|
101
117
|
{
|
|
102
118
|
"field1": "type",
|
|
@@ -106,10 +122,11 @@ Output: {...}
|
|
|
106
122
|
|
|
107
123
|
---
|
|
108
124
|
|
|
109
|
-
## 6. API
|
|
125
|
+
## 6. API Contract (Draft)
|
|
110
126
|
|
|
111
|
-
### Endpoint: {
|
|
112
|
-
|
|
127
|
+
### Endpoint: {Name}
|
|
128
|
+
|
|
129
|
+
```text
|
|
113
130
|
POST /api/v1/resource
|
|
114
131
|
Request: {...}
|
|
115
132
|
Response: {...}
|
|
@@ -117,28 +134,30 @@ Response: {...}
|
|
|
117
134
|
|
|
118
135
|
---
|
|
119
136
|
|
|
120
|
-
## 7.
|
|
137
|
+
## 7. Test Strategy
|
|
121
138
|
|
|
122
|
-
### BDD
|
|
139
|
+
### BDD Scenarios (Gherkin)
|
|
123
140
|
|
|
124
|
-
|
|
141
|
+
**Generate Command**: `vibe feature "{feature name}"`
|
|
125
142
|
|
|
126
143
|
```gherkin
|
|
127
|
-
Scenario: {
|
|
128
|
-
Given {
|
|
129
|
-
When {
|
|
130
|
-
Then {
|
|
144
|
+
Scenario: {Scenario title}
|
|
145
|
+
Given {Precondition}
|
|
146
|
+
When {User action}
|
|
147
|
+
Then {Expected result}
|
|
131
148
|
```
|
|
132
149
|
|
|
133
|
-
|
|
150
|
+
**Mapping**:
|
|
151
|
+
|
|
134
152
|
- REQ-001 → Scenario 1, 2
|
|
135
153
|
- REQ-002 → Scenario 3
|
|
136
154
|
|
|
137
|
-
### Contract Tests (API
|
|
155
|
+
### Contract Tests (API Schema)
|
|
138
156
|
|
|
139
|
-
|
|
157
|
+
**Generate Command**: `vibe contract "{feature name}"`
|
|
140
158
|
|
|
141
159
|
**Backend Contract**:
|
|
160
|
+
|
|
142
161
|
```json
|
|
143
162
|
{
|
|
144
163
|
"request": {
|
|
@@ -154,46 +173,49 @@ Scenario: {시나리오 제목}
|
|
|
154
173
|
```
|
|
155
174
|
|
|
156
175
|
**Frontend Contract**:
|
|
157
|
-
- Mock 서버로 독립 테스트
|
|
158
|
-
- 응답 스키마 검증 (Zod, JSON Schema)
|
|
159
176
|
|
|
160
|
-
|
|
177
|
+
- Independent testing with mock server
|
|
178
|
+
- Response schema validation (Zod, JSON Schema)
|
|
161
179
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
- [ ]
|
|
165
|
-
- [ ]
|
|
180
|
+
### Test Coverage Goals
|
|
181
|
+
|
|
182
|
+
- [ ] BDD: Cover all Acceptance Criteria
|
|
183
|
+
- [ ] Contract: Cover all API endpoints
|
|
184
|
+
- [ ] Unit: 70%+ coverage
|
|
185
|
+
- [ ] Integration: Cover critical paths
|
|
166
186
|
|
|
167
187
|
---
|
|
168
188
|
|
|
169
189
|
## 8. Out of Scope
|
|
170
190
|
|
|
171
|
-
- ❌ {
|
|
172
|
-
- ❌ {
|
|
191
|
+
- ❌ {Excluded item 1}
|
|
192
|
+
- ❌ {Excluded item 2}
|
|
173
193
|
|
|
174
194
|
---
|
|
175
195
|
|
|
176
|
-
## 9.
|
|
196
|
+
## 9. Verification Checklist
|
|
197
|
+
|
|
198
|
+
### Requirements
|
|
199
|
+
|
|
200
|
+
- [ ] Are all requirements testable?
|
|
201
|
+
- [ ] Is SHALL/SHOULD/MAY clear?
|
|
202
|
+
- [ ] Are Acceptance Criteria specific?
|
|
203
|
+
- [ ] Are performance goals measurable?
|
|
177
204
|
|
|
178
|
-
###
|
|
179
|
-
- [ ] 모든 요구사항이 테스트 가능한가?
|
|
180
|
-
- [ ] SHALL/SHOULD/MAY가 명확한가?
|
|
181
|
-
- [ ] Acceptance Criteria가 구체적인가?
|
|
182
|
-
- [ ] 성능 목표가 측정 가능한가?
|
|
205
|
+
### Testing
|
|
183
206
|
|
|
184
|
-
|
|
185
|
-
- [ ]
|
|
186
|
-
- [ ]
|
|
187
|
-
- [ ]
|
|
188
|
-
- [ ] 테스트 커버리지 목표 달성?
|
|
207
|
+
- [ ] BDD Feature file generation complete?
|
|
208
|
+
- [ ] Contract tests defined?
|
|
209
|
+
- [ ] Step Definitions written?
|
|
210
|
+
- [ ] Test coverage goal achieved?
|
|
189
211
|
|
|
190
212
|
---
|
|
191
213
|
|
|
192
|
-
## 10.
|
|
214
|
+
## 10. Approval
|
|
193
215
|
|
|
194
|
-
- [ ]
|
|
195
|
-
- [ ]
|
|
196
|
-
- [ ]
|
|
216
|
+
- [ ] User approval
|
|
217
|
+
- [ ] Technical review complete
|
|
218
|
+
- [ ] Test plan approved
|
|
197
219
|
|
|
198
|
-
|
|
199
|
-
|
|
220
|
+
Approval Date: ____________
|
|
221
|
+
Approver: ____________
|