@su-record/vibe 0.3.0 → 0.4.1
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/agents/simplifier.md +120 -0
- package/.claude/commands/vibe.run.md +133 -113
- package/.claude/commands/vibe.spec.md +143 -218
- package/.claude/commands/vibe.verify.md +7 -0
- package/.claude/settings.local.json +22 -1
- package/CLAUDE.md +41 -0
- package/README.md +181 -443
- package/bin/vibe +183 -152
- package/package.json +3 -6
- package/templates/hooks-template.json +26 -0
- package/.claude/commands/vibe.plan.md +0 -81
- package/.claude/commands/vibe.tasks.md +0 -83
- package/agents/backend-python-expert.md +0 -453
- package/agents/database-postgres-expert.md +0 -538
- package/agents/frontend-flutter-expert.md +0 -487
- package/agents/frontend-react-expert.md +0 -424
- package/agents/quality-reviewer.md +0 -542
- package/agents/reasoning-agent.md +0 -353
- package/agents/specification-agent.md +0 -582
- package/scripts/install-mcp.js +0 -74
- package/scripts/install.sh +0 -70
- package/templates/plan-template.md +0 -237
- package/templates/tasks-template.md +0 -132
- /package/{skills → .agent/rules}/core/communication-guide.md +0 -0
- /package/{skills → .agent/rules}/core/development-philosophy.md +0 -0
- /package/{skills → .agent/rules}/core/quick-start.md +0 -0
- /package/{skills → .agent/rules}/languages/dart-flutter.md +0 -0
- /package/{skills → .agent/rules}/languages/python-fastapi.md +0 -0
- /package/{skills → .agent/rules}/languages/typescript-nextjs.md +0 -0
- /package/{skills → .agent/rules}/languages/typescript-react-native.md +0 -0
- /package/{skills → .agent/rules}/languages/typescript-react.md +0 -0
- /package/{skills → .agent/rules}/quality/bdd-contract-testing.md +0 -0
- /package/{skills → .agent/rules}/quality/checklist.md +0 -0
- /package/{skills → .agent/rules}/quality/testing-strategy.md +0 -0
- /package/{skills → .agent/rules}/standards/anti-patterns.md +0 -0
- /package/{skills → .agent/rules}/standards/code-structure.md +0 -0
- /package/{skills → .agent/rules}/standards/complexity-metrics.md +0 -0
- /package/{skills → .agent/rules}/standards/naming-conventions.md +0 -0
- /package/{skills → .agent/rules}/tools/mcp-hi-ai-guide.md +0 -0
- /package/{skills → .agent/rules}/tools/mcp-workflow.md +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Code Simplifier Agent
|
|
2
|
+
|
|
3
|
+
코드 품질 규칙을 자동으로 검증하고 교정하는 서브에이전트입니다.
|
|
4
|
+
|
|
5
|
+
## Trigger
|
|
6
|
+
|
|
7
|
+
PostToolUse Hook에서 `Write`, `Edit` 작업 후 자동 실행됩니다.
|
|
8
|
+
|
|
9
|
+
## Rules Reference
|
|
10
|
+
|
|
11
|
+
**검증 기준 (`.agent/rules/`):**
|
|
12
|
+
|
|
13
|
+
### 필수 규칙
|
|
14
|
+
- `core/development-philosophy.md` - 수술적 정밀도
|
|
15
|
+
- `core/quick-start.md` - DRY, SRP, YAGNI
|
|
16
|
+
- `quality/checklist.md` - 품질 체크리스트
|
|
17
|
+
|
|
18
|
+
### 복잡도 기준
|
|
19
|
+
- `standards/complexity-metrics.md`:
|
|
20
|
+
- 순환 복잡도 ≤ 10
|
|
21
|
+
- 함수 길이 ≤ 20줄
|
|
22
|
+
- 중첩 깊이 ≤ 3단계
|
|
23
|
+
- 매개변수 ≤ 5개
|
|
24
|
+
- 컴포넌트 JSX ≤ 50줄
|
|
25
|
+
|
|
26
|
+
### 안티패턴
|
|
27
|
+
- `standards/anti-patterns.md` - 피해야 할 패턴
|
|
28
|
+
|
|
29
|
+
## Process
|
|
30
|
+
|
|
31
|
+
### 1. 변경 파일 분석
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
수정된 파일 목록 확인
|
|
35
|
+
각 파일의 변경 내용 분석
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 2. 규칙 검증
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
const checks = {
|
|
42
|
+
// 복잡도
|
|
43
|
+
cyclomaticComplexity: '≤ 10',
|
|
44
|
+
functionLength: '≤ 20 lines',
|
|
45
|
+
nestingDepth: '≤ 3 levels',
|
|
46
|
+
parameterCount: '≤ 5',
|
|
47
|
+
|
|
48
|
+
// 코드 품질
|
|
49
|
+
noAnyType: true,
|
|
50
|
+
noMagicNumbers: true,
|
|
51
|
+
singleResponsibility: true,
|
|
52
|
+
|
|
53
|
+
// 스타일
|
|
54
|
+
koreanComments: true,
|
|
55
|
+
consistentNaming: true,
|
|
56
|
+
};
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 3. 자동 교정 (가능한 경우)
|
|
60
|
+
|
|
61
|
+
- 긴 함수 → 분리 제안
|
|
62
|
+
- 깊은 중첩 → early return 패턴
|
|
63
|
+
- 매직 넘버 → 상수 추출
|
|
64
|
+
- any 타입 → 타입 추론/명시
|
|
65
|
+
|
|
66
|
+
### 4. 결과 보고
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
✅ 품질 검증 통과 (점수: 95/100)
|
|
70
|
+
|
|
71
|
+
또는
|
|
72
|
+
|
|
73
|
+
⚠️ 개선 필요:
|
|
74
|
+
- src/utils/helper.ts:15 - 함수 길이 25줄 (기준: 20줄)
|
|
75
|
+
- src/components/Form.tsx:42 - 중첩 4단계 (기준: 3단계)
|
|
76
|
+
|
|
77
|
+
🔧 자동 교정:
|
|
78
|
+
- 매직 넘버 3개 → 상수로 변환
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Quick Check (빠른 검증)
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
✅ 요청 범위만 수정했는가?
|
|
85
|
+
✅ any 타입이 없는가?
|
|
86
|
+
✅ 함수가 20줄 이하인가?
|
|
87
|
+
✅ 중첩이 3단계 이하인가?
|
|
88
|
+
✅ 에러 처리를 했는가?
|
|
89
|
+
✅ 매직 넘버를 상수화했는가?
|
|
90
|
+
✅ 테스트를 작성했는가?
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Grade
|
|
94
|
+
|
|
95
|
+
| 등급 | 점수 | 액션 |
|
|
96
|
+
|------|------|------|
|
|
97
|
+
| A+ | 95-100 | 통과 |
|
|
98
|
+
| A | 90-94 | 통과 |
|
|
99
|
+
| B+ | 85-89 | 경고 표시 |
|
|
100
|
+
| B | 80-84 | 개선 권장 |
|
|
101
|
+
| C | 70-79 | 개선 필요 |
|
|
102
|
+
| F | < 70 | 교정 필수 |
|
|
103
|
+
|
|
104
|
+
## Usage
|
|
105
|
+
|
|
106
|
+
이 에이전트는 직접 호출하지 않습니다.
|
|
107
|
+
`settings.json`의 PostToolUse Hook을 통해 자동 실행됩니다.
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"hooks": {
|
|
112
|
+
"PostToolUse": [
|
|
113
|
+
{
|
|
114
|
+
"tools": ["Write", "Edit"],
|
|
115
|
+
"command": "claude --agent simplifier"
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
@@ -1,158 +1,178 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Execute
|
|
3
|
-
argument-hint: "
|
|
2
|
+
description: Execute implementation from SPEC
|
|
3
|
+
argument-hint: "feature name" or --phase N
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /vibe.run
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
SPEC을 기반으로 구현합니다 (Implementation Agent).
|
|
9
9
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
12
12
|
```
|
|
13
|
-
/vibe.run "
|
|
14
|
-
/vibe.run --phase 1
|
|
15
|
-
/vibe.run --all # 모든 Task 실행
|
|
13
|
+
/vibe.run "기능명" # 전체 구현
|
|
14
|
+
/vibe.run "기능명" --phase 1 # 특정 Phase만
|
|
16
15
|
```
|
|
17
16
|
|
|
17
|
+
## Rules Reference
|
|
18
|
+
|
|
19
|
+
**반드시 `.agent/rules/` 규칙을 따릅니다:**
|
|
20
|
+
- `core/development-philosophy.md` - 수술적 정밀도, 요청 범위만 수정
|
|
21
|
+
- `core/quick-start.md` - 한국어, DRY, SRP, YAGNI
|
|
22
|
+
- `standards/complexity-metrics.md` - 함수 ≤20줄, 중첩 ≤3단계
|
|
23
|
+
- `quality/checklist.md` - 코드 품질 체크리스트
|
|
24
|
+
|
|
18
25
|
## Description
|
|
19
26
|
|
|
20
|
-
|
|
27
|
+
PTCF 구조의 SPEC 문서를 읽고 바로 구현을 실행합니다.
|
|
28
|
+
|
|
29
|
+
> **PLAN, TASKS 문서 불필요** - SPEC이 곧 실행 가능한 프롬프트
|
|
21
30
|
|
|
22
31
|
## Process
|
|
23
32
|
|
|
24
|
-
### 1
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
### 3
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
|
77
|
-
|
|
33
|
+
### 1. SPEC 읽기
|
|
34
|
+
|
|
35
|
+
`.vibe/specs/{기능명}.md` 파싱:
|
|
36
|
+
|
|
37
|
+
| 섹션 | 용도 |
|
|
38
|
+
|------|------|
|
|
39
|
+
| `<role>` | AI 역할 정의 |
|
|
40
|
+
| `<context>` | 배경, 기술 스택, 관련 코드 |
|
|
41
|
+
| `<task>` | Phase별 작업 목록 |
|
|
42
|
+
| `<constraints>` | 제약 조건 |
|
|
43
|
+
| `<output_format>` | 생성/수정할 파일 |
|
|
44
|
+
| `<acceptance>` | 검증 기준 |
|
|
45
|
+
|
|
46
|
+
### 2. Feature 파일 확인
|
|
47
|
+
|
|
48
|
+
`.vibe/features/{기능명}.feature`:
|
|
49
|
+
- BDD Scenarios 확인
|
|
50
|
+
- 테스트 케이스로 활용
|
|
51
|
+
|
|
52
|
+
### 3. Phase별 구현
|
|
53
|
+
|
|
54
|
+
`<task>` 섹션의 Phase 순서대로:
|
|
55
|
+
|
|
56
|
+
1. **관련 코드 분석**: `<context>`의 관련 코드 읽기
|
|
57
|
+
2. **파일 생성/수정**: `<output_format>` 기준
|
|
58
|
+
3. **제약 조건 준수**: `<constraints>` 확인
|
|
59
|
+
4. **검증 실행**: 검증 명령어 실행
|
|
60
|
+
|
|
61
|
+
### 4. Acceptance Criteria 검증
|
|
62
|
+
|
|
63
|
+
`<acceptance>` 체크리스트 확인:
|
|
64
|
+
- [ ] 각 기준 통과 여부
|
|
65
|
+
- [ ] 테스트 통과
|
|
66
|
+
- [ ] 빌드 성공
|
|
67
|
+
|
|
68
|
+
### 5. SPEC 업데이트
|
|
69
|
+
|
|
70
|
+
완료된 Task 체크:
|
|
71
|
+
```markdown
|
|
72
|
+
## Task
|
|
73
|
+
<task>
|
|
74
|
+
### Phase 1: Backend
|
|
75
|
+
1. [x] DB 스키마 작성 ✅
|
|
76
|
+
2. [x] API 엔드포인트 ✅
|
|
77
|
+
...
|
|
78
|
+
</task>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## TRUST 5 원칙
|
|
82
|
+
|
|
83
|
+
구현 시 준수:
|
|
84
|
+
|
|
85
|
+
| 원칙 | 설명 |
|
|
86
|
+
|------|------|
|
|
87
|
+
| **T**est-first | 테스트 먼저 작성 |
|
|
88
|
+
| **R**eadable | 명확한 코드 |
|
|
89
|
+
| **U**nified | 일관된 스타일 |
|
|
90
|
+
| **S**ecured | 보안 고려 |
|
|
91
|
+
| **T**rackable | 로깅, 모니터링 |
|
|
78
92
|
|
|
79
93
|
## Input
|
|
80
94
|
|
|
81
|
-
- `.vibe/
|
|
82
|
-
- `.vibe/
|
|
83
|
-
-
|
|
84
|
-
- `.vibe/features/{기능명}.feature` (BDD Feature 파일 - Contract Test 매핑용)
|
|
95
|
+
- `.vibe/specs/{기능명}.md` (PTCF SPEC)
|
|
96
|
+
- `.vibe/features/{기능명}.feature` (BDD)
|
|
97
|
+
- `CLAUDE.md` (프로젝트 컨텍스트)
|
|
85
98
|
|
|
86
99
|
## Output
|
|
87
100
|
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
101
|
+
- 구현된 코드 파일
|
|
102
|
+
- 테스트 파일
|
|
103
|
+
- SPEC 문서 업데이트 (체크표시)
|
|
91
104
|
|
|
92
105
|
## Example
|
|
93
106
|
|
|
94
|
-
### 개별 Task 실행
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
/vibe.run "Task 1-1"
|
|
98
107
|
```
|
|
108
|
+
User: /vibe.run "벽돌게임"
|
|
99
109
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
2. Task 1-1 정보 파싱:
|
|
103
|
-
- 담당: Backend Python Expert
|
|
104
|
-
- 내용: DB 마이그레이션 파일 작성
|
|
105
|
-
- 예상 시간: 30분
|
|
106
|
-
3. 구현 가이드 생성: `.vibe/guides/task-1-1.md`
|
|
107
|
-
4. 코드 작성: `backend/alembic/versions/xxxx_add_notification_settings.py`
|
|
108
|
-
5. 검증: `alembic upgrade head` 실행
|
|
109
|
-
6. Task 상태 업데이트: ⬜ → ✅
|
|
110
|
+
Claude:
|
|
111
|
+
📄 SPEC 읽는 중: .vibe/specs/brick-game.md
|
|
110
112
|
|
|
111
|
-
|
|
113
|
+
<role> 분석:
|
|
114
|
+
- 웹 게임 시니어 개발자
|
|
115
|
+
- Phaser.js 전문가
|
|
112
116
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
117
|
+
<context> 분석:
|
|
118
|
+
- 기술 스택: Phaser.js, TypeScript
|
|
119
|
+
- 신규 프로젝트
|
|
120
|
+
|
|
121
|
+
<task> 분석:
|
|
122
|
+
- Phase 1: 프로젝트 셋업 (3개 작업)
|
|
123
|
+
- Phase 2: 게임 로직 (5개 작업)
|
|
124
|
+
- Phase 3: UI/UX (3개 작업)
|
|
125
|
+
- Phase 4: 테스트 (2개 작업)
|
|
116
126
|
|
|
117
|
-
|
|
118
|
-
- Phase 1의 9개 Task 순차 실행
|
|
119
|
-
- Task 1-1 → 1-2 → ... → 1-9 (Contract Provider 포함)
|
|
120
|
-
- 각 Task마다 의존성 확인 후 실행
|
|
127
|
+
🚀 Phase 1 시작...
|
|
121
128
|
|
|
122
|
-
|
|
129
|
+
✅ Phase 1 완료
|
|
130
|
+
- package.json 생성
|
|
131
|
+
- TypeScript 설정
|
|
132
|
+
- Phaser.js 설치
|
|
123
133
|
|
|
134
|
+
🚀 Phase 2 시작...
|
|
135
|
+
[구현 계속...]
|
|
136
|
+
|
|
137
|
+
✅ 모든 Phase 완료!
|
|
138
|
+
📊 Acceptance Criteria 검증 중...
|
|
139
|
+
✅ 게임 시작/종료 동작
|
|
140
|
+
✅ 공-패들 충돌 처리
|
|
141
|
+
✅ 점수 표시
|
|
142
|
+
✅ npm run build 성공
|
|
143
|
+
|
|
144
|
+
🎉 구현 완료!
|
|
124
145
|
```
|
|
125
|
-
|
|
146
|
+
|
|
147
|
+
### Phase 지정 실행
|
|
148
|
+
|
|
126
149
|
```
|
|
150
|
+
User: /vibe.run "벽돌게임" --phase 2
|
|
127
151
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
- BDD/Contract Testing 포함
|
|
132
|
-
- 예상 시간: 28시간
|
|
152
|
+
Claude:
|
|
153
|
+
📄 SPEC 읽는 중: .vibe/specs/brick-game.md
|
|
154
|
+
🎯 Phase 2만 실행합니다.
|
|
133
155
|
|
|
134
|
-
|
|
156
|
+
Phase 2: 게임 로직
|
|
157
|
+
1. [ ] 패들 이동 구현
|
|
158
|
+
2. [ ] 공 물리엔진
|
|
159
|
+
3. [ ] 벽돌 충돌 처리
|
|
160
|
+
4. [ ] 점수 시스템
|
|
161
|
+
5. [ ] 게임 오버 조건
|
|
135
162
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
- [ ] 검증 명령어 실행 성공
|
|
139
|
-
- [ ] 코드 품질 기준 충족 (TRUST 5)
|
|
140
|
-
- [ ] TASKS 문서 상태 업데이트
|
|
163
|
+
🚀 구현 시작...
|
|
164
|
+
```
|
|
141
165
|
|
|
142
166
|
## Error Handling
|
|
143
167
|
|
|
144
|
-
|
|
168
|
+
실패 시:
|
|
145
169
|
1. 에러 메시지 확인
|
|
146
|
-
2.
|
|
170
|
+
2. `<constraints>` 재검토
|
|
147
171
|
3. 코드 수정 후 재시도
|
|
148
|
-
4.
|
|
172
|
+
4. 계속 실패 시 사용자에게 보고
|
|
149
173
|
|
|
150
174
|
## Next Step
|
|
151
175
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
- 모든 Task 완료 시:
|
|
156
|
-
```
|
|
157
|
-
/vibe.verify "푸시 알림 설정 기능"
|
|
158
|
-
```
|
|
176
|
+
```
|
|
177
|
+
/vibe.verify "벽돌게임"
|
|
178
|
+
```
|