@su-record/vibe 2.0.0 → 2.0.2

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 (69) hide show
  1. package/.claude/agents/explorer.md +48 -48
  2. package/.claude/agents/implementer.md +53 -53
  3. package/.claude/agents/searcher.md +54 -54
  4. package/.claude/agents/simplifier.md +119 -119
  5. package/.claude/agents/tester.md +49 -49
  6. package/.claude/commands/vibe.analyze.md +239 -239
  7. package/.claude/commands/vibe.continue.md +88 -88
  8. package/.claude/commands/vibe.diagram.md +178 -178
  9. package/.claude/commands/vibe.reason.md +306 -306
  10. package/.claude/commands/vibe.run.md +760 -760
  11. package/.claude/commands/vibe.spec.md +339 -339
  12. package/.claude/commands/vibe.tool.md +153 -153
  13. package/.claude/commands/vibe.ui.md +137 -137
  14. package/.claude/commands/vibe.verify.md +238 -238
  15. package/.claude/settings.json +152 -152
  16. package/.claude/settings.local.json +4 -57
  17. package/.vibe/config.json +9 -0
  18. package/.vibe/constitution.md +184 -184
  19. package/.vibe/rules/core/communication-guide.md +104 -104
  20. package/.vibe/rules/core/development-philosophy.md +52 -52
  21. package/.vibe/rules/core/quick-start.md +120 -120
  22. package/.vibe/rules/quality/bdd-contract-testing.md +388 -388
  23. package/.vibe/rules/quality/checklist.md +276 -276
  24. package/.vibe/rules/quality/testing-strategy.md +437 -437
  25. package/.vibe/rules/standards/anti-patterns.md +369 -369
  26. package/.vibe/rules/standards/code-structure.md +291 -291
  27. package/.vibe/rules/standards/complexity-metrics.md +312 -312
  28. package/.vibe/rules/standards/naming-conventions.md +198 -198
  29. package/.vibe/rules/tools/mcp-hi-ai-guide.md +665 -665
  30. package/.vibe/rules/tools/mcp-workflow.md +51 -51
  31. package/.vibe/setup.sh +31 -31
  32. package/CLAUDE.md +122 -122
  33. package/LICENSE +21 -21
  34. package/README.md +568 -568
  35. package/dist/cli/index.d.ts.map +1 -1
  36. package/dist/cli/index.js +391 -406
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/lib/MemoryManager.js +92 -92
  39. package/dist/lib/PythonParser.js +108 -108
  40. package/dist/lib/gemini-mcp.js +15 -15
  41. package/dist/lib/gemini-oauth.d.ts.map +1 -1
  42. package/dist/lib/gemini-oauth.js +41 -38
  43. package/dist/lib/gemini-oauth.js.map +1 -1
  44. package/dist/lib/gpt-mcp.js +17 -17
  45. package/dist/lib/gpt-oauth.d.ts.map +1 -1
  46. package/dist/lib/gpt-oauth.js +50 -45
  47. package/dist/lib/gpt-oauth.js.map +1 -1
  48. package/dist/tools/analytics/getUsageAnalytics.js +12 -12
  49. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  50. package/dist/tools/memory/getMemoryGraph.js +12 -12
  51. package/dist/tools/memory/getSessionContext.js +9 -9
  52. package/dist/tools/memory/linkMemories.js +14 -14
  53. package/dist/tools/memory/listMemories.js +4 -4
  54. package/dist/tools/memory/recallMemory.js +4 -4
  55. package/dist/tools/memory/saveMemory.js +4 -4
  56. package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
  57. package/dist/tools/planning/generatePrd.js +46 -46
  58. package/dist/tools/prompt/enhancePromptGemini.js +160 -160
  59. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  60. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  61. package/package.json +67 -67
  62. package/templates/constitution-template.md +184 -184
  63. package/templates/contract-backend-template.md +517 -517
  64. package/templates/contract-frontend-template.md +594 -594
  65. package/templates/feature-template.md +96 -96
  66. package/templates/hooks-template.json +103 -103
  67. package/templates/spec-template.md +199 -199
  68. package/dist/lib/vibe-mcp.d.ts.map +0 -1
  69. package/dist/lib/vibe-mcp.js.map +0 -1
@@ -1,153 +1,153 @@
1
- ---
2
- description: Natural language tool invocation
3
- argument-hint: "자연어로 원하는 기능 설명"
4
- ---
5
-
6
- # /vibe.tool
7
-
8
- 자연어로 vibe 도구를 호출합니다. 35개 이상의 도구를 하나의 명령어로 사용할 수 있습니다.
9
-
10
- ## Usage
11
-
12
- ```
13
- /vibe.tool "원하는 기능을 자연어로 설명"
14
- ```
15
-
16
- ## Examples
17
-
18
- ```
19
- /vibe.tool "이 프로젝트 스택을 기억해줘: Next.js 14, TypeScript, Tailwind"
20
- /vibe.tool "저장된 메모리 목록 보여줘"
21
- /vibe.tool "auth 관련 메모리 검색해줘"
22
- /vibe.tool "이 코드 복잡도 분석해줘"
23
- /vibe.tool "UserService 클래스가 어디서 사용되는지 찾아줘"
24
- /vibe.tool "로그인 기능 PRD 작성해줘"
25
- ```
26
-
27
- ---
28
-
29
- ## Tool Mapping Table
30
-
31
- 아래 표를 참고하여 사용자 요청에 가장 적합한 도구를 선택하고 실행하세요.
32
-
33
- ### Memory (메모리 관리)
34
-
35
- | 키워드 | 함수 | 설명 |
36
- |--------|------|------|
37
- | 기억해, save, remember, 저장 | `saveMemory({ key, value, category, projectPath })` | 메모리 저장 |
38
- | 떠올려, recall, 뭐였지 | `recallMemory({ key, projectPath })` | 메모리 조회 |
39
- | 목록, list, 뭐 있어 | `listMemories({ category, limit, projectPath })` | 메모리 목록 |
40
- | 삭제, delete, 지워 | `deleteMemory({ key, projectPath })` | 메모리 삭제 |
41
- | 수정, update, 바꿔 | `updateMemory({ key, value, append, projectPath })` | 메모리 수정 |
42
- | 찾아, search, 검색 | `searchMemories({ query, category, projectPath })` | 메모리 검색 |
43
- | 연결, link, 관계 | `linkMemories({ sourceKey, targetKey, relationType, strength, projectPath })` | 메모리 연결 |
44
- | 그래프, graph, 관계도 | `getMemoryGraph({ key, depth, format, projectPath })` | 지식 그래프 |
45
- | 타임라인, timeline, 히스토리 | `createMemoryTimeline({ startDate, endDate, groupBy, projectPath })` | 시간순 메모리 |
46
- | 고급검색, advanced | `searchMemoriesAdvanced({ query, strategy, limit, projectPath })` | 고급 검색 |
47
- | 세션, session, 컨텍스트 | `startSession({ greeting, loadMemory, loadGuides, projectPath })` | 세션 시작 |
48
- | 저장해둬, auto-save | `autoSaveContext({ urgency, contextType, summary, projectPath })` | 컨텍스트 자동 저장 |
49
- | 복원, restore | `restoreSessionContext({ sessionId, restoreLevel, projectPath })` | 세션 복원 |
50
- | 우선순위, priority | `prioritizeMemory({ currentTask, criticalDecisions, projectPath })` | 우선순위 정리 |
51
-
52
- ### Semantic (코드 분석)
53
-
54
- | 키워드 | 함수 | 설명 |
55
- |--------|------|------|
56
- | 심볼, symbol, 정의 찾기 | `findSymbol({ symbolName, projectPath, symbolType })` | 심볼 정의 찾기 |
57
- | 참조, references, 어디서 쓰여 | `findReferences({ symbolName, projectPath, filePath })` | 참조 찾기 |
58
- | 의존성, dependencies, 그래프 | `analyzeDependencyGraph({ projectPath, entryPoint, depth })` | 의존성 분석 |
59
-
60
- ### Convention (코드 품질)
61
-
62
- | 키워드 | 함수 | 설명 |
63
- |--------|------|------|
64
- | 복잡도, complexity | `analyzeComplexity({ code, metrics })` | 복잡도 분석 |
65
- | 품질, quality, 검증 | `validateCodeQuality({ code, type, metrics, strict })` | 코드 품질 검증 |
66
- | 결합도, coupling, 응집도 | `checkCouplingCohesion({ code, type, checkDependencies })` | 결합도/응집도 |
67
- | 개선, improve, 리팩토링 | `suggestImprovements({ code, focus, priority })` | 개선 제안 |
68
- | 규칙, rules, 표준 | `applyQualityRules({ scope, language })` | 품질 규칙 적용 |
69
- | 가이드, guide, 컨벤션 | `getCodingGuide({ name, category })` | 코딩 가이드 |
70
-
71
- ### Thinking (사고 도구)
72
-
73
- | 키워드 | 함수 | 설명 |
74
- |--------|------|------|
75
- | 생각, thinking, 연쇄 | `createThinkingChain({ topic, steps })` | 사고 체인 |
76
- | 문제분석, analyze problem | `analyzeProblem({ problem, domain })` | 문제 분석 |
77
- | 단계별, step by step | `stepByStepAnalysis({ task, detailLevel, context })` | 단계별 분석 |
78
- | 계획, plan, 정리 | `formatAsPlan({ content, includeCheckboxes, priority })` | 계획 포맷팅 |
79
- | 분해, break down | `breakDownProblem({ problem, approach, maxDepth })` | 문제 분해 |
80
- | 추론, reason, 생각해봐 | `thinkAloudProcess({ scenario, perspective, verbosity })` | 추론 프로세스 |
81
-
82
- ### Planning (프로젝트 계획)
83
-
84
- | 키워드 | 함수 | 설명 |
85
- |--------|------|------|
86
- | PRD, 요구사항 문서 | `generatePrd({ productName, productVision, targetAudience })` | PRD 생성 |
87
- | 사용자 스토리, user story | `createUserStories({ features, userTypes, includeAcceptanceCriteria })` | 사용자 스토리 |
88
- | 요구사항 분석 | `analyzeRequirements({ requirements, analysisMethod, stakeholders })` | 요구사항 분석 |
89
- | 로드맵, roadmap | `featureRoadmap({ projectName, features, timeframe, teamSize })` | 로드맵 생성 |
90
-
91
- ### Prompt (프롬프트 엔지니어링)
92
-
93
- | 키워드 | 함수 | 설명 |
94
- |--------|------|------|
95
- | 프롬프트 개선 | `enhancePrompt({ prompt, context, enhancement_type })` | 프롬프트 개선 |
96
- | 프롬프트 분석 | `analyzePrompt({ prompt, criteria })` | 프롬프트 분석 |
97
-
98
- ### UI (UI 도구)
99
-
100
- | 키워드 | 함수 | 설명 |
101
- |--------|------|------|
102
- | UI 미리보기, ASCII | `previewUiAscii({ page_name, components, layout_type })` | UI 프리뷰 |
103
-
104
- ### Time (시간)
105
-
106
- | 키워드 | 함수 | 설명 |
107
- |--------|------|------|
108
- | 시간, time, 몇시 | `getCurrentTime({ format, timezone })` | 현재 시간 |
109
-
110
- ---
111
-
112
- ## Process
113
-
114
- 1. 사용자 입력을 분석하여 위 매핑 테이블에서 적합한 도구 선택
115
- 2. 필요한 파라미터 추출 (자연어에서)
116
- 3. projectPath는 현재 작업 디렉토리(pwd) 사용
117
- 4. 도구 실행 및 결과 반환
118
-
119
- ## Example Execution
120
-
121
- **입력**: `/vibe.tool "프로젝트 스택 기억해: Next.js, TypeScript"`
122
-
123
- **실행**:
124
- ```typescript
125
- saveMemory({
126
- key: "project-stack",
127
- value: "Next.js, TypeScript",
128
- category: "project",
129
- projectPath: process.cwd()
130
- })
131
- ```
132
-
133
- **입력**: `/vibe.tool "UserService가 어디서 참조되는지 찾아줘"`
134
-
135
- **실행**:
136
- ```typescript
137
- findReferences({
138
- symbolName: "UserService",
139
- projectPath: process.cwd()
140
- })
141
- ```
142
-
143
- ---
144
-
145
- ## Important Notes
146
-
147
- - 모든 메모리 관련 도구는 `projectPath`를 현재 디렉토리로 설정하여 프로젝트별 메모리 격리
148
- - 키워드 매칭이 애매한 경우, 가장 연관성 높은 도구 선택
149
- - 여러 도구가 필요한 경우 순차 실행
150
-
151
- ---
152
-
153
- ARGUMENTS: $ARGUMENTS
1
+ ---
2
+ description: Natural language tool invocation
3
+ argument-hint: "자연어로 원하는 기능 설명"
4
+ ---
5
+
6
+ # /vibe.tool
7
+
8
+ 자연어로 vibe 도구를 호출합니다. 35개 이상의 도구를 하나의 명령어로 사용할 수 있습니다.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /vibe.tool "원하는 기능을 자연어로 설명"
14
+ ```
15
+
16
+ ## Examples
17
+
18
+ ```
19
+ /vibe.tool "이 프로젝트 스택을 기억해줘: Next.js 14, TypeScript, Tailwind"
20
+ /vibe.tool "저장된 메모리 목록 보여줘"
21
+ /vibe.tool "auth 관련 메모리 검색해줘"
22
+ /vibe.tool "이 코드 복잡도 분석해줘"
23
+ /vibe.tool "UserService 클래스가 어디서 사용되는지 찾아줘"
24
+ /vibe.tool "로그인 기능 PRD 작성해줘"
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Tool Mapping Table
30
+
31
+ 아래 표를 참고하여 사용자 요청에 가장 적합한 도구를 선택하고 실행하세요.
32
+
33
+ ### Memory (메모리 관리)
34
+
35
+ | 키워드 | 함수 | 설명 |
36
+ |--------|------|------|
37
+ | 기억해, save, remember, 저장 | `saveMemory({ key, value, category, projectPath })` | 메모리 저장 |
38
+ | 떠올려, recall, 뭐였지 | `recallMemory({ key, projectPath })` | 메모리 조회 |
39
+ | 목록, list, 뭐 있어 | `listMemories({ category, limit, projectPath })` | 메모리 목록 |
40
+ | 삭제, delete, 지워 | `deleteMemory({ key, projectPath })` | 메모리 삭제 |
41
+ | 수정, update, 바꿔 | `updateMemory({ key, value, append, projectPath })` | 메모리 수정 |
42
+ | 찾아, search, 검색 | `searchMemories({ query, category, projectPath })` | 메모리 검색 |
43
+ | 연결, link, 관계 | `linkMemories({ sourceKey, targetKey, relationType, strength, projectPath })` | 메모리 연결 |
44
+ | 그래프, graph, 관계도 | `getMemoryGraph({ key, depth, format, projectPath })` | 지식 그래프 |
45
+ | 타임라인, timeline, 히스토리 | `createMemoryTimeline({ startDate, endDate, groupBy, projectPath })` | 시간순 메모리 |
46
+ | 고급검색, advanced | `searchMemoriesAdvanced({ query, strategy, limit, projectPath })` | 고급 검색 |
47
+ | 세션, session, 컨텍스트 | `startSession({ greeting, loadMemory, loadGuides, projectPath })` | 세션 시작 |
48
+ | 저장해둬, auto-save | `autoSaveContext({ urgency, contextType, summary, projectPath })` | 컨텍스트 자동 저장 |
49
+ | 복원, restore | `restoreSessionContext({ sessionId, restoreLevel, projectPath })` | 세션 복원 |
50
+ | 우선순위, priority | `prioritizeMemory({ currentTask, criticalDecisions, projectPath })` | 우선순위 정리 |
51
+
52
+ ### Semantic (코드 분석)
53
+
54
+ | 키워드 | 함수 | 설명 |
55
+ |--------|------|------|
56
+ | 심볼, symbol, 정의 찾기 | `findSymbol({ symbolName, projectPath, symbolType })` | 심볼 정의 찾기 |
57
+ | 참조, references, 어디서 쓰여 | `findReferences({ symbolName, projectPath, filePath })` | 참조 찾기 |
58
+ | 의존성, dependencies, 그래프 | `analyzeDependencyGraph({ projectPath, entryPoint, depth })` | 의존성 분석 |
59
+
60
+ ### Convention (코드 품질)
61
+
62
+ | 키워드 | 함수 | 설명 |
63
+ |--------|------|------|
64
+ | 복잡도, complexity | `analyzeComplexity({ code, metrics })` | 복잡도 분석 |
65
+ | 품질, quality, 검증 | `validateCodeQuality({ code, type, metrics, strict })` | 코드 품질 검증 |
66
+ | 결합도, coupling, 응집도 | `checkCouplingCohesion({ code, type, checkDependencies })` | 결합도/응집도 |
67
+ | 개선, improve, 리팩토링 | `suggestImprovements({ code, focus, priority })` | 개선 제안 |
68
+ | 규칙, rules, 표준 | `applyQualityRules({ scope, language })` | 품질 규칙 적용 |
69
+ | 가이드, guide, 컨벤션 | `getCodingGuide({ name, category })` | 코딩 가이드 |
70
+
71
+ ### Thinking (사고 도구)
72
+
73
+ | 키워드 | 함수 | 설명 |
74
+ |--------|------|------|
75
+ | 생각, thinking, 연쇄 | `createThinkingChain({ topic, steps })` | 사고 체인 |
76
+ | 문제분석, analyze problem | `analyzeProblem({ problem, domain })` | 문제 분석 |
77
+ | 단계별, step by step | `stepByStepAnalysis({ task, detailLevel, context })` | 단계별 분석 |
78
+ | 계획, plan, 정리 | `formatAsPlan({ content, includeCheckboxes, priority })` | 계획 포맷팅 |
79
+ | 분해, break down | `breakDownProblem({ problem, approach, maxDepth })` | 문제 분해 |
80
+ | 추론, reason, 생각해봐 | `thinkAloudProcess({ scenario, perspective, verbosity })` | 추론 프로세스 |
81
+
82
+ ### Planning (프로젝트 계획)
83
+
84
+ | 키워드 | 함수 | 설명 |
85
+ |--------|------|------|
86
+ | PRD, 요구사항 문서 | `generatePrd({ productName, productVision, targetAudience })` | PRD 생성 |
87
+ | 사용자 스토리, user story | `createUserStories({ features, userTypes, includeAcceptanceCriteria })` | 사용자 스토리 |
88
+ | 요구사항 분석 | `analyzeRequirements({ requirements, analysisMethod, stakeholders })` | 요구사항 분석 |
89
+ | 로드맵, roadmap | `featureRoadmap({ projectName, features, timeframe, teamSize })` | 로드맵 생성 |
90
+
91
+ ### Prompt (프롬프트 엔지니어링)
92
+
93
+ | 키워드 | 함수 | 설명 |
94
+ |--------|------|------|
95
+ | 프롬프트 개선 | `enhancePrompt({ prompt, context, enhancement_type })` | 프롬프트 개선 |
96
+ | 프롬프트 분석 | `analyzePrompt({ prompt, criteria })` | 프롬프트 분석 |
97
+
98
+ ### UI (UI 도구)
99
+
100
+ | 키워드 | 함수 | 설명 |
101
+ |--------|------|------|
102
+ | UI 미리보기, ASCII | `previewUiAscii({ page_name, components, layout_type })` | UI 프리뷰 |
103
+
104
+ ### Time (시간)
105
+
106
+ | 키워드 | 함수 | 설명 |
107
+ |--------|------|------|
108
+ | 시간, time, 몇시 | `getCurrentTime({ format, timezone })` | 현재 시간 |
109
+
110
+ ---
111
+
112
+ ## Process
113
+
114
+ 1. 사용자 입력을 분석하여 위 매핑 테이블에서 적합한 도구 선택
115
+ 2. 필요한 파라미터 추출 (자연어에서)
116
+ 3. projectPath는 현재 작업 디렉토리(pwd) 사용
117
+ 4. 도구 실행 및 결과 반환
118
+
119
+ ## Example Execution
120
+
121
+ **입력**: `/vibe.tool "프로젝트 스택 기억해: Next.js, TypeScript"`
122
+
123
+ **실행**:
124
+ ```typescript
125
+ saveMemory({
126
+ key: "project-stack",
127
+ value: "Next.js, TypeScript",
128
+ category: "project",
129
+ projectPath: process.cwd()
130
+ })
131
+ ```
132
+
133
+ **입력**: `/vibe.tool "UserService가 어디서 참조되는지 찾아줘"`
134
+
135
+ **실행**:
136
+ ```typescript
137
+ findReferences({
138
+ symbolName: "UserService",
139
+ projectPath: process.cwd()
140
+ })
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Important Notes
146
+
147
+ - 모든 메모리 관련 도구는 `projectPath`를 현재 디렉토리로 설정하여 프로젝트별 메모리 격리
148
+ - 키워드 매칭이 애매한 경우, 가장 연관성 높은 도구 선택
149
+ - 여러 도구가 필요한 경우 순차 실행
150
+
151
+ ---
152
+
153
+ ARGUMENTS: $ARGUMENTS
@@ -1,137 +1,137 @@
1
- ---
2
- description: Preview UI with ASCII art
3
- argument-hint: "UI description"
4
- ---
5
-
6
- # /vibe.ui
7
-
8
- Preview UI with ASCII art.
9
-
10
- ## Usage
11
-
12
- ```
13
- /vibe.ui "login page"
14
- /vibe.ui "dashboard" --layout grid
15
- ```
16
-
17
- ## Process
18
-
19
- ### 1. Analyze UI Description
20
-
21
- Analyze user's requested UI description:
22
- - Page/component name
23
- - Required UI elements (buttons, inputs, cards, etc.)
24
- - Layout structure (header-footer, sidebar, grid, etc.)
25
-
26
- ### 2. Use MCP Tool
27
-
28
- Use `mcp__su-record-hi-ai__preview_ui_ascii` tool to generate ASCII art:
29
-
30
- ```javascript
31
- {
32
- page_name: "Login Page",
33
- layout_type: "centered",
34
- components: [
35
- { type: "header", label: "Welcome", position: "top" },
36
- { type: "input", label: "Email", position: "center" },
37
- { type: "input", label: "Password", position: "center" },
38
- { type: "button", label: "Login", position: "center" }
39
- ]
40
- }
41
- ```
42
-
43
- ### 3. Output ASCII Art
44
-
45
- Output generated ASCII art:
46
-
47
- ```
48
- ┌─────────────────────────────────────────┐
49
- │ Welcome │
50
- ├─────────────────────────────────────────┤
51
- │ │
52
- │ ┌─────────────────────┐ │
53
- │ Email: │ │ │
54
- │ └─────────────────────┘ │
55
- │ │
56
- │ ┌─────────────────────┐ │
57
- │ Pass: │ │ │
58
- │ └─────────────────────┘ │
59
- │ │
60
- │ ┌─────────────────────┐ │
61
- │ │ Login │ │
62
- │ └─────────────────────┘ │
63
- │ │
64
- └─────────────────────────────────────────┘
65
- ```
66
-
67
- ### 4. Generate Component List
68
-
69
- Suggest list of components needed for UI:
70
-
71
- **Required Components:**
72
- - `Header.tsx` - Header ("Welcome")
73
- - `LoginForm.tsx` - Form container
74
- - `Input.tsx` - Reusable input field
75
- - `Button.tsx` - Login button
76
-
77
- **Expected File Structure:**
78
- ```
79
- src/
80
- ├── components/
81
- │ ├── common/
82
- │ │ ├── Input.tsx
83
- │ │ └── Button.tsx
84
- │ └── auth/
85
- │ ├── Header.tsx
86
- │ └── LoginForm.tsx
87
- └── pages/
88
- └── LoginPage.tsx
89
- ```
90
-
91
- ## Example
92
-
93
- ```
94
- User: /vibe.ui "Dashboard page - header, sidebar, main content (3 cards), footer"
95
-
96
- Claude: Generating dashboard UI preview...
97
-
98
- ┌────────────────────────────────────────────────────────┐
99
- │ [Logo] Dashboard [User] [Logout] │
100
- ├────────┬───────────────────────────────────────────────┤
101
- │ │ │
102
- │ Home │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
103
- │ Stats │ │ Card 1 │ │ Card 2 │ │ Card 3 │ │
104
- │ Users │ │ │ │ │ │ │ │
105
- │ Settings│ │ 100 │ │ 200 │ │ 50 │ │
106
- │ │ └──────────┘ └──────────┘ └──────────┘ │
107
- │ │ │
108
- │ │ │
109
- ├────────┴───────────────────────────────────────────────┤
110
- │ © 2025 Company Privacy | Terms │
111
- └────────────────────────────────────────────────────────┘
112
-
113
- **Required Components:**
114
- 1. Header (logo, user menu)
115
- 2. Sidebar (navigation)
116
- 3. StatsCard (reusable card)
117
- 4. Footer (copyright, links)
118
- 5. DashboardLayout (overall layout)
119
-
120
- **Layout Structure:**
121
- - Layout: sidebar (fixed left)
122
- - Main: grid (3 columns)
123
- - Responsive: Changes to 1 column on mobile
124
-
125
- Next step:
126
- vibe spec "dashboard page"
127
- ```
128
-
129
- ## Notes
130
-
131
- - For complex UI, request in multiple parts
132
- - Layout options: `sidebar`, `header-footer`, `grid`, `centered`, `split`
133
- - ASCII art is for quick visualization before actual implementation
134
-
135
- ---
136
-
137
- ARGUMENTS: $ARGUMENTS
1
+ ---
2
+ description: Preview UI with ASCII art
3
+ argument-hint: "UI description"
4
+ ---
5
+
6
+ # /vibe.ui
7
+
8
+ Preview UI with ASCII art.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /vibe.ui "login page"
14
+ /vibe.ui "dashboard" --layout grid
15
+ ```
16
+
17
+ ## Process
18
+
19
+ ### 1. Analyze UI Description
20
+
21
+ Analyze user's requested UI description:
22
+ - Page/component name
23
+ - Required UI elements (buttons, inputs, cards, etc.)
24
+ - Layout structure (header-footer, sidebar, grid, etc.)
25
+
26
+ ### 2. Use MCP Tool
27
+
28
+ Use `mcp__su-record-hi-ai__preview_ui_ascii` tool to generate ASCII art:
29
+
30
+ ```javascript
31
+ {
32
+ page_name: "Login Page",
33
+ layout_type: "centered",
34
+ components: [
35
+ { type: "header", label: "Welcome", position: "top" },
36
+ { type: "input", label: "Email", position: "center" },
37
+ { type: "input", label: "Password", position: "center" },
38
+ { type: "button", label: "Login", position: "center" }
39
+ ]
40
+ }
41
+ ```
42
+
43
+ ### 3. Output ASCII Art
44
+
45
+ Output generated ASCII art:
46
+
47
+ ```
48
+ ┌─────────────────────────────────────────┐
49
+ │ Welcome │
50
+ ├─────────────────────────────────────────┤
51
+ │ │
52
+ │ ┌─────────────────────┐ │
53
+ │ Email: │ │ │
54
+ │ └─────────────────────┘ │
55
+ │ │
56
+ │ ┌─────────────────────┐ │
57
+ │ Pass: │ │ │
58
+ │ └─────────────────────┘ │
59
+ │ │
60
+ │ ┌─────────────────────┐ │
61
+ │ │ Login │ │
62
+ │ └─────────────────────┘ │
63
+ │ │
64
+ └─────────────────────────────────────────┘
65
+ ```
66
+
67
+ ### 4. Generate Component List
68
+
69
+ Suggest list of components needed for UI:
70
+
71
+ **Required Components:**
72
+ - `Header.tsx` - Header ("Welcome")
73
+ - `LoginForm.tsx` - Form container
74
+ - `Input.tsx` - Reusable input field
75
+ - `Button.tsx` - Login button
76
+
77
+ **Expected File Structure:**
78
+ ```
79
+ src/
80
+ ├── components/
81
+ │ ├── common/
82
+ │ │ ├── Input.tsx
83
+ │ │ └── Button.tsx
84
+ │ └── auth/
85
+ │ ├── Header.tsx
86
+ │ └── LoginForm.tsx
87
+ └── pages/
88
+ └── LoginPage.tsx
89
+ ```
90
+
91
+ ## Example
92
+
93
+ ```
94
+ User: /vibe.ui "Dashboard page - header, sidebar, main content (3 cards), footer"
95
+
96
+ Claude: Generating dashboard UI preview...
97
+
98
+ ┌────────────────────────────────────────────────────────┐
99
+ │ [Logo] Dashboard [User] [Logout] │
100
+ ├────────┬───────────────────────────────────────────────┤
101
+ │ │ │
102
+ │ Home │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
103
+ │ Stats │ │ Card 1 │ │ Card 2 │ │ Card 3 │ │
104
+ │ Users │ │ │ │ │ │ │ │
105
+ │ Settings│ │ 100 │ │ 200 │ │ 50 │ │
106
+ │ │ └──────────┘ └──────────┘ └──────────┘ │
107
+ │ │ │
108
+ │ │ │
109
+ ├────────┴───────────────────────────────────────────────┤
110
+ │ © 2025 Company Privacy | Terms │
111
+ └────────────────────────────────────────────────────────┘
112
+
113
+ **Required Components:**
114
+ 1. Header (logo, user menu)
115
+ 2. Sidebar (navigation)
116
+ 3. StatsCard (reusable card)
117
+ 4. Footer (copyright, links)
118
+ 5. DashboardLayout (overall layout)
119
+
120
+ **Layout Structure:**
121
+ - Layout: sidebar (fixed left)
122
+ - Main: grid (3 columns)
123
+ - Responsive: Changes to 1 column on mobile
124
+
125
+ Next step:
126
+ vibe spec "dashboard page"
127
+ ```
128
+
129
+ ## Notes
130
+
131
+ - For complex UI, request in multiple parts
132
+ - Layout options: `sidebar`, `header-footer`, `grid`, `centered`, `split`
133
+ - ASCII art is for quick visualization before actual implementation
134
+
135
+ ---
136
+
137
+ ARGUMENTS: $ARGUMENTS