@su-record/vibe 2.6.15 → 2.6.16
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 -394
- package/README.md +112 -406
- package/dist/cli/setup/ProjectSetup.d.ts +0 -3
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +48 -24
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -30,18 +30,6 @@ Follow these standards when writing code. See `~/.claude/vibe/rules/` (global) f
|
|
|
30
30
|
- No `@ts-ignore` → Fix type issues at root
|
|
31
31
|
- Explicit return types on all functions
|
|
32
32
|
|
|
33
|
-
### TypeScript Rules
|
|
34
|
-
- No `any` type → use `unknown` + type guards
|
|
35
|
-
- No `as any` casting → define proper interfaces
|
|
36
|
-
- No `@ts-ignore` → fix type issues at root
|
|
37
|
-
- Explicit return types on all functions
|
|
38
|
-
|
|
39
|
-
### TypeScript Rules
|
|
40
|
-
- No `any` type → use `unknown` + type guards
|
|
41
|
-
- No `as any` casting → define proper interfaces
|
|
42
|
-
- No `@ts-ignore` → fix type issues at root
|
|
43
|
-
- Explicit return types on all functions
|
|
44
|
-
|
|
45
33
|
### Error Handling Required
|
|
46
34
|
- try-catch or error state required
|
|
47
35
|
- Loading state handling
|
|
@@ -690,385 +678,4 @@ flowchart TD
|
|
|
690
678
|
| 4. Agent Review | 13+ agent parallel review | ✅ Auto |
|
|
691
679
|
| 5. Auto-Fix | P1/P2 issue auto-fix | ✅ Auto |
|
|
692
680
|
|
|
693
|
-
|
|
694
|
-
title: Rule Title
|
|
695
|
-
impact: CRITICAL
|
|
696
|
-
tags: security, performance
|
|
697
|
-
---
|
|
698
|
-
|
|
699
|
-
## Rule Title
|
|
700
|
-
|
|
701
|
-
Explanation of the rule.
|
|
702
|
-
|
|
703
|
-
**Incorrect:**
|
|
704
|
-
\`\`\`typescript
|
|
705
|
-
// Bad code
|
|
706
|
-
\`\`\`
|
|
707
|
-
|
|
708
|
-
**Correct:**
|
|
709
|
-
\`\`\`typescript
|
|
710
|
-
// Good code
|
|
711
|
-
\`\`\`
|
|
712
|
-
```
|
|
713
|
-
|
|
714
|
-
### Impact-Based Classification
|
|
715
|
-
|
|
716
|
-
Rules are classified by impact level:
|
|
717
|
-
|
|
718
|
-
| Level | Color | Priority |
|
|
719
|
-
|-------|-------|----------|
|
|
720
|
-
| CRITICAL | 🔴 Red | 0 (highest) |
|
|
721
|
-
| HIGH | 🟡 Yellow | 1 |
|
|
722
|
-
| MEDIUM-HIGH | 🟡 Yellow | 2 |
|
|
723
|
-
| MEDIUM | 🔵 Cyan | 3 |
|
|
724
|
-
| LOW-MEDIUM | 🔵 Cyan | 4 |
|
|
725
|
-
| LOW | 🟢 Green | 5 |
|
|
726
|
-
|
|
727
|
-
### Framework Auto-Detection
|
|
728
|
-
|
|
729
|
-
Automatically detect project framework from package.json:
|
|
730
|
-
|
|
731
|
-
```typescript
|
|
732
|
-
import { detectFramework, getFrameworkRecommendations } from '@su-record/vibe/tools';
|
|
733
|
-
|
|
734
|
-
const result = await detectFramework('./my-project');
|
|
735
|
-
// { framework: { id: 'nextjs', name: 'Next.js', category: 'fullstack' }, ... }
|
|
736
|
-
|
|
737
|
-
const recs = getFrameworkRecommendations(result.framework);
|
|
738
|
-
// { reviewers: ['react-reviewer'], rules: ['react-*'], features: ['ssr'] }
|
|
739
|
-
```
|
|
740
|
-
|
|
741
|
-
**Supported frameworks (40+):**
|
|
742
|
-
- Fullstack: Next.js, Remix, Nuxt, SvelteKit, Astro, RedwoodJS
|
|
743
|
-
- Frontend: React, Vue, Svelte, Angular, Preact
|
|
744
|
-
- Backend: NestJS, Express, Fastify, Hono, Elysia
|
|
745
|
-
- Docs: Docusaurus, VitePress, Eleventy
|
|
746
|
-
|
|
747
|
-
### Test Case Extraction
|
|
748
|
-
|
|
749
|
-
Extract good/bad examples from rules for LLM evaluation:
|
|
750
|
-
|
|
751
|
-
```typescript
|
|
752
|
-
import { extractTestCases, validateRule } from '@su-record/vibe/tools';
|
|
753
|
-
|
|
754
|
-
const testCases = extractTestCases(rules);
|
|
755
|
-
// [{ ruleId: '1.1', type: 'bad', code: '...', ... }]
|
|
756
|
-
|
|
757
|
-
const validation = validateRule(rule);
|
|
758
|
-
// { valid: true, errors: [] }
|
|
759
|
-
```
|
|
760
|
-
|
|
761
|
-
## Previous Features (v2.5.7-v2.5.11)
|
|
762
|
-
|
|
763
|
-
### Intelligent Model Routing
|
|
764
|
-
|
|
765
|
-
Automatic model selection based on task complexity:
|
|
766
|
-
|
|
767
|
-
| Complexity | Model | When |
|
|
768
|
-
|------------|-------|------|
|
|
769
|
-
| Low (0-7) | Haiku | Simple fixes, searches |
|
|
770
|
-
| Medium (8-19) | Sonnet | Standard features, 3-5 files |
|
|
771
|
-
| High (20+) | Opus | Architecture, security, 6+ files |
|
|
772
|
-
|
|
773
|
-
### Agent Tier System
|
|
774
|
-
|
|
775
|
-
Cost-optimized agent variants:
|
|
776
|
-
|
|
777
|
-
| Agent | Low | Medium | High |
|
|
778
|
-
|-------|-----|--------|------|
|
|
779
|
-
| explorer | explorer-low | explorer-medium | explorer |
|
|
780
|
-
| implementer | implementer-low | implementer-medium | implementer |
|
|
781
|
-
| architect | architect-low | architect-medium | architect |
|
|
782
|
-
|
|
783
|
-
### Magic Keywords
|
|
784
|
-
|
|
785
|
-
| Keyword | Effect |
|
|
786
|
-
|---------|--------|
|
|
787
|
-
| `ultrawork` / `ulw` | Parallel + auto-continue + Ralph Loop |
|
|
788
|
-
| `ralph` | **Ralph Loop**: Iterate until 100% complete (no scope reduction) |
|
|
789
|
-
| `ralplan` | Iterative planning + persistence |
|
|
790
|
-
| `verify` | Strict verification mode |
|
|
791
|
-
| `quick` | Fast mode, minimal verification |
|
|
792
|
-
|
|
793
|
-
**Combinations supported:** `ralph ultrawork`, `ralph verify`, etc.
|
|
794
|
-
|
|
795
|
-
**Ralph Loop** (from [ghuntley.com/ralph](https://ghuntley.com/ralph)):
|
|
796
|
-
|
|
797
|
-
- Compares ORIGINAL request vs current implementation
|
|
798
|
-
- Lists ALL missing items explicitly
|
|
799
|
-
- Iterates until 100% complete (max 5 iterations)
|
|
800
|
-
- **ZERO tolerance for scope reduction** - Never say "basic version" or "simplified"
|
|
801
|
-
|
|
802
|
-
### Skill Quality Gate
|
|
803
|
-
|
|
804
|
-
Memory saves are validated for quality:
|
|
805
|
-
|
|
806
|
-
- Rejects generic/searchable information
|
|
807
|
-
- Requires context, specificity, actionability
|
|
808
|
-
- Suggests principle format: "When X, do Y because Z"
|
|
809
|
-
|
|
810
|
-
### HUD Status (Real-time)
|
|
811
|
-
|
|
812
|
-
```bash
|
|
813
|
-
node hooks/scripts/hud-status.js show full
|
|
814
|
-
node hooks/scripts/hud-status.js start ultrawork "feature"
|
|
815
|
-
node hooks/scripts/hud-status.js phase 2 5 "Implementing core"
|
|
816
|
-
```
|
|
817
|
-
|
|
818
|
-
### Pre/Post Tool Hooks
|
|
819
|
-
|
|
820
|
-
- **PreToolUse**: Validates dangerous commands before execution
|
|
821
|
-
- **PostToolUse**: Provides error recovery hints
|
|
822
|
-
|
|
823
|
-
### Orchestrate Workflow
|
|
824
|
-
|
|
825
|
-
Intent Gate → Codebase Assessment → Delegation → Verification pattern:
|
|
826
|
-
|
|
827
|
-
```typescript
|
|
828
|
-
import { checkIntentGate, assessCodebase, createDelegationPlan } from '@su-record/vibe/tools';
|
|
829
|
-
```
|
|
830
|
-
|
|
831
|
-
### UltraQA (5-Cycle Autonomous QA)
|
|
832
|
-
|
|
833
|
-
```
|
|
834
|
-
Test/Build/Lint → Fail → Architect Diagnosis → Executor Fix → Repeat (max 5)
|
|
835
|
-
```
|
|
836
|
-
|
|
837
|
-
Exit conditions: All pass, Max cycles, Same failure 3x
|
|
838
|
-
|
|
839
|
-
### DeepInit (Hierarchical AGENTS.md)
|
|
840
|
-
|
|
841
|
-
```
|
|
842
|
-
project/
|
|
843
|
-
├── AGENTS.md ← Root
|
|
844
|
-
├── src/
|
|
845
|
-
│ └── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
846
|
-
```
|
|
847
|
-
|
|
848
|
-
### Skill Frontmatter System
|
|
849
|
-
|
|
850
|
-
```yaml
|
|
851
|
-
---
|
|
852
|
-
name: my-skill
|
|
853
|
-
model: sonnet
|
|
854
|
-
triggers: [keyword1, keyword2]
|
|
855
|
-
---
|
|
856
|
-
```
|
|
857
|
-
|
|
858
|
-
### Trigger-Based Skill Injection
|
|
859
|
-
|
|
860
|
-
Skills in `~/.claude/vibe/skills/` or `.claude/vibe/skills/` auto-inject on keyword match.
|
|
861
|
-
|
|
862
|
-
### Multi-Line HUD
|
|
863
|
-
|
|
864
|
-
```bash
|
|
865
|
-
node hooks/scripts/hud-multiline.js multi # Tree view
|
|
866
|
-
node hooks/scripts/hud-multiline.js compact # 2-line view
|
|
867
|
-
node hooks/scripts/hud-multiline.js single # 1-line view
|
|
868
|
-
```
|
|
869
|
-
|
|
870
|
-
### Parallel Code Review (/vibe.review)
|
|
871
|
-
|
|
872
|
-
13+ specialized agents review code simultaneously:
|
|
873
|
-
|
|
874
|
-
- Security: security-reviewer, data-integrity-reviewer
|
|
875
|
-
- Performance: performance-reviewer, complexity-reviewer
|
|
876
|
-
- Architecture: architecture-reviewer, simplicity-reviewer
|
|
877
|
-
- Language-Specific: python, typescript, rails, react reviewers
|
|
878
|
-
- Context: git-history, test-coverage reviewers
|
|
879
|
-
|
|
880
|
-
**Priority System:**
|
|
881
|
-
- 🔴 P1 (Critical): Blocks merge
|
|
882
|
-
- 🟡 P2 (Important): Fix recommended
|
|
883
|
-
- 🔵 P3 (Nice-to-have): Backlog
|
|
884
|
-
|
|
885
|
-
### E2E Testing (/vibe.utils --e2e)
|
|
886
|
-
|
|
887
|
-
Playwright-based automated testing:
|
|
888
|
-
|
|
889
|
-
```bash
|
|
890
|
-
/vibe.utils --e2e "login flow" # Scenario test
|
|
891
|
-
/vibe.utils --e2e --visual # Visual regression test
|
|
892
|
-
/vibe.utils --e2e --record # Video recording
|
|
893
|
-
```
|
|
894
|
-
|
|
895
|
-
### Enhanced Research Agents
|
|
896
|
-
|
|
897
|
-
4 parallel research agents run **after requirements confirmed** during `/vibe.spec`:
|
|
898
|
-
|
|
899
|
-
| Agent | Role |
|
|
900
|
-
|-------|------|
|
|
901
|
-
| best-practices-agent | Best practices for confirmed feature+stack |
|
|
902
|
-
| framework-docs-agent | Latest docs for confirmed stack (context7) |
|
|
903
|
-
| codebase-patterns-agent | Analyze existing similar patterns |
|
|
904
|
-
| security-advisory-agent | Security advisory for confirmed feature |
|
|
905
|
-
|
|
906
|
-
## PTCF Structure
|
|
907
|
-
|
|
908
|
-
SPEC documents are AI-executable prompt format:
|
|
909
|
-
|
|
910
|
-
```
|
|
911
|
-
<role> AI role definition
|
|
912
|
-
<context> Background, tech stack, related code
|
|
913
|
-
<task> Phase-by-phase task list
|
|
914
|
-
<constraints> Constraints
|
|
915
|
-
<output_format> Files to create/modify
|
|
916
|
-
<acceptance> Verification criteria
|
|
917
|
-
```
|
|
918
|
-
|
|
919
|
-
## Built-in Tools
|
|
920
|
-
|
|
921
|
-
### Semantic Code Analysis
|
|
922
|
-
| Tool | Purpose |
|
|
923
|
-
|------|---------|
|
|
924
|
-
| `vibe_find_symbol` | Find symbol definitions |
|
|
925
|
-
| `vibe_find_references` | Find references |
|
|
926
|
-
| `vibe_analyze_complexity` | Analyze complexity |
|
|
927
|
-
| `vibe_validate_code_quality` | Validate quality |
|
|
928
|
-
|
|
929
|
-
### Context Management
|
|
930
|
-
| Tool | Purpose |
|
|
931
|
-
|------|---------|
|
|
932
|
-
| `vibe_start_session` | Start session (restore previous context) |
|
|
933
|
-
| `vibe_auto_save_context` | Save current state |
|
|
934
|
-
| `vibe_save_memory` | Save important decisions |
|
|
935
|
-
|
|
936
|
-
## Agents
|
|
937
|
-
|
|
938
|
-
### Review Agents (12)
|
|
939
|
-
```
|
|
940
|
-
.claude/agents/review/
|
|
941
|
-
├── security-reviewer.md # Security vulnerabilities
|
|
942
|
-
├── performance-reviewer.md # Performance bottlenecks
|
|
943
|
-
├── architecture-reviewer.md # Architecture violations
|
|
944
|
-
├── complexity-reviewer.md # Complexity exceeded
|
|
945
|
-
├── simplicity-reviewer.md # Over-abstraction
|
|
946
|
-
├── data-integrity-reviewer.md # Data integrity
|
|
947
|
-
├── test-coverage-reviewer.md # Missing tests
|
|
948
|
-
├── git-history-reviewer.md # Risk patterns
|
|
949
|
-
├── python-reviewer.md # Python specialist
|
|
950
|
-
├── typescript-reviewer.md # TypeScript specialist
|
|
951
|
-
├── rails-reviewer.md # Rails specialist
|
|
952
|
-
└── react-reviewer.md # React specialist
|
|
953
|
-
```
|
|
954
|
-
|
|
955
|
-
### Research Agents (4)
|
|
956
|
-
```
|
|
957
|
-
.claude/agents/research/
|
|
958
|
-
├── best-practices-agent.md # Best practices
|
|
959
|
-
├── framework-docs-agent.md # Framework docs
|
|
960
|
-
├── codebase-patterns-agent.md # Code pattern analysis
|
|
961
|
-
└── security-advisory-agent.md # Security advisory
|
|
962
|
-
```
|
|
963
|
-
|
|
964
|
-
## Skills
|
|
965
|
-
|
|
966
|
-
### Git Worktree
|
|
967
|
-
```bash
|
|
968
|
-
# Isolated environment for PR review
|
|
969
|
-
git worktree add ../review-123 origin/pr/123
|
|
970
|
-
cd ../review-123 && npm test
|
|
971
|
-
git worktree remove ../review-123
|
|
972
|
-
```
|
|
973
|
-
|
|
974
|
-
### Priority Todos
|
|
975
|
-
```
|
|
976
|
-
.claude/vibe/todos/
|
|
977
|
-
├── P1-security-sql-injection.md # 🔴 Blocks merge
|
|
978
|
-
├── P2-perf-n1-query.md # 🟡 Fix recommended
|
|
979
|
-
└── P3-style-extract-helper.md # 🔵 Backlog
|
|
980
|
-
```
|
|
981
|
-
|
|
982
|
-
## Context Management Strategy
|
|
983
|
-
|
|
984
|
-
### Model Selection
|
|
985
|
-
- **Exploration/Search**: Haiku (sub-agent default)
|
|
986
|
-
- **Implementation/Debugging**: Sonnet
|
|
987
|
-
- **Architecture/Complex logic**: Opus
|
|
988
|
-
|
|
989
|
-
### At 70%+ Context (⚠️ Important)
|
|
990
|
-
```
|
|
991
|
-
❌ Don't use /compact (risk of information loss/distortion)
|
|
992
|
-
✅ save_memory to store important decisions → /new for new session
|
|
993
|
-
```
|
|
994
|
-
|
|
995
|
-
vibe maintains context across sessions with its own memory system:
|
|
996
|
-
1. `save_memory` - Explicitly save important decisions
|
|
997
|
-
2. `/new` - Start new session
|
|
998
|
-
3. `start_session` - Auto-restore previous session
|
|
999
|
-
|
|
1000
|
-
### Session Restore
|
|
1001
|
-
To continue previous work in a new session:
|
|
1002
|
-
```
|
|
1003
|
-
/vibe.utils --continue
|
|
1004
|
-
```
|
|
1005
|
-
This command calls `vibe_start_session` to restore previous context from project memory.
|
|
1006
|
-
|
|
1007
|
-
### Other Commands
|
|
1008
|
-
- `/rewind` - Revert to previous point
|
|
1009
|
-
- `/context` - Check current usage
|
|
1010
|
-
|
|
1011
|
-
### Using context7
|
|
1012
|
-
Use context7 plugin when you need latest library documentation:
|
|
1013
|
-
```
|
|
1014
|
-
"Search React 19 use() hook with context7"
|
|
1015
|
-
```
|
|
1016
|
-
|
|
1017
|
-
## Documentation Guidelines
|
|
1018
|
-
|
|
1019
|
-
### Diagrams/Structure Representation
|
|
1020
|
-
- Avoid ASCII boxes (┌─┐) → Alignment breaks with mixed-width characters
|
|
1021
|
-
- Use alternatives:
|
|
1022
|
-
- Mermaid diagrams (GitHub/Notion supported)
|
|
1023
|
-
- Markdown tables
|
|
1024
|
-
- Indentation + separators
|
|
1025
|
-
|
|
1026
|
-
### Preferred Formats
|
|
1027
|
-
| Purpose | Recommended |
|
|
1028
|
-
|---------|-------------|
|
|
1029
|
-
| Flowcharts | Mermaid flowchart |
|
|
1030
|
-
| Structure/Hierarchy | Indented lists |
|
|
1031
|
-
| Comparisons/Lists | Markdown tables |
|
|
1032
|
-
| Sequences | Mermaid sequenceDiagram |
|
|
1033
|
-
|
|
1034
|
-
## Git Commit Rules
|
|
1035
|
-
|
|
1036
|
-
**Must include:**
|
|
1037
|
-
- `.claude/vibe/specs/`, `.claude/vibe/features/`, `.claude/vibe/todos/` (project docs)
|
|
1038
|
-
- `.claude/vibe/config.json`, `.claude/vibe/constitution.md` (project config)
|
|
1039
|
-
- `CLAUDE.md`
|
|
1040
|
-
|
|
1041
|
-
**Exclude (globally installed):**
|
|
1042
|
-
- `~/.claude/vibe/rules/`, `~/.claude/vibe/languages/`, `~/.claude/vibe/templates/` (global)
|
|
1043
|
-
- `~/.claude/commands/`, `~/.claude/agents/`, `~/.claude/skills/` (global)
|
|
1044
|
-
- `.claude/settings.local.json` (personal settings)
|
|
1045
|
-
|
|
1046
|
-
## Getting Started
|
|
1047
|
-
|
|
1048
|
-
```bash
|
|
1049
|
-
vibe init
|
|
1050
|
-
/vibe.spec "login feature"
|
|
1051
|
-
```
|
|
1052
|
-
|
|
1053
|
-
## Full Workflow
|
|
1054
|
-
|
|
1055
|
-
```mermaid
|
|
1056
|
-
flowchart TD
|
|
1057
|
-
A["/vibe.spec"] --> B["(auto) SPEC review"]
|
|
1058
|
-
B --> C["SPEC auto-enhancement"]
|
|
1059
|
-
C --> D["/vibe.run ultrawork"]
|
|
1060
|
-
D --> E["Gemini code review"]
|
|
1061
|
-
E --> F["(auto) 13+ Agent Review"]
|
|
1062
|
-
F --> G{"P1/P2 issues?"}
|
|
1063
|
-
G -->|Yes| H["(auto) Auto-Fix"]
|
|
1064
|
-
H --> I["✅ Done"]
|
|
1065
|
-
G -->|No| I
|
|
1066
|
-
```
|
|
1067
|
-
|
|
1068
|
-
| Step | Description | Automation |
|
|
1069
|
-
|------|-------------|------------|
|
|
1070
|
-
| 1. `/vibe.spec` | Collect requirements + Generate SPEC | Manual start |
|
|
1071
|
-
| 2. SPEC review | Gemini reviews SPEC + Auto-apply | ✅ Auto |
|
|
1072
|
-
| 3. `/vibe.run` | Implementation + Gemini review | Manual start |
|
|
1073
|
-
| 4. Agent Review | 13+ agent parallel review | ✅ Auto |
|
|
1074
|
-
| 5. Auto-Fix | P1/P2 issue auto-fix | ✅ Auto |
|
|
681
|
+
<!-- VIBE:END -->
|
package/README.md
CHANGED
|
@@ -1,323 +1,116 @@
|
|
|
1
1
|
# Vibe
|
|
2
2
|
|
|
3
|
-
**SPEC-
|
|
3
|
+
**SPEC-driven AI Coding Framework with Multi-LLM Orchestration**
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@su-record/vibe)
|
|
6
6
|
[](https://www.npmjs.com/package/@su-record/vibe)
|
|
7
7
|
[](https://opensource.org/licenses/MIT)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
> Claude Code 전용 AI 코딩 프레임워크. SPEC 기반 요구사항 관리, Multi-LLM(Claude + GPT + Gemini) 오케스트레이션, 13+ 병렬 리뷰 에이전트를 통한 품질 자동화.
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
10
12
|
|
|
11
13
|
```bash
|
|
12
14
|
npm install -g @su-record/vibe
|
|
13
15
|
vibe init
|
|
14
16
|
```
|
|
15
17
|
|
|
16
|
-
##
|
|
17
|
-
|
|
18
|
-
### Terminal
|
|
19
|
-
|
|
20
|
-
| Command | Description |
|
|
21
|
-
|---------|-------------|
|
|
22
|
-
| `vibe init` | Initialize project |
|
|
23
|
-
| `vibe update` | Update settings |
|
|
24
|
-
| `vibe status` | Check status |
|
|
25
|
-
| `vibe gpt auth` | GPT OAuth authentication |
|
|
26
|
-
| `vibe gpt key <KEY>` | GPT API key setup |
|
|
27
|
-
| `vibe gpt logout` | GPT logout |
|
|
28
|
-
| `vibe gemini auth` | Gemini OAuth authentication |
|
|
29
|
-
| `vibe gemini key <KEY>` | Gemini API key setup |
|
|
30
|
-
| `vibe gemini logout` | Gemini logout |
|
|
31
|
-
| `vibe help` | Help |
|
|
32
|
-
| `vibe version` | Version info |
|
|
33
|
-
|
|
34
|
-
### Claude Code
|
|
35
|
-
|
|
36
|
-
| Command | Description |
|
|
37
|
-
|---------|-------------|
|
|
38
|
-
| `/vibe.spec "feature"` | Create SPEC + parallel research |
|
|
39
|
-
| `/vibe.run "feature"` | Execute implementation |
|
|
40
|
-
| `/vibe.run "feature" ultrawork` | Maximum performance mode |
|
|
41
|
-
| `/vibe.verify "feature"` | BDD verification |
|
|
42
|
-
| `/vibe.trace "feature"` | Requirements traceability matrix (v2.6) |
|
|
43
|
-
| `/vibe.review` | 13+ agent parallel review (`--race` for GPT+Gemini) |
|
|
44
|
-
| `/vibe.analyze` | Code analysis |
|
|
45
|
-
| `/vibe.reason "problem"` | Systematic reasoning |
|
|
46
|
-
| `/vibe.utils --ui` | UI preview (Gemini image / ASCII fallback) |
|
|
47
|
-
| `/vibe.utils --e2e` | E2E testing, diagrams, etc. |
|
|
48
|
-
|
|
49
|
-
## Workflow
|
|
18
|
+
## Core Workflow
|
|
50
19
|
|
|
51
20
|
```
|
|
52
21
|
/vibe.spec → /vibe.run → /vibe.trace → /vibe.verify → /vibe.review
|
|
53
|
-
|
|
54
|
-
|
|
22
|
+
↓ ↓ ↓ ↓ ↓
|
|
23
|
+
SPEC 작성 구현 실행 추적성 매트릭스 BDD 검증 병렬 리뷰
|
|
55
24
|
```
|
|
56
25
|
|
|
57
26
|
## Key Features
|
|
58
27
|
|
|
59
28
|
| Feature | Description |
|
|
60
29
|
|---------|-------------|
|
|
61
|
-
| **
|
|
62
|
-
| **
|
|
63
|
-
| **
|
|
64
|
-
| **
|
|
65
|
-
| **
|
|
66
|
-
| **
|
|
67
|
-
| **
|
|
68
|
-
| **13+ parallel review agents** | Security, performance, architecture |
|
|
69
|
-
| **Iterative SPEC review** | GPT + Gemini convergence loop (max 3 rounds) |
|
|
70
|
-
| **Large SPEC auto-split** | 5+ phases auto-split into phase files |
|
|
71
|
-
| **BDD auto verification** | Given/When/Then scenario verification |
|
|
72
|
-
| **ULTRAWORK mode** | One keyword enables all optimizations |
|
|
73
|
-
| **30+ built-in tools** | Code analysis, memory management, quality validation |
|
|
74
|
-
| **Auto context management** | 80%+ auto-save, session restore |
|
|
75
|
-
| **23 language presets** | TypeScript, Python, Go, Rust, Swift, Kotlin, C#, Ruby, Dart, GDScript |
|
|
76
|
-
|
|
77
|
-
## ULTRAWORK Mode
|
|
78
|
-
|
|
79
|
-
Enable maximum performance with `ultrawork` or `ulw`:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
/vibe.run "feature" ultrawork
|
|
83
|
-
/vibe.run "feature" ulw # Same
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
**Enabled features:**
|
|
87
|
-
- Parallel subagent exploration (3+ concurrent)
|
|
88
|
-
- **Background agents** (v2.6) - Prepare next phase during implementation
|
|
89
|
-
- **Phase pipelining** (v2.6) - Zero wait time between phases
|
|
90
|
-
- Boulder Loop (auto-progress until all scenarios complete)
|
|
91
|
-
- Auto-retry on errors (max 3)
|
|
92
|
-
- Continuous execution without phase confirmation
|
|
93
|
-
- Auto-save at 80%+ context
|
|
94
|
-
|
|
95
|
-
## Fire-and-Forget Background Manager (v2.6)
|
|
96
|
-
|
|
97
|
-
Non-blocking task execution with instant response:
|
|
98
|
-
|
|
99
|
-
```typescript
|
|
100
|
-
import { launch, poll, getStats } from '@su-record/vibe/orchestrator';
|
|
101
|
-
|
|
102
|
-
// Fire-and-forget: returns immediately (<100ms)
|
|
103
|
-
const { taskId } = launch({
|
|
104
|
-
prompt: 'Analyze codebase security',
|
|
105
|
-
agentName: 'security-agent',
|
|
106
|
-
model: 'claude-sonnet-4-5'
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
// Poll for result later
|
|
110
|
-
const result = await poll(taskId);
|
|
111
|
-
|
|
112
|
-
// Check queue stats
|
|
113
|
-
const stats = getStats();
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
**Concurrency limits:**
|
|
117
|
-
|
|
118
|
-
| Model | Concurrent Limit |
|
|
119
|
-
|--------|------------------|
|
|
120
|
-
| Opus | 3 |
|
|
121
|
-
| Sonnet | 5 |
|
|
122
|
-
| Haiku | 8 |
|
|
123
|
-
|
|
124
|
-
**Queue features:**
|
|
125
|
-
|
|
126
|
-
- Bounded queue (max 100 tasks)
|
|
127
|
-
- Per-model rate limiting
|
|
128
|
-
- Task timeout: 180s individual, 10min pipeline
|
|
129
|
-
- Automatic cleanup (24h TTL)
|
|
130
|
-
|
|
131
|
-
## Phase Pipelining (v2.6)
|
|
132
|
-
|
|
133
|
-
Prepare next phase while current phase executes:
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
Phase N execution │ Background: Phase N+1 preparation
|
|
137
|
-
──────────────────────┼──────────────────────────────────
|
|
138
|
-
[Implementing...] │ [Analyzing files for next phase]
|
|
139
|
-
[Testing...] │ [Pre-generating test cases]
|
|
140
|
-
[Complete] │ [Ready to start immediately!]
|
|
141
|
-
↓
|
|
142
|
-
Phase N+1 starts with ZERO wait time
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Speed comparison:**
|
|
146
|
-
|
|
147
|
-
| Mode | 5 Phases Total |
|
|
148
|
-
|---------------------------|----------------|
|
|
149
|
-
| Sequential | ~10min |
|
|
150
|
-
| Parallel Exploration | ~7.5min |
|
|
151
|
-
| **ULTRAWORK + Pipeline** | **~5min** |
|
|
152
|
-
|
|
153
|
-
## PRD-to-SPEC Automation (v2.6)
|
|
154
|
-
|
|
155
|
-
Auto-generate SPEC from PRD documents:
|
|
156
|
-
|
|
157
|
-
```typescript
|
|
158
|
-
import { parsePRD } from '@su-record/vibe/tools';
|
|
159
|
-
|
|
160
|
-
// Parse PRD (supports Markdown, YAML frontmatter)
|
|
161
|
-
const prd = parsePRD(prdContent, 'login-feature');
|
|
162
|
-
|
|
163
|
-
// Extracted requirements with auto-generated IDs
|
|
164
|
-
// REQ-login-001, REQ-login-002, ...
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
**Requirement ID System:**
|
|
168
|
-
|
|
169
|
-
- Format: `REQ-{feature}-{number}`
|
|
170
|
-
- Auto-deduplication
|
|
171
|
-
- Priority inference from keywords (must, should, nice-to-have)
|
|
172
|
-
|
|
173
|
-
## Requirements Traceability Matrix (v2.6)
|
|
174
|
-
|
|
175
|
-
Track coverage from requirements to tests:
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
/vibe.trace "feature-name" # Generate RTM
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**RTM tracks:**
|
|
182
|
-
|
|
183
|
-
```
|
|
184
|
-
REQ-login-001 → SPEC Phase 1 → Feature Scenario 1 → login.test.ts
|
|
185
|
-
REQ-login-002 → SPEC Phase 2 → Feature Scenario 3 → auth.test.ts
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
**Coverage report:**
|
|
189
|
-
|
|
190
|
-
- Requirements coverage %
|
|
191
|
-
- Missing implementations
|
|
192
|
-
- Untested features
|
|
193
|
-
- Export: Markdown, HTML
|
|
30
|
+
| **SPEC-driven Development** | 요구사항 → SPEC → Feature → Test 추적 가능한 개발 |
|
|
31
|
+
| **Multi-LLM Orchestration** | Claude + GPT + Gemini 3-way 검증 및 자동 라우팅 |
|
|
32
|
+
| **13+ Parallel Review Agents** | Security, Performance, Architecture 등 병렬 코드 리뷰 |
|
|
33
|
+
| **ULTRAWORK Mode** | 키워드 하나로 모든 최적화 활성화 |
|
|
34
|
+
| **Fire-and-Forget Agents** | 논블로킹 백그라운드 에이전트 실행 |
|
|
35
|
+
| **Phase Pipelining** | 현재 Phase 실행 중 다음 Phase 준비 |
|
|
36
|
+
| **23 Language Presets** | TypeScript, Python, Go, Rust, Swift, Kotlin 등 |
|
|
194
37
|
|
|
195
|
-
##
|
|
196
|
-
|
|
197
|
-
Automatic version management for SPEC documents:
|
|
198
|
-
|
|
199
|
-
```typescript
|
|
200
|
-
import { bumpVersion, generateChangelog } from '@su-record/vibe/tools';
|
|
38
|
+
## Commands
|
|
201
39
|
|
|
202
|
-
|
|
203
|
-
await bumpVersion('feature-name', 'minor');
|
|
40
|
+
### Terminal
|
|
204
41
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
42
|
+
| Command | Description |
|
|
43
|
+
|---------|-------------|
|
|
44
|
+
| `vibe init` | 프로젝트 초기화 |
|
|
45
|
+
| `vibe update` | 설정 업데이트 |
|
|
46
|
+
| `vibe status` | 상태 확인 |
|
|
47
|
+
| `vibe gpt auth` | GPT OAuth 인증 |
|
|
48
|
+
| `vibe gemini auth` | Gemini OAuth 인증 |
|
|
208
49
|
|
|
209
|
-
|
|
50
|
+
### Claude Code Slash Commands
|
|
210
51
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
52
|
+
| Command | Description |
|
|
53
|
+
|---------|-------------|
|
|
54
|
+
| `/vibe.spec "feature"` | SPEC 문서 생성 + 병렬 리서치 |
|
|
55
|
+
| `/vibe.run "feature"` | 구현 실행 |
|
|
56
|
+
| `/vibe.run "feature" ultrawork` | 최대 성능 모드 |
|
|
57
|
+
| `/vibe.verify "feature"` | BDD 검증 |
|
|
58
|
+
| `/vibe.trace "feature"` | 요구사항 추적성 매트릭스 |
|
|
59
|
+
| `/vibe.review` | 13+ 에이전트 병렬 리뷰 |
|
|
60
|
+
| `/vibe.review --race` | GPT + Gemini 경쟁 리뷰 |
|
|
215
61
|
|
|
216
|
-
##
|
|
62
|
+
## ULTRAWORK Mode
|
|
217
63
|
|
|
218
|
-
|
|
64
|
+
`ultrawork` 또는 `ulw` 키워드로 최대 성능 활성화:
|
|
219
65
|
|
|
220
66
|
```bash
|
|
221
|
-
/vibe.
|
|
222
|
-
/vibe.utils --ui ./design/dashboard/
|
|
67
|
+
/vibe.run "feature" ultrawork
|
|
223
68
|
```
|
|
224
69
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
-
|
|
228
|
-
-
|
|
229
|
-
-
|
|
70
|
+
**활성화 기능:**
|
|
71
|
+
- 병렬 서브에이전트 탐색 (3+ 동시)
|
|
72
|
+
- 백그라운드 에이전트 (다음 Phase 사전 준비)
|
|
73
|
+
- Phase 파이프라이닝 (Phase 간 대기 시간 제거)
|
|
74
|
+
- Boulder Loop (모든 시나리오 완료까지 자동 진행)
|
|
75
|
+
- 80%+ 컨텍스트에서 자동 저장
|
|
230
76
|
|
|
231
|
-
|
|
77
|
+
**속도 비교:**
|
|
232
78
|
|
|
233
|
-
|
|
79
|
+
| Mode | 5 Phases |
|
|
80
|
+
|------|----------|
|
|
81
|
+
| Sequential | ~10min |
|
|
82
|
+
| Parallel | ~7.5min |
|
|
83
|
+
| **ULTRAWORK + Pipeline** | **~5min** |
|
|
234
84
|
|
|
235
|
-
|
|
236
|
-
|-----------------|-----------|----------|
|
|
237
|
-
| `architecture`, `design` | GPT | Architecture review |
|
|
238
|
-
| `UI`, `UX` | Gemini | UI/UX feedback |
|
|
239
|
-
| `debugging`, `find bug` | GPT | Bug analysis |
|
|
240
|
-
| `analyze code` | Gemini | Code review |
|
|
85
|
+
## Multi-LLM Orchestration
|
|
241
86
|
|
|
242
|
-
|
|
243
|
-
- Automatic LLM selection based on task type
|
|
244
|
-
- Exponential backoff retry (3 attempts, 2s → 4s → 8s)
|
|
245
|
-
- Auto fallback chain: GPT ↔ Gemini (if primary fails)
|
|
246
|
-
- 5-minute availability cache
|
|
247
|
-
- Web search via Gemini (Google Search grounding)
|
|
87
|
+
### Automatic Routing
|
|
248
88
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
```javascript
|
|
252
|
-
import('@su-record/vibe/lib/gpt').then(g => g.ask('question'))
|
|
253
|
-
import('@su-record/vibe/lib/gemini').then(g => g.webSearch('search query'))
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
## Multi-LLM Research (v2.5)
|
|
257
|
-
|
|
258
|
-
During `/vibe.spec`, research agents use **3 LLM perspectives** for quality assurance:
|
|
259
|
-
|
|
260
|
-
```text
|
|
261
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
262
|
-
│ MULTI-LLM PARALLEL RESEARCH │
|
|
263
|
-
├─────────────────────────────────────────────────────────────┤
|
|
264
|
-
│ best-practices-agent │
|
|
265
|
-
│ ├── Claude: Core patterns, anti-patterns │
|
|
266
|
-
│ ├── GPT: Architecture patterns, code conventions │
|
|
267
|
-
│ └── Gemini: Latest trends, framework updates │
|
|
268
|
-
├─────────────────────────────────────────────────────────────┤
|
|
269
|
-
│ security-advisory-agent │
|
|
270
|
-
│ ├── Claude: OWASP Top 10, security patterns │
|
|
271
|
-
│ ├── GPT: CVE database, vulnerability details │
|
|
272
|
-
│ └── Gemini: Latest security advisories, patches │
|
|
273
|
-
└─────────────────────────────────────────────────────────────┘
|
|
274
|
-
```
|
|
89
|
+
프롬프트 키워드에 따라 자동으로 적합한 LLM 라우팅:
|
|
275
90
|
|
|
276
|
-
|
|
91
|
+
| Keyword | Routes to | Use Case |
|
|
92
|
+
|---------|-----------|----------|
|
|
93
|
+
| `architecture`, `design` | GPT | 아키텍처 리뷰 |
|
|
94
|
+
| `UI`, `UX` | Gemini | UI/UX 피드백 |
|
|
95
|
+
| `debugging` | GPT | 버그 분석 |
|
|
96
|
+
| `analyze code` | Gemini | 코드 리뷰 |
|
|
277
97
|
|
|
278
|
-
|
|
98
|
+
### Race Review
|
|
279
99
|
|
|
280
|
-
|
|
100
|
+
GPT + Gemini 병렬 실행 후 교차 검증:
|
|
281
101
|
|
|
282
102
|
```bash
|
|
283
|
-
/vibe.review --race
|
|
284
|
-
/vibe.review --race security # Security only
|
|
103
|
+
/vibe.review --race
|
|
285
104
|
```
|
|
286
105
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
|
290
|
-
|
|
291
|
-
| Both agree (100%) | P1 | High confidence finding |
|
|
292
|
-
| One model (50%) | P2 | Needs verification |
|
|
293
|
-
|
|
294
|
-
**Output:**
|
|
295
|
-
|
|
296
|
-
```text
|
|
297
|
-
🏁 RACE REVIEW
|
|
298
|
-
├─ GPT: [SQL injection, XSS]
|
|
299
|
-
└─ Gemini: [SQL injection, CSRF]
|
|
300
|
-
↓
|
|
301
|
-
Cross-validation:
|
|
302
|
-
- SQL injection (2/2) → 🔴 P1 (100%)
|
|
303
|
-
- XSS (1/2) → 🟡 P2 (50%)
|
|
304
|
-
- CSRF (1/2) → 🟡 P2 (50%)
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
**ULTRAWORK default:** Race review is automatically enabled in ULTRAWORK mode.
|
|
308
|
-
|
|
309
|
-
**API usage:**
|
|
310
|
-
|
|
311
|
-
```javascript
|
|
312
|
-
import('@su-record/vibe/tools').then(t =>
|
|
313
|
-
t.raceReview({ reviewType: 'security', code: 'CODE' })
|
|
314
|
-
.then(r => console.log(t.formatRaceResult(r)))
|
|
315
|
-
)
|
|
316
|
-
```
|
|
106
|
+
| Agreement | Priority | Action |
|
|
107
|
+
|-----------|----------|--------|
|
|
108
|
+
| Both agree (100%) | P1 | High confidence |
|
|
109
|
+
| One model (50%) | P2 | Needs verification |
|
|
317
110
|
|
|
318
111
|
## Parallel Review Agents
|
|
319
112
|
|
|
320
|
-
`/vibe.review
|
|
113
|
+
`/vibe.review`로 13+ 에이전트 동시 실행:
|
|
321
114
|
|
|
322
115
|
| Category | Agents |
|
|
323
116
|
|----------|--------|
|
|
@@ -325,143 +118,77 @@ import('@su-record/vibe/tools').then(t =>
|
|
|
325
118
|
| Performance | performance-reviewer, complexity-reviewer |
|
|
326
119
|
| Architecture | architecture-reviewer, simplicity-reviewer |
|
|
327
120
|
| Language | python, typescript, rails, react reviewers |
|
|
328
|
-
| Context | git-history, test-coverage reviewers |
|
|
329
121
|
|
|
330
|
-
**Priority:**
|
|
331
|
-
- 🔴 P1 (Critical):
|
|
332
|
-
- 🟡 P2 (Important):
|
|
333
|
-
- 🔵 P3 (Nice-to-have):
|
|
122
|
+
**Priority System:**
|
|
123
|
+
- 🔴 P1 (Critical): 머지 차단
|
|
124
|
+
- 🟡 P2 (Important): 수정 권장
|
|
125
|
+
- 🔵 P3 (Nice-to-have): 백로그
|
|
334
126
|
|
|
335
|
-
##
|
|
127
|
+
## Requirements Traceability (v2.6)
|
|
336
128
|
|
|
337
|
-
|
|
338
|
-
|----------|-------|
|
|
339
|
-
| **Semantic** | `find_symbol`, `find_references`, `analyze_dependency_graph` |
|
|
340
|
-
| **Convention** | `analyze_complexity`, `validate_code_quality`, `check_coupling_cohesion`, `suggest_improvements`, `apply_quality_rules` |
|
|
341
|
-
| **Memory** | `start_session`, `save_memory`, `auto_save_context`, `recall_memory`, `search_memories`, `search_memories_advanced`, `list_memories`, `update_memory`, `delete_memory`, `link_memories`, `prioritize_memory`, `get_memory_graph`, `create_memory_timeline`, `get_session_context`, `restore_session_context` |
|
|
342
|
-
| **UI** | `preview_ui_ascii` |
|
|
343
|
-
| **Time** | `get_current_time` |
|
|
129
|
+
요구사항부터 테스트까지 추적:
|
|
344
130
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
**Global install (`~/.claude/`):**
|
|
348
|
-
|
|
349
|
-
```text
|
|
350
|
-
~/.claude/
|
|
351
|
-
├── commands/ # Slash commands (7)
|
|
352
|
-
├── agents/ # Review/research agents
|
|
353
|
-
├── skills/ # Auto-activated guides (7)
|
|
354
|
-
└── settings.json # Hooks settings
|
|
131
|
+
```bash
|
|
132
|
+
/vibe.trace "feature"
|
|
355
133
|
```
|
|
356
134
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
.claude/vibe/
|
|
361
|
-
├── specs/ # SPEC documents
|
|
362
|
-
├── features/ # BDD scenarios
|
|
363
|
-
├── rules/ # Coding rules (per stack)
|
|
364
|
-
├── solutions/ # Solution archive
|
|
365
|
-
├── config.json # Project settings
|
|
366
|
-
└── constitution.md # Project principles
|
|
135
|
+
```
|
|
136
|
+
REQ-login-001 → SPEC Phase 1 → Feature Scenario 1 → login.test.ts
|
|
137
|
+
REQ-login-002 → SPEC Phase 2 → Feature Scenario 3 → auth.test.ts
|
|
367
138
|
```
|
|
368
139
|
|
|
369
|
-
##
|
|
370
|
-
|
|
371
|
-
VIBE automatically installs Cursor-compatible assets on `vibe init` and `vibe update`:
|
|
372
|
-
|
|
373
|
-
**Installed locations:**
|
|
374
|
-
|
|
375
|
-
| Asset | Path | Count |
|
|
376
|
-
| ----- | ---- | ----- |
|
|
377
|
-
| Subagents | `~/.cursor/agents/*.md` | 12 |
|
|
378
|
-
| Skills | `~/.cursor/skills/*/SKILL.md` | 7 |
|
|
379
|
-
| Rules Template | `~/.cursor/rules-template/*.mdc` | 5 |
|
|
380
|
-
|
|
381
|
-
**12 Review Subagents with optimized model mapping:**
|
|
382
|
-
|
|
383
|
-
| Agent Type | Model | Purpose |
|
|
384
|
-
| ---------- | ----- | ------- |
|
|
385
|
-
| security, architecture, data-integrity | `claude-4.5-sonnet-thinking` | Deep reasoning |
|
|
386
|
-
| typescript, python, react, rails | `gpt-5.2-codex` | Code understanding |
|
|
387
|
-
| performance, complexity, simplicity, test-coverage, git-history | `gemini-3-flash` | Fast pattern checks |
|
|
388
|
-
|
|
389
|
-
**7 Skills (VIBE workflow guides):**
|
|
390
|
-
|
|
391
|
-
- `vibe-spec` - SPEC creation
|
|
392
|
-
- `vibe-run` - Implementation execution
|
|
393
|
-
- `vibe-review` - Parallel code review
|
|
394
|
-
- `vibe-analyze` - Project analysis
|
|
395
|
-
- `vibe-verify` - Requirement verification
|
|
396
|
-
- `vibe-reason` - Systematic reasoning
|
|
397
|
-
- `vibe-ui` - UI preview utilities
|
|
398
|
-
|
|
399
|
-
**5 Rules Templates:**
|
|
400
|
-
|
|
401
|
-
- `typescript-standards.mdc` - Type safety, complexity limits
|
|
402
|
-
- `react-patterns.mdc` - Component patterns
|
|
403
|
-
- `code-quality.mdc` - General quality rules
|
|
404
|
-
- `security-checklist.mdc` - OWASP checklist
|
|
405
|
-
- `python-standards.mdc` - PEP8, type hints
|
|
406
|
-
|
|
407
|
-
**Usage in Cursor:**
|
|
140
|
+
## Project Structure
|
|
408
141
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
142
|
+
**Global (`~/.claude/`):**
|
|
143
|
+
```
|
|
144
|
+
~/.claude/
|
|
145
|
+
├── commands/ # Slash commands
|
|
146
|
+
├── agents/ # Review/research agents
|
|
147
|
+
├── skills/ # Auto-activated guides
|
|
148
|
+
└── settings.json # Hooks
|
|
149
|
+
```
|
|
412
150
|
|
|
413
|
-
|
|
414
|
-
|
|
151
|
+
**Project (`.claude/vibe/`):**
|
|
152
|
+
```
|
|
153
|
+
.claude/vibe/
|
|
154
|
+
├── specs/ # SPEC documents
|
|
155
|
+
├── features/ # BDD scenarios
|
|
156
|
+
├── config.json # Project settings
|
|
157
|
+
└── constitution.md
|
|
415
158
|
```
|
|
416
159
|
|
|
417
160
|
## Code Quality Standards
|
|
418
161
|
|
|
419
162
|
| Metric | Limit |
|
|
420
163
|
|--------|-------|
|
|
421
|
-
| Function length | 30 lines
|
|
422
|
-
| Nesting depth | 3 levels
|
|
423
|
-
| Parameters | 5
|
|
424
|
-
| Cyclomatic complexity | 10
|
|
425
|
-
|
|
426
|
-
## Usage Example
|
|
427
|
-
|
|
428
|
-
```
|
|
429
|
-
User: /vibe.spec "login feature"
|
|
164
|
+
| Function length | 30 lines (권장), 50 lines (허용) |
|
|
165
|
+
| Nesting depth | 3 levels |
|
|
166
|
+
| Parameters | 5 |
|
|
167
|
+
| Cyclomatic complexity | 10 |
|
|
430
168
|
|
|
431
|
-
|
|
432
|
-
1. Auth method? (email/password, OAuth, Passkey)
|
|
433
|
-
2. Tech stack?
|
|
434
|
-
...
|
|
169
|
+
## Cursor IDE Support
|
|
435
170
|
|
|
436
|
-
|
|
437
|
-
[4 parallel research agents run]
|
|
171
|
+
`vibe init/update` 시 Cursor IDE 에셋 자동 설치:
|
|
438
172
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
```
|
|
173
|
+
| Asset | Path | Count |
|
|
174
|
+
|-------|------|-------|
|
|
175
|
+
| Subagents | `~/.cursor/agents/` | 12 |
|
|
176
|
+
| Skills | `~/.cursor/skills/` | 7 |
|
|
177
|
+
| Rules | `~/.cursor/rules-template/` | 23 languages |
|
|
445
178
|
|
|
446
|
-
##
|
|
179
|
+
## API Usage
|
|
447
180
|
|
|
448
|
-
|
|
181
|
+
```typescript
|
|
182
|
+
// Background agent
|
|
183
|
+
import { launch, poll } from '@su-record/vibe/orchestrator';
|
|
184
|
+
const { taskId } = launch({ prompt: 'Analyze code', agentName: 'analyzer' });
|
|
185
|
+
const result = await poll(taskId);
|
|
449
186
|
|
|
450
|
-
|
|
451
|
-
|
|
187
|
+
// LLM direct call
|
|
188
|
+
import { ask } from '@su-record/vibe/lib/gpt';
|
|
189
|
+
import { webSearch } from '@su-record/vibe/lib/gemini';
|
|
452
190
|
```
|
|
453
191
|
|
|
454
|
-
**Benefits:**
|
|
455
|
-
|
|
456
|
-
- **Skill integration**: Auto-invokes context7 for library/API questions without prompting
|
|
457
|
-
- **Subagent isolation**: Docs queries run in separate context, preventing main context bloat
|
|
458
|
-
- **Knowledge cutoff solution**: Access latest docs for long coding sessions
|
|
459
|
-
|
|
460
|
-
**Usage:**
|
|
461
|
-
|
|
462
|
-
- Automatic: Ask library questions, vibe's skill triggers context7
|
|
463
|
-
- Manual: `/context7:docs <library> [query]`
|
|
464
|
-
|
|
465
192
|
## Requirements
|
|
466
193
|
|
|
467
194
|
- Node.js 18.0.0+
|
|
@@ -471,27 +198,6 @@ Install context7 plugin for up-to-date library documentation:
|
|
|
471
198
|
|
|
472
199
|
MIT - [GitHub](https://github.com/su-record/vibe)
|
|
473
200
|
|
|
474
|
-
## Vibe Setup (AI Coding)
|
|
475
|
-
|
|
476
|
-
This project uses [Vibe](https://github.com/su-record/vibe) AI coding framework.
|
|
477
|
-
|
|
478
|
-
### Collaborator Install
|
|
479
|
-
|
|
480
|
-
```bash
|
|
481
|
-
# Global install (recommended)
|
|
482
|
-
npm install -g @su-record/vibe
|
|
483
|
-
vibe update
|
|
484
|
-
|
|
485
|
-
# Or use vibe init to setup
|
|
486
|
-
vibe init
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
### Usage
|
|
490
|
-
|
|
491
|
-
Use slash commands in Claude Code:
|
|
492
|
-
- `/vibe.spec "feature"` - Create SPEC document
|
|
493
|
-
- `/vibe.run "feature"` - Execute implementation
|
|
494
|
-
|
|
495
201
|
---
|
|
496
202
|
|
|
497
203
|
⭐ If this helps your workflow, consider giving it a star!
|
|
@@ -7,9 +7,6 @@ import { TechStack, StackDetails } from '../types.js';
|
|
|
7
7
|
* constitution.md 생성 또는 업데이트
|
|
8
8
|
*/
|
|
9
9
|
export declare function updateConstitution(vibeDir: string, detectedStacks: TechStack[], stackDetails: StackDetails): void;
|
|
10
|
-
/**
|
|
11
|
-
* CLAUDE.md 업데이트 (vibe 섹션 추가/교체)
|
|
12
|
-
*/
|
|
13
10
|
export declare function updateClaudeMd(projectRoot: string, detectedStacks: TechStack[], isUpdate?: boolean): void;
|
|
14
11
|
/**
|
|
15
12
|
* 프로젝트 vibe 폴더 설정
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectSetup.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/ProjectSetup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAA8B,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AASlF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,SAAS,EAAE,EAC3B,YAAY,EAAE,YAAY,GACzB,IAAI,CA8CN;
|
|
1
|
+
{"version":3,"file":"ProjectSetup.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/ProjectSetup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAA8B,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AASlF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,SAAS,EAAE,EAC3B,YAAY,EAAE,YAAY,GACzB,IAAI,CA8CN;AASD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,SAAS,EAAE,EAC3B,QAAQ,UAAQ,GACf,IAAI,CA0FN;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,QAAQ,UAAQ,GAAG,IAAI,CAchG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAkC7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA+BzD;AAoCD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,SAAS,EAAE,EAC3B,YAAY,EAAE,YAAY,EAC1B,QAAQ,UAAQ,GACf,IAAI,CA4BN;AAQD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA6C5D"}
|
|
@@ -43,6 +43,9 @@ export function updateConstitution(vibeDir, detectedStacks, stackDetails) {
|
|
|
43
43
|
/**
|
|
44
44
|
* CLAUDE.md 업데이트 (vibe 섹션 추가/교체)
|
|
45
45
|
*/
|
|
46
|
+
// VIBE 섹션 마커
|
|
47
|
+
const VIBE_START_MARKER = '# VIBE';
|
|
48
|
+
const VIBE_END_MARKER = '<!-- VIBE:END -->';
|
|
46
49
|
export function updateClaudeMd(projectRoot, detectedStacks, isUpdate = false) {
|
|
47
50
|
const vibeClaudeMd = path.join(__dirname, '../../../CLAUDE.md');
|
|
48
51
|
const projectClaudeMd = path.join(projectRoot, 'CLAUDE.md');
|
|
@@ -63,34 +66,55 @@ export function updateClaudeMd(projectRoot, detectedStacks, isUpdate = false) {
|
|
|
63
66
|
}
|
|
64
67
|
if (fs.existsSync(projectClaudeMd)) {
|
|
65
68
|
const existingContent = fs.readFileSync(projectClaudeMd, 'utf-8');
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
// VIBE 섹션 교체 (마커 기반)
|
|
70
|
+
const vibeStartIdx = existingContent.indexOf(VIBE_START_MARKER);
|
|
71
|
+
const vibeEndIdx = existingContent.indexOf(VIBE_END_MARKER);
|
|
72
|
+
if (vibeStartIdx !== -1 && vibeEndIdx !== -1) {
|
|
73
|
+
// 마커 기반 정확한 교체
|
|
74
|
+
const beforeVibe = existingContent.substring(0, vibeStartIdx).trimEnd();
|
|
75
|
+
let afterVibe = existingContent.substring(vibeEndIdx + VIBE_END_MARKER.length).trimStart();
|
|
76
|
+
// afterVibe가 VIBE 중복 내용인지 확인
|
|
77
|
+
// 사용자 커스텀 섹션은 보통 # 으로 시작하는 새로운 헤더로 시작함 (## 가 아닌 # 레벨)
|
|
78
|
+
// --- 구분자와 빈 줄을 모두 제거하고 실제 내용 확인
|
|
79
|
+
const cleanedAfterVibe = afterVibe.replace(/^(-{3,}\s*\n*)+/g, '').trimStart();
|
|
80
|
+
// VIBE 관련 키워드가 있으면 중복으로 판단하여 버림
|
|
81
|
+
const isVibeContent = cleanedAfterVibe.startsWith('# VIBE') ||
|
|
82
|
+
cleanedAfterVibe.startsWith('## Rule Title') ||
|
|
83
|
+
cleanedAfterVibe.startsWith('## Response Language') ||
|
|
84
|
+
cleanedAfterVibe.startsWith('## Code Quality') ||
|
|
85
|
+
cleanedAfterVibe.startsWith('title:') ||
|
|
86
|
+
cleanedAfterVibe.includes('SPEC-driven AI Coding Framework') ||
|
|
87
|
+
cleanedAfterVibe.includes('/vibe.spec') ||
|
|
88
|
+
cleanedAfterVibe.includes('ULTRAWORK');
|
|
89
|
+
if (isVibeContent) {
|
|
90
|
+
afterVibe = ''; // 중복 VIBE 내용 - 버림
|
|
81
91
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
let newContent = '';
|
|
93
|
+
if (beforeVibe) {
|
|
94
|
+
newContent = beforeVibe + '\n\n---\n\n' + vibeContent;
|
|
85
95
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if (
|
|
90
|
-
|
|
91
|
-
fs.writeFileSync(projectClaudeMd, mergedContent);
|
|
96
|
+
else {
|
|
97
|
+
newContent = vibeContent;
|
|
98
|
+
}
|
|
99
|
+
if (afterVibe) {
|
|
100
|
+
newContent += '\n\n---\n\n' + afterVibe;
|
|
92
101
|
}
|
|
102
|
+
fs.writeFileSync(projectClaudeMd, newContent);
|
|
103
|
+
}
|
|
104
|
+
else if (vibeStartIdx !== -1) {
|
|
105
|
+
// 구버전: # VIBE는 있지만 END 마커 없음
|
|
106
|
+
// VIBE 앞의 사용자 섹션만 보존하고, VIBE 이후는 전체 교체
|
|
107
|
+
// (VIBE 뒤의 내용은 대부분 누적된 중복 VIBE 섹션임)
|
|
108
|
+
const beforeVibe = existingContent.substring(0, vibeStartIdx).trimEnd();
|
|
109
|
+
const newContent = (beforeVibe ? beforeVibe + '\n\n---\n\n' : '') + vibeContent;
|
|
110
|
+
fs.writeFileSync(projectClaudeMd, newContent);
|
|
111
|
+
}
|
|
112
|
+
else if (!existingContent.includes('/vibe.spec')) {
|
|
113
|
+
// VIBE 섹션 없음 - 추가
|
|
114
|
+
const mergedContent = existingContent.trim() + '\n\n---\n\n' + vibeContent;
|
|
115
|
+
fs.writeFileSync(projectClaudeMd, mergedContent);
|
|
93
116
|
}
|
|
117
|
+
// else: 이미 VIBE 관련 내용이 있지만 마커가 없는 경우 - 건드리지 않음
|
|
94
118
|
}
|
|
95
119
|
else {
|
|
96
120
|
fs.writeFileSync(projectClaudeMd, vibeContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectSetup.js","sourceRoot":"","sources":["../../../src/cli/setup/ProjectSetup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectSetup.js","sourceRoot":"","sources":["../../../src/cli/setup/ProjectSetup.ts"],"names":[],"mappings":"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"}
|