@su-record/vibe 3.2.6 → 3.2.8

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 (160) hide show
  1. package/CLAUDE.md +5 -2
  2. package/README.en.md +1 -1
  3. package/README.md +1 -1
  4. package/agents/build-error-resolver.md +1 -1
  5. package/agents/code-reviewer.md +1 -1
  6. package/agents/e2e-tester.md +1 -1
  7. package/agents/event/event-ops.md +1 -1
  8. package/agents/event/event-planner.md +1 -1
  9. package/agents/implementer.md +1 -1
  10. package/agents/security-reviewer.md +1 -1
  11. package/agents/tester.md +1 -1
  12. package/agents/ui/design-reviewer.md +1 -1
  13. package/agents/ui/design-system-gen.md +1 -1
  14. package/dist/cli/commands/info.d.ts +9 -0
  15. package/dist/cli/commands/info.d.ts.map +1 -1
  16. package/dist/cli/commands/info.js +32 -0
  17. package/dist/cli/commands/info.js.map +1 -1
  18. package/dist/cli/commands/info.test.js +34 -1
  19. package/dist/cli/commands/info.test.js.map +1 -1
  20. package/dist/cli/commands/upgrade.d.ts +18 -0
  21. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  22. package/dist/cli/commands/upgrade.js +60 -2
  23. package/dist/cli/commands/upgrade.js.map +1 -1
  24. package/dist/cli/commands/upgrade.test.js +51 -1
  25. package/dist/cli/commands/upgrade.test.js.map +1 -1
  26. package/dist/cli/generate-release-notes.js +8 -6
  27. package/dist/cli/generate-release-notes.js.map +1 -1
  28. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  29. package/dist/cli/postinstall/claude-agents.js +3 -1
  30. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  31. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  32. package/dist/cli/postinstall/constants.js +27 -21
  33. package/dist/cli/postinstall/constants.js.map +1 -1
  34. package/dist/tests/curated-release-notes.test.js +55 -1
  35. package/dist/tests/curated-release-notes.test.js.map +1 -1
  36. package/dist/tools/release/releaseNotes.d.ts +22 -0
  37. package/dist/tools/release/releaseNotes.d.ts.map +1 -1
  38. package/dist/tools/release/releaseNotes.js +45 -0
  39. package/dist/tools/release/releaseNotes.js.map +1 -1
  40. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -3
  41. package/hooks/scripts/__tests__/code-check-detectors.test.js +58 -0
  42. package/hooks/scripts/code-check.js +7 -0
  43. package/package.json +2 -2
  44. package/skills/vibe/SKILL.md +27 -86
  45. package/skills/vibe/references/routing-examples.md +85 -0
  46. package/skills/vibe.agents-md/SKILL.md +12 -10
  47. package/skills/vibe.analyze/SKILL.md +22 -211
  48. package/skills/vibe.analyze/references/mode1-feature.md +81 -0
  49. package/skills/vibe.analyze/references/mode2-document.md +50 -0
  50. package/skills/vibe.analyze/references/mode3-website.md +47 -0
  51. package/skills/vibe.analyze/references/mode4-quality.md +35 -0
  52. package/skills/vibe.analyze/references/output-templates.md +2 -2
  53. package/skills/vibe.brand-assets/SKILL.md +2 -2
  54. package/skills/vibe.brand-assets/references/mobile-assets.md +6 -0
  55. package/skills/vibe.capability-loop/SKILL.md +14 -80
  56. package/skills/vibe.capability-loop/references/escalate.md +86 -0
  57. package/skills/vibe.chub-usage/SKILL.md +3 -132
  58. package/skills/vibe.clone/SKILL.md +43 -358
  59. package/skills/vibe.clone/references/phase-commands.md +118 -0
  60. package/skills/vibe.clone/references/setup-and-layout.md +34 -0
  61. package/skills/vibe.clone/references/verification-loops.md +64 -0
  62. package/skills/vibe.commit-push-pr/SKILL.md +10 -4
  63. package/skills/vibe.context7-usage/SKILL.md +3 -99
  64. package/skills/vibe.continue/SKILL.md +17 -7
  65. package/skills/{vibe.handoff → vibe.continue}/agents/context-summarizer.md +1 -1
  66. package/skills/{vibe.handoff → vibe.continue}/agents/document-writer.md +1 -1
  67. package/skills/{vibe.handoff → vibe.continue}/agents/state-collector.md +1 -1
  68. package/skills/{vibe.handoff → vibe.continue}/agents/verifier.md +1 -1
  69. package/skills/{vibe.handoff/rubrics/completeness.md → vibe.continue/references/handoff-completeness.md} +1 -1
  70. package/skills/{vibe.handoff/templates → vibe.continue/references}/handoff.md +37 -2
  71. package/skills/vibe.contract/SKILL.md +4 -27
  72. package/skills/vibe.create-prd/SKILL.md +8 -1
  73. package/skills/vibe.design/SKILL.md +18 -5
  74. package/skills/vibe.design/references/design-context.md +184 -0
  75. package/skills/vibe.design-refine/SKILL.md +7 -0
  76. package/skills/vibe.design-review/SKILL.md +7 -0
  77. package/skills/vibe.design-teach/SKILL.md +2 -175
  78. package/skills/vibe.devlog/SKILL.md +14 -11
  79. package/skills/vibe.devlog/references/auto-push.md +10 -0
  80. package/skills/vibe.docs/SKILL.md +27 -198
  81. package/skills/vibe.docs/references/agent.md +55 -0
  82. package/skills/vibe.docs/references/arch.md +28 -0
  83. package/skills/vibe.docs/references/codemaps.md +17 -0
  84. package/skills/vibe.docs/references/diagram.md +24 -0
  85. package/skills/vibe.docs/references/guide.md +23 -0
  86. package/skills/vibe.docs/references/readme.md +45 -0
  87. package/skills/vibe.docs/references/release.md +31 -0
  88. package/skills/vibe.documentation-provider/SKILL.md +22 -0
  89. package/skills/vibe.documentation-provider/references/chub.md +141 -0
  90. package/skills/vibe.documentation-provider/references/context7.md +107 -0
  91. package/skills/vibe.educational-content/SKILL.md +7 -0
  92. package/skills/vibe.event/SKILL.md +47 -146
  93. package/skills/vibe.event/references/comms.md +173 -0
  94. package/skills/vibe.event/references/operations.md +208 -0
  95. package/skills/vibe.event/references/orchestration-legacy.md +97 -0
  96. package/skills/vibe.event/references/planning.md +145 -0
  97. package/skills/vibe.event-comms/SKILL.md +3 -165
  98. package/skills/vibe.event-ops/SKILL.md +3 -200
  99. package/skills/vibe.event-planning/SKILL.md +3 -137
  100. package/skills/vibe.figma/SKILL.md +26 -692
  101. package/skills/vibe.figma/references/branch1-read-convention.md +82 -0
  102. package/skills/vibe.figma/references/branch2-read-standalone.md +69 -0
  103. package/skills/vibe.figma/references/branch3-write.md +122 -0
  104. package/skills/vibe.figma/references/core-implementation.md +453 -0
  105. package/skills/vibe.git-worktree/SKILL.md +2 -6
  106. package/skills/vibe.git-worktree/references/troubleshooting.md +9 -0
  107. package/skills/vibe.handoff/SKILL.md +2 -103
  108. package/skills/vibe.harness/SKILL.md +17 -12
  109. package/skills/vibe.image/SKILL.md +8 -1
  110. package/skills/vibe.llm/SKILL.md +8 -1
  111. package/skills/vibe.loop/SKILL.md +9 -11
  112. package/skills/vibe.loop/references/install-adapters.md +10 -0
  113. package/skills/vibe.presentation/SKILL.md +7 -0
  114. package/skills/vibe.prioritization/SKILL.md +7 -0
  115. package/skills/vibe.priority-todos/SKILL.md +2 -57
  116. package/skills/vibe.react-best-practices/SKILL.md +1 -1
  117. package/skills/vibe.reason/SKILL.md +9 -2
  118. package/skills/vibe.regress/SKILL.md +6 -28
  119. package/skills/vibe.regress/templates/{test-jest.md → test-template.md} +1 -0
  120. package/skills/vibe.review/SKILL.md +62 -52
  121. package/skills/vibe.review/references/priority-todos.md +66 -0
  122. package/skills/vibe.review/references/ui-ux-review.md +39 -0
  123. package/skills/vibe.run/SKILL.md +63 -660
  124. package/skills/vibe.run/references/arch-guard.md +178 -0
  125. package/skills/vibe.run/references/e2e-and-autofix.md +40 -0
  126. package/skills/vibe.run/references/exec-plan.md +145 -0
  127. package/skills/vibe.run/references/guidelines-and-tools.md +84 -0
  128. package/skills/vibe.run/references/parallel-agents.md +44 -60
  129. package/skills/vibe.run/references/process-steps.md +179 -0
  130. package/skills/vibe.run/references/restraint.md +66 -0
  131. package/skills/vibe.run/references/ultrawork-mode.md +1 -1
  132. package/skills/vibe.scaffold/SKILL.md +9 -13
  133. package/skills/vibe.scaffold/references/clean-architecture.md +17 -0
  134. package/skills/vibe.spec/SKILL.md +13 -9
  135. package/skills/vibe.spec/references/legacy-artifacts.md +6 -0
  136. package/skills/vibe.test/SKILL.md +93 -70
  137. package/skills/vibe.test/references/report-template.md +101 -0
  138. package/skills/vibe.tool-fallback/SKILL.md +10 -32
  139. package/skills/vibe.tool-fallback/references/external-llm.md +10 -0
  140. package/skills/vibe.tool-fallback/references/file-lookup.md +9 -0
  141. package/skills/vibe.tool-fallback/references/web-search.md +11 -0
  142. package/skills/vibe.trace/SKILL.md +2 -264
  143. package/skills/vibe.ui-ux-pro-max/SKILL.md +1 -3
  144. package/skills/vibe.ui-ux-pro-max/references/charts-and-data.md +7 -0
  145. package/skills/vibe.user-personas/SKILL.md +8 -1
  146. package/skills/vibe.verify/SKILL.md +30 -4
  147. package/skills/vibe.verify/references/trace-mode.md +271 -0
  148. package/vibe/rules/principles/dual-harness-doctrine.md +10 -9
  149. package/skills/vibe.regress/templates/test-vitest.md +0 -30
  150. /package/skills/{vibe.design-teach/rubrics → vibe.design/references}/brand-personality.md +0 -0
  151. /package/skills/{vibe.design-teach → vibe.design}/templates/design-context.json +0 -0
  152. /package/skills/{vibe.context7-usage/rubrics/when-to-use.md → vibe.documentation-provider/references/context7-when-to-use.md} +0 -0
  153. /package/skills/{vibe.event-ops/rubrics → vibe.event/references}/contingency.md +0 -0
  154. /package/skills/{vibe.event-ops/templates/d-day-checklist.md → vibe.event/references/d-day-checklist-template.md} +0 -0
  155. /package/skills/{vibe.event-comms/templates/email-invite.md → vibe.event/references/email-invite-template.md} +0 -0
  156. /package/skills/{vibe.event-planning/templates/event-plan.md → vibe.event/references/event-plan-template.md} +0 -0
  157. /package/skills/{vibe.event-comms/templates/sns-post.md → vibe.event/references/sns-post-template.md} +0 -0
  158. /package/skills/{vibe.event-planning/rubrics → vibe.event/references}/timeline.md +0 -0
  159. /package/skills/{vibe.priority-todos/templates/todo-board.md → vibe.review/references/todo-board-template.md} +0 -0
  160. /package/skills/{vibe.priority-todos/rubrics/prioritization.md → vibe.review/references/todo-prioritization.md} +0 -0
@@ -0,0 +1,101 @@
1
+ # vibe.test — Report Template (JSON + Markdown)
2
+
3
+ > vibe.test SKILL.md 의 Report 섹션에서 참조. `~/.vibe/test-reports/<ts>-<harness>.{json,md}` 의 정확한 스키마.
4
+
5
+ ## Report template
6
+
7
+ Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact schema:
8
+
9
+ ### JSON
10
+
11
+ ```json
12
+ {
13
+ "harness": "cc",
14
+ "timestamp": "2026-04-16T18:30:00+09:00",
15
+ "vibe_version": "2.9.24",
16
+ "install_dir": "/Users/grove/.claude",
17
+ "summary": {
18
+ "total": 42,
19
+ "passed": 38,
20
+ "warned": 2,
21
+ "failed": 2
22
+ },
23
+ "probes": {
24
+ "entrySkills": [
25
+ { "name": "vibe.spec", "status": "pass" },
26
+ { "name": "vibe.test", "status": "pass" }
27
+ ],
28
+ "skills": [
29
+ { "name": "vibe.verify", "status": "pass",
30
+ "quality": { "scope": "pass", "context": "pass", "trigger": "pass", "verify": "pass" } },
31
+ { "name": "vibe.run", "status": "fail",
32
+ "quality": { "scope": "fail", "context": "warn", "trigger": "warn", "verify": "warn" },
33
+ "error": "scope: 845 lines (>400)" },
34
+ { "name": "spec", "status": "fail", "error": "invocation includes `auto` but triggers array is empty" }
35
+ ],
36
+ "hooks": [
37
+ { "name": "pre-tool-guard", "status": "pass", "tests": "38/38" },
38
+ { "name": "scope-guard", "status": "pass", "tests": "12/12" }
39
+ ],
40
+ "agents": [
41
+ { "name": "implementer", "status": "pass" },
42
+ { "name": "ui/design-reviewer", "status": "pass" },
43
+ { "name": "event/event-planner", "status": "pass" }
44
+ ]
45
+ },
46
+ "failed": [
47
+ {
48
+ "category": "skills",
49
+ "name": "spec",
50
+ "error": "frontmatter: triggers array is empty"
51
+ }
52
+ ],
53
+ "warned": [
54
+ {
55
+ "category": "skills",
56
+ "name": "vibe.docs",
57
+ "error": "verify: no Done Criteria section"
58
+ }
59
+ ]
60
+ }
61
+ ```
62
+
63
+ - `status`: `"pass"` | `"warn"` | `"fail"` — worst verdict across the entry's structural check and its four quality axes
64
+ - `error`: required when `status` is `"warn"` or `"fail"`, omitted otherwise. Prefix with the axis (`scope:`, `context:`, `trigger:`, `verify:`) when the verdict comes from a quality axis
65
+ - `quality` (skills only): per-axis verdicts — `{ scope, context, trigger, verify }`, each `"pass"` | `"warn"` | `"fail"` | `"n/a"` (alias-exempt axis)
66
+ - `tests` (hooks only): short `passed/total` string from the vitest JSON reporter
67
+ - `failed[]`: flat list of every `fail` for quick scanning — mirrors entries found across `probes.*`
68
+ - `warned[]`: same shape as `failed[]`, for `warn` entries. **Advisory only — never feeds `/vibe.regress`**
69
+
70
+ ### Markdown
71
+
72
+ ```markdown
73
+ # vibe self-test · cc · 2026-04-16 18:30
74
+
75
+ **Version**: 2.9.24 **Install**: /Users/grove/.claude
76
+
77
+ | Category | Pass | Warn | Fail |
78
+ |---|---:|---:|---:|
79
+ | entry skills | 15 | 0 | 0 |
80
+ | skills | 15 | 2 | 1 |
81
+ | hooks | 6 | 0 | 0 |
82
+ | agents | 3 | 0 | 1 |
83
+ | **total**| **39** | **2** | **2** |
84
+
85
+ ## Skill quality (STCV)
86
+
87
+ | Skill | Scope | Context | Trigger | Verify |
88
+ |---|---|---|---|---|
89
+ | vibe.run | ❌ 845 | ⚠️ | ⚠️ | ⚠️ |
90
+ | vibe.docs | ⚠️ 292 | ✅ | ✅ | ⚠️ |
91
+
92
+ Only skills with at least one non-pass axis are listed. If every skill passes all four axes,
93
+ replace this section with `_All skills pass STCV._`
94
+
95
+ ## Failures
96
+
97
+ - **skills / spec** — invocation includes `auto` but triggers array is empty
98
+ - **agents / implementer** — agent file not found
99
+ ```
100
+
101
+ If `failed` is empty, replace the Failures section with `_All probes passed._`.
@@ -2,7 +2,7 @@
2
2
  name: vibe.tool-fallback
3
3
  invocation: [auto]
4
4
  tier: optional
5
- description: "Tool failure fallback strategies with circuit breaker. Auto-activates on API errors, search failures, timeouts, 429, 5xx, overloaded errors."
5
+ description: "Use when a tool or provider returns API errors, search failures, timeouts, 429, 5xx, or overload responses and a circuit-breaker fallback is required."
6
6
  triggers: [search failure, 429, 5xx, overloaded, fallback, circuit breaker, rate limit]
7
7
  priority: 60
8
8
  ---
@@ -33,32 +33,11 @@ priority: 60
33
33
 
34
34
  ## Decision Trees
35
35
 
36
- ### Web Search Fails
36
+ Select exactly one conditional reference for the failing capability; unrelated failures do not load it:
37
37
 
38
- ```
39
- Web Search fails (429, 529, timeout)
40
- Check circuit state
41
- → OPEN? → Skip to alternative immediately
42
- → CLOSED? → Try context7 for library docs
43
- → Still fails? → Claude's built-in knowledge (last resort)
44
- ```
45
-
46
- ### External LLM Fails
47
-
48
- ```
49
- VibeOrchestrator.smartRoute({ type, prompt })
50
- → Primary LLM fails (429, 401, 5xx)
51
- → Skip to secondary LLM (no retry on rate limit)
52
- → Secondary fails → Claude handles directly
53
- ```
54
-
55
- ### File/Code Not Found
56
-
57
- ```
58
- Glob fails → Expand pattern: *.ts → **/*.ts → **/*
59
- → Use Grep for content-based search
60
- → Check git log for file history
61
- ```
38
+ - Web search failure → `references/web-search.md`
39
+ - External LLM failure `references/external-llm.md`
40
+ - File/code lookup failure → `references/file-lookup.md`
62
41
 
63
42
  ## Error Response Actions
64
43
 
@@ -83,13 +62,12 @@ Request → Check circuit
83
62
  └─ Use alternative
84
63
  ```
85
64
 
86
- ## LLM Priority by Task Type
65
+ ## Model Selection
87
66
 
88
- | Task Type | Primary Secondary Fallback |
89
- |-----------|-------------------------------|
90
- | architecture, debugging | GPT Antigravity Claude |
91
- | uiux, code-analysis | Antigravity GPT → Claude |
92
- | code-gen, general | Claude only |
67
+ Inherit the active session model by default. Use the configured provider/model
68
+ SSOT for external fallbacks instead of a hardcoded provider order. The only
69
+ permitted override is an `opus` tier for an explicitly requested deep
70
+ architecture review; if unavailable, keep the inherited model.
93
71
 
94
72
  ## Principles
95
73
 
@@ -0,0 +1,10 @@
1
+ # External LLM Fallback
2
+
3
+ Load only for external LLM failures.
4
+
5
+ ```
6
+ VibeOrchestrator.smartRoute({ type, prompt })
7
+ → Primary LLM fails (429, 401, 5xx)
8
+ → Skip to secondary LLM (no retry on rate limit)
9
+ → Secondary fails → active harness handles directly
10
+ ```
@@ -0,0 +1,9 @@
1
+ # File and Code Lookup Fallback
2
+
3
+ Load only for file or code lookup failures.
4
+
5
+ ```
6
+ File-pattern search fails → Expand pattern: *.ts → **/*.ts → **/*
7
+ → Use content-based text search
8
+ → Check git log for file history
9
+ ```
@@ -0,0 +1,11 @@
1
+ # Web Search Fallback
2
+
3
+ Load only for web search failures.
4
+
5
+ ```
6
+ Web Search fails (429, 529, timeout)
7
+ → Check circuit state
8
+ → OPEN? → Skip to alternative immediately
9
+ → CLOSED? → Try Context7 for library docs
10
+ → Still fails? → active harness knowledge (last resort, label uncertainty)
11
+ ```
@@ -1,270 +1,8 @@
1
1
  ---
2
2
  name: vibe.trace
3
- description: Generate and display Requirements Traceability Matrix (RTM) REQ SPEC Feature Code 관계 추적
3
+ description: 요구사항과 구현의 추적 관계를 확인하거나 RTM 필요할 vibe.verify trace mode를 로드하는 호환 진입점이다.
4
4
  argument-hint: "feature-name [--html] [--save]"
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- # /vibe.trace
9
-
10
- Generate and display Requirements Traceability Matrix (RTM).
11
-
12
- ## Usage
13
-
14
- ```bash
15
- /vibe.trace "feature-name" # Generate RTM for feature
16
- /vibe.trace "feature-name" --html # Output as HTML
17
- /vibe.trace "feature-name" --save # Save to file
18
- ```
19
-
20
- > **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
21
-
22
- ## Description
23
-
24
- Requirements Traceability Matrix (RTM) tracks the relationship between:
25
- - **Requirements** (REQ-xxx-xxx)
26
- - **SPEC sections** (Phase tasks)
27
- - **Feature scenarios** (BDD)
28
- - **Test files** (unit/integration tests)
29
-
30
- ## Process
31
-
32
- ### 1. Load Files
33
-
34
- **Search order (check BOTH file AND folder):**
35
-
36
- ```
37
- Step 1: Check if SPLIT structure exists (folder)
38
- 📁 .vibe/specs/{feature-name}/ → Folder with _index.md + phase files
39
- 📁 .vibe/features/{feature-name}/ → Folder with _index.feature + phase files
40
-
41
- Step 2: If no folder, check single file
42
- 📄 .vibe/specs/{feature-name}.md → Single SPEC file
43
- 📄 .vibe/features/{feature-name}.feature → Single Feature file
44
-
45
- Step 3: If neither exists → Error
46
- ```
47
-
48
- **Split structure (folder) detected:**
49
- ```
50
- 📁 .vibe/specs/{feature-name}/
51
- ├── _index.md → Master SPEC (read first)
52
- ├── phase-1-{name}.md → Phase 1 SPEC
53
- └── ...
54
-
55
- 📁 .vibe/features/{feature-name}/
56
- ├── _index.feature → Master Feature (read first)
57
- ├── phase-1-{name}.feature → Phase 1 scenarios
58
- └── ...
59
-
60
- → Load all phase files, generate RTM across all phases
61
- ```
62
-
63
- **Single file detected:**
64
- ```
65
- 📄 .vibe/specs/{feature-name}.md → SPEC
66
- 📄 .vibe/features/{feature-name}.feature → Feature
67
- ```
68
-
69
- **Additional (auto-detect):**
70
- ```
71
- 📄 src/**/*.test.ts → Tests (auto-detect)
72
- ```
73
-
74
- **Error if NEITHER file NOR folder found:**
75
- ```
76
- ❌ SPEC not found. Searched:
77
- - .vibe/specs/{feature-name}/ (folder)
78
- - .vibe/specs/{feature-name}.md (file)
79
-
80
- Run /vibe.spec "{feature-name}" first.
81
- ```
82
-
83
- ### 2. Extract Mappings
84
-
85
- For each requirement ID (REQ-xxx-xxx):
86
- 1. Find corresponding SPEC section
87
- 2. Find matching Feature scenario
88
- 3. Find related test file
89
-
90
- ### 3. Calculate Coverage
91
-
92
- ```
93
- Coverage = (Full coverage items / Total requirements) × 100%
94
-
95
- Full coverage = Has SPEC + Feature + Test
96
- Partial = Missing one or more
97
- None = Only in SPEC
98
- ```
99
-
100
- ### 4. Output RTM
101
-
102
- ```
103
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
104
- 📊 REQUIREMENTS TRACEABILITY MATRIX: {feature-name}
105
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
106
-
107
- ## Summary
108
- | Metric | Value |
109
- |-------------------|----------|
110
- | Total Requirements| 10 |
111
- | SPEC Coverage | 10/10 |
112
- | Feature Coverage | 8/10 |
113
- | Test Coverage | 6/10 |
114
- | **Overall** | **60%** |
115
-
116
- ## Traceability Matrix
117
-
118
- | Requirement | SPEC | Feature | Test | Coverage |
119
- |-------------|------|---------|------|----------|
120
- | REQ-login-001 | ✅ Phase 1 | ✅ Scenario 1 | ✅ login.test.ts | ✅ Full |
121
- | REQ-login-002 | ✅ Phase 1 | ✅ Scenario 2 | ❌ | ⚠️ Partial |
122
- | REQ-login-003 | ✅ Phase 2 | ❌ | ❌ | ❌ None |
123
-
124
- ## Uncovered Requirements
125
-
126
- The following requirements lack full coverage:
127
-
128
- - **REQ-login-002**: Password validation
129
- - Missing: Test file
130
-
131
- - **REQ-login-003**: Remember me functionality
132
- - Missing: Feature scenario, Test file
133
-
134
- ## Recommendations
135
-
136
- ⚠️ Coverage is at 60%. Consider:
137
- - Add Feature scenarios for uncovered requirements
138
- - Add test cases for uncovered requirements
139
-
140
- ⏱️ Started: {start_time}
141
- ⏱️ Completed: {getCurrentTime 결과}
142
-
143
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
144
- ```
145
-
146
- ## Example
147
-
148
- ```
149
- User: /vibe.trace "login"
150
-
151
- Claude:
152
- 📊 Generating RTM for "login"...
153
-
154
- Loading files:
155
- ✅ SPEC: .vibe/specs/login.md (5 requirements)
156
- ✅ Feature: .vibe/features/login.feature (4 scenarios)
157
- ✅ Tests: 3 test files found
158
-
159
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
160
- 📊 REQUIREMENTS TRACEABILITY MATRIX: login
161
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
162
-
163
- ## Summary
164
- | Metric | Value |
165
- |-------------------|----------|
166
- | Total Requirements| 5 |
167
- | SPEC Coverage | 5/5 |
168
- | Feature Coverage | 4/5 |
169
- | Test Coverage | 3/5 |
170
- | **Overall** | **60%** |
171
-
172
- ## Traceability Matrix
173
-
174
- | Requirement | SPEC | Feature | Test | Coverage |
175
- |-------------|------|---------|------|----------|
176
- | REQ-login-001 | ✅ | ✅ | ✅ | ✅ Full |
177
- | REQ-login-002 | ✅ | ✅ | ✅ | ✅ Full |
178
- | REQ-login-003 | ✅ | ✅ | ✅ | ✅ Full |
179
- | REQ-login-004 | ✅ | ✅ | ❌ | ⚠️ Partial |
180
- | REQ-login-005 | ✅ | ❌ | ❌ | ❌ None |
181
-
182
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
183
- ```
184
-
185
- ## Tool Integration
186
-
187
- The RTM generation uses core tools:
188
-
189
- ```bash
190
- # Generate RTM (generateTraceabilityMatrix is synchronous — no .then())
191
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => { const m = t.generateTraceabilityMatrix('login', {projectPath: process.cwd()}); console.log(t.formatMatrixAsMarkdown(m)); })"
192
-
193
- # Generate HTML
194
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => { const m = t.generateTraceabilityMatrix('login', {projectPath: process.cwd()}); console.log(t.formatMatrixAsHtml(m)); })"
195
- ```
196
-
197
- > **Note:** Default SPEC path is `.vibe/specs/<feature>.md` (falls back to `.claude/vibe/specs/` then `.claude/specs/` for legacy projects).
198
- > `status === 'empty'` means the gate MUST be treated as failed/not-applicable, never as 100% pass.
199
-
200
- ## Post-Trace Gates
201
-
202
- After `/vibe.trace` completes and the RTM is displayed, two downstream mechanisms consume the result.
203
-
204
- ### Empty-result gate
205
-
206
- `generateTraceabilityMatrix` returns `status: 'empty'` when no `REQ-<feature>-NNN` IDs are found in the SPEC. This state **must be treated as a gate failure**, not as 100% coverage. When the matrix status is `empty`, report it explicitly and do not proceed as if the feature is verified.
207
-
208
- ```
209
- RTM status === 'empty'
210
- → Coverage gate: FAILED (no requirements to trace)
211
- → Action: run /vibe.spec to add REQ-IDs before re-running /vibe.trace
212
- ```
213
-
214
- ### Run-ledger flow
215
-
216
- `/vibe.verify` records its outcome through `hooks/scripts/verify-ledger.js`, binding the current run ID and command-result evidence. This writes `verifyPassed` and `verifyAt` into `.vibe/metrics/run-ledger.json`. Downstream gates consume this record:
217
-
218
- | Gate | Behavior |
219
- |------|----------|
220
- | `auto-commit` | Commits only when `verifyPassed === true` AND `verifyAt > runStarted` |
221
- | Stop hook | Warns when `runStarted && !verifyPassed`; blocks once if `verifyGate.mode === 'block'` |
222
-
223
- **To register a passing trace as verified**, run `/vibe.verify` after `/vibe.trace` reports acceptable coverage. The verify skill records the current run ID and command evidence internally — you do not invoke the ledger CLI manually.
224
-
225
- ```
226
- /vibe.trace "login" → RTM: 9/9 (100%)
227
- /vibe.verify "login" → runs checks → records pass + run ID + command results
228
- → .vibe/metrics/run-ledger.json updated
229
- auto-commit / Stop gate → verifyPassed=true, gate clears
230
- ```
231
-
232
- If `/vibe.verify` is skipped, `auto-commit` will log the skip reason and abort the commit.
233
-
234
- ## Options
235
-
236
- | Option | Description |
237
- |--------|-------------|
238
- | `--html` | Output as HTML file |
239
- | `--save` | Save to `.vibe/reports/{feature}-rtm.md` |
240
- | `--json` | Output as JSON |
241
-
242
- ## Coverage Targets
243
-
244
- | Coverage Level | Status |
245
- |----------------|--------|
246
- | 90-100% | ✅ Excellent - Ready for release |
247
- | 70-89% | ⚠️ Good - Minor gaps |
248
- | 50-69% | ⚠️ Fair - Significant gaps |
249
- | 0-49% | ❌ Poor - Major gaps |
250
-
251
- ---
252
-
253
- ## `.last-feature` 포인터 삭제 (워크플로 완주)
254
-
255
- ```
256
- /vibe.trace가 정상 완료되면 (RTM 출력 + 사용자 확인 후):
257
- Delete ".vibe/.last-feature"
258
-
259
- 이유: /vibe.trace는 vibe 워크플로의 마지막 Phase (Phase 7).
260
- 완주 후에는 다음 /vibe.spec 호출 시 "빈 시작" 또는 진행 중 목록에서 다른 feature를 시작해야 한다.
261
- 삭제하지 않으면 완료된 feature가 계속 "이어서?" 로 뜬다.
262
-
263
- 예외:
264
- - /vibe.trace가 에러로 중단된 경우 → 삭제하지 않음 (재시도 가능)
265
- - --save 또는 --html 플래그와 무관하게 항상 삭제
266
- ```
267
-
268
- ---
269
-
270
- ARGUMENTS: {feature-name}
8
+ Load `vibe.verify` in trace mode and preserve the feature name and all output flags.
@@ -79,9 +79,7 @@ Searchable database: 50+ styles, 97 color palettes, 57 font pairings, 99 UX guid
79
79
 
80
80
  ### 8. Charts & Data (LOW)
81
81
 
82
- - `chart-type` - Match chart type to data type
83
- - `color-guidance` - Use accessible color palettes
84
- - `data-table` - Provide table alternative for accessibility
82
+ For dashboards or other data visualizations only, read `references/charts-and-data.md`. UI calls without charts do not load it.
85
83
 
86
84
  ---
87
85
 
@@ -0,0 +1,7 @@
1
+ # Charts and Data Visualization
2
+
3
+ Load only when the requested UI includes charts or data visualization.
4
+
5
+ - `chart-type` — Match chart type to data type.
6
+ - `color-guidance` — Use accessible color palettes.
7
+ - `data-table` — Provide a table alternative for accessibility.
@@ -2,7 +2,7 @@
2
2
  name: vibe.user-personas
3
3
  invocation: [auto, chain]
4
4
  tier: standard
5
- description: "Create refined user personas from research data 3 personas with JTBD, pains, gains, and unexpected insights."
5
+ description: "Use when research data must be synthesized into three evidence-based user personas with JTBD, pains, gains, and unexpected insights."
6
6
  triggers: [persona, user persona, user profile, user segment, user research]
7
7
  priority: 50
8
8
  chain-next: [vibe.create-prd, vibe.prioritization]
@@ -10,6 +10,13 @@ chain-next: [vibe.create-prd, vibe.prioritization]
10
10
 
11
11
  # User Personas
12
12
 
13
+ ## Done Criteria
14
+
15
+ - [ ] 정확히 3개의 persona가 생성되어 있다.
16
+ - [ ] 각 persona에 JTBD, pains, gains가 모두 존재한다.
17
+ - [ ] 각 핵심 특성이 research source와 연결되어 있다.
18
+ - [ ] 근거 없는 추론은 inference로 표시되어 있다.
19
+
13
20
  > Based on the user persona framework from [Product Compass](https://www.productcompass.pm/p/interviewing-customers-the-ultimate) by Pawel Huryn (MIT License).
14
21
 
15
22
  ## Purpose
@@ -1,12 +1,19 @@
1
1
  ---
2
2
  name: vibe.verify
3
- description: Verify implementation against SPEC requirements
4
- argument-hint: "feature name"
3
+ description: 승인된 SPEC에 대한 구현 완료를 판정하거나 REQ→SPEC→Feature→Code 추적표가 필요할 때 검증 또는 trace mode로 실행한다.
4
+ argument-hint: "feature name [--e2e] | trace feature-name [--html] [--save] [--json]"
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
8
  # /vibe.verify
9
9
 
10
+ ## 완료 기준
11
+
12
+ - [ ] 승인된 SPEC의 모든 REQ가 pass 또는 fail로 판정되어 있다.
13
+ - [ ] 각 판정에 test output, 파일·행 또는 산출물 경로 근거가 있다.
14
+ - [ ] verify mode 성공 시 run ledger의 `verifyPassed`가 true다.
15
+ - [ ] trace mode에서는 RTM 파일이 존재하고 누락 REQ가 0개다.
16
+
10
17
  SPEC-driven verification. Check the implementation against the SPEC's **Done criteria** and Feature scenarios, record the result to the **run ledger** (`recordVerify`), and auto-register regressions on failure. The JUDGE gate is code-enforced by the ledger — a verification never counts as passed by self-report.
11
18
 
12
19
  ## Usage
@@ -14,8 +21,18 @@ SPEC-driven verification. Check the implementation against the SPEC's **Done cri
14
21
  ```
15
22
  /vibe.verify "feature-name" # SPEC-based verification
16
23
  /vibe.verify --e2e "feature-name" # + E2E browser verification (agents/e2e-tester.md)
24
+ /vibe.verify trace "feature-name" # Requirements Traceability Matrix
25
+ /vibe.verify trace "feature-name" --html | --save | --json
17
26
  ```
18
27
 
28
+ ## Trace mode
29
+
30
+ When the first argument is `trace`, read `references/trace-mode.md` and execute
31
+ that RTM workflow instead of the verification process below. Preserve the
32
+ feature name and `--html`, `--save`, and `--json` flags. An empty RTM is a gate
33
+ failure. Trace output alone does not set `verifyPassed`; run normal verify mode
34
+ to bind command evidence to the run ledger.
35
+
19
36
  ## Scope
20
37
 
21
38
  - **Changed files only** — never full-project scan.
@@ -39,7 +56,11 @@ Extract the Done criteria / scenarios — this list is the verification checklis
39
56
 
40
57
  ### 2. Verify each Done criterion (parallel, deterministic)
41
58
 
42
- Run all applicable methods as parallel sub-agents in ONE message; each returns a short pass/fail summary instead of bloating main context:
59
+ Run all applicable methods through the harness's native collaboration
60
+ capability; each worker returns a short pass/fail summary instead of bloating
61
+ the coordinator context. Claude Code maps workers to Task/Agent; Codex maps
62
+ them to native collaboration. Inherit the session model by default and run
63
+ independent methods concurrently when capacity permits:
43
64
 
44
65
  | Method | How | Condition |
45
66
  |---|---|---|
@@ -104,7 +125,12 @@ Load skill `vibe.contract` with: check "{feature}"
104
125
 
105
126
  ### 7. Metrics + Ledger update (MANDATORY final step)
106
127
 
107
- Record run metrics, then write the verify result to the run ledger. This is the machine-readable deterministic JUDGE record consumed by the Stop-hook verify gate, auto-commit verify gate, and loop-contract gates. `recordVerify` also writes `.vibe/runs/{run-id}/evidence.json`; Model Judge findings remain advisory-only and Human Taste remains release-only.
128
+ Record run metrics, then explicitly write the verify result to the run ledger.
129
+ This machine-readable record is the deterministic JUDGE consumed by the
130
+ loop-contract gates. Lifecycle Stop/auto-commit hooks may consume the same
131
+ record for earlier feedback, but correctness does not depend on either hook.
132
+ `recordVerify` also writes `.vibe/runs/{run-id}/evidence.json`; Model Judge
133
+ findings remain advisory-only and Human Taste remains release-only.
108
134
 
109
135
  ```bash
110
136
  # Append step-count history (ok if current-run.json missing)