@su-record/vibe 2.5.21 → 2.6.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.
Files changed (69) hide show
  1. package/CLAUDE.md +122 -2
  2. package/README.md +132 -2
  3. package/commands/vibe.run.md +69 -44
  4. package/commands/vibe.trace.md +161 -0
  5. package/dist/lib/IterationTracker.d.ts +3 -1
  6. package/dist/lib/IterationTracker.d.ts.map +1 -1
  7. package/dist/lib/IterationTracker.js +2 -1
  8. package/dist/lib/IterationTracker.js.map +1 -1
  9. package/dist/lib/constants.d.ts +14 -0
  10. package/dist/lib/constants.d.ts.map +1 -1
  11. package/dist/lib/constants.js +26 -0
  12. package/dist/lib/constants.js.map +1 -1
  13. package/dist/orchestrator/BackgroundManager.d.ts +109 -0
  14. package/dist/orchestrator/BackgroundManager.d.ts.map +1 -0
  15. package/dist/orchestrator/BackgroundManager.js +456 -0
  16. package/dist/orchestrator/BackgroundManager.js.map +1 -0
  17. package/dist/orchestrator/BackgroundManager.test.d.ts +6 -0
  18. package/dist/orchestrator/BackgroundManager.test.d.ts.map +1 -0
  19. package/dist/orchestrator/BackgroundManager.test.js +162 -0
  20. package/dist/orchestrator/BackgroundManager.test.js.map +1 -0
  21. package/dist/orchestrator/PhasePipeline.d.ts +106 -0
  22. package/dist/orchestrator/PhasePipeline.d.ts.map +1 -0
  23. package/dist/orchestrator/PhasePipeline.js +279 -0
  24. package/dist/orchestrator/PhasePipeline.js.map +1 -0
  25. package/dist/orchestrator/backgroundAgent.d.ts +2 -0
  26. package/dist/orchestrator/backgroundAgent.d.ts.map +1 -1
  27. package/dist/orchestrator/backgroundAgent.js +2 -0
  28. package/dist/orchestrator/backgroundAgent.js.map +1 -1
  29. package/dist/orchestrator/index.d.ts +4 -1
  30. package/dist/orchestrator/index.d.ts.map +1 -1
  31. package/dist/orchestrator/index.js +5 -1
  32. package/dist/orchestrator/index.js.map +1 -1
  33. package/dist/tools/index.d.ts +2 -0
  34. package/dist/tools/index.d.ts.map +1 -1
  35. package/dist/tools/index.js +12 -0
  36. package/dist/tools/index.js.map +1 -1
  37. package/dist/tools/spec/index.d.ts +14 -0
  38. package/dist/tools/spec/index.d.ts.map +1 -0
  39. package/dist/tools/spec/index.js +15 -0
  40. package/dist/tools/spec/index.js.map +1 -0
  41. package/dist/tools/spec/prdParser.d.ts +43 -0
  42. package/dist/tools/spec/prdParser.d.ts.map +1 -0
  43. package/dist/tools/spec/prdParser.js +291 -0
  44. package/dist/tools/spec/prdParser.js.map +1 -0
  45. package/dist/tools/spec/prdParser.test.d.ts +6 -0
  46. package/dist/tools/spec/prdParser.test.d.ts.map +1 -0
  47. package/dist/tools/spec/prdParser.test.js +332 -0
  48. package/dist/tools/spec/prdParser.test.js.map +1 -0
  49. package/dist/tools/spec/requirementId.d.ts +65 -0
  50. package/dist/tools/spec/requirementId.d.ts.map +1 -0
  51. package/dist/tools/spec/requirementId.js +161 -0
  52. package/dist/tools/spec/requirementId.js.map +1 -0
  53. package/dist/tools/spec/specGenerator.d.ts +39 -0
  54. package/dist/tools/spec/specGenerator.d.ts.map +1 -0
  55. package/dist/tools/spec/specGenerator.js +426 -0
  56. package/dist/tools/spec/specGenerator.js.map +1 -0
  57. package/dist/tools/spec/specVersioning.d.ts +77 -0
  58. package/dist/tools/spec/specVersioning.d.ts.map +1 -0
  59. package/dist/tools/spec/specVersioning.js +237 -0
  60. package/dist/tools/spec/specVersioning.js.map +1 -0
  61. package/dist/tools/spec/traceabilityMatrix.d.ts +55 -0
  62. package/dist/tools/spec/traceabilityMatrix.d.ts.map +1 -0
  63. package/dist/tools/spec/traceabilityMatrix.js +396 -0
  64. package/dist/tools/spec/traceabilityMatrix.js.map +1 -0
  65. package/dist/tools/spec/traceabilityMatrix.test.d.ts +6 -0
  66. package/dist/tools/spec/traceabilityMatrix.test.d.ts.map +1 -0
  67. package/dist/tools/spec/traceabilityMatrix.test.js +340 -0
  68. package/dist/tools/spec/traceabilityMatrix.test.js.map +1 -0
  69. package/package.json +1 -1
package/CLAUDE.md CHANGED
@@ -40,7 +40,9 @@ Follow these standards when writing code. See `~/.claude/vibe/rules/` (global) f
40
40
  ## Workflow
41
41
 
42
42
  ```
43
- /vibe.spec → /new → /vibe.spec.review → /vibe.run → (auto) code review → ✅ Done
43
+ /vibe.spec → /new → /vibe.spec.review → /vibe.run → /vibe.trace → (auto) code review → ✅ Done
44
+
45
+ Coverage check (v2.6)
44
46
  ```
45
47
 
46
48
  **Flow:**
@@ -117,7 +119,125 @@ Include `ultrawork` or `ulw` keyword to activate maximum performance mode:
117
119
  | `/vibe.utils --ui "description"` | UI preview |
118
120
  | `/vibe.utils --continue` | **Session restore** (load previous context) |
119
121
 
120
- ## New Features (v2.5.15)
122
+ ## New Features (v2.6.0)
123
+
124
+ ### Fire-and-Forget Background Manager
125
+
126
+ Launch background agents without blocking, with automatic concurrency control:
127
+
128
+ ```typescript
129
+ import { launch, poll, cancel, getStats } from '@su-record/vibe/orchestrator';
130
+
131
+ // Fire-and-forget - returns immediately (<100ms)
132
+ const { taskId } = launch({
133
+ prompt: 'Analyze codebase',
134
+ agentName: 'analyzer',
135
+ model: 'claude-sonnet-4-5',
136
+ });
137
+
138
+ // Poll for result later
139
+ const result = await poll(taskId);
140
+
141
+ // Check queue stats
142
+ const stats = getStats();
143
+ ```
144
+
145
+ **Concurrency limits:**
146
+
147
+ | Model | Limit |
148
+ |-------|-------|
149
+ | claude-opus-4 | 3 |
150
+ | claude-sonnet-4-5 | 5 |
151
+ | claude-haiku-* | 8 |
152
+
153
+ **Error types:**
154
+ - `QueueOverflowError`: Queue at capacity (100 tasks max)
155
+ - `TaskTimeoutError`: Task exceeded 3 minutes
156
+ - `PipelineTimeoutError`: Pipeline exceeded 10 minutes
157
+ - `AgentExecutionError`: Agent execution failed
158
+
159
+ ### Phase Pipelining
160
+
161
+ Remove wait time between phases with background preparation:
162
+
163
+ ```typescript
164
+ import { PhasePipeline, createStage, createUltraworkPipeline } from '@su-record/vibe/orchestrator';
165
+
166
+ const pipeline = createUltraworkPipeline('my-feature', [
167
+ createStage('Setup', async (ctx) => { /* ... */ }),
168
+ createStage('Core', async (ctx) => { /* ... */ }),
169
+ createStage('Test', async (ctx) => { /* ... */ }),
170
+ ]);
171
+
172
+ const result = await pipeline.execute();
173
+ // Next phase preparation happens during current phase execution!
174
+ ```
175
+
176
+ ### PRD-to-SPEC Automation
177
+
178
+ Generate SPEC documents from PRD (Product Requirements Document):
179
+
180
+ ```typescript
181
+ import { parsePRD, generateSpecFromPRD } from '@su-record/vibe/tools';
182
+
183
+ // Parse PRD document
184
+ const prd = parsePRD(prdContent, 'login');
185
+
186
+ // Generate SPEC
187
+ const spec = generateSpecFromPRD(prd, {
188
+ techStack: { frontend: 'React', backend: 'Node.js' },
189
+ });
190
+ ```
191
+
192
+ **Supported PRD formats:**
193
+ - Markdown with `## Requirements` sections
194
+ - YAML frontmatter with `requirements:` array
195
+ - Mixed format
196
+
197
+ ### Requirements Traceability Matrix (/vibe.trace)
198
+
199
+ Track requirements coverage across SPEC → Feature → Test:
200
+
201
+ ```bash
202
+ /vibe.trace "login" # Generate RTM
203
+ /vibe.trace "login" --html # HTML output
204
+ /vibe.trace "login" --save # Save to file
205
+ ```
206
+
207
+ ```typescript
208
+ import { generateTraceabilityMatrix, formatMatrixAsMarkdown } from '@su-record/vibe/tools';
209
+
210
+ const matrix = generateTraceabilityMatrix('login');
211
+ const markdown = formatMatrixAsMarkdown(matrix);
212
+ ```
213
+
214
+ **Coverage levels:**
215
+ | Level | Meaning |
216
+ |-------|---------|
217
+ | Full (✅) | SPEC + Feature + Test all mapped |
218
+ | Partial (⚠️) | Missing one or more mappings |
219
+ | None (❌) | Only in SPEC |
220
+
221
+ ### SPEC Versioning
222
+
223
+ Git-integrated version control for SPEC documents:
224
+
225
+ ```typescript
226
+ import { bumpSpecVersion, createGitTag, generateChangelog } from '@su-record/vibe/tools';
227
+
228
+ // Bump version (major/minor/patch)
229
+ const newVersion = bumpSpecVersion(specPath, 'minor', [
230
+ { type: 'added', description: 'New login feature' },
231
+ ]);
232
+
233
+ // Create git tag
234
+ createGitTag('login', newVersion.version);
235
+
236
+ // Generate changelog
237
+ const changelog = generateChangelog(versionHistory);
238
+ ```
239
+
240
+ ## Previous Features (v2.5.15)
121
241
 
122
242
  ### Rule Build System
123
243
 
package/README.md CHANGED
@@ -39,6 +39,7 @@ vibe init
39
39
  | `/vibe.run "feature"` | Execute implementation |
40
40
  | `/vibe.run "feature" ultrawork` | Maximum performance mode |
41
41
  | `/vibe.verify "feature"` | BDD verification |
42
+ | `/vibe.trace "feature"` | Requirements traceability matrix (v2.6) |
42
43
  | `/vibe.review` | 13+ agent parallel review |
43
44
  | `/vibe.analyze` | Code analysis |
44
45
  | `/vibe.reason "problem"` | Systematic reasoning |
@@ -47,13 +48,19 @@ vibe init
47
48
  ## Workflow
48
49
 
49
50
  ```
50
- /vibe.spec → /vibe.run → /vibe.verify → /vibe.review
51
+ /vibe.spec → /vibe.run → /vibe.trace → /vibe.verify → /vibe.review
52
+
53
+ Coverage check (v2.6)
51
54
  ```
52
55
 
53
56
  ## Key Features
54
57
 
55
58
  | Feature | Description |
56
59
  |---------|-------------|
60
+ | **Fire-and-Forget Agents (v2.6)** | Non-blocking background execution with instant handle return |
61
+ | **Phase Pipelining (v2.6)** | Prepare next phase during current execution |
62
+ | **PRD-to-SPEC Automation (v2.6)** | Auto-generate SPEC from PRD documents |
63
+ | **Traceability Matrix (v2.6)** | REQ → SPEC → Feature → Test coverage tracking |
57
64
  | **Multi-LLM Research (v2.5)** | Claude + GPT + Gemini 3-way validation during SPEC research |
58
65
  | **Multi-model orchestration** | Claude + GPT-5.2 + Gemini 3 Pro |
59
66
  | **13+ parallel review agents** | Security, performance, architecture |
@@ -61,7 +68,7 @@ vibe init
61
68
  | **Large SPEC auto-split** | 5+ phases auto-split into phase files |
62
69
  | **BDD auto verification** | Given/When/Then scenario verification |
63
70
  | **ULTRAWORK mode** | One keyword enables all optimizations |
64
- | **25 built-in tools** | Code analysis, memory management, quality validation |
71
+ | **30+ built-in tools** | Code analysis, memory management, quality validation |
65
72
  | **Auto context management** | 80%+ auto-save, session restore |
66
73
  | **23 language presets** | TypeScript, Python, Go, Rust, Swift, Kotlin, C#, Ruby, Dart, GDScript |
67
74
 
@@ -76,11 +83,134 @@ Enable maximum performance with `ultrawork` or `ulw`:
76
83
 
77
84
  **Enabled features:**
78
85
  - Parallel subagent exploration (3+ concurrent)
86
+ - **Background agents** (v2.6) - Prepare next phase during implementation
87
+ - **Phase pipelining** (v2.6) - Zero wait time between phases
79
88
  - Boulder Loop (auto-progress until all scenarios complete)
80
89
  - Auto-retry on errors (max 3)
81
90
  - Continuous execution without phase confirmation
82
91
  - Auto-save at 80%+ context
83
92
 
93
+ ## Fire-and-Forget Background Manager (v2.6)
94
+
95
+ Non-blocking task execution with instant response:
96
+
97
+ ```typescript
98
+ import { launch, poll, getStats } from '@su-record/vibe/orchestrator';
99
+
100
+ // Fire-and-forget: returns immediately (<100ms)
101
+ const { taskId } = launch({
102
+ prompt: 'Analyze codebase security',
103
+ agentName: 'security-agent',
104
+ model: 'claude-sonnet-4-5'
105
+ });
106
+
107
+ // Poll for result later
108
+ const result = await poll(taskId);
109
+
110
+ // Check queue stats
111
+ const stats = getStats();
112
+ ```
113
+
114
+ **Concurrency limits:**
115
+
116
+ | Model | Concurrent Limit |
117
+ |--------|------------------|
118
+ | Opus | 3 |
119
+ | Sonnet | 5 |
120
+ | Haiku | 8 |
121
+
122
+ **Queue features:**
123
+
124
+ - Bounded queue (max 100 tasks)
125
+ - Per-model rate limiting
126
+ - Task timeout: 180s individual, 10min pipeline
127
+ - Automatic cleanup (24h TTL)
128
+
129
+ ## Phase Pipelining (v2.6)
130
+
131
+ Prepare next phase while current phase executes:
132
+
133
+ ```
134
+ Phase N execution │ Background: Phase N+1 preparation
135
+ ──────────────────────┼──────────────────────────────────
136
+ [Implementing...] │ [Analyzing files for next phase]
137
+ [Testing...] │ [Pre-generating test cases]
138
+ [Complete] │ [Ready to start immediately!]
139
+
140
+ Phase N+1 starts with ZERO wait time
141
+ ```
142
+
143
+ **Speed comparison:**
144
+
145
+ | Mode | 5 Phases Total |
146
+ |---------------------------|----------------|
147
+ | Sequential | ~10min |
148
+ | Parallel Exploration | ~7.5min |
149
+ | **ULTRAWORK + Pipeline** | **~5min** |
150
+
151
+ ## PRD-to-SPEC Automation (v2.6)
152
+
153
+ Auto-generate SPEC from PRD documents:
154
+
155
+ ```typescript
156
+ import { parsePRD } from '@su-record/vibe/tools';
157
+
158
+ // Parse PRD (supports Markdown, YAML frontmatter)
159
+ const prd = parsePRD(prdContent, 'login-feature');
160
+
161
+ // Extracted requirements with auto-generated IDs
162
+ // REQ-login-001, REQ-login-002, ...
163
+ ```
164
+
165
+ **Requirement ID System:**
166
+
167
+ - Format: `REQ-{feature}-{number}`
168
+ - Auto-deduplication
169
+ - Priority inference from keywords (must, should, nice-to-have)
170
+
171
+ ## Requirements Traceability Matrix (v2.6)
172
+
173
+ Track coverage from requirements to tests:
174
+
175
+ ```bash
176
+ /vibe.trace "feature-name" # Generate RTM
177
+ ```
178
+
179
+ **RTM tracks:**
180
+
181
+ ```
182
+ REQ-login-001 → SPEC Phase 1 → Feature Scenario 1 → login.test.ts
183
+ REQ-login-002 → SPEC Phase 2 → Feature Scenario 3 → auth.test.ts
184
+ ```
185
+
186
+ **Coverage report:**
187
+
188
+ - Requirements coverage %
189
+ - Missing implementations
190
+ - Untested features
191
+ - Export: Markdown, HTML
192
+
193
+ ## SPEC Versioning (v2.6)
194
+
195
+ Automatic version management for SPEC documents:
196
+
197
+ ```typescript
198
+ import { bumpVersion, generateChangelog } from '@su-record/vibe/tools';
199
+
200
+ // Auto-bump version on SPEC changes
201
+ await bumpVersion('feature-name', 'minor');
202
+
203
+ // Generate changelog
204
+ await generateChangelog('feature-name');
205
+ ```
206
+
207
+ **Features:**
208
+
209
+ - Semantic versioning (major.minor.patch)
210
+ - Git tag integration
211
+ - Automatic changelog generation
212
+ - Baseline tagging for releases
213
+
84
214
  ## Multi-model Orchestration
85
215
 
86
216
  **Hook-based automatic routing** - Keywords in your prompt trigger the right LLM automatically:
@@ -162,7 +162,7 @@ Like Sisyphus rolling the boulder, ULTRAWORK **keeps going until done**:
162
162
 
163
163
  **Problem**: AI often claims "complete" when implementation is partial.
164
164
 
165
- **Solution**: Self-referential completion verification with iteration tracking.
165
+ **Solution**: RTM-based automated coverage verification with iteration tracking.
166
166
 
167
167
  ```
168
168
  ┌─────────────────────────────────────────────────────────────────┐
@@ -171,50 +171,69 @@ Like Sisyphus rolling the boulder, ULTRAWORK **keeps going until done**:
171
171
  │ After ALL phases complete: │
172
172
  │ │
173
173
  │ ┌──────────────────────────────────────────────────────────┐ │
174
- │ │ COMPLETION VERIFICATION [Iteration {{ITER}}/{{MAX}}] │ │
174
+ │ │ RTM COVERAGE VERIFICATION [Iteration {{ITER}}/{{MAX}}] │ │
175
175
  │ │ │ │
176
- │ │ Compare ORIGINAL REQUEST vs IMPLEMENTATION: │ │
176
+ │ │ Generate RTM via vibe tools: │ │
177
+ │ │ → generateTraceabilityMatrix("{feature-name}") │ │
177
178
  │ │ │ │
178
- │ │ All SPEC requirements implemented? │ │
179
- │ │ □ All acceptance criteria passing? │ │
180
- │ │ □ All scenarios in Feature file complete? │ │
179
+ │ │ Coverage Metrics (automated): │ │
180
+ │ │ □ Requirements coverage: {coveragePercent}% │ │
181
+ │ │ □ SPEC Feature mapping: {featureCovered}/{total} │ │
182
+ │ │ □ Feature → Test mapping: {testCovered}/{total} │ │
181
183
  │ │ □ Build successful? │ │
182
184
  │ │ □ Tests passing? │ │
183
- │ │ □ No TODO/FIXME left unaddressed? │ │
184
- │ │ □ No partial implementations? │ │
185
185
  │ │ │ │
186
- │ │ MISSING: [List any gaps] │ │
186
+ │ │ UNCOVERED: {uncoveredRequirements[]} │ │
187
187
  │ └──────────────────────────────────────────────────────────┘ │
188
188
  │ │ │
189
189
  │ ┌──────────┴──────────┐ │
190
- │ │ 100% Complete? │ │
190
+ │ │ Coverage ≥ 95%? │ │
191
191
  │ └──────────┬──────────┘ │
192
192
  │ │ │ │
193
193
  │ NO YES │
194
194
  │ │ │ │
195
195
  │ ↓ ↓ │
196
196
  │ ┌────────────────┐ ┌────────────────┐ │
197
- │ │ IDENTIFY GAPS │ │ ✅ TRULY DONE │ │
198
- │ │ + FIX THEM │ │ │ │
199
- │ │ (no scope │ │ Report final │ │
200
- │ │ reduction!) │ │ completion │ │
197
+ │ │ IMPLEMENT │ │ ✅ TRULY DONE │ │
198
+ │ │ UNCOVERED │ │ │ │
199
+ │ │ REQUIREMENTS │ │ Report final │ │
200
+ │ │ (auto-extract) │ │ RTM coverage │ │
201
201
  │ └───────┬────────┘ └────────────────┘ │
202
202
  │ │ │
203
- │ └──────────→ [Back to Phase]
203
+ │ └──────────→ [Re-generate RTM]
204
204
  │ │
205
205
  │ MAX_ITERATIONS: 5 (prevent infinite loops) │
206
+ │ COVERAGE_THRESHOLD: 95% (quality gate) │
206
207
  │ ZERO TOLERANCE for scope reduction │
207
208
  └─────────────────────────────────────────────────────────────────┘
208
209
  ```
209
210
 
211
+ **Ralph Loop with RTM:**
212
+
213
+ ```bash
214
+ # Generate RTM for coverage verification
215
+ node -e "import('@su-record/vibe/tools').then(t => t.generateTraceabilityMatrix('{feature-name}', {projectPath: process.cwd()}).then(r => console.log(JSON.stringify(r, null, 2))))"
216
+ ```
217
+
218
+ **RTM provides automated metrics:**
219
+
220
+ | Metric | Description |
221
+ |--------|-------------|
222
+ | `totalRequirements` | Total REQ-* items in SPEC |
223
+ | `specCovered` | Requirements with SPEC mapping |
224
+ | `featureCovered` | Requirements with Feature scenarios |
225
+ | `testCovered` | Requirements with test files |
226
+ | `coveragePercent` | Overall coverage percentage |
227
+ | `uncoveredRequirements` | List of missing REQ-* IDs |
228
+
210
229
  **Ralph Loop Rules:**
211
230
 
212
231
  | Rule | Description |
213
232
  |------|-------------|
214
233
  | **No Scope Reduction** | Never say "simplified" or "basic version" - implement FULL request |
215
234
  | **Iteration Tracking** | Display `[{{ITER}}/{{MAX}}]` to show progress |
216
- | **Explicit Gap List** | List EVERY missing item before fixing |
217
- | **Self-Referential** | Compare against ORIGINAL request, not current state |
235
+ | **RTM-Based Gap List** | Use `uncoveredRequirements` array - no manual comparison |
236
+ | **Coverage Threshold** | Must reach 95% coverage to complete |
218
237
  | **Max Iterations** | Stop at 5 iterations (report remaining gaps) |
219
238
 
220
239
  **Ralph Loop Output Format:**
@@ -224,49 +243,55 @@ Like Sisyphus rolling the boulder, ULTRAWORK **keeps going until done**:
224
243
  🔄 RALPH VERIFICATION [Iteration 1/5]
225
244
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
226
245
 
227
- Original Request: "Full login page with form, validation, API integration"
246
+ 📊 RTM Coverage Report: login
247
+
248
+ Requirements Traceability:
249
+ Total Requirements: 9
250
+ SPEC Covered: 9/9 (100%)
251
+ Feature Covered: 5/9 (55%)
252
+ Test Covered: 4/9 (44%)
228
253
 
229
- Checking against SPEC requirements:
230
- Login form UI - implemented
231
- Email validation - implemented
232
- Password validation - implemented
233
- Remember me checkbox - NOT FOUND
234
- Forgot password link - NOT FOUND
235
- API integration - implemented
236
- Loading state - NOT FOUND
237
- Error toast notifications - NOT FOUND
254
+ REQ-login-001: Login form UI → Scenario 1 → login.test.ts
255
+ REQ-login-002: Email validation Scenario 2 → validation.test.ts
256
+ REQ-login-003: Password validation Scenario 2 → validation.test.ts
257
+ REQ-login-004: Remember me checkbox → NOT IMPLEMENTED
258
+ REQ-login-005: Forgot password link NOT IMPLEMENTED
259
+ REQ-login-006: API integration Scenario 3 → api.test.ts
260
+ REQ-login-007: Loading state → NOT IMPLEMENTED
261
+ REQ-login-008: Error toast NOT IMPLEMENTED
262
+ REQ-login-009: Session storage Scenario 4 → (no test)
238
263
 
239
- Completion: 5/9 (55%)
264
+ Overall Coverage: 55% ⚠️ BELOW 95% THRESHOLD
240
265
 
241
- GAPS IDENTIFIED:
242
- 1. Remember me checkbox (SPEC line 24)
243
- 2. Forgot password link (SPEC line 28)
244
- 3. Loading state during API call (SPEC line 35)
245
- 4. Error toast notifications (SPEC line 42)
266
+ UNCOVERED REQUIREMENTS (auto-extracted from RTM):
267
+ 1. REQ-login-004: Remember me checkbox
268
+ 2. REQ-login-005: Forgot password link
269
+ 3. REQ-login-007: Loading state
270
+ 4. REQ-login-008: Error toast notifications
246
271
 
247
- ⚠️ NOT COMPLETE - Continuing implementation...
272
+ ⚠️ NOT COMPLETE - Implementing uncovered requirements...
248
273
 
249
274
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
250
275
  🔄 RALPH VERIFICATION [Iteration 2/5]
251
276
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
252
277
 
253
- Checking against SPEC requirements:
254
- ✅ Login form UI - implemented
255
- ✅ Email validation - implemented
256
- ✅ Password validation - implemented
257
- ✅ Remember me checkbox - implemented
258
- ✅ Forgot password link - implemented
259
- ✅ API integration - implemented
260
- ✅ Loading state - implemented
261
- ✅ Error toast notifications - implemented
278
+ 📊 RTM Coverage Report: login
262
279
 
263
- Completion: 9/9 (100%)
280
+ Requirements Traceability:
281
+ Total Requirements: 9
282
+ SPEC Covered: 9/9 (100%)
283
+ Feature Covered: 9/9 (100%)
284
+ Test Covered: 9/9 (100%)
285
+
286
+ Overall Coverage: 100% ✅ ABOVE 95% THRESHOLD
264
287
 
265
288
  Build: ✅ Passed
266
289
  Tests: ✅ 12/12 Passed
267
290
  Type Check: ✅ No errors
268
291
 
269
292
  ✅ RALPH VERIFIED COMPLETE!
293
+
294
+ 📄 RTM saved: .claude/vibe/rtm/login-rtm.md
270
295
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
271
296
  ```
272
297
 
@@ -0,0 +1,161 @@
1
+ # /vibe.trace
2
+
3
+ Generate and display Requirements Traceability Matrix (RTM).
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ /vibe.trace "feature-name" # Generate RTM for feature
9
+ /vibe.trace "feature-name" --html # Output as HTML
10
+ /vibe.trace "feature-name" --save # Save to file
11
+ ```
12
+
13
+ ## Description
14
+
15
+ Requirements Traceability Matrix (RTM) tracks the relationship between:
16
+ - **Requirements** (REQ-xxx-xxx)
17
+ - **SPEC sections** (Phase tasks)
18
+ - **Feature scenarios** (BDD)
19
+ - **Test files** (unit/integration tests)
20
+
21
+ ## Process
22
+
23
+ ### 1. Load Files
24
+
25
+ ```
26
+ 📄 .claude/vibe/specs/{feature-name}.md → SPEC
27
+ 📄 .claude/vibe/features/{feature-name}.feature → Feature
28
+ 📄 src/**/*.test.ts → Tests (auto-detect)
29
+ ```
30
+
31
+ ### 2. Extract Mappings
32
+
33
+ For each requirement ID (REQ-xxx-xxx):
34
+ 1. Find corresponding SPEC section
35
+ 2. Find matching Feature scenario
36
+ 3. Find related test file
37
+
38
+ ### 3. Calculate Coverage
39
+
40
+ ```
41
+ Coverage = (Full coverage items / Total requirements) × 100%
42
+
43
+ Full coverage = Has SPEC + Feature + Test
44
+ Partial = Missing one or more
45
+ None = Only in SPEC
46
+ ```
47
+
48
+ ### 4. Output RTM
49
+
50
+ ```
51
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
52
+ 📊 REQUIREMENTS TRACEABILITY MATRIX: {feature-name}
53
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
54
+
55
+ ## Summary
56
+ | Metric | Value |
57
+ |-------------------|----------|
58
+ | Total Requirements| 10 |
59
+ | SPEC Coverage | 10/10 |
60
+ | Feature Coverage | 8/10 |
61
+ | Test Coverage | 6/10 |
62
+ | **Overall** | **60%** |
63
+
64
+ ## Traceability Matrix
65
+
66
+ | Requirement | SPEC | Feature | Test | Coverage |
67
+ |-------------|------|---------|------|----------|
68
+ | REQ-login-001 | ✅ Phase 1 | ✅ Scenario 1 | ✅ login.test.ts | ✅ Full |
69
+ | REQ-login-002 | ✅ Phase 1 | ✅ Scenario 2 | ❌ | ⚠️ Partial |
70
+ | REQ-login-003 | ✅ Phase 2 | ❌ | ❌ | ❌ None |
71
+
72
+ ## Uncovered Requirements
73
+
74
+ The following requirements lack full coverage:
75
+
76
+ - **REQ-login-002**: Password validation
77
+ - Missing: Test file
78
+
79
+ - **REQ-login-003**: Remember me functionality
80
+ - Missing: Feature scenario, Test file
81
+
82
+ ## Recommendations
83
+
84
+ ⚠️ Coverage is at 60%. Consider:
85
+ - Add Feature scenarios for uncovered requirements
86
+ - Add test cases for uncovered requirements
87
+
88
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
89
+ ```
90
+
91
+ ## Example
92
+
93
+ ```
94
+ User: /vibe.trace "login"
95
+
96
+ Claude:
97
+ 📊 Generating RTM for "login"...
98
+
99
+ Loading files:
100
+ ✅ SPEC: .claude/vibe/specs/login.md (5 requirements)
101
+ ✅ Feature: .claude/vibe/features/login.feature (4 scenarios)
102
+ ✅ Tests: 3 test files found
103
+
104
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
105
+ 📊 REQUIREMENTS TRACEABILITY MATRIX: login
106
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
107
+
108
+ ## Summary
109
+ | Metric | Value |
110
+ |-------------------|----------|
111
+ | Total Requirements| 5 |
112
+ | SPEC Coverage | 5/5 |
113
+ | Feature Coverage | 4/5 |
114
+ | Test Coverage | 3/5 |
115
+ | **Overall** | **60%** |
116
+
117
+ ## Traceability Matrix
118
+
119
+ | Requirement | SPEC | Feature | Test | Coverage |
120
+ |-------------|------|---------|------|----------|
121
+ | REQ-login-001 | ✅ | ✅ | ✅ | ✅ Full |
122
+ | REQ-login-002 | ✅ | ✅ | ✅ | ✅ Full |
123
+ | REQ-login-003 | ✅ | ✅ | ✅ | ✅ Full |
124
+ | REQ-login-004 | ✅ | ✅ | ❌ | ⚠️ Partial |
125
+ | REQ-login-005 | ✅ | ❌ | ❌ | ❌ None |
126
+
127
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
128
+ ```
129
+
130
+ ## Tool Integration
131
+
132
+ The RTM generation uses vibe tools:
133
+
134
+ ```bash
135
+ # Generate RTM
136
+ node -e "import('@su-record/vibe/tools').then(t => t.generateTraceabilityMatrix('login').then(m => console.log(t.formatMatrixAsMarkdown(m))))"
137
+
138
+ # Generate HTML
139
+ node -e "import('@su-record/vibe/tools').then(t => t.generateTraceabilityMatrix('login').then(m => console.log(t.formatMatrixAsHtml(m))))"
140
+ ```
141
+
142
+ ## Options
143
+
144
+ | Option | Description |
145
+ |--------|-------------|
146
+ | `--html` | Output as HTML file |
147
+ | `--save` | Save to `.claude/vibe/reports/{feature}-rtm.md` |
148
+ | `--json` | Output as JSON |
149
+
150
+ ## Coverage Targets
151
+
152
+ | Coverage Level | Status |
153
+ |----------------|--------|
154
+ | 90-100% | ✅ Excellent - Ready for release |
155
+ | 70-89% | ⚠️ Good - Minor gaps |
156
+ | 50-69% | ⚠️ Fair - Significant gaps |
157
+ | 0-49% | ❌ Poor - Major gaps |
158
+
159
+ ---
160
+
161
+ ARGUMENTS: {feature-name}
@@ -20,11 +20,13 @@ export interface IterationState {
20
20
  maxRetries: number;
21
21
  startTime: Date;
22
22
  endTime?: Date;
23
+ /** 파이프라인 모드 활성화 여부 (v2.6.0) */
24
+ pipelineEnabled?: boolean;
23
25
  }
24
26
  /**
25
27
  * 새 작업 시작
26
28
  */
27
- export declare function startIteration(featureName: string, phaseNames: string[], isUltrawork?: boolean, maxRetries?: number): IterationState;
29
+ export declare function startIteration(featureName: string, phaseNames: string[], isUltrawork?: boolean, maxRetries?: number, pipelineEnabled?: boolean): IterationState;
28
30
  /**
29
31
  * Phase 시작
30
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IterationTracker.d.ts","sourceRoot":"","sources":["../../src/lib/IterationTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACxE,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,GAAE,OAAe,EAC5B,UAAU,GAAE,MAAU,GACrB,cAAc,CAiBhB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAWpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAUvE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAahH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAQzD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,cAAc,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,GAAE,cAA8B,GAAG,MAAM,CAwB5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMpG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgBrE;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAalH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB/D"}
1
+ {"version":3,"file":"IterationTracker.d.ts","sourceRoot":"","sources":["../../src/lib/IterationTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACxE,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,+BAA+B;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,GAAE,OAAe,EAC5B,UAAU,GAAE,MAAU,EACtB,eAAe,GAAE,OAAe,GAC/B,cAAc,CAkBhB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAWpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAUvE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAahH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAQzD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,cAAc,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,GAAE,cAA8B,GAAG,MAAM,CAwB5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMpG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgBrE;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAalH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB/D"}