@su-record/vibe 2.2.2 β†’ 2.2.3

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 (81) hide show
  1. package/.claude/settings.json +152 -152
  2. package/.claude/vibe/constitution.md +184 -184
  3. package/.claude/vibe/rules/core/communication-guide.md +104 -104
  4. package/.claude/vibe/rules/core/development-philosophy.md +52 -52
  5. package/.claude/vibe/rules/core/quick-start.md +120 -120
  6. package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
  7. package/.claude/vibe/rules/quality/checklist.md +276 -276
  8. package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
  9. package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
  10. package/.claude/vibe/rules/standards/code-structure.md +291 -291
  11. package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
  12. package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
  13. package/.claude/vibe/setup.sh +31 -31
  14. package/CLAUDE.md +323 -323
  15. package/LICENSE +21 -21
  16. package/README.md +724 -721
  17. package/agents/explorer.md +48 -0
  18. package/agents/implementer.md +53 -0
  19. package/agents/research/best-practices-agent.md +139 -0
  20. package/agents/research/codebase-patterns-agent.md +147 -0
  21. package/agents/research/framework-docs-agent.md +181 -0
  22. package/agents/research/security-advisory-agent.md +167 -0
  23. package/agents/review/architecture-reviewer.md +107 -0
  24. package/agents/review/complexity-reviewer.md +116 -0
  25. package/agents/review/data-integrity-reviewer.md +88 -0
  26. package/agents/review/git-history-reviewer.md +103 -0
  27. package/agents/review/performance-reviewer.md +86 -0
  28. package/agents/review/python-reviewer.md +152 -0
  29. package/agents/review/rails-reviewer.md +139 -0
  30. package/agents/review/react-reviewer.md +144 -0
  31. package/agents/review/security-reviewer.md +80 -0
  32. package/agents/review/simplicity-reviewer.md +140 -0
  33. package/agents/review/test-coverage-reviewer.md +116 -0
  34. package/agents/review/typescript-reviewer.md +127 -0
  35. package/agents/searcher.md +54 -0
  36. package/agents/simplifier.md +119 -0
  37. package/agents/tester.md +49 -0
  38. package/commands/vibe.analyze.md +239 -0
  39. package/commands/vibe.compound.md +261 -0
  40. package/commands/vibe.continue.md +88 -0
  41. package/commands/vibe.diagram.md +178 -0
  42. package/commands/vibe.e2e.md +266 -0
  43. package/commands/vibe.reason.md +306 -0
  44. package/commands/vibe.review.md +324 -0
  45. package/commands/vibe.run.md +836 -0
  46. package/commands/vibe.setup.md +97 -0
  47. package/commands/vibe.spec.md +383 -0
  48. package/commands/vibe.ui.md +137 -0
  49. package/commands/vibe.verify.md +238 -0
  50. package/dist/cli/index.js +389 -389
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/lib/MemoryManager.js +92 -92
  53. package/dist/lib/PythonParser.js +108 -108
  54. package/dist/lib/gemini-mcp.js +15 -15
  55. package/dist/lib/gemini-oauth.js +35 -35
  56. package/dist/lib/gpt-mcp.js +17 -17
  57. package/dist/lib/gpt-oauth.js +44 -44
  58. package/dist/tools/analytics/getUsageAnalytics.js +12 -12
  59. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  60. package/dist/tools/memory/getMemoryGraph.js +12 -12
  61. package/dist/tools/memory/getSessionContext.js +9 -9
  62. package/dist/tools/memory/linkMemories.js +14 -14
  63. package/dist/tools/memory/listMemories.js +4 -4
  64. package/dist/tools/memory/recallMemory.js +4 -4
  65. package/dist/tools/memory/saveMemory.js +4 -4
  66. package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
  67. package/dist/tools/planning/generatePrd.js +46 -46
  68. package/dist/tools/prompt/enhancePromptGemini.js +160 -160
  69. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  70. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  71. package/package.json +69 -66
  72. package/skills/git-worktree.md +178 -0
  73. package/skills/priority-todos.md +236 -0
  74. package/templates/constitution-template.md +184 -184
  75. package/templates/contract-backend-template.md +517 -517
  76. package/templates/contract-frontend-template.md +594 -594
  77. package/templates/feature-template.md +96 -96
  78. package/templates/hooks-template.json +103 -103
  79. package/templates/spec-template.md +199 -199
  80. package/.claude/vibe/rules/tools/mcp-hi-ai-guide.md +0 -665
  81. package/.claude/vibe/rules/tools/mcp-workflow.md +0 -51
package/package.json CHANGED
@@ -1,66 +1,69 @@
1
- {
2
- "name": "@su-record/vibe",
3
- "version": "2.2.2",
4
- "description": "Vibe - Claude Code exclusive SPEC-driven AI coding framework with 35+ integrated tools",
5
- "type": "module",
6
- "main": "dist/cli/index.js",
7
- "bin": {
8
- "vibe": "./dist/cli/index.js"
9
- },
10
- "scripts": {
11
- "build": "tsc",
12
- "dev": "tsc --watch",
13
- "test": "vitest run",
14
- "test:watch": "vitest",
15
- "prepublishOnly": "npm run build"
16
- },
17
- "keywords": [
18
- "ai",
19
- "vibe",
20
- "coding",
21
- "spec-driven",
22
- "claude",
23
- "mcp",
24
- "framework",
25
- "requirements",
26
- "user-story",
27
- "ultrawork",
28
- "parallel-agents",
29
- "memory-management",
30
- "knowledge-graph",
31
- "code-analysis",
32
- "code-quality"
33
- ],
34
- "author": "Su",
35
- "license": "MIT",
36
- "repository": {
37
- "type": "git",
38
- "url": "https://github.com/su-record/vibe.git"
39
- },
40
- "homepage": "https://github.com/su-record/vibe#readme",
41
- "engines": {
42
- "node": ">=18.0.0"
43
- },
44
- "dependencies": {
45
- "@modelcontextprotocol/sdk": "^1.0.0",
46
- "better-sqlite3": "^12.4.1",
47
- "chalk": "^5.3.0",
48
- "glob": "^11.0.3",
49
- "ts-morph": "^26.0.0"
50
- },
51
- "devDependencies": {
52
- "@types/better-sqlite3": "^7.6.13",
53
- "@types/glob": "^8.1.0",
54
- "@types/node": "^22.0.0",
55
- "typescript": "^5.5.4",
56
- "vitest": "^4.0.9"
57
- },
58
- "files": [
59
- "dist/",
60
- ".claude/",
61
- "templates/",
62
- "CLAUDE.md",
63
- "README.md",
64
- "LICENSE"
65
- ]
66
- }
1
+ {
2
+ "name": "@su-record/vibe",
3
+ "version": "2.2.3",
4
+ "description": "Vibe - Claude Code exclusive SPEC-driven AI coding framework with 35+ integrated tools",
5
+ "type": "module",
6
+ "main": "dist/cli/index.js",
7
+ "bin": {
8
+ "vibe": "./dist/cli/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc --watch",
13
+ "test": "vitest run",
14
+ "test:watch": "vitest",
15
+ "prepublishOnly": "npm run build"
16
+ },
17
+ "keywords": [
18
+ "ai",
19
+ "vibe",
20
+ "coding",
21
+ "spec-driven",
22
+ "claude",
23
+ "mcp",
24
+ "framework",
25
+ "requirements",
26
+ "user-story",
27
+ "ultrawork",
28
+ "parallel-agents",
29
+ "memory-management",
30
+ "knowledge-graph",
31
+ "code-analysis",
32
+ "code-quality"
33
+ ],
34
+ "author": "Su",
35
+ "license": "MIT",
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/su-record/vibe.git"
39
+ },
40
+ "homepage": "https://github.com/su-record/vibe#readme",
41
+ "engines": {
42
+ "node": ">=18.0.0"
43
+ },
44
+ "dependencies": {
45
+ "@modelcontextprotocol/sdk": "^1.0.0",
46
+ "better-sqlite3": "^12.4.1",
47
+ "chalk": "^5.3.0",
48
+ "glob": "^11.0.3",
49
+ "ts-morph": "^26.0.0"
50
+ },
51
+ "devDependencies": {
52
+ "@types/better-sqlite3": "^7.6.13",
53
+ "@types/glob": "^8.1.0",
54
+ "@types/node": "^22.0.0",
55
+ "typescript": "^5.5.4",
56
+ "vitest": "^4.0.9"
57
+ },
58
+ "files": [
59
+ "dist/",
60
+ ".claude/",
61
+ "commands/",
62
+ "agents/",
63
+ "skills/",
64
+ "templates/",
65
+ "CLAUDE.md",
66
+ "README.md",
67
+ "LICENSE"
68
+ ]
69
+ }
@@ -0,0 +1,178 @@
1
+ # Git Worktree Skill
2
+
3
+ Git Worktreeλ₯Ό ν™œμš©ν•œ 병렬 브랜치 μž‘μ—… μŠ€ν‚¬
4
+
5
+ ## Overview
6
+
7
+ 메인 μž‘μ—…μ„ μ€‘λ‹¨ν•˜μ§€ μ•Šκ³  λ‹€λ₯Έ λΈŒλžœμΉ˜μ—μ„œ 리뷰/ν…ŒμŠ€νŠΈ μˆ˜ν–‰
8
+
9
+ ## Usage
10
+
11
+ ```bash
12
+ # Worktree 생성
13
+ git worktree add ../review-pr123 pr/123
14
+
15
+ # ν•΄λ‹Ή λ””λ ‰ν† λ¦¬μ—μ„œ μž‘μ—…
16
+ cd ../review-pr123
17
+ npm test
18
+
19
+ # μž‘μ—… μ™„λ£Œ ν›„ 정리
20
+ git worktree remove ../review-pr123
21
+ ```
22
+
23
+ ## Commands
24
+
25
+ ### Create Worktree
26
+
27
+ ```bash
28
+ # PR 리뷰용 worktree
29
+ git worktree add ../review-{pr_number} origin/pr/{pr_number}
30
+
31
+ # νŠΉμ • 브랜치 worktree
32
+ git worktree add ../feature-work feature/new-feature
33
+
34
+ # μƒˆ 브랜치둜 worktree
35
+ git worktree add -b hotfix/urgent ../hotfix main
36
+ ```
37
+
38
+ ### List Worktrees
39
+
40
+ ```bash
41
+ git worktree list
42
+ # /path/to/main abc1234 [main]
43
+ # /path/to/review-123 def5678 [pr/123]
44
+ ```
45
+
46
+ ### Remove Worktree
47
+
48
+ ```bash
49
+ # 정상 제거
50
+ git worktree remove ../review-123
51
+
52
+ # κ°•μ œ 제거 (uncommitted changes λ¬΄μ‹œ)
53
+ git worktree remove --force ../review-123
54
+
55
+ # Prune stale worktrees
56
+ git worktree prune
57
+ ```
58
+
59
+ ## Workflow Integration
60
+
61
+ ### PR Review Workflow
62
+
63
+ ```
64
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
65
+ β”‚ /vibe.review PR#123 β”‚
66
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
67
+ β”‚ β”‚
68
+ β”‚ 1. git worktree add ../review-123 origin/pr/123 β”‚
69
+ β”‚ 2. cd ../review-123 β”‚
70
+ β”‚ 3. npm install && npm test β”‚
71
+ β”‚ 4. Run parallel review agents β”‚
72
+ β”‚ 5. Generate review report β”‚
73
+ β”‚ 6. cd - && git worktree remove ../review-123 β”‚
74
+ β”‚ β”‚
75
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
76
+ ```
77
+
78
+ ### Hotfix Workflow
79
+
80
+ ```
81
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
82
+ β”‚ Urgent hotfix while working on feature β”‚
83
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
84
+ β”‚ β”‚
85
+ β”‚ # Keep feature work intact β”‚
86
+ β”‚ git worktree add -b hotfix/critical ../hotfix main β”‚
87
+ β”‚ cd ../hotfix β”‚
88
+ β”‚ β”‚
89
+ β”‚ # Fix and deploy β”‚
90
+ β”‚ vim src/bug.py β”‚
91
+ β”‚ git commit -am "fix: critical bug" β”‚
92
+ β”‚ git push origin hotfix/critical β”‚
93
+ β”‚ β”‚
94
+ β”‚ # Return to feature β”‚
95
+ β”‚ cd - && git worktree remove ../hotfix β”‚
96
+ β”‚ β”‚
97
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
98
+ ```
99
+
100
+ ## Benefits
101
+
102
+ 1. **No Stash Needed**: ν˜„μž¬ μž‘μ—… κ·ΈλŒ€λ‘œ μœ μ§€
103
+ 2. **Full Codebase**: 각 worktreeλŠ” μ™„μ „ν•œ μ½”λ“œλ² μ΄μŠ€
104
+ 3. **Parallel Work**: μ—¬λŸ¬ 브랜치 λ™μ‹œ μž‘μ—…
105
+ 4. **Clean Testing**: 격리된 ν™˜κ²½μ—μ„œ ν…ŒμŠ€νŠΈ
106
+
107
+ ## Best Practices
108
+
109
+ ### Naming Convention
110
+
111
+ ```bash
112
+ # PR 리뷰
113
+ ../review-{pr_number}
114
+
115
+ # ν•«ν”½μŠ€
116
+ ../hotfix-{issue_number}
117
+
118
+ # μ‹€ν—˜
119
+ ../experiment-{feature_name}
120
+ ```
121
+
122
+ ### Cleanup
123
+
124
+ ```bash
125
+ # μ •κΈ° 정리
126
+ git worktree prune
127
+
128
+ # λͺ¨λ“  worktree 확인
129
+ git worktree list
130
+
131
+ # 슀크립트둜 μžλ™ 정리
132
+ for wt in $(git worktree list --porcelain | grep worktree | cut -d' ' -f2); do
133
+ if [[ $wt == *"review-"* ]] || [[ $wt == *"hotfix-"* ]]; then
134
+ git worktree remove "$wt" 2>/dev/null || true
135
+ fi
136
+ done
137
+ ```
138
+
139
+ ### Integration with CI/CD
140
+
141
+ ```yaml
142
+ # GitHub Actions example
143
+ - name: Setup Review Worktree
144
+ run: |
145
+ git fetch origin pull/${{ github.event.pull_request.number }}/head:pr-${{ github.event.pull_request.number }}
146
+ git worktree add ../review pr-${{ github.event.pull_request.number }}
147
+
148
+ - name: Run Tests in Worktree
149
+ working-directory: ../review
150
+ run: npm test
151
+
152
+ - name: Cleanup
153
+ run: git worktree remove ../review
154
+ ```
155
+
156
+ ## Troubleshooting
157
+
158
+ ### "already checked out" Error
159
+
160
+ ```bash
161
+ # ν•΄κ²°: ν•΄λ‹Ή λΈŒλžœμΉ˜κ°€ λ‹€λ₯Έ worktree에 있음
162
+ git worktree list # 확인
163
+ git worktree remove <path> # 제거
164
+ ```
165
+
166
+ ### Locked Worktree
167
+
168
+ ```bash
169
+ # ν•΄κ²°: 잠긴 worktree ν•΄μ œ
170
+ git worktree unlock <path>
171
+ ```
172
+
173
+ ### Stale Worktree
174
+
175
+ ```bash
176
+ # ν•΄κ²°: μ‚­μ œλœ 디렉토리 정리
177
+ git worktree prune
178
+ ```
@@ -0,0 +1,236 @@
1
+ # Priority-Based Todo Management Skill
2
+
3
+ μš°μ„ μˆœμœ„ 기반 TODO 관리 μ‹œμŠ€ν…œ
4
+
5
+ ## Overview
6
+
7
+ P1/P2/P3 μš°μ„ μˆœμœ„λ‘œ νƒœμŠ€ν¬λ₯Ό λΆ„λ₯˜ν•˜μ—¬ μ€‘μš”ν•œ 것 λ¨Όμ € 처리
8
+
9
+ ## Priority Levels
10
+
11
+ ```
12
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
13
+ β”‚ Priority Levels β”‚
14
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
15
+ β”‚ β”‚
16
+ β”‚ πŸ”΄ P1 (Critical) β”‚
17
+ β”‚ β”œβ”€β”€ λ³΄μ•ˆ 취약점 β”‚
18
+ β”‚ β”œβ”€β”€ 데이터 손싀 μœ„ν—˜ β”‚
19
+ β”‚ β”œβ”€β”€ ν”„λ‘œλ•μ…˜ μž₯μ•  β”‚
20
+ β”‚ └── λ¨Έμ§€ 차단 이슈 β”‚
21
+ β”‚ β”‚
22
+ β”‚ 🟑 P2 (Important) β”‚
23
+ β”‚ β”œβ”€β”€ μ„±λŠ₯ 문제 β”‚
24
+ β”‚ β”œβ”€β”€ ν…ŒμŠ€νŠΈ λˆ„λ½ β”‚
25
+ β”‚ β”œβ”€β”€ μ•„ν‚€ν…μ²˜ μœ„λ°˜ β”‚
26
+ β”‚ └── 기술 뢀채 β”‚
27
+ β”‚ β”‚
28
+ β”‚ πŸ”΅ P3 (Nice-to-have) β”‚
29
+ β”‚ β”œβ”€β”€ μ½”λ“œ μŠ€νƒ€μΌ β”‚
30
+ β”‚ β”œβ”€β”€ λ¦¬νŒ©ν† λ§ μ œμ•ˆ β”‚
31
+ β”‚ β”œβ”€β”€ λ¬Έμ„œν™” β”‚
32
+ β”‚ └── μ΅œμ ν™” 기회 β”‚
33
+ β”‚ β”‚
34
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
35
+ ```
36
+
37
+ ## File-Based Todo System
38
+
39
+ ### Directory Structure
40
+
41
+ ```
42
+ .claude/vibe/todos/
43
+ β”œβ”€β”€ P1-security-sql-injection.md
44
+ β”œβ”€β”€ P1-data-transaction-missing.md
45
+ β”œβ”€β”€ P2-perf-n1-query.md
46
+ β”œβ”€β”€ P2-test-missing-edge-case.md
47
+ β”œβ”€β”€ P2-arch-circular-dependency.md
48
+ β”œβ”€β”€ P3-style-extract-helper.md
49
+ β”œβ”€β”€ P3-docs-add-readme.md
50
+ └── index.md
51
+ ```
52
+
53
+ ### Todo File Format
54
+
55
+ ```markdown
56
+ # [P1] SQL Injection Vulnerability
57
+
58
+ ## Summary
59
+ User input directly concatenated in SQL query without sanitization.
60
+
61
+ ## Priority Justification
62
+ - πŸ”΄ P1 (Critical)
63
+ - Category: Security
64
+ - Impact: High (data breach risk)
65
+ - Effort: Low (simple fix)
66
+
67
+ ## Location
68
+ - **File**: src/api/users.py
69
+ - **Line**: 42-45
70
+ - **Function**: `get_user_by_email()`
71
+
72
+ ## Current Code
73
+ ```python
74
+ def get_user_by_email(email: str):
75
+ query = f"SELECT * FROM users WHERE email = '{email}'"
76
+ return db.execute(query)
77
+ ```
78
+
79
+ ## Suggested Fix
80
+ ```python
81
+ def get_user_by_email(email: str):
82
+ query = "SELECT * FROM users WHERE email = %s"
83
+ return db.execute(query, (email,))
84
+ ```
85
+
86
+ ## Checklist
87
+ - [ ] Fix implemented
88
+ - [ ] Unit test added
89
+ - [ ] Security test added
90
+ - [ ] Code reviewed
91
+ - [ ] Merged
92
+
93
+ ## References
94
+ - OWASP SQL Injection: https://owasp.org/www-community/attacks/SQL_Injection
95
+ - Project Security Guide: docs/security.md
96
+
97
+ ## Metadata
98
+ - Created: 2026-01-11
99
+ - Author: Claude
100
+ - Review: /vibe.review PR#123
101
+ ```
102
+
103
+ ### Index File
104
+
105
+ ```markdown
106
+ # Todo Index
107
+
108
+ ## Summary
109
+ | Priority | Count | Status |
110
+ |----------|-------|--------|
111
+ | πŸ”΄ P1 | 2 | 🚨 Blocks merge |
112
+ | 🟑 P2 | 5 | ⚠️ Should fix |
113
+ | πŸ”΅ P3 | 3 | πŸ’‘ Backlog |
114
+
115
+ ## πŸ”΄ P1 Critical (Blocks Merge)
116
+
117
+ | # | Title | Location | Status |
118
+ |---|-------|----------|--------|
119
+ | 1 | SQL Injection | users.py:42 | ❌ Open |
120
+ | 2 | Missing Rollback | payment.py:128 | ❌ Open |
121
+
122
+ ## 🟑 P2 Important
123
+
124
+ | # | Title | Location | Status |
125
+ |---|-------|----------|--------|
126
+ | 3 | N+1 Query | orders.py:78 | ❌ Open |
127
+ | 4 | Missing Tests | auth.py | ❌ Open |
128
+ | 5 | Circular Dep | services/ | ❌ Open |
129
+
130
+ ## πŸ”΅ P3 Nice-to-have
131
+
132
+ | # | Title | Location | Status |
133
+ |---|-------|----------|--------|
134
+ | 6 | Extract Helper | utils.py:45 | πŸ’€ Backlog |
135
+ | 7 | Add README | /payment | πŸ’€ Backlog |
136
+
137
+ ---
138
+
139
+ Last updated: 2026-01-11 10:30
140
+ ```
141
+
142
+ ## Workflow Commands
143
+
144
+ ### Create Todo
145
+
146
+ ```bash
147
+ # /vibe.review κ²°κ³Όμ—μ„œ μžλ™ 생성
148
+ /vibe.review PR#123
149
+ # β†’ .claude/vibe/todos/ 에 파일 생성
150
+
151
+ # μˆ˜λ™ 생성
152
+ vibe todo add "SQL Injection in users.py" --priority P1 --category security
153
+ ```
154
+
155
+ ### List Todos
156
+
157
+ ```bash
158
+ # 전체 λͺ©λ‘
159
+ vibe todo list
160
+
161
+ # μš°μ„ μˆœμœ„λ³„
162
+ vibe todo list --priority P1
163
+ vibe todo list --priority P2
164
+
165
+ # μΉ΄ν…Œκ³ λ¦¬λ³„
166
+ vibe todo list --category security
167
+ vibe todo list --category performance
168
+ ```
169
+
170
+ ### Complete Todo
171
+
172
+ ```bash
173
+ # μ™„λ£Œ 처리
174
+ vibe todo done P1-security-sql-injection
175
+
176
+ # νŒŒμΌμ— 체크 ν‘œμ‹œ + index μ—…λ°μ΄νŠΈ
177
+ ```
178
+
179
+ ### Clean Up
180
+
181
+ ```bash
182
+ # μ™„λ£Œλœ ν•­λͺ© μ•„μΉ΄μ΄λΈŒ
183
+ vibe todo archive
184
+
185
+ # κ²°κ³Ό:
186
+ # .claude/vibe/todos/P1-security-sql-injection.md
187
+ # β†’ .claude/vibe/todos/done/2026-01-11-P1-security-sql-injection.md
188
+ ```
189
+
190
+ ## Integration with TodoWrite
191
+
192
+ κΈ°μ‘΄ TodoWrite 도ꡬ와 연동:
193
+
194
+ ```javascript
195
+ TodoWrite({
196
+ todos: [
197
+ {
198
+ content: "[P1] Fix SQL injection in users.py:42",
199
+ status: "in_progress",
200
+ activeForm: "Fixing SQL injection vulnerability",
201
+ priority: "P1", // ν™•μž₯ ν•„λ“œ
202
+ category: "security" // ν™•μž₯ ν•„λ“œ
203
+ },
204
+ {
205
+ content: "[P2] Add missing tests for auth",
206
+ status: "pending",
207
+ activeForm: "Adding auth tests",
208
+ priority: "P2",
209
+ category: "testing"
210
+ }
211
+ ]
212
+ })
213
+ ```
214
+
215
+ ## Auto-Blocking Rules
216
+
217
+ ```yaml
218
+ # .claude/vibe/config.yaml
219
+ merge_blocking:
220
+ P1: true # P1 있으면 λ¨Έμ§€ 차단
221
+ P2: false # P2λŠ” 경고만
222
+ P3: false # P3λŠ” λ¬΄μ‹œ
223
+
224
+ notifications:
225
+ P1: immediate # μ¦‰μ‹œ μ•Œλ¦Ό
226
+ P2: daily # 일일 μš”μ•½
227
+ P3: weekly # μ£Όκ°„ μš”μ•½
228
+ ```
229
+
230
+ ## Best Practices
231
+
232
+ 1. **P1은 μ¦‰μ‹œ 처리**: λ‹€λ₯Έ μž‘μ—… μ€‘λ‹¨ν•˜κ³  μˆ˜μ •
233
+ 2. **P2λŠ” PR μ „ 처리**: λ¨Έμ§€ μ „ ν•΄κ²° ꢌμž₯
234
+ 3. **P3λŠ” 백둜그**: μ‹œκ°„ λ‚  λ•Œ 처리
235
+ 4. **μ •κΈ° 정리**: μ£Ό 1회 todo 리뷰
236
+ 5. **μ™„λ£Œ 기둝**: ν•΄κ²° 방법 λ¬Έμ„œν™”