@su-record/vibe 2.5.21 → 2.6.1

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 (81) hide show
  1. package/CLAUDE.md +154 -2
  2. package/README.md +132 -2
  3. package/commands/vibe.run.md +69 -44
  4. package/commands/vibe.spec.md +83 -0
  5. package/commands/vibe.trace.md +161 -0
  6. package/dist/cli/index.d.ts.map +1 -1
  7. package/dist/cli/index.js +5 -3
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/lib/IterationTracker.d.ts +3 -1
  10. package/dist/lib/IterationTracker.d.ts.map +1 -1
  11. package/dist/lib/IterationTracker.js +2 -1
  12. package/dist/lib/IterationTracker.js.map +1 -1
  13. package/dist/lib/constants.d.ts +14 -0
  14. package/dist/lib/constants.d.ts.map +1 -1
  15. package/dist/lib/constants.js +26 -0
  16. package/dist/lib/constants.js.map +1 -1
  17. package/dist/orchestrator/BackgroundManager.d.ts +109 -0
  18. package/dist/orchestrator/BackgroundManager.d.ts.map +1 -0
  19. package/dist/orchestrator/BackgroundManager.js +456 -0
  20. package/dist/orchestrator/BackgroundManager.js.map +1 -0
  21. package/dist/orchestrator/BackgroundManager.test.d.ts +6 -0
  22. package/dist/orchestrator/BackgroundManager.test.d.ts.map +1 -0
  23. package/dist/orchestrator/BackgroundManager.test.js +162 -0
  24. package/dist/orchestrator/BackgroundManager.test.js.map +1 -0
  25. package/dist/orchestrator/PhasePipeline.d.ts +106 -0
  26. package/dist/orchestrator/PhasePipeline.d.ts.map +1 -0
  27. package/dist/orchestrator/PhasePipeline.js +279 -0
  28. package/dist/orchestrator/PhasePipeline.js.map +1 -0
  29. package/dist/orchestrator/backgroundAgent.d.ts +2 -0
  30. package/dist/orchestrator/backgroundAgent.d.ts.map +1 -1
  31. package/dist/orchestrator/backgroundAgent.js +2 -0
  32. package/dist/orchestrator/backgroundAgent.js.map +1 -1
  33. package/dist/orchestrator/index.d.ts +4 -1
  34. package/dist/orchestrator/index.d.ts.map +1 -1
  35. package/dist/orchestrator/index.js +5 -1
  36. package/dist/orchestrator/index.js.map +1 -1
  37. package/dist/tools/index.d.ts +4 -0
  38. package/dist/tools/index.d.ts.map +1 -1
  39. package/dist/tools/index.js +14 -0
  40. package/dist/tools/index.js.map +1 -1
  41. package/dist/tools/interaction/askUser.d.ts +115 -0
  42. package/dist/tools/interaction/askUser.d.ts.map +1 -0
  43. package/dist/tools/interaction/askUser.js +504 -0
  44. package/dist/tools/interaction/askUser.js.map +1 -0
  45. package/dist/tools/interaction/index.d.ts +8 -0
  46. package/dist/tools/interaction/index.d.ts.map +1 -0
  47. package/dist/tools/interaction/index.js +17 -0
  48. package/dist/tools/interaction/index.js.map +1 -0
  49. package/dist/tools/spec/index.d.ts +14 -0
  50. package/dist/tools/spec/index.d.ts.map +1 -0
  51. package/dist/tools/spec/index.js +15 -0
  52. package/dist/tools/spec/index.js.map +1 -0
  53. package/dist/tools/spec/prdParser.d.ts +43 -0
  54. package/dist/tools/spec/prdParser.d.ts.map +1 -0
  55. package/dist/tools/spec/prdParser.js +291 -0
  56. package/dist/tools/spec/prdParser.js.map +1 -0
  57. package/dist/tools/spec/prdParser.test.d.ts +6 -0
  58. package/dist/tools/spec/prdParser.test.d.ts.map +1 -0
  59. package/dist/tools/spec/prdParser.test.js +332 -0
  60. package/dist/tools/spec/prdParser.test.js.map +1 -0
  61. package/dist/tools/spec/requirementId.d.ts +65 -0
  62. package/dist/tools/spec/requirementId.d.ts.map +1 -0
  63. package/dist/tools/spec/requirementId.js +161 -0
  64. package/dist/tools/spec/requirementId.js.map +1 -0
  65. package/dist/tools/spec/specGenerator.d.ts +39 -0
  66. package/dist/tools/spec/specGenerator.d.ts.map +1 -0
  67. package/dist/tools/spec/specGenerator.js +426 -0
  68. package/dist/tools/spec/specGenerator.js.map +1 -0
  69. package/dist/tools/spec/specVersioning.d.ts +77 -0
  70. package/dist/tools/spec/specVersioning.d.ts.map +1 -0
  71. package/dist/tools/spec/specVersioning.js +237 -0
  72. package/dist/tools/spec/specVersioning.js.map +1 -0
  73. package/dist/tools/spec/traceabilityMatrix.d.ts +55 -0
  74. package/dist/tools/spec/traceabilityMatrix.d.ts.map +1 -0
  75. package/dist/tools/spec/traceabilityMatrix.js +396 -0
  76. package/dist/tools/spec/traceabilityMatrix.js.map +1 -0
  77. package/dist/tools/spec/traceabilityMatrix.test.d.ts +6 -0
  78. package/dist/tools/spec/traceabilityMatrix.test.d.ts.map +1 -0
  79. package/dist/tools/spec/traceabilityMatrix.test.js +340 -0
  80. package/dist/tools/spec/traceabilityMatrix.test.js.map +1 -0
  81. package/package.json +2 -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,157 @@ 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.x)
123
+
124
+ ### Structured User Questions (v2.6.1)
125
+
126
+ Use `askUser` tool for critical requirements that must not be missed:
127
+
128
+ ```typescript
129
+ import { askUser, askUserQuick } from '@su-record/vibe/tools';
130
+
131
+ // Quick helper for login features
132
+ const result = await askUserQuick.login('my-login');
133
+
134
+ // Custom categories
135
+ const result = await askUser({
136
+ featureName: 'dashboard',
137
+ categories: ['authentication', 'security', 'session'],
138
+ });
139
+ ```
140
+
141
+ **Available categories:**
142
+ | Category | Questions |
143
+ |----------|-----------|
144
+ | `authentication` | Auth method, MFA |
145
+ | `security` | Password policy, rate limit |
146
+ | `session` | Duration, concurrent login |
147
+ | `data_model` | Profile fields |
148
+ | `performance` | Response time targets |
149
+ | `integration` | External services |
150
+
151
+ **When to use:**
152
+ - ✅ Critical: auth, security, session → `askUser`
153
+ - ❌ Exploratory: scope, style → Natural conversation
154
+ - ⚠️ ultrawork mode: skipped (uses defaults)
155
+
156
+ ### Fire-and-Forget Background Manager
157
+
158
+ Launch background agents without blocking, with automatic concurrency control:
159
+
160
+ ```typescript
161
+ import { launch, poll, cancel, getStats } from '@su-record/vibe/orchestrator';
162
+
163
+ // Fire-and-forget - returns immediately (<100ms)
164
+ const { taskId } = launch({
165
+ prompt: 'Analyze codebase',
166
+ agentName: 'analyzer',
167
+ model: 'claude-sonnet-4-5',
168
+ });
169
+
170
+ // Poll for result later
171
+ const result = await poll(taskId);
172
+
173
+ // Check queue stats
174
+ const stats = getStats();
175
+ ```
176
+
177
+ **Concurrency limits:**
178
+
179
+ | Model | Limit |
180
+ |-------|-------|
181
+ | claude-opus-4 | 3 |
182
+ | claude-sonnet-4-5 | 5 |
183
+ | claude-haiku-* | 8 |
184
+
185
+ **Error types:**
186
+ - `QueueOverflowError`: Queue at capacity (100 tasks max)
187
+ - `TaskTimeoutError`: Task exceeded 3 minutes
188
+ - `PipelineTimeoutError`: Pipeline exceeded 10 minutes
189
+ - `AgentExecutionError`: Agent execution failed
190
+
191
+ ### Phase Pipelining
192
+
193
+ Remove wait time between phases with background preparation:
194
+
195
+ ```typescript
196
+ import { PhasePipeline, createStage, createUltraworkPipeline } from '@su-record/vibe/orchestrator';
197
+
198
+ const pipeline = createUltraworkPipeline('my-feature', [
199
+ createStage('Setup', async (ctx) => { /* ... */ }),
200
+ createStage('Core', async (ctx) => { /* ... */ }),
201
+ createStage('Test', async (ctx) => { /* ... */ }),
202
+ ]);
203
+
204
+ const result = await pipeline.execute();
205
+ // Next phase preparation happens during current phase execution!
206
+ ```
207
+
208
+ ### PRD-to-SPEC Automation
209
+
210
+ Generate SPEC documents from PRD (Product Requirements Document):
211
+
212
+ ```typescript
213
+ import { parsePRD, generateSpecFromPRD } from '@su-record/vibe/tools';
214
+
215
+ // Parse PRD document
216
+ const prd = parsePRD(prdContent, 'login');
217
+
218
+ // Generate SPEC
219
+ const spec = generateSpecFromPRD(prd, {
220
+ techStack: { frontend: 'React', backend: 'Node.js' },
221
+ });
222
+ ```
223
+
224
+ **Supported PRD formats:**
225
+ - Markdown with `## Requirements` sections
226
+ - YAML frontmatter with `requirements:` array
227
+ - Mixed format
228
+
229
+ ### Requirements Traceability Matrix (/vibe.trace)
230
+
231
+ Track requirements coverage across SPEC → Feature → Test:
232
+
233
+ ```bash
234
+ /vibe.trace "login" # Generate RTM
235
+ /vibe.trace "login" --html # HTML output
236
+ /vibe.trace "login" --save # Save to file
237
+ ```
238
+
239
+ ```typescript
240
+ import { generateTraceabilityMatrix, formatMatrixAsMarkdown } from '@su-record/vibe/tools';
241
+
242
+ const matrix = generateTraceabilityMatrix('login');
243
+ const markdown = formatMatrixAsMarkdown(matrix);
244
+ ```
245
+
246
+ **Coverage levels:**
247
+ | Level | Meaning |
248
+ |-------|---------|
249
+ | Full (✅) | SPEC + Feature + Test all mapped |
250
+ | Partial (⚠️) | Missing one or more mappings |
251
+ | None (❌) | Only in SPEC |
252
+
253
+ ### SPEC Versioning
254
+
255
+ Git-integrated version control for SPEC documents:
256
+
257
+ ```typescript
258
+ import { bumpSpecVersion, createGitTag, generateChangelog } from '@su-record/vibe/tools';
259
+
260
+ // Bump version (major/minor/patch)
261
+ const newVersion = bumpSpecVersion(specPath, 'minor', [
262
+ { type: 'added', description: 'New login feature' },
263
+ ]);
264
+
265
+ // Create git tag
266
+ createGitTag('login', newVersion.version);
267
+
268
+ // Generate changelog
269
+ const changelog = generateChangelog(versionHistory);
270
+ ```
271
+
272
+ ## Previous Features (v2.5.15)
121
273
 
122
274
  ### Rule Build System
123
275
 
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
 
@@ -218,6 +218,89 @@ $ git checkout -b feature/login-page
218
218
  - Tech stack: Confirm existing stack or suggest new
219
219
  - Design reference: UI/UX to reference
220
220
 
221
+ ### 2.1 Critical Requirements Confirmation (askUser) - v2.6.1
222
+
223
+ **🚨 IMPORTANT: Use `askUser` tool for CRITICAL requirements that must not be missed**
224
+
225
+ After initial conversation, use the structured `askUser` tool for:
226
+ - 🔐 Authentication: method, MFA, password policy
227
+ - 🛡️ Security: rate limiting, session management
228
+ - ⏱️ Session: duration, concurrent login policy
229
+ - 📊 Data Model: required fields, relationships
230
+
231
+ **When to use askUser vs conversation:**
232
+
233
+ | Scenario | Method |
234
+ |----------|--------|
235
+ | Exploratory (feature scope, style) | Natural conversation |
236
+ | **Critical** (auth, security, session) | `askUser` tool |
237
+ | Optional (performance, integration) | Natural conversation |
238
+
239
+ **Usage:**
240
+
241
+ ```typescript
242
+ import { askUser, askUserQuick } from '@su-record/vibe/tools';
243
+
244
+ // Quick helper for common scenarios
245
+ const result = await askUserQuick.login('my-login-feature');
246
+ console.log(result.content[0].text);
247
+
248
+ // Custom categories
249
+ const result = await askUser({
250
+ featureName: 'user-dashboard',
251
+ categories: ['authentication', 'security', 'session', 'data_model'],
252
+ context: 'Building a user dashboard with role-based access',
253
+ });
254
+ ```
255
+
256
+ **Available categories:**
257
+ - `authentication`: 인증 방식, MFA
258
+ - `security`: 비밀번호 정책, 속도 제한
259
+ - `session`: 세션 만료, 동시 로그인
260
+ - `data_model`: 사용자 프로필 필드
261
+ - `performance`: 응답 시간 목표
262
+ - `integration`: 외부 서비스 연동
263
+
264
+ **Example output:**
265
+
266
+ ```
267
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
268
+ 📋 요구사항 확인
269
+ Feature: login
270
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
271
+
272
+ ## 🔐 인증
273
+
274
+ ### 🔐 Q-AUTHENTICATION-001
275
+
276
+ **어떤 인증 방식을 지원할까요?**
277
+ (복수 선택 가능)
278
+
279
+ 1. **이메일/비밀번호** ✓
280
+ 2. **Google 소셜 로그인**
281
+ 3. **Apple 소셜 로그인**
282
+ ...
283
+
284
+ **필수**
285
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
286
+ 총 6개 질문 (필수: 4개)
287
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
288
+ ```
289
+
290
+ **Response parsing:**
291
+
292
+ ```typescript
293
+ import { parseUserResponse } from '@su-record/vibe/tools';
294
+
295
+ // User responds: "1, 2, 4" (선택한 옵션 번호)
296
+ const response = parseUserResponse(question, "1, 2, 4");
297
+ // { questionId: "Q-AUTH-001", value: ["email_password", "social_google", "passkey"], timestamp: "..." }
298
+ ```
299
+
300
+ **ultrawork mode:**
301
+ - askUser is **skipped** in ultrawork mode
302
+ - Uses default values from templates automatically
303
+
221
304
  ### 2.5. Reference Documents via config.json (MANDATORY after tech stack confirmed)
222
305
 
223
306
  **🚨 CRITICAL: Read config.json references IMMEDIATELY after tech stack is confirmed**