@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.
- package/.claude/settings.json +152 -152
- package/.claude/vibe/constitution.md +184 -184
- package/.claude/vibe/rules/core/communication-guide.md +104 -104
- package/.claude/vibe/rules/core/development-philosophy.md +52 -52
- package/.claude/vibe/rules/core/quick-start.md +120 -120
- package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
- package/.claude/vibe/rules/quality/checklist.md +276 -276
- package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
- package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
- package/.claude/vibe/rules/standards/code-structure.md +291 -291
- package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
- package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
- package/.claude/vibe/setup.sh +31 -31
- package/CLAUDE.md +323 -323
- package/LICENSE +21 -21
- package/README.md +724 -721
- package/agents/explorer.md +48 -0
- package/agents/implementer.md +53 -0
- package/agents/research/best-practices-agent.md +139 -0
- package/agents/research/codebase-patterns-agent.md +147 -0
- package/agents/research/framework-docs-agent.md +181 -0
- package/agents/research/security-advisory-agent.md +167 -0
- package/agents/review/architecture-reviewer.md +107 -0
- package/agents/review/complexity-reviewer.md +116 -0
- package/agents/review/data-integrity-reviewer.md +88 -0
- package/agents/review/git-history-reviewer.md +103 -0
- package/agents/review/performance-reviewer.md +86 -0
- package/agents/review/python-reviewer.md +152 -0
- package/agents/review/rails-reviewer.md +139 -0
- package/agents/review/react-reviewer.md +144 -0
- package/agents/review/security-reviewer.md +80 -0
- package/agents/review/simplicity-reviewer.md +140 -0
- package/agents/review/test-coverage-reviewer.md +116 -0
- package/agents/review/typescript-reviewer.md +127 -0
- package/agents/searcher.md +54 -0
- package/agents/simplifier.md +119 -0
- package/agents/tester.md +49 -0
- package/commands/vibe.analyze.md +239 -0
- package/commands/vibe.compound.md +261 -0
- package/commands/vibe.continue.md +88 -0
- package/commands/vibe.diagram.md +178 -0
- package/commands/vibe.e2e.md +266 -0
- package/commands/vibe.reason.md +306 -0
- package/commands/vibe.review.md +324 -0
- package/commands/vibe.run.md +836 -0
- package/commands/vibe.setup.md +97 -0
- package/commands/vibe.spec.md +383 -0
- package/commands/vibe.ui.md +137 -0
- package/commands/vibe.verify.md +238 -0
- package/dist/cli/index.js +389 -389
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/MemoryManager.js +92 -92
- package/dist/lib/PythonParser.js +108 -108
- package/dist/lib/gemini-mcp.js +15 -15
- package/dist/lib/gemini-oauth.js +35 -35
- package/dist/lib/gpt-mcp.js +17 -17
- package/dist/lib/gpt-oauth.js +44 -44
- package/dist/tools/analytics/getUsageAnalytics.js +12 -12
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
- package/dist/tools/planning/generatePrd.js +46 -46
- package/dist/tools/prompt/enhancePromptGemini.js +160 -160
- package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/package.json +69 -66
- package/skills/git-worktree.md +178 -0
- package/skills/priority-todos.md +236 -0
- package/templates/constitution-template.md +184 -184
- package/templates/contract-backend-template.md +517 -517
- package/templates/contract-frontend-template.md +594 -594
- package/templates/feature-template.md +96 -96
- package/templates/hooks-template.json +103 -103
- package/templates/spec-template.md +199 -199
- package/.claude/vibe/rules/tools/mcp-hi-ai-guide.md +0 -665
- 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.
|
|
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
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
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. **μλ£ κΈ°λ‘**: ν΄κ²° λ°©λ² λ¬Έμν
|