@su-record/vibe 2.9.35 → 2.9.37

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 (74) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.en.md +1 -1
  3. package/README.md +1 -1
  4. package/agents/compounder.md +6 -6
  5. package/agents/diagrammer.md +2 -2
  6. package/agents/e2e-tester.md +5 -5
  7. package/agents/qa/acceptance-tester.md +2 -2
  8. package/agents/refactor-cleaner.md +2 -2
  9. package/agents/tester.md +1 -1
  10. package/agents/ui/ui-antipattern-detector.md +1 -1
  11. package/agents/ui/ui-design-system-gen.md +3 -3
  12. package/agents/ui/ui-industry-analyzer.md +1 -1
  13. package/agents/ui/ui-layout-architect.md +1 -1
  14. package/agents/ui/ui-stack-implementer.md +1 -1
  15. package/commands/vibe.analyze.md +1 -1
  16. package/commands/vibe.contract.md +2 -2
  17. package/commands/vibe.figma.md +3 -3
  18. package/commands/vibe.harness.md +3 -3
  19. package/commands/vibe.regress.md +2 -2
  20. package/commands/vibe.review.md +4 -4
  21. package/commands/vibe.run.md +27 -27
  22. package/commands/vibe.scaffold.md +1 -1
  23. package/commands/vibe.spec.md +38 -38
  24. package/commands/vibe.trace.md +14 -14
  25. package/commands/vibe.utils.md +3 -3
  26. package/commands/vibe.verify.md +18 -18
  27. package/dist/infra/lib/figma/extract.d.ts.map +1 -1
  28. package/dist/infra/lib/figma/extract.js +55 -0
  29. package/dist/infra/lib/figma/extract.js.map +1 -1
  30. package/dist/infra/lib/figma/types.d.ts +8 -0
  31. package/dist/infra/lib/figma/types.d.ts.map +1 -1
  32. package/hooks/scripts/__tests__/figma-extract.test.js +338 -0
  33. package/hooks/scripts/figma-extract.js +144 -31
  34. package/hooks/scripts/prompt-dispatcher.js +15 -0
  35. package/hooks/scripts/utils.js +4 -0
  36. package/package.json +1 -1
  37. package/skills/arch-guard/SKILL.md +2 -2
  38. package/skills/arch-guard/agents/rule-generator.md +3 -3
  39. package/skills/arch-guard/scripts/check-boundaries.js +1 -1
  40. package/skills/arch-guard/templates/arch-rules.json +1 -1
  41. package/skills/capability-loop/SKILL.md +2 -2
  42. package/skills/capability-loop/templates/capability-spec.md +1 -1
  43. package/skills/claude-md-guide/SKILL.md +2 -2
  44. package/skills/design-audit/SKILL.md +3 -3
  45. package/skills/design-critique/SKILL.md +2 -2
  46. package/skills/design-distill/SKILL.md +1 -1
  47. package/skills/design-normalize/SKILL.md +4 -4
  48. package/skills/design-polish/SKILL.md +2 -2
  49. package/skills/design-teach/SKILL.md +6 -6
  50. package/skills/design-teach/templates/design-context.json +1 -1
  51. package/skills/devlog/SKILL.md +1 -1
  52. package/skills/event-planning/SKILL.md +1 -1
  53. package/skills/exec-plan/SKILL.md +5 -5
  54. package/skills/exec-plan/agents/decomposer.md +1 -1
  55. package/skills/exec-plan/templates/plan.md +2 -2
  56. package/skills/parallel-research/SKILL.md +3 -3
  57. package/skills/parallel-research/orchestrator.md +1 -1
  58. package/skills/parallel-research/templates/paper.md +1 -1
  59. package/skills/priority-todos/SKILL.md +1 -1
  60. package/skills/vibe-contract/SKILL.md +6 -6
  61. package/skills/vibe-interview/SKILL.md +6 -6
  62. package/skills/vibe-interview/checklists/feature.md +1 -1
  63. package/skills/vibe-plan/SKILL.md +10 -10
  64. package/skills/vibe-regress/SKILL.md +5 -5
  65. package/skills/vibe-regress/templates/bug.md +1 -1
  66. package/skills/vibe-regress/templates/test-jest.md +1 -1
  67. package/skills/vibe-regress/templates/test-vitest.md +1 -1
  68. package/skills/vibe-spec/SKILL.md +45 -45
  69. package/skills/vibe-spec-review/SKILL.md +21 -21
  70. package/skills/vibe-test/SKILL.md +1 -1
  71. package/vibe/constitution.md +2 -2
  72. package/vibe/templates/claudemd-template.md +4 -4
  73. package/vibe/templates/constitution-template.md +2 -2
  74. package/vibe/templates/feature-template.md +1 -1
@@ -115,7 +115,7 @@ Based on classification, build the appropriate artifact:
115
115
 
116
116
  > **Problem**: The built capability didn't actually prevent the failure. This usually means the initial diagnosis was wrong (picked `Tool` when it needed `Guardrail`), or the failure has multiple missing capabilities.
117
117
  >
118
- > **Do NOT silently proceed** — a sub-standard capability log pollutes `.claude/vibe/capabilities-log.md` and the failure will recur.
118
+ > **Do NOT silently proceed** — a sub-standard capability log pollutes `.vibe/capabilities-log.md` and the failure will recur.
119
119
 
120
120
  **Escalation loop:**
121
121
 
@@ -207,7 +207,7 @@ save_memory("capability-{name}", {
207
207
  })
208
208
  ```
209
209
 
210
- Update `.claude/vibe/capabilities-log.md`:
210
+ Update `.vibe/capabilities-log.md`:
211
211
 
212
212
  ```markdown
213
213
  ## {date} — {capability-name}
@@ -94,7 +94,7 @@
94
94
 
95
95
  ## Persistence
96
96
 
97
- After building, record in `.claude/vibe/capabilities-log.md`:
97
+ After building, record in `.vibe/capabilities-log.md`:
98
98
 
99
99
  ```markdown
100
100
  ## {{DATE}} — {{CAPABILITY_NAME}}
@@ -108,7 +108,7 @@ Separate the collected information into 3 layers:
108
108
 
109
109
  **Loaded only when working on a specific feature** → focus on what and why, leave how to the agent.
110
110
 
111
- Storage location: `.claude/vibe/specs/YYYY-MM-DD-{topic}.md`
111
+ Storage location: `.vibe/specs/YYYY-MM-DD-{topic}.md`
112
112
 
113
113
  ```markdown
114
114
  # {Feature Name} SPEC
@@ -124,7 +124,7 @@ Storage location: `.claude/vibe/specs/YYYY-MM-DD-{topic}.md`
124
124
 
125
125
  **Per-session task list** → 2-5 minute units, with file paths specified.
126
126
 
127
- Storage location: `.claude/vibe/specs/{name}-execplan.md`
127
+ Storage location: `.vibe/specs/{name}-execplan.md`
128
128
 
129
129
  ```markdown
130
130
  # Execution Plan
@@ -131,11 +131,11 @@ When running on mobile stacks (React Native, Flutter, iOS, Android):
131
131
 
132
132
  Before running the audit:
133
133
 
134
- 1. **Read** `.claude/vibe/design-context.json`
134
+ 1. **Read** `.vibe/design-context.json`
135
135
  - If missing → display: "Run `/design-teach` first for better results" → proceed with defaults
136
136
  - If parse error → display warning → proceed with defaults → recommend `/design-teach`
137
137
  - If present → weight findings by `audience.context`, `constraints.accessibility`, `brand.personality`
138
- 2. **Read** `.claude/vibe/design-system/*/MASTER.md` (if exists) for token reference
138
+ 2. **Read** `.vibe/design-system/*/MASTER.md` (if exists) for token reference
139
139
 
140
140
  ## Next Steps
141
141
 
@@ -148,5 +148,5 @@ Before running the audit:
148
148
  ## Important
149
149
 
150
150
  - **Read-only**: This skill produces a report. It does NOT modify code.
151
- - **Context-aware**: If `.claude/vibe/design-context.json` exists, findings are weighted by project brand and audience.
151
+ - **Context-aware**: If `.vibe/design-context.json` exists, findings are weighted by project brand and audience.
152
152
  - **Incremental**: When run on `.` (changed files), only audits files in current diff.
@@ -118,7 +118,7 @@ When running on mobile stacks (React Native, Flutter, iOS, Android):
118
118
 
119
119
  Before running the critique:
120
120
 
121
- 1. **Read** `.claude/vibe/design-context.json`
121
+ 1. **Read** `.vibe/design-context.json`
122
122
  - If missing → display: "Run `/design-teach` first for better results" → proceed with defaults
123
123
  - If parse error → display warning → proceed with defaults → recommend `/design-teach`
124
124
  - If present → adjust persona priorities by `audience.primary` and `audience.expertise`
@@ -135,5 +135,5 @@ Before running the critique:
135
135
  ## Important
136
136
 
137
137
  - **Read-only**: Produces design critique report. No code modifications.
138
- - **Context-aware**: Uses `.claude/vibe/design-context.json` for brand/audience context if available.
138
+ - **Context-aware**: Uses `.vibe/design-context.json` for brand/audience context if available.
139
139
  - **Complementary**: Pairs with `/design-audit` (technical) — critique focuses on UX quality.
@@ -110,7 +110,7 @@ Strip unnecessary visual elements. Every remaining element must justify its exis
110
110
 
111
111
  Before running distillation:
112
112
 
113
- 1. **Read** `.claude/vibe/design-context.json`
113
+ 1. **Read** `.vibe/design-context.json`
114
114
  - If missing → display: "Run `/design-teach` first for better results" → proceed with defaults
115
115
  - If parse error → display warning → proceed with defaults → recommend `/design-teach`
116
116
  - If present → preserve elements that match `brand.personality` (e.g., "playful" brand may justify decorative elements)
@@ -23,8 +23,8 @@ Replace hardcoded design values with design system tokens from MASTER.md. Ensure
23
23
 
24
24
  Load token source in priority order:
25
25
 
26
- 1. `.claude/vibe/design-system/{project}/MASTER.md` (project-specific)
27
- 2. `.claude/vibe/design-context.json` (from `/design-teach`)
26
+ 1. `.vibe/design-system/{project}/MASTER.md` (project-specific)
27
+ 2. `.vibe/design-context.json` (from `/design-teach`)
28
28
  3. If neither exists → prompt: "Run `/design-teach` or create MASTER.md first. Proceeding with default token detection."
29
29
 
30
30
  ### Step 2: Scan for Hardcoded Values
@@ -111,11 +111,11 @@ Replace values in source files, preserving:
111
111
 
112
112
  Before running normalization:
113
113
 
114
- 1. **Read** `.claude/vibe/design-context.json`
114
+ 1. **Read** `.vibe/design-context.json`
115
115
  - If missing → display: "Run `/design-teach` first for better results" → proceed with defaults
116
116
  - If parse error → display warning → proceed with defaults → recommend `/design-teach`
117
117
  - If present → use `detectedStack.styling` to determine token format (CSS vars, Tailwind, etc.)
118
- 2. **Read** `.claude/vibe/design-system/*/MASTER.md`
118
+ 2. **Read** `.vibe/design-system/*/MASTER.md`
119
119
  - If missing → display: "Run `/design-teach` or create MASTER.md first. Proceeding with default token detection."
120
120
  - If present → use as authoritative token source for replacements
121
121
 
@@ -111,11 +111,11 @@ Every interactive element must have ALL applicable states:
111
111
 
112
112
  Before running polish:
113
113
 
114
- 1. **Read** `.claude/vibe/design-context.json`
114
+ 1. **Read** `.vibe/design-context.json`
115
115
  - If missing → display: "Run `/design-teach` first for better results" → proceed with defaults
116
116
  - If parse error → display warning → proceed with defaults → recommend `/design-teach`
117
117
  - If present → apply brand-appropriate micro-interaction styles from `aesthetic.style`
118
- 2. **Read** `.claude/vibe/design-system/*/MASTER.md` (if exists) for token references
118
+ 2. **Read** `.vibe/design-system/*/MASTER.md` (if exists) for token references
119
119
 
120
120
  ## Next Steps
121
121
 
@@ -8,7 +8,7 @@ priority: 50
8
8
 
9
9
  # Design Teach — Project Design Context Gathering
10
10
 
11
- Collect project-specific design context so all design-* skills produce tailored, brand-aware results. Saves to `.claude/vibe/design-context.json`.
11
+ Collect project-specific design context so all design-* skills produce tailored, brand-aware results. Saves to `.vibe/design-context.json`.
12
12
 
13
13
  ## Usage
14
14
 
@@ -29,8 +29,8 @@ Before asking questions, automatically gather existing signals:
29
29
  | Color palette | Existing color definitions, brand assets |
30
30
  | Typography | Font imports, font-family declarations |
31
31
  | Component library | `package.json` dependencies (MUI, Chakra, shadcn, etc.) |
32
- | Design system | `.claude/vibe/design-system/*/MASTER.md` |
33
- | Existing context | `.claude/vibe/design-context.json` (if updating) |
32
+ | Design system | `.vibe/design-system/*/MASTER.md` |
33
+ | Existing context | `.vibe/design-context.json` (if updating) |
34
34
 
35
35
  ### Step 2: Ask Clarifying Questions
36
36
 
@@ -59,7 +59,7 @@ Present findings from Step 1, then ask what's missing:
59
59
 
60
60
  ### Step 3: Save Context
61
61
 
62
- Write gathered context to `.claude/vibe/design-context.json` using the Write tool.
62
+ Write gathered context to `.vibe/design-context.json` using the Write tool.
63
63
 
64
64
  **Schema (v1):**
65
65
 
@@ -118,7 +118,7 @@ When `/design-teach` is run again and `design-context.json` already exists:
118
118
  Each design-* skill does the following when it runs:
119
119
 
120
120
  ```
121
- 1. Read `.claude/vibe/design-context.json`
121
+ 1. Read `.vibe/design-context.json`
122
122
  2. File not found → print "Run /design-teach first for better results" → continue with defaults
123
123
  3. Parse failure (invalid JSON) → warn "design-context.json parse failed" + continue with defaults → recommend re-running /design-teach
124
124
  4. Success → apply context to analysis criteria
@@ -172,7 +172,7 @@ PRE-SHIP Phase:
172
172
  - Dark mode: Required
173
173
 
174
174
  ### Saved
175
- ✅ .claude/vibe/design-context.json updated
175
+ ✅ .vibe/design-context.json updated
176
176
  ```
177
177
 
178
178
  ## Important
@@ -10,7 +10,7 @@
10
10
  "brand": {
11
11
  "personality": ["professional", "clean", "trustworthy", "efficient"],
12
12
  "tone": "professional",
13
- "existingAssets": ".claude/vibe/brand/brand-guide.pdf"
13
+ "existingAssets": ".vibe/brand/brand-guide.pdf"
14
14
  },
15
15
  "aesthetic": {
16
16
  "style": "minimal",
@@ -11,7 +11,7 @@ Analyzes git commit history to automatically generate development logs and saves
11
11
 
12
12
  ## Config
13
13
 
14
- `devlog` section in `.claude/vibe/config.json`:
14
+ `devlog` section in `.vibe/config.json`:
15
15
 
16
16
  ```json
17
17
  {
@@ -90,7 +90,7 @@ When user says "MDC 준비해줘" or similar:
90
90
 
91
91
  ## State Management
92
92
 
93
- **Location**: `.claude/vibe/.event_state.json` (project-local, gitignored)
93
+ **Location**: `.vibe/.event_state.json` (project-local, gitignored)
94
94
 
95
95
  ### Error Recovery
96
96
 
@@ -61,14 +61,14 @@ For every decision point in the SPEC, resolve it NOW:
61
61
 
62
62
  ### Step 3: GENERATE — Write the ExecPlan
63
63
 
64
- Output format: `.claude/vibe/specs/{feature-name}-execplan.md`
64
+ Output format: `.vibe/specs/{feature-name}-execplan.md`
65
65
 
66
66
  ```markdown
67
67
  # ExecPlan: {feature-name}
68
68
 
69
69
  ## Meta
70
- - SPEC: .claude/vibe/specs/{name}.md
71
- - Feature: .claude/vibe/features/{name}.feature
70
+ - SPEC: .vibe/specs/{name}.md
71
+ - Feature: .vibe/features/{name}.feature
72
72
  - Generated: {timestamp}
73
73
  - Phases: {count}
74
74
  - Scenarios: {count}
@@ -118,7 +118,7 @@ Output format: `.claude/vibe/specs/{feature-name}-execplan.md`
118
118
 
119
119
  ### Step 4: PERSIST — Save and Link
120
120
 
121
- 1. Save ExecPlan to `.claude/vibe/specs/{feature-name}-execplan.md`
121
+ 1. Save ExecPlan to `.vibe/specs/{feature-name}-execplan.md`
122
122
  2. Save session context: `save_memory("execplan-{feature}", {summary})`
123
123
  3. Output execution command:
124
124
 
@@ -128,7 +128,7 @@ Ready to execute:
128
128
 
129
129
  Or hand off to new session:
130
130
  /vibe.utils --continue
131
- → Load: .claude/vibe/specs/{feature-name}-execplan.md
131
+ → Load: .vibe/specs/{feature-name}-execplan.md
132
132
  ```
133
133
 
134
134
  ## Quality Checks
@@ -18,7 +18,7 @@ Reads a SPEC document and breaks it into a structured hierarchy of phases and ta
18
18
  - Produce a flat numbered task list with parent-phase references
19
19
 
20
20
  ## Input
21
- - SPEC document path (e.g., `.claude/vibe/specs/my-feature.spec.md`)
21
+ - SPEC document path (e.g., `.vibe/specs/my-feature.spec.md`)
22
22
  - Optional: existing codebase context to detect which files already exist
23
23
 
24
24
  ## Output
@@ -4,8 +4,8 @@
4
4
 
5
5
  | Field | Value |
6
6
  |-------|-------|
7
- | SPEC | `.claude/vibe/specs/{{FEATURE_NAME}}.md` |
8
- | Feature | `.claude/vibe/features/{{FEATURE_NAME}}.feature` |
7
+ | SPEC | `.vibe/specs/{{FEATURE_NAME}}.md` |
8
+ | Feature | `.vibe/features/{{FEATURE_NAME}}.feature` |
9
9
  | Generated | {{GENERATED_DATE}} |
10
10
  | Phases | {{PHASE_COUNT}} |
11
11
  | Scenarios | {{SCENARIO_COUNT}} |
@@ -63,7 +63,7 @@ Parallel research complete
63
63
 
64
64
  Synthesize results
65
65
 
66
- Persist to .claude/vibe/research/<topic-slug>/
66
+ Persist to .vibe/research/<topic-slug>/
67
67
  ├── synthesis.md (conversational report)
68
68
  ├── awesome-list.md (curated links/repos)
69
69
  └── paper.md (structured survey for /vibe.spec Context)
@@ -75,7 +75,7 @@ Reference during implementation
75
75
 
76
76
  ### Output Location (SSOT)
77
77
 
78
- All research artifacts live under `.claude/vibe/research/<topic-slug>/`. Reference `paper.md` explicitly when writing a SPEC (e.g. paste its path into the Context section). Re-running research on the same topic overwrites unless the slug collides across dates (then `-YYYYMMDD` suffix).
78
+ All research artifacts live under `.vibe/research/<topic-slug>/`. Reference `paper.md` explicitly when writing a SPEC (e.g. paste its path into the Context section). Re-running research on the same topic overwrites unless the slug collides across dates (then `-YYYYMMDD` suffix).
79
79
 
80
80
  > Wire-up note: `/vibe.spec` does **not** yet auto-scan this directory — that integration is a follow-up. For now, cite the path manually.
81
81
 
@@ -98,7 +98,7 @@ Pass `--ephemeral` to skip persistence when exploring throwaway questions.
98
98
 
99
99
  - [ ] All 4 research agents returned results (or documented why not)
100
100
  - [ ] Results synthesized into actionable recommendations
101
- - [ ] Three artifacts written to `.claude/vibe/research/<slug>/` (synthesis / awesome-list / paper) — unless `--ephemeral`
101
+ - [ ] Three artifacts written to `.vibe/research/<slug>/` (synthesis / awesome-list / paper) — unless `--ephemeral`
102
102
  - [ ] Every awesome-list entry has a one-line "why"
103
103
  - [ ] Key findings reflected in SPEC Context section or implementation notes
104
104
  - [ ] Conflicting recommendations resolved with reasoning
@@ -36,7 +36,7 @@ agents: [best-practices, framework-docs, codebase-patterns, security-advisory, s
36
36
  ### Phase 5: Persist as Reusable Dataset
37
37
  - **Agent**: orchestrator (self)
38
38
  - **Input**: Synthesis (Phase 3) + ranked output (Phase 4)
39
- - **Output**: Three files under `.claude/vibe/research/<topic-slug>/`:
39
+ - **Output**: Three files under `.vibe/research/<topic-slug>/`:
40
40
  - `synthesis.md` — conversational synthesis (from `templates/synthesis.md`)
41
41
  - `awesome-list.md` — curated links/repos by category (from `templates/awesome-list.md`)
42
42
  - `paper.md` — structured survey for `/vibe.spec` Context injection (from `templates/paper.md`)
@@ -85,4 +85,4 @@ Parallel research across four specialized agents (best-practices, framework-docs
85
85
 
86
86
  ---
87
87
 
88
- **Reuse**: cite this file by path (`.claude/vibe/research/{{SLUG}}/paper.md`) when writing a SPEC — paste the Findings and Recommendation sections into the SPEC's Context block.
88
+ **Reuse**: cite this file by path (`.vibe/research/{{SLUG}}/paper.md`) when writing a SPEC — paste the Findings and Recommendation sections into the SPEC's Context block.
@@ -23,7 +23,7 @@ priority: 60
23
23
  ## Directory Structure
24
24
 
25
25
  ```
26
- .claude/vibe/todos/
26
+ .vibe/todos/
27
27
  ├── P1-security-sql-injection.md
28
28
  ├── P2-perf-n1-query.md
29
29
  ├── P3-style-extract-helper.md
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: vibe-contract
3
3
  tier: core
4
- description: "API contract drift detection. Extracts HTTP/GraphQL/event/public-function contracts from SPEC into .claude/vibe/contracts/<feature>.md, compares to implementation, and fails loudly on breaking drift (missing endpoints, removed required fields, type changes). P1 drifts auto-register as regressions via vibe-regress. Must use this skill when user runs /vibe.contract, when /vibe.spec completes, when /vibe.verify passes scenarios, or when the user says 'contract', 'API schema', 'breaking change', 'drift', '계약', '스키마 바뀜'."
4
+ description: "API contract drift detection. Extracts HTTP/GraphQL/event/public-function contracts from SPEC into .vibe/contracts/<feature>.md, compares to implementation, and fails loudly on breaking drift (missing endpoints, removed required fields, type changes). P1 drifts auto-register as regressions via vibe-regress. Must use this skill when user runs /vibe.contract, when /vibe.spec completes, when /vibe.verify passes scenarios, or when the user says 'contract', 'API schema', 'breaking change', 'drift', '계약', '스키마 바뀜'."
5
5
  triggers: [contract, drift, "계약", "API 변경", "breaking change", "schema drift"]
6
6
  priority: 70
7
7
  chain-next: []
@@ -18,7 +18,7 @@ Hidden vibe-coding weakness: as the implementation grows, response shapes drift
18
18
  ## Storage Contract
19
19
 
20
20
  ```
21
- .claude/vibe/contracts/
21
+ .vibe/contracts/
22
22
  <feature>.md # contract SSOT (extracted from SPEC)
23
23
  <feature>.snapshot.md # implementation snapshot (last check)
24
24
  ```
@@ -28,7 +28,7 @@ Hidden vibe-coding weakness: as the implementation grows, response shapes drift
28
28
  ```yaml
29
29
  ---
30
30
  feature: string
31
- extracted-from: .claude/vibe/specs/<feature>.md
31
+ extracted-from: .vibe/specs/<feature>.md
32
32
  extracted-at: ISO-8601
33
33
  source-spec-hash: sha256 # for change detection
34
34
  endpoints:
@@ -75,14 +75,14 @@ endpoints:
75
75
  3. Extraction failure (no such section) → **exit cleanly with `no-contract` state**. Not every feature has an API.
76
76
  4. Success → convert to the frontmatter structure
77
77
  5. `source-spec-hash`: sha256 of SPEC content (for next extract to detect change)
78
- 6. Save to `.claude/vibe/contracts/<feature>.md` (no-op if file exists with the same hash)
78
+ 6. Save to `.vibe/contracts/<feature>.md` (no-op if file exists with the same hash)
79
79
 
80
80
  **Caveat**: extraction is LLM-driven. Mark low-confidence fields with `# unconfirmed` so the user can review.
81
81
 
82
82
  ### 2. `check <feature>` — contract vs implementation
83
83
 
84
84
  **Steps**:
85
- 1. Load `.claude/vibe/contracts/<feature>.md`. If missing → **suggest extract first**.
85
+ 1. Load `.vibe/contracts/<feature>.md`. If missing → **suggest extract first**.
86
86
  2. For each endpoint, find implementation:
87
87
  - http: detect framework (Express, Fastify, Next.js API routes, Hono, ...)
88
88
  - graphql: locate resolver files
@@ -90,7 +90,7 @@ endpoints:
90
90
  - function: module export
91
91
  3. Extract implementation signature/schema → compare against contract
92
92
  4. Classify drift (severity table in command file)
93
- 5. Persist snapshot at `.claude/vibe/contracts/<feature>.snapshot.md` (current implementation state)
93
+ 5. Persist snapshot at `.vibe/contracts/<feature>.snapshot.md` (current implementation state)
94
94
 
95
95
  ### 3. `diff <feature>` — changes since last snapshot
96
96
 
@@ -20,7 +20,7 @@ chain-next: [vibe-plan]
20
20
 
21
21
  **Skip when**:
22
22
  - Small bug fix on an existing project
23
- - `.claude/vibe/plans/{feature}.md` already exists (→ only update via `vibe-plan`)
23
+ - `.vibe/plans/{feature}.md` already exists (→ only update via `vibe-plan`)
24
24
 
25
25
  ## Core Loop
26
26
 
@@ -51,7 +51,7 @@ chain-next: [vibe-plan]
51
51
  └──────────────────────┘
52
52
 
53
53
  4. Save collected results
54
- .claude/vibe/interviews/{feature}.md
54
+ .vibe/interviews/{feature}.md
55
55
 
56
56
  5. chain-next: vibe-plan
57
57
  ```
@@ -206,7 +206,7 @@ Incomplete items will be marked as "TBD" in the plan.
206
206
 
207
207
  ## Step 4: Save Collected Results
208
208
 
209
- **Output file**: `.claude/vibe/interviews/{feature-name}.md`
209
+ **Output file**: `.vibe/interviews/{feature-name}.md`
210
210
 
211
211
  **Structure**:
212
212
 
@@ -262,7 +262,7 @@ stoppedBy: user | auto
262
262
  ### Update `.last-feature` pointer
263
263
 
264
264
  ```
265
- Write ".claude/vibe/.last-feature" ← feature-name (single line)
265
+ Write ".vibe/.last-feature" ← feature-name (single line)
266
266
 
267
267
  Run immediately after saving the interview file in Step 4.
268
268
  This pointer is used by /vibe.spec (no args) for Smart Resume.
@@ -278,7 +278,7 @@ After the interview is complete, the `vibe-plan` skill is automatically activate
278
278
  ✅ Interview complete!
279
279
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
280
280
 
281
- 📄 .claude/vibe/interviews/{feature-name}.md
281
+ 📄 .vibe/interviews/{feature-name}.md
282
282
  Required: 8/8
283
283
  Optional: 12/14
284
284
  Discovered: 3
@@ -345,7 +345,7 @@ User: 3
345
345
  Claude: ⚠️ All required items complete. 10 optional items will be marked as TBD.
346
346
 
347
347
  ✅ Interview complete!
348
- 📄 .claude/vibe/interviews/parallax-website.md
348
+ 📄 .vibe/interviews/parallax-website.md
349
349
 
350
350
  → vibe-plan skill is starting plan creation...
351
351
  ```
@@ -11,7 +11,7 @@
11
11
 
12
12
  ### R2. existing-project-context
13
13
  **Q**: 기존 프로젝트의 기술 스택을 확인했나요?
14
- **힌트**: CLAUDE.md, package.json, .claude/vibe/config.json 읽어서 자동 파악.
14
+ **힌트**: CLAUDE.md, package.json, .vibe/config.json 읽어서 자동 파악.
15
15
  **follow-up**: 파악 결과를 사용자에게 요약해 확인 받기.
16
16
 
17
17
  ### R3. affected-areas
@@ -13,7 +13,7 @@ chain-next: [vibe-spec, vibe-figma]
13
13
 
14
14
  ## When to Use
15
15
 
16
- - `vibe-interview` has just completed and `.claude/vibe/interviews/{feature}.md` exists
16
+ - `vibe-interview` has just completed and `.vibe/interviews/{feature}.md` exists
17
17
  - The user requests "write me a plan document" or "clean up the interview"
18
18
  - Need to convert an external PRD/wireframe into the vibe plan document format
19
19
 
@@ -24,7 +24,7 @@ chain-next: [vibe-spec, vibe-figma]
24
24
 
25
25
  ```
26
26
  1. Read interview file
27
- .claude/vibe/interviews/{feature}.md
27
+ .vibe/interviews/{feature}.md
28
28
 
29
29
  2. Load template
30
30
  ~/.claude/vibe/templates/plan-template.md
@@ -40,7 +40,7 @@ chain-next: [vibe-spec, vibe-figma]
40
40
  type ∈ {api, library, feature-data} → omit
41
41
 
42
42
  5. Save plan document
43
- .claude/vibe/plans/{feature}.md
43
+ .vibe/plans/{feature}.md
44
44
 
45
45
  6. Handoff guidance
46
46
  Next steps: /vibe.spec, /vibe.figma, parallel
@@ -49,7 +49,7 @@ chain-next: [vibe-spec, vibe-figma]
49
49
  ## Step 1: Read Interview File
50
50
 
51
51
  ```
52
- Read .claude/vibe/interviews/{feature-name}.md
52
+ Read .vibe/interviews/{feature-name}.md
53
53
  ```
54
54
 
55
55
  Extract `type`, `status`, `requiredCollected`, `optionalCollected`, etc. from the frontmatter.
@@ -104,7 +104,7 @@ Edit anything that doesn't match your intent.
104
104
  ### `.last-feature` Pointer Update
105
105
 
106
106
  ```
107
- Write ".claude/vibe/.last-feature" ← feature-name (one line)
107
+ Write ".vibe/.last-feature" ← feature-name (one line)
108
108
  Run immediately after extracting the feature name from the interview file.
109
109
  No-op if the value is already the same.
110
110
  ```
@@ -180,7 +180,7 @@ else: # api, library, feature-data
180
180
 
181
181
  ## Step 5: Save Plan Document
182
182
 
183
- **Output path**: `.claude/vibe/plans/{feature-name}.md`
183
+ **Output path**: `.vibe/plans/{feature-name}.md`
184
184
 
185
185
  **Frontmatter**:
186
186
 
@@ -191,7 +191,7 @@ type: {website | webapp | mobile | api | library | feature}
191
191
  status: draft
192
192
  createdAt: {ISO-timestamp}
193
193
  lastUpdated: {ISO-timestamp}
194
- source: .claude/vibe/interviews/{feature-name}.md
194
+ source: .vibe/interviews/{feature-name}.md
195
195
  downstream: [spec, figma] # or [spec] for non-UI
196
196
  ---
197
197
  ```
@@ -213,7 +213,7 @@ After saving the plan document, guide the user on next steps:
213
213
  ✅ Plan document complete!
214
214
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
215
215
 
216
- 📄 .claude/vibe/plans/{feature-name}.md
216
+ 📄 .vibe/plans/{feature-name}.md
217
217
  Sections: {N} written
218
218
  TBD: {M} (to be decided later)
219
219
 
@@ -222,7 +222,7 @@ Type: {type}
222
222
  Next steps:
223
223
 
224
224
  [UI project: website/webapp/mobile]
225
- 1. /vibe.spec ".claude/vibe/plans/{feature-name}.md"
225
+ 1. /vibe.spec ".vibe/plans/{feature-name}.md"
226
226
  → Write code spec → /vibe.run implementation
227
227
  2. /vibe.figma
228
228
  → Figma design → FE UI code
@@ -230,7 +230,7 @@ Next steps:
230
230
  → Feature + Design → website prototype
231
231
 
232
232
  [Non-UI: api/library]
233
- 1. /vibe.spec ".claude/vibe/plans/{feature-name}.md"
233
+ 1. /vibe.spec ".vibe/plans/{feature-name}.md"
234
234
  → Code spec → /vibe.run implementation
235
235
 
236
236
  Where would you like to start?
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: vibe-regress
3
3
  tier: core
4
- description: "Regression test auto-evolution. Registers bugs (auto from /vibe.verify failures or manual), generates preventive vitest/jest files from bug records, clusters repeated patterns (3+ same root-cause-tag) into shared tests, and imports historical `fix:` commits from git log. Storage: .claude/vibe/regressions/<slug>.md. Must use this skill when user runs /vibe.regress, when /vibe.verify produces a failure, or when the user says 'don't let this happen again' / 'regression test' / '회귀 테스트'."
4
+ description: "Regression test auto-evolution. Registers bugs (auto from /vibe.verify failures or manual), generates preventive vitest/jest files from bug records, clusters repeated patterns (3+ same root-cause-tag) into shared tests, and imports historical `fix:` commits from git log. Storage: .vibe/regressions/<slug>.md. Must use this skill when user runs /vibe.regress, when /vibe.verify produces a failure, or when the user says 'don't let this happen again' / 'regression test' / '회귀 테스트'."
5
5
  triggers: [regress, regression, "회귀", "다시는", "반복 버그", "fix commit"]
6
6
  priority: 70
7
7
  chain-next: []
@@ -18,7 +18,7 @@ A classic vibe-coding weakness: LLMs reintroduce bugs of the same class. Regress
18
18
  ## Storage Contract
19
19
 
20
20
  ```
21
- .claude/vibe/regressions/
21
+ .vibe/regressions/
22
22
  <bug-slug>.md # one file per bug
23
23
  _cluster-<tag>.md # shared-test design produced by `cluster`
24
24
  ```
@@ -69,7 +69,7 @@ Most calls are automatic; manual use is rare (bugs found outside `/vibe.verify`,
69
69
  - Fix description
70
70
  4. `root-cause-tag` is **inferred from the allowed set, then confirmed with the user**. If unclear → `other`.
71
71
  5. Generate slug: kebab-case keywords from the symptom; on collision append `-2`
72
- 6. Write `.claude/vibe/regressions/<slug>.md` (status: `open`)
72
+ 6. Write `.vibe/regressions/<slug>.md` (status: `open`)
73
73
 
74
74
  ### 2. `generate <slug>` — generate preventive test
75
75
 
@@ -106,7 +106,7 @@ cart-stock-race-double-deduct cart concurrency open 1d
106
106
 
107
107
  **Steps**:
108
108
  1. `git log --grep='^fix:' --format='%H|%s|%ci' --since=<last-import-date>`
109
- - `last-import-date` lives in `.claude/vibe/regressions/.import-cursor` (defaults to 90 days ago)
109
+ - `last-import-date` lives in `.vibe/regressions/.import-cursor` (defaults to 90 days ago)
110
110
  2. For each commit:
111
111
  - If a bug file with the same `fix-commit` already exists → **skip**
112
112
  - Otherwise infer symptom + root-cause-tag from message/diff (LLM call)
@@ -152,7 +152,7 @@ Load skill `vibe-regress` with: register --from-verify
152
152
 
153
153
  At the start of `/vibe.run "<feature>"`:
154
154
 
155
- 1. Filter `.claude/vibe/regressions/*.md` for `feature: <feature-name>` + `status != resolved`
155
+ 1. Filter `.vibe/regressions/*.md` for `feature: <feature-name>` + `status != resolved`
156
156
  2. If any open items:
157
157
  ```
158
158
  ⚠️ Open regressions for this feature:
@@ -35,7 +35,7 @@ feature: {{FEATURE}}
35
35
 
36
36
  ## Related
37
37
 
38
- - Feature: [.claude/vibe/features/{{FEATURE}}.feature](../../features/{{FEATURE}}.feature)
38
+ - Feature: [.vibe/features/{{FEATURE}}.feature](../../features/{{FEATURE}}.feature)
39
39
  - Fix commit: `{{FIX_COMMIT}}`
40
40
  - Regression test: `{{TEST_PATH}}`
41
41
 
@@ -4,7 +4,7 @@
4
4
  * Symptom: {{SYMPTOM}}
5
5
  * Root cause tag: {{ROOT_CAUSE_TAG}}
6
6
  * Fix commit: {{FIX_COMMIT}}
7
- * Source record: .claude/vibe/regressions/{{SLUG}}.md
7
+ * Source record: .vibe/regressions/{{SLUG}}.md
8
8
  *
9
9
  * DO NOT delete this test when the bug is fixed — it exists to prevent the
10
10
  * same bug from being reintroduced. Update only if the reproduction steps
@@ -4,7 +4,7 @@
4
4
  * Symptom: {{SYMPTOM}}
5
5
  * Root cause tag: {{ROOT_CAUSE_TAG}}
6
6
  * Fix commit: {{FIX_COMMIT}}
7
- * Source record: .claude/vibe/regressions/{{SLUG}}.md
7
+ * Source record: .vibe/regressions/{{SLUG}}.md
8
8
  *
9
9
  * DO NOT delete this test when the bug is fixed — it exists to prevent the
10
10
  * same bug from being reintroduced. Update only if the reproduction steps