@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.
- package/CLAUDE.md +1 -1
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/agents/compounder.md +6 -6
- package/agents/diagrammer.md +2 -2
- package/agents/e2e-tester.md +5 -5
- package/agents/qa/acceptance-tester.md +2 -2
- package/agents/refactor-cleaner.md +2 -2
- package/agents/tester.md +1 -1
- package/agents/ui/ui-antipattern-detector.md +1 -1
- package/agents/ui/ui-design-system-gen.md +3 -3
- package/agents/ui/ui-industry-analyzer.md +1 -1
- package/agents/ui/ui-layout-architect.md +1 -1
- package/agents/ui/ui-stack-implementer.md +1 -1
- package/commands/vibe.analyze.md +1 -1
- package/commands/vibe.contract.md +2 -2
- package/commands/vibe.figma.md +3 -3
- package/commands/vibe.harness.md +3 -3
- package/commands/vibe.regress.md +2 -2
- package/commands/vibe.review.md +4 -4
- package/commands/vibe.run.md +27 -27
- package/commands/vibe.scaffold.md +1 -1
- package/commands/vibe.spec.md +38 -38
- package/commands/vibe.trace.md +14 -14
- package/commands/vibe.utils.md +3 -3
- package/commands/vibe.verify.md +18 -18
- package/dist/infra/lib/figma/extract.d.ts.map +1 -1
- package/dist/infra/lib/figma/extract.js +55 -0
- package/dist/infra/lib/figma/extract.js.map +1 -1
- package/dist/infra/lib/figma/types.d.ts +8 -0
- package/dist/infra/lib/figma/types.d.ts.map +1 -1
- package/hooks/scripts/__tests__/figma-extract.test.js +338 -0
- package/hooks/scripts/figma-extract.js +144 -31
- package/hooks/scripts/prompt-dispatcher.js +15 -0
- package/hooks/scripts/utils.js +4 -0
- package/package.json +1 -1
- package/skills/arch-guard/SKILL.md +2 -2
- package/skills/arch-guard/agents/rule-generator.md +3 -3
- package/skills/arch-guard/scripts/check-boundaries.js +1 -1
- package/skills/arch-guard/templates/arch-rules.json +1 -1
- package/skills/capability-loop/SKILL.md +2 -2
- package/skills/capability-loop/templates/capability-spec.md +1 -1
- package/skills/claude-md-guide/SKILL.md +2 -2
- package/skills/design-audit/SKILL.md +3 -3
- package/skills/design-critique/SKILL.md +2 -2
- package/skills/design-distill/SKILL.md +1 -1
- package/skills/design-normalize/SKILL.md +4 -4
- package/skills/design-polish/SKILL.md +2 -2
- package/skills/design-teach/SKILL.md +6 -6
- package/skills/design-teach/templates/design-context.json +1 -1
- package/skills/devlog/SKILL.md +1 -1
- package/skills/event-planning/SKILL.md +1 -1
- package/skills/exec-plan/SKILL.md +5 -5
- package/skills/exec-plan/agents/decomposer.md +1 -1
- package/skills/exec-plan/templates/plan.md +2 -2
- package/skills/parallel-research/SKILL.md +3 -3
- package/skills/parallel-research/orchestrator.md +1 -1
- package/skills/parallel-research/templates/paper.md +1 -1
- package/skills/priority-todos/SKILL.md +1 -1
- package/skills/vibe-contract/SKILL.md +6 -6
- package/skills/vibe-interview/SKILL.md +6 -6
- package/skills/vibe-interview/checklists/feature.md +1 -1
- package/skills/vibe-plan/SKILL.md +10 -10
- package/skills/vibe-regress/SKILL.md +5 -5
- package/skills/vibe-regress/templates/bug.md +1 -1
- package/skills/vibe-regress/templates/test-jest.md +1 -1
- package/skills/vibe-regress/templates/test-vitest.md +1 -1
- package/skills/vibe-spec/SKILL.md +45 -45
- package/skills/vibe-spec-review/SKILL.md +21 -21
- package/skills/vibe-test/SKILL.md +1 -1
- package/vibe/constitution.md +2 -2
- package/vibe/templates/claudemd-template.md +4 -4
- package/vibe/templates/constitution-template.md +2 -2
- package/vibe/templates/feature-template.md +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe-spec
|
|
3
3
|
tier: core
|
|
4
|
-
description: "Create an AI-executable PTCF-structured SPEC document through conversational requirements gathering, parallel research (GPT/Gemini/Claude agents), PTCF writing, ambiguity scan, and 100-point quality gate (loops until perfect or stuck). Produces .
|
|
4
|
+
description: "Create an AI-executable PTCF-structured SPEC document through conversational requirements gathering, parallel research (GPT/Gemini/Claude agents), PTCF writing, ambiguity scan, and 100-point quality gate (loops until perfect or stuck). Produces .vibe/specs/{feature}.md + matching .vibe/features/{feature}.feature (BDD). Must use this skill when the user says 'write spec', 'create spec', '/vibe.spec', or when a plan document exists and is ready for code specification."
|
|
5
5
|
triggers: [spec, SPEC, 명세, "코드 명세", "구현 명세", "write spec", "create spec", PTCF]
|
|
6
6
|
priority: 85
|
|
7
7
|
chain-next: [vibe-spec-review]
|
|
@@ -225,7 +225,7 @@ $ git checkout -b feature/login-page
|
|
|
225
225
|
**`.last-feature` pointer update** (immediately after Git branch setup):
|
|
226
226
|
|
|
227
227
|
```
|
|
228
|
-
Write ".
|
|
228
|
+
Write ".vibe/.last-feature" ← feature-name (single line)
|
|
229
229
|
Execute at the point when the feature name is finalized.
|
|
230
230
|
No-op if the value is already the same.
|
|
231
231
|
```
|
|
@@ -350,7 +350,7 @@ const response = parseUserResponse(question, "1, 2, 4");
|
|
|
350
350
|
Reference documents are automatically generated in `config.json` based on the stack detected during `vibe init`:
|
|
351
351
|
|
|
352
352
|
```json
|
|
353
|
-
// .
|
|
353
|
+
// .vibe/config.json
|
|
354
354
|
{
|
|
355
355
|
"language": "ko",
|
|
356
356
|
"stacks": [
|
|
@@ -376,14 +376,14 @@ Reference documents are automatically generated in `config.json` based on the st
|
|
|
376
376
|
|
|
377
377
|
**Workflow:**
|
|
378
378
|
|
|
379
|
-
1. Read `.
|
|
379
|
+
1. Read `.vibe/config.json`
|
|
380
380
|
2. Extract `references.languages[]` paths
|
|
381
381
|
3. Read each language document for stack-specific guidelines
|
|
382
382
|
|
|
383
383
|
**Example:**
|
|
384
384
|
```bash
|
|
385
385
|
# 1. Check references in config.json
|
|
386
|
-
Read .
|
|
386
|
+
Read .vibe/config.json
|
|
387
387
|
|
|
388
388
|
# 2. Reference documents specified in references.languages
|
|
389
389
|
Read ~/.claude/vibe/languages/typescript-react.md
|
|
@@ -401,13 +401,13 @@ Before spawning any research agents, check for a prior persisted dataset:
|
|
|
401
401
|
|
|
402
402
|
```bash
|
|
403
403
|
# Slug = kebab-case of the feature/topic, max 50 chars
|
|
404
|
-
ls .
|
|
404
|
+
ls .vibe/research/<slug>/paper.md 2>/dev/null
|
|
405
405
|
```
|
|
406
406
|
|
|
407
407
|
**If `paper.md` exists:**
|
|
408
|
-
1. Read `.
|
|
409
|
-
2. Read `.
|
|
410
|
-
3. Inject the **Findings**, **Recommendation**, and **Security considerations** sections verbatim into SPEC Context, prefixed with `> Source: .
|
|
408
|
+
1. Read `.vibe/research/<slug>/paper.md`
|
|
409
|
+
2. Read `.vibe/research/<slug>/awesome-list.md` (if present)
|
|
410
|
+
3. Inject the **Findings**, **Recommendation**, and **Security considerations** sections verbatim into SPEC Context, prefixed with `> Source: .vibe/research/<slug>/paper.md (cached {{FILE_MTIME}})`
|
|
411
411
|
4. **Skip step 3** (parallel research) entirely — do not re-run GPT/Gemini/Claude agents
|
|
412
412
|
5. Print: `✅ Research cache hit: <slug> (saved ~30s of LLM calls)`
|
|
413
413
|
|
|
@@ -436,7 +436,7 @@ Proceed to step 3. After step 3 completes, the synthesizer **must** write the 3
|
|
|
436
436
|
6. **DO NOT** create SECURITY_*.md, RESEARCH_*.md, SUMMARY_*.md files
|
|
437
437
|
7. **DO NOT** use Write tool during research phase
|
|
438
438
|
8. **ALL research results** must be returned as text output only
|
|
439
|
-
9. **Files are ONLY created** in Step 4 (SPEC) and Step 5 (Feature) in `.
|
|
439
|
+
9. **Files are ONLY created** in Step 4 (SPEC) and Step 5 (Feature) in `.vibe/` directory
|
|
440
440
|
|
|
441
441
|
**When to trigger:**
|
|
442
442
|
1. ✅ Feature type decided (e.g., "passkey authentication")
|
|
@@ -520,7 +520,7 @@ node "[LLM_SCRIPT]" gemini orchestrate-json "Security advisories for passkey aut
|
|
|
520
520
|
### 3.2 UI/UX Design Intelligence (Auto-triggered)
|
|
521
521
|
|
|
522
522
|
> **Condition**: Auto-executes when UI/UX keywords are present in the SPEC context (website, landing, dashboard, app, e-commerce, portfolio, SaaS, mobile app, web app, UI, UX, frontend, design)
|
|
523
|
-
> **Disable**: Set `"uiUxAnalysis": false` in `.
|
|
523
|
+
> **Disable**: Set `"uiUxAnalysis": false` in `.vibe/config.json`
|
|
524
524
|
|
|
525
525
|
**When UI/UX keywords are detected, run 3 agents sequentially in parallel with research:**
|
|
526
526
|
|
|
@@ -540,7 +540,7 @@ node "[LLM_SCRIPT]" gemini orchestrate-json "Security advisories for passkey aut
|
|
|
540
540
|
1. **① ui-industry-analyzer** — Run as Task(haiku) agent:
|
|
541
541
|
```text
|
|
542
542
|
Task(subagent_type="ui-industry-analyzer",
|
|
543
|
-
prompt="Analyze product: [USER_DESCRIPTION]. Use core_ui_search to detect category, style priority, color mood, typography mood. Save result to .
|
|
543
|
+
prompt="Analyze product: [USER_DESCRIPTION]. Use core_ui_search to detect category, style priority, color mood, typography mood. Save result to .vibe/design-system/{project}/analysis-result.json")
|
|
544
544
|
```
|
|
545
545
|
|
|
546
546
|
2. **②③ parallel execution** — Using ①'s result as input:
|
|
@@ -559,7 +559,7 @@ Task(subagent_type="ui-layout-architect",
|
|
|
559
559
|
### Design System (Auto-generated)
|
|
560
560
|
- Category: {① category}
|
|
561
561
|
- Style: {① style_priority}
|
|
562
|
-
- MASTER.md: .
|
|
562
|
+
- MASTER.md: .vibe/design-system/{project}/MASTER.md
|
|
563
563
|
- Layout: {③ pattern + sections}
|
|
564
564
|
```
|
|
565
565
|
|
|
@@ -567,13 +567,13 @@ Task(subagent_type="ui-layout-architect",
|
|
|
567
567
|
|
|
568
568
|
> The "no Write during research" rule from step 3 does **not** apply here — research is done; artifacts are safe to persist.
|
|
569
569
|
|
|
570
|
-
After parallel research + UI/UX intelligence complete, before writing the SPEC, save the merged research to `.
|
|
570
|
+
After parallel research + UI/UX intelligence complete, before writing the SPEC, save the merged research to `.vibe/research/<slug>/`:
|
|
571
571
|
|
|
572
572
|
1. Compute slug: kebab-case of feature name, max 50 chars
|
|
573
573
|
2. Write **three files** using templates from `parallel-research/templates/`:
|
|
574
|
-
- `.
|
|
575
|
-
- `.
|
|
576
|
-
- `.
|
|
574
|
+
- `.vibe/research/<slug>/synthesis.md` — raw merged findings (all agent outputs)
|
|
575
|
+
- `.vibe/research/<slug>/awesome-list.md` — curated links/repos/patterns (every entry needs a one-line "why"; drop entries without one)
|
|
576
|
+
- `.vibe/research/<slug>/paper.md` — structured survey (Abstract → Background → Method → Findings → Recommendation → Security → References)
|
|
577
577
|
3. Include a frontmatter header in `paper.md` with a `stack:` field so step 2.9 can detect stack drift
|
|
578
578
|
4. If the directory already exists (user passed `--refresh-research`), overwrite
|
|
579
579
|
|
|
@@ -599,13 +599,13 @@ This makes the next `/vibe.spec` (or future `/vibe.research`) invocation on the
|
|
|
599
599
|
**Auto-split output (SPEC + Feature files must match):**
|
|
600
600
|
|
|
601
601
|
```
|
|
602
|
-
.
|
|
602
|
+
.vibe/specs/{feature-name}/
|
|
603
603
|
├── _index.md # Master SPEC
|
|
604
604
|
├── phase-1-setup.md
|
|
605
605
|
├── phase-2-core.md
|
|
606
606
|
└── ...
|
|
607
607
|
|
|
608
|
-
.
|
|
608
|
+
.vibe/features/{feature-name}/
|
|
609
609
|
├── _index.feature # Master Feature
|
|
610
610
|
├── phase-1-setup.feature
|
|
611
611
|
├── phase-2-core.feature
|
|
@@ -640,7 +640,7 @@ This makes the next `/vibe.spec` (or future `/vibe.research`) invocation on the
|
|
|
640
640
|
```markdown
|
|
641
641
|
# Feature: {feature-name} (Master)
|
|
642
642
|
|
|
643
|
-
**Master SPEC**: `.
|
|
643
|
+
**Master SPEC**: `.vibe/specs/{feature-name}/_index.md`
|
|
644
644
|
|
|
645
645
|
## Sub-Features
|
|
646
646
|
|
|
@@ -657,7 +657,7 @@ This makes the next `/vibe.spec` (or future `/vibe.research`) invocation on the
|
|
|
657
657
|
|
|
658
658
|
**Small scope (default):**
|
|
659
659
|
|
|
660
|
-
Create `.
|
|
660
|
+
Create `.vibe/specs/{feature-name}.md`:
|
|
661
661
|
|
|
662
662
|
```markdown
|
|
663
663
|
---
|
|
@@ -756,7 +756,7 @@ Define AI role and expertise for implementation
|
|
|
756
756
|
|
|
757
757
|
#### 5.1 Single File (Small Scope)
|
|
758
758
|
|
|
759
|
-
Create `.
|
|
759
|
+
Create `.vibe/features/{feature-name}.feature`:
|
|
760
760
|
|
|
761
761
|
**Creation rules:**
|
|
762
762
|
1. Convert each SPEC Acceptance Criteria → one Scenario
|
|
@@ -766,7 +766,7 @@ Create `.claude/vibe/features/{feature-name}.feature`:
|
|
|
766
766
|
```markdown
|
|
767
767
|
# Feature: {feature-name}
|
|
768
768
|
|
|
769
|
-
**SPEC**: `.
|
|
769
|
+
**SPEC**: `.vibe/specs/{feature-name}.md`
|
|
770
770
|
|
|
771
771
|
## User Story
|
|
772
772
|
**As a** {user}
|
|
@@ -798,7 +798,7 @@ Scenario: {title}
|
|
|
798
798
|
When SPEC is split into phases, Feature files MUST also be split:
|
|
799
799
|
|
|
800
800
|
```
|
|
801
|
-
.
|
|
801
|
+
.vibe/features/{feature-name}/
|
|
802
802
|
├── _index.feature # Master: links to all phase features
|
|
803
803
|
├── phase-1-setup.feature # Scenarios for phase-1-setup.md
|
|
804
804
|
├── phase-2-core.feature # Scenarios for phase-2-core.md
|
|
@@ -810,8 +810,8 @@ When SPEC is split into phases, Feature files MUST also be split:
|
|
|
810
810
|
```markdown
|
|
811
811
|
# Feature: {feature-name} - Phase {N}: {phase-name}
|
|
812
812
|
|
|
813
|
-
**SPEC**: `.
|
|
814
|
-
**Master Feature**: `.
|
|
813
|
+
**SPEC**: `.vibe/specs/{feature-name}/phase-{N}-{name}.md`
|
|
814
|
+
**Master Feature**: `.vibe/features/{feature-name}/_index.feature`
|
|
815
815
|
|
|
816
816
|
## User Story (Phase Scope)
|
|
817
817
|
**As a** {user}
|
|
@@ -988,8 +988,8 @@ Output the handoff message:
|
|
|
988
988
|
✅ SPEC DRAFT COMPLETE: {feature-name}
|
|
989
989
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
990
990
|
|
|
991
|
-
📋 SPEC: .
|
|
992
|
-
📋 Feature: .
|
|
991
|
+
📋 SPEC: .vibe/specs/{feature-name}.md
|
|
992
|
+
📋 Feature: .vibe/features/{feature-name}.feature
|
|
993
993
|
📊 Quality Score: {score}/100
|
|
994
994
|
⏱️ Started: {start_time}
|
|
995
995
|
⏱️ Completed: {getCurrentTime result}
|
|
@@ -1017,22 +1017,22 @@ Option 2 (recommended for large context):
|
|
|
1017
1017
|
|
|
1018
1018
|
| File | Path | When |
|
|
1019
1019
|
|------|------|------|
|
|
1020
|
-
| SPEC | `.
|
|
1021
|
-
| Feature | `.
|
|
1020
|
+
| SPEC | `.vibe/specs/{feature-name}.md` | After quality validation (Step 7) |
|
|
1021
|
+
| Feature | `.vibe/features/{feature-name}.feature` | Immediately after SPEC |
|
|
1022
1022
|
|
|
1023
1023
|
### Large Scope (Split Files)
|
|
1024
1024
|
|
|
1025
1025
|
| File | Path | When |
|
|
1026
1026
|
|------|------|------|
|
|
1027
|
-
| Master SPEC | `.
|
|
1028
|
-
| Phase SPEC | `.
|
|
1029
|
-
| Master Feature | `.
|
|
1030
|
-
| Phase Feature | `.
|
|
1027
|
+
| Master SPEC | `.vibe/specs/{feature-name}/_index.md` | After quality validation |
|
|
1028
|
+
| Phase SPEC | `.vibe/specs/{feature-name}/phase-{N}-{name}.md` | Per phase |
|
|
1029
|
+
| Master Feature | `.vibe/features/{feature-name}/_index.feature` | After Master SPEC |
|
|
1030
|
+
| Phase Feature | `.vibe/features/{feature-name}/phase-{N}-{name}.feature` | Per phase SPEC |
|
|
1031
1031
|
|
|
1032
1032
|
**❌ FORBIDDEN:**
|
|
1033
1033
|
|
|
1034
1034
|
- Creating files in project root (e.g., `feature-name.md`)
|
|
1035
|
-
- Creating files outside `.
|
|
1035
|
+
- Creating files outside `.vibe/` directory
|
|
1036
1036
|
- Skipping file creation
|
|
1037
1037
|
- Using different file names than feature-name
|
|
1038
1038
|
- Creating split SPEC without matching split Feature files
|
|
@@ -1048,19 +1048,19 @@ Option 2 (recommended for large context):
|
|
|
1048
1048
|
|
|
1049
1049
|
**Single file:**
|
|
1050
1050
|
```
|
|
1051
|
-
1. Write .
|
|
1052
|
-
2. Write .
|
|
1051
|
+
1. Write .vibe/specs/{feature-name}.md
|
|
1052
|
+
2. Write .vibe/features/{feature-name}.feature
|
|
1053
1053
|
3. Confirm: "✅ Created: specs/{feature-name}.md + features/{feature-name}.feature"
|
|
1054
1054
|
```
|
|
1055
1055
|
|
|
1056
1056
|
**Split files:**
|
|
1057
1057
|
```
|
|
1058
|
-
1. Write .
|
|
1059
|
-
2. Write .
|
|
1060
|
-
3. Write .
|
|
1061
|
-
4. Write .
|
|
1062
|
-
5. Write .
|
|
1063
|
-
6. Write .
|
|
1058
|
+
1. Write .vibe/specs/{feature-name}/_index.md
|
|
1059
|
+
2. Write .vibe/specs/{feature-name}/phase-1-setup.md
|
|
1060
|
+
3. Write .vibe/specs/{feature-name}/phase-2-core.md
|
|
1061
|
+
4. Write .vibe/features/{feature-name}/_index.feature
|
|
1062
|
+
5. Write .vibe/features/{feature-name}/phase-1-setup.feature
|
|
1063
|
+
6. Write .vibe/features/{feature-name}/phase-2-core.feature
|
|
1064
1064
|
7. Confirm: "✅ Created: {N} SPEC files + {N} Feature files"
|
|
1065
1065
|
```
|
|
1066
1066
|
|
|
@@ -1144,8 +1144,8 @@ Claude: Thank you. SPEC has been refined.
|
|
|
1144
1144
|
✅ SPEC Complete!
|
|
1145
1145
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1146
1146
|
|
|
1147
|
-
📄 .
|
|
1148
|
-
📄 .
|
|
1147
|
+
📄 .vibe/specs/brick-game.md (PTCF structure)
|
|
1148
|
+
📄 .vibe/features/brick-game.feature
|
|
1149
1149
|
📊 Quality score: 100/100 ← Loop converged (no remaining gaps)
|
|
1150
1150
|
```
|
|
1151
1151
|
|
|
@@ -26,8 +26,8 @@ Load skill `vibe-spec-review` with feature: "feature-name"
|
|
|
26
26
|
Or via natural language trigger: "스펙 리뷰", "review spec", "명세 리뷰".
|
|
27
27
|
|
|
28
28
|
**Prerequisites:**
|
|
29
|
-
- SPEC file exists: `.
|
|
30
|
-
- Feature file exists: `.
|
|
29
|
+
- SPEC file exists: `.vibe/specs/{feature-name}.md` (single) or `.vibe/specs/{feature-name}/_index.md` (split)
|
|
30
|
+
- Feature file exists: `.vibe/features/{feature-name}.feature` (single) or `.vibe/features/{feature-name}/_index.feature` (split)
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
@@ -48,7 +48,7 @@ Or via natural language trigger: "스펙 리뷰", "review spec", "명세 리뷰"
|
|
|
48
48
|
**`.last-feature` pointer update** (immediately after Timer):
|
|
49
49
|
|
|
50
50
|
```
|
|
51
|
-
Write ".
|
|
51
|
+
Write ".vibe/.last-feature" ← feature-name (one line)
|
|
52
52
|
If the value is already the same, no-op.
|
|
53
53
|
```
|
|
54
54
|
|
|
@@ -80,21 +80,21 @@ Detect SPEC structure (single file or split folder) and read files:
|
|
|
80
80
|
|
|
81
81
|
**Single file structure:**
|
|
82
82
|
```
|
|
83
|
-
.
|
|
84
|
-
.
|
|
83
|
+
.vibe/specs/{feature-name}.md
|
|
84
|
+
.vibe/features/{feature-name}.feature
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
**Split folder structure:**
|
|
88
88
|
```
|
|
89
|
-
.
|
|
90
|
-
.
|
|
91
|
-
.
|
|
92
|
-
.
|
|
89
|
+
.vibe/specs/{feature-name}/_index.md (+ phase files)
|
|
90
|
+
.vibe/specs/{feature-name}/phase-*.md (phase-1-xxx.md, phase-2-xxx.md, ...)
|
|
91
|
+
.vibe/features/{feature-name}/_index.feature (+ phase files)
|
|
92
|
+
.vibe/features/{feature-name}/phase-*.feature
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
**Detection logic:**
|
|
96
|
-
1. Check if `.
|
|
97
|
-
2. Otherwise check `.
|
|
96
|
+
1. Check if `.vibe/specs/{feature-name}/` directory exists → Split mode
|
|
97
|
+
2. Otherwise check `.vibe/specs/{feature-name}.md` → Single mode
|
|
98
98
|
3. If neither exists → Error
|
|
99
99
|
|
|
100
100
|
**Split mode file loading:**
|
|
@@ -110,8 +110,8 @@ Detect SPEC structure (single file or split folder) and read files:
|
|
|
110
110
|
|
|
111
111
|
Loading files...
|
|
112
112
|
Mode: {single|split}
|
|
113
|
-
✅ SPEC: .
|
|
114
|
-
✅ Feature: .
|
|
113
|
+
✅ SPEC: .vibe/specs/{feature-name}.md (or _index.md + N phase files)
|
|
114
|
+
✅ Feature: .vibe/features/{feature-name}.feature (or _index.feature + N phase files)
|
|
115
115
|
|
|
116
116
|
Extracted info:
|
|
117
117
|
- Feature: {feature description}
|
|
@@ -579,8 +579,8 @@ Total Improvements: {M}
|
|
|
579
579
|
⏱️ Completed: {getCurrentTime result}
|
|
580
580
|
|
|
581
581
|
Updated files:
|
|
582
|
-
📋 .
|
|
583
|
-
📋 .
|
|
582
|
+
📋 .vibe/specs/{feature-name}.md (or split folder)
|
|
583
|
+
📋 .vibe/features/{feature-name}.feature (or split folder)
|
|
584
584
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
585
585
|
```
|
|
586
586
|
|
|
@@ -678,8 +678,8 @@ Please answer the following questions:
|
|
|
678
678
|
```
|
|
679
679
|
❌ ERROR: SPEC file not found
|
|
680
680
|
|
|
681
|
-
Expected (single): .
|
|
682
|
-
Expected (split): .
|
|
681
|
+
Expected (single): .vibe/specs/{feature-name}.md
|
|
682
|
+
Expected (split): .vibe/specs/{feature-name}/_index.md
|
|
683
683
|
|
|
684
684
|
Please run /vibe.spec "{feature-name}" first to create the SPEC.
|
|
685
685
|
```
|
|
@@ -688,8 +688,8 @@ Please run /vibe.spec "{feature-name}" first to create the SPEC.
|
|
|
688
688
|
```
|
|
689
689
|
❌ ERROR: Feature file not found
|
|
690
690
|
|
|
691
|
-
Expected (single): .
|
|
692
|
-
Expected (split): .
|
|
691
|
+
Expected (single): .vibe/features/{feature-name}.feature
|
|
692
|
+
Expected (split): .vibe/features/{feature-name}/_index.feature
|
|
693
693
|
|
|
694
694
|
Please run /vibe.spec "{feature-name}" first to create the Feature file.
|
|
695
695
|
```
|
|
@@ -718,9 +718,9 @@ ARGUMENTS: $ARGUMENTS
|
|
|
718
718
|
```
|
|
719
719
|
Feature name: $ARGUMENTS
|
|
720
720
|
|
|
721
|
-
1. Check split folder: .
|
|
721
|
+
1. Check split folder: .vibe/specs/$ARGUMENTS/_index.md
|
|
722
722
|
- If exists → Split mode (read all files in folder)
|
|
723
|
-
2. Check single file: .
|
|
723
|
+
2. Check single file: .vibe/specs/$ARGUMENTS.md
|
|
724
724
|
- If exists → Single mode
|
|
725
725
|
3. Neither exists → Show error with both expected paths
|
|
726
726
|
```
|
|
@@ -136,5 +136,5 @@ If `failed` is empty, replace the Failures section with `_All probes passed._`.
|
|
|
136
136
|
- [ ] Target install dir missing → clean exit with guidance (not an error)
|
|
137
137
|
- [ ] JSON report matches the template above exactly (fields, types, naming)
|
|
138
138
|
- [ ] Markdown summary printed to console after the run
|
|
139
|
-
- [ ] Reports land in `~/.vibe/test-reports/`, never in project-local `.
|
|
139
|
+
- [ ] Reports land in `~/.vibe/test-reports/`, never in project-local `.vibe/`
|
|
140
140
|
- [ ] `failed.length > 0` → auto-invokes `/vibe.regress register --from-test`
|
package/vibe/constitution.md
CHANGED
|
@@ -11,7 +11,7 @@ This document defines the core principles and coding standards for the project.
|
|
|
11
11
|
This setting controls **conversation language with user only**.
|
|
12
12
|
All generated documents (SPEC, Feature, etc.) are **always in English**.
|
|
13
13
|
|
|
14
|
-
To change, modify in `.
|
|
14
|
+
To change, modify in `.vibe/config.json`:
|
|
15
15
|
|
|
16
16
|
```json
|
|
17
17
|
{
|
|
@@ -23,7 +23,7 @@ To change, modify in `.claude/vibe/config.json`:
|
|
|
23
23
|
|
|
24
24
|
## Document References
|
|
25
25
|
|
|
26
|
-
All reference documents are stored globally and specified in `.
|
|
26
|
+
All reference documents are stored globally and specified in `.vibe/config.json`:
|
|
27
27
|
|
|
28
28
|
```json
|
|
29
29
|
{
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
|
|
37
37
|
## References
|
|
38
38
|
|
|
39
|
-
- **Rules**: See `.
|
|
40
|
-
- **Language standards**: See `.
|
|
41
|
-
- **Constitution**: See `.
|
|
39
|
+
- **Rules**: See `.vibe/config.json` → `references.rules[]`
|
|
40
|
+
- **Language standards**: See `.vibe/languages/`
|
|
41
|
+
- **Constitution**: See `.vibe/constitution.md`
|
|
42
42
|
|
|
43
43
|
## Workflow
|
|
44
44
|
|
|
@@ -68,7 +68,7 @@ At 70%+ context: `save_memory` → `/new` → `/vibe.utils --continue`
|
|
|
68
68
|
|
|
69
69
|
## Git Commit Rules
|
|
70
70
|
|
|
71
|
-
**Include:** `.
|
|
71
|
+
**Include:** `.vibe/plans/`, `.vibe/specs/`, `.vibe/features/`, `.vibe/config.json`, `CLAUDE.md`
|
|
72
72
|
**Exclude:** `~/.claude/vibe/rules/`, `~/.claude/commands/`, `~/.claude/agents/`, `~/.claude/skills/`, `.claude/settings.local.json`
|
|
73
73
|
|
|
74
74
|
<!-- VIBE:END -->
|
|
@@ -11,7 +11,7 @@ This document defines the core principles and coding standards for the project.
|
|
|
11
11
|
This setting controls **conversation language with user only**.
|
|
12
12
|
All generated documents (SPEC, Feature, etc.) are **always in English**.
|
|
13
13
|
|
|
14
|
-
To change, modify in `.
|
|
14
|
+
To change, modify in `.vibe/config.json`:
|
|
15
15
|
|
|
16
16
|
```json
|
|
17
17
|
{
|
|
@@ -23,7 +23,7 @@ To change, modify in `.claude/vibe/config.json`:
|
|
|
23
23
|
|
|
24
24
|
## Document References
|
|
25
25
|
|
|
26
|
-
All reference documents are stored globally and specified in `.
|
|
26
|
+
All reference documents are stored globally and specified in `.vibe/config.json`:
|
|
27
27
|
|
|
28
28
|
```json
|
|
29
29
|
{
|