@su-record/vibe 2.3.0 โ†’ 2.3.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 (98) hide show
  1. package/.claude/settings.json +35 -35
  2. package/.claude/settings.local.json +24 -25
  3. package/.claude/vibe/constitution.md +184 -184
  4. package/.claude/vibe/rules/core/communication-guide.md +104 -104
  5. package/.claude/vibe/rules/core/development-philosophy.md +52 -52
  6. package/.claude/vibe/rules/core/quick-start.md +120 -120
  7. package/.claude/vibe/rules/languages/dart-flutter.md +509 -509
  8. package/.claude/vibe/rules/languages/go.md +396 -396
  9. package/.claude/vibe/rules/languages/java-spring.md +586 -586
  10. package/.claude/vibe/rules/languages/kotlin-android.md +491 -491
  11. package/.claude/vibe/rules/languages/python-django.md +371 -371
  12. package/.claude/vibe/rules/languages/python-fastapi.md +386 -386
  13. package/.claude/vibe/rules/languages/rust.md +425 -425
  14. package/.claude/vibe/rules/languages/swift-ios.md +516 -516
  15. package/.claude/vibe/rules/languages/typescript-nextjs.md +441 -441
  16. package/.claude/vibe/rules/languages/typescript-node.md +375 -375
  17. package/.claude/vibe/rules/languages/typescript-nuxt.md +521 -521
  18. package/.claude/vibe/rules/languages/typescript-react-native.md +446 -446
  19. package/.claude/vibe/rules/languages/typescript-react.md +525 -525
  20. package/.claude/vibe/rules/languages/typescript-vue.md +353 -353
  21. package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
  22. package/.claude/vibe/rules/quality/checklist.md +276 -276
  23. package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
  24. package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
  25. package/.claude/vibe/rules/standards/code-structure.md +291 -291
  26. package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
  27. package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
  28. package/.claude/vibe/setup.sh +31 -31
  29. package/.claude/vibe/templates/constitution-template.md +184 -184
  30. package/.claude/vibe/templates/contract-backend-template.md +517 -517
  31. package/.claude/vibe/templates/contract-frontend-template.md +594 -594
  32. package/.claude/vibe/templates/feature-template.md +96 -96
  33. package/.claude/vibe/templates/spec-template.md +199 -199
  34. package/CLAUDE.md +345 -323
  35. package/LICENSE +21 -21
  36. package/README.md +744 -724
  37. package/agents/compounder.md +261 -261
  38. package/agents/diagrammer.md +178 -178
  39. package/agents/e2e-tester.md +266 -266
  40. package/agents/explorer.md +48 -48
  41. package/agents/implementer.md +53 -53
  42. package/agents/research/best-practices-agent.md +139 -139
  43. package/agents/research/codebase-patterns-agent.md +147 -147
  44. package/agents/research/framework-docs-agent.md +181 -181
  45. package/agents/research/security-advisory-agent.md +167 -167
  46. package/agents/review/architecture-reviewer.md +107 -107
  47. package/agents/review/complexity-reviewer.md +116 -116
  48. package/agents/review/data-integrity-reviewer.md +88 -88
  49. package/agents/review/git-history-reviewer.md +103 -103
  50. package/agents/review/performance-reviewer.md +86 -86
  51. package/agents/review/python-reviewer.md +152 -152
  52. package/agents/review/rails-reviewer.md +139 -139
  53. package/agents/review/react-reviewer.md +144 -144
  54. package/agents/review/security-reviewer.md +80 -80
  55. package/agents/review/simplicity-reviewer.md +140 -140
  56. package/agents/review/test-coverage-reviewer.md +116 -116
  57. package/agents/review/typescript-reviewer.md +127 -127
  58. package/agents/searcher.md +54 -54
  59. package/agents/simplifier.md +119 -119
  60. package/agents/tester.md +49 -49
  61. package/agents/ui-previewer.md +137 -137
  62. package/commands/vibe.analyze.md +245 -180
  63. package/commands/vibe.reason.md +223 -183
  64. package/commands/vibe.review.md +200 -136
  65. package/commands/vibe.run.md +838 -836
  66. package/commands/vibe.spec.md +419 -383
  67. package/commands/vibe.utils.md +101 -101
  68. package/commands/vibe.verify.md +282 -241
  69. package/dist/cli/index.js +385 -385
  70. package/dist/lib/MemoryManager.d.ts.map +1 -1
  71. package/dist/lib/MemoryManager.js +119 -114
  72. package/dist/lib/MemoryManager.js.map +1 -1
  73. package/dist/lib/PythonParser.js +108 -108
  74. package/dist/lib/gemini-mcp.js +15 -15
  75. package/dist/lib/gemini-oauth.js +35 -35
  76. package/dist/lib/gpt-mcp.js +17 -17
  77. package/dist/lib/gpt-oauth.js +44 -44
  78. package/dist/tools/analytics/getUsageAnalytics.js +12 -12
  79. package/dist/tools/index.d.ts +50 -0
  80. package/dist/tools/index.d.ts.map +1 -0
  81. package/dist/tools/index.js +61 -0
  82. package/dist/tools/index.js.map +1 -0
  83. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  84. package/dist/tools/memory/getMemoryGraph.js +12 -12
  85. package/dist/tools/memory/getSessionContext.js +9 -9
  86. package/dist/tools/memory/linkMemories.js +14 -14
  87. package/dist/tools/memory/listMemories.js +4 -4
  88. package/dist/tools/memory/recallMemory.js +4 -4
  89. package/dist/tools/memory/saveMemory.js +4 -4
  90. package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
  91. package/dist/tools/planning/generatePrd.js +46 -46
  92. package/dist/tools/prompt/enhancePromptGemini.js +160 -160
  93. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  94. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  95. package/hooks/hooks.json +121 -103
  96. package/package.json +73 -69
  97. package/skills/git-worktree.md +178 -178
  98. package/skills/priority-todos.md +236 -236
@@ -1,80 +1,80 @@
1
- # Security Reviewer Agent
2
-
3
- ๋ณด์•ˆ ์ทจ์•ฝ์  ์ „๋ฌธ ๋ฆฌ๋ทฐ ์—์ด์ „ํŠธ
4
-
5
- ## Role
6
-
7
- - OWASP Top 10 ์ทจ์•ฝ์  ๊ฒ€์‚ฌ
8
- - ์ธ์ฆ/์ธ๊ฐ€ ๋กœ์ง ๊ฒ€์ฆ
9
- - ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ ๋…ธ์ถœ ๊ฐ์ง€
10
- - ๋ณด์•ˆ ํ—ค๋” ๋ฐ ์„ค์ • ๊ฒ€ํ† 
11
-
12
- ## Model
13
-
14
- **Haiku** (inherit) - ๋น ๋ฅธ ๋ณ‘๋ ฌ ์‹คํ–‰
15
-
16
- ## Checklist
17
-
18
- ### Injection (A03:2021)
19
- - [ ] SQL Injection: ํŒŒ๋ผ๋ฏธํ„ฐํ™”๋œ ์ฟผ๋ฆฌ ์‚ฌ์šฉ?
20
- - [ ] NoSQL Injection: ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฒ€์ฆ?
21
- - [ ] Command Injection: shell ๋ช…๋ น์–ด ์ด์Šค์ผ€์ดํ”„?
22
- - [ ] LDAP Injection: LDAP ์ฟผ๋ฆฌ ๊ฒ€์ฆ?
23
-
24
- ### Broken Authentication (A07:2021)
25
- - [ ] ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹ฑ (bcrypt, argon2)?
26
- - [ ] ์„ธ์…˜ ๊ด€๋ฆฌ ๋ณด์•ˆ?
27
- - [ ] ๋ธŒ๋ฃจํŠธํฌ์Šค ๋ฐฉ์ง€?
28
- - [ ] 2FA ๊ตฌํ˜„ ์—ฌ๋ถ€?
29
-
30
- ### Sensitive Data Exposure (A02:2021)
31
- - [ ] API ํ‚ค, ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•˜๋“œ์ฝ”๋”ฉ?
32
- - [ ] ๋กœ๊ทธ์— ๋ฏผ๊ฐ ์ •๋ณด ๋…ธ์ถœ?
33
- - [ ] HTTPS ๊ฐ•์ œ?
34
- - [ ] ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”?
35
-
36
- ### XSS (A03:2021)
37
- - [ ] ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ด์Šค์ผ€์ดํ”„?
38
- - [ ] Content-Security-Policy ์„ค์ •?
39
- - [ ] innerHTML ๋Œ€์‹  textContent?
40
- - [ ] React dangerouslySetInnerHTML ๊ฒ€ํ† ?
41
-
42
- ### CSRF
43
- - [ ] CSRF ํ† ํฐ ์‚ฌ์šฉ?
44
- - [ ] SameSite ์ฟ ํ‚ค ์„ค์ •?
45
- - [ ] Origin ๊ฒ€์ฆ?
46
-
47
- ### Security Misconfiguration (A05:2021)
48
- - [ ] ๋””๋ฒ„๊ทธ ๋ชจ๋“œ ๋น„ํ™œ์„ฑํ™”?
49
- - [ ] ๊ธฐ๋ณธ ๊ณ„์ •/๋น„๋ฐ€๋ฒˆํ˜ธ ์ œ๊ฑฐ?
50
- - [ ] ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์— ์Šคํƒ ํŠธ๋ ˆ์ด์Šค?
51
- - [ ] ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋Šฅ/ํฌํŠธ ๋น„ํ™œ์„ฑํ™”?
52
-
53
- ## Output Format
54
-
55
- ```markdown
56
- ## ๐Ÿ”’ Security Review
57
-
58
- ### ๐Ÿ”ด P1 Critical
59
- 1. **SQL Injection**
60
- - ๐Ÿ“ Location: src/api/users.py:42
61
- - ๐Ÿ’ก Fix: Use parameterized queries
62
-
63
- ### ๐ŸŸก P2 Important
64
- 2. **Missing Rate Limiting**
65
- - ๐Ÿ“ Location: src/api/auth.py:15
66
- - ๐Ÿ’ก Fix: Add rate limiter middleware
67
-
68
- ### ๐Ÿ”ต P3 Suggestions
69
- 3. **Consider adding CSP header**
70
- ```
71
-
72
- ## Usage
73
-
74
- ```
75
- Task(
76
- model: "haiku",
77
- subagent_type: "Explore",
78
- prompt: "Security review for changes in [files]. Check OWASP Top 10."
79
- )
80
- ```
1
+ # Security Reviewer Agent
2
+
3
+ ๋ณด์•ˆ ์ทจ์•ฝ์  ์ „๋ฌธ ๋ฆฌ๋ทฐ ์—์ด์ „ํŠธ
4
+
5
+ ## Role
6
+
7
+ - OWASP Top 10 ์ทจ์•ฝ์  ๊ฒ€์‚ฌ
8
+ - ์ธ์ฆ/์ธ๊ฐ€ ๋กœ์ง ๊ฒ€์ฆ
9
+ - ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ ๋…ธ์ถœ ๊ฐ์ง€
10
+ - ๋ณด์•ˆ ํ—ค๋” ๋ฐ ์„ค์ • ๊ฒ€ํ† 
11
+
12
+ ## Model
13
+
14
+ **Haiku** (inherit) - ๋น ๋ฅธ ๋ณ‘๋ ฌ ์‹คํ–‰
15
+
16
+ ## Checklist
17
+
18
+ ### Injection (A03:2021)
19
+ - [ ] SQL Injection: ํŒŒ๋ผ๋ฏธํ„ฐํ™”๋œ ์ฟผ๋ฆฌ ์‚ฌ์šฉ?
20
+ - [ ] NoSQL Injection: ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฒ€์ฆ?
21
+ - [ ] Command Injection: shell ๋ช…๋ น์–ด ์ด์Šค์ผ€์ดํ”„?
22
+ - [ ] LDAP Injection: LDAP ์ฟผ๋ฆฌ ๊ฒ€์ฆ?
23
+
24
+ ### Broken Authentication (A07:2021)
25
+ - [ ] ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹ฑ (bcrypt, argon2)?
26
+ - [ ] ์„ธ์…˜ ๊ด€๋ฆฌ ๋ณด์•ˆ?
27
+ - [ ] ๋ธŒ๋ฃจํŠธํฌ์Šค ๋ฐฉ์ง€?
28
+ - [ ] 2FA ๊ตฌํ˜„ ์—ฌ๋ถ€?
29
+
30
+ ### Sensitive Data Exposure (A02:2021)
31
+ - [ ] API ํ‚ค, ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•˜๋“œ์ฝ”๋”ฉ?
32
+ - [ ] ๋กœ๊ทธ์— ๋ฏผ๊ฐ ์ •๋ณด ๋…ธ์ถœ?
33
+ - [ ] HTTPS ๊ฐ•์ œ?
34
+ - [ ] ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”?
35
+
36
+ ### XSS (A03:2021)
37
+ - [ ] ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ด์Šค์ผ€์ดํ”„?
38
+ - [ ] Content-Security-Policy ์„ค์ •?
39
+ - [ ] innerHTML ๋Œ€์‹  textContent?
40
+ - [ ] React dangerouslySetInnerHTML ๊ฒ€ํ† ?
41
+
42
+ ### CSRF
43
+ - [ ] CSRF ํ† ํฐ ์‚ฌ์šฉ?
44
+ - [ ] SameSite ์ฟ ํ‚ค ์„ค์ •?
45
+ - [ ] Origin ๊ฒ€์ฆ?
46
+
47
+ ### Security Misconfiguration (A05:2021)
48
+ - [ ] ๋””๋ฒ„๊ทธ ๋ชจ๋“œ ๋น„ํ™œ์„ฑํ™”?
49
+ - [ ] ๊ธฐ๋ณธ ๊ณ„์ •/๋น„๋ฐ€๋ฒˆํ˜ธ ์ œ๊ฑฐ?
50
+ - [ ] ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์— ์Šคํƒ ํŠธ๋ ˆ์ด์Šค?
51
+ - [ ] ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋Šฅ/ํฌํŠธ ๋น„ํ™œ์„ฑํ™”?
52
+
53
+ ## Output Format
54
+
55
+ ```markdown
56
+ ## ๐Ÿ”’ Security Review
57
+
58
+ ### ๐Ÿ”ด P1 Critical
59
+ 1. **SQL Injection**
60
+ - ๐Ÿ“ Location: src/api/users.py:42
61
+ - ๐Ÿ’ก Fix: Use parameterized queries
62
+
63
+ ### ๐ŸŸก P2 Important
64
+ 2. **Missing Rate Limiting**
65
+ - ๐Ÿ“ Location: src/api/auth.py:15
66
+ - ๐Ÿ’ก Fix: Add rate limiter middleware
67
+
68
+ ### ๐Ÿ”ต P3 Suggestions
69
+ 3. **Consider adding CSP header**
70
+ ```
71
+
72
+ ## Usage
73
+
74
+ ```
75
+ Task(
76
+ model: "haiku",
77
+ subagent_type: "Explore",
78
+ prompt: "Security review for changes in [files]. Check OWASP Top 10."
79
+ )
80
+ ```
@@ -1,140 +1,140 @@
1
- # Simplicity Reviewer Agent
2
-
3
- ์ฝ”๋“œ ๋‹จ์ˆœํ™” ์ „๋ฌธ ๋ฆฌ๋ทฐ ์—์ด์ „ํŠธ
4
-
5
- ## Role
6
-
7
- - ๊ณผ๋„ํ•œ ์ถ”์ƒํ™” ํƒ์ง€
8
- - ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ ์ œ๊ฑฐ
9
- - YAGNI ์›์น™ ๊ฒ€์ฆ
10
- - ๋ช…ํ™•์„ฑ ๊ฐœ์„  ์ œ์•ˆ
11
-
12
- ## Model
13
-
14
- **Haiku** (inherit) - ๋น ๋ฅธ ๋ณ‘๋ ฌ ์‹คํ–‰
15
-
16
- ## Philosophy
17
-
18
- > "Simplicity is the ultimate sophistication" - Leonardo da Vinci
19
- > "YAGNI - You Aren't Gonna Need It"
20
-
21
- ## Checklist
22
-
23
- ### Over-Engineering
24
- - [ ] ๋ถˆํ•„์š”ํ•œ ์ถ”์ƒํ™” ๋ ˆ์ด์–ด?
25
- - [ ] ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ธํ„ฐํŽ˜์ด์Šค?
26
- - [ ] ๊ณผ๋„ํ•œ ๋””์ž์ธ ํŒจํ„ด?
27
- - [ ] ๋ฏธ๋ž˜๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ?
28
-
29
- ### Code Clarity
30
- - [ ] ํ•œ๋ˆˆ์— ์ดํ•ด ๊ฐ€๋Šฅ?
31
- - [ ] ๋ณ€์ˆ˜/ํ•จ์ˆ˜๋ช… ๋ช…ํ™•?
32
- - [ ] ์ค‘์ฒฉ ์ตœ์†Œํ™”?
33
- - [ ] ์ฃผ์„ ์—†์ด๋„ ์ดํ•ด?
34
-
35
- ### Unnecessary Code
36
- - [ ] ์ฃฝ์€ ์ฝ”๋“œ?
37
- - [ ] ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” import?
38
- - [ ] ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ์ฝ”๋“œ?
39
- - [ ] ์ค‘๋ณต ๋กœ์ง?
40
-
41
- ### KISS Violations
42
- - [ ] ๋‹จ์ˆœํ•œ ํ•ด๊ฒฐ์ฑ… ์กด์žฌ?
43
- - [ ] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅ?
44
- - [ ] ํ‘œ์ค€ ๊ธฐ๋Šฅ์œผ๋กœ ์ถฉ๋ถ„?
45
-
46
- ### Premature Optimization
47
- - [ ] ํ•„์š” ์—†๋Š” ์บ์‹ฑ?
48
- - [ ] ๊ณผ๋„ํ•œ ๋ฉ”๋ชจ์ด์ œ์ด์…˜?
49
- - [ ] ๋ถˆํ•„์š”ํ•œ ์ง€์—ฐ ๋กœ๋”ฉ?
50
-
51
- ## Anti-Patterns
52
-
53
- ```python
54
- # โŒ Over-engineered
55
- class AbstractUserFactoryInterface:
56
- def create_user_factory(self):
57
- pass
58
-
59
- class UserFactoryImpl(AbstractUserFactoryInterface):
60
- def create_user_factory(self):
61
- return UserFactory()
62
-
63
- # โœ… Simple
64
- def create_user(name, email):
65
- return User(name=name, email=email)
66
-
67
- # โŒ Unnecessary abstraction
68
- class StringUtils:
69
- @staticmethod
70
- def is_empty(s):
71
- return len(s) == 0
72
-
73
- # โœ… Just use Python
74
- if not s: # Pythonic way
75
-
76
- # โŒ Premature generalization
77
- class DataProcessor:
78
- def __init__(self, strategy, validator, transformer, logger):
79
- ...
80
-
81
- # โœ… Start simple, generalize when needed
82
- def process_data(data):
83
- validated = validate(data)
84
- return transform(validated)
85
- ```
86
-
87
- ## Output Format
88
-
89
- ```markdown
90
- ## ๐ŸŽฏ Simplicity Review
91
-
92
- ### ๐Ÿ”ด P1 Critical
93
- 1. **Dead Code**
94
- - ๐Ÿ“ Location: src/utils/legacy.py (entire file)
95
- - ๐Ÿ“Š No references found in codebase
96
- - ๐Ÿ’ก Safe to delete
97
-
98
- ### ๐ŸŸก P2 Important
99
- 2. **Over-Abstraction**
100
- - ๐Ÿ“ Location: src/services/factory.py
101
- - ๐Ÿšซ Problem: 3 classes for what could be 1 function
102
- ```python
103
- # Before: AbstractFactory โ†’ FactoryImpl โ†’ ConcreteFactory
104
- # After: Just one function
105
- def create_thing(type):
106
- return Thing(type)
107
- ```
108
-
109
- ### ๐Ÿ”ต P3 Suggestions
110
- 3. **Simplify Conditional**
111
- - ๐Ÿ“ Location: src/utils/validator.py:45
112
- ```python
113
- # Before
114
- if x is not None:
115
- if x > 0:
116
- if x < 100:
117
- return True
118
- return False
119
-
120
- # After
121
- return x is not None and 0 < x < 100
122
- ```
123
- ```
124
-
125
- ## Questions to Ask
126
-
127
- 1. "Can I explain this in one sentence?"
128
- 2. "Would a junior developer understand this?"
129
- 3. "Can I delete this and nothing breaks?"
130
- 4. "Am I solving a problem that doesn't exist yet?"
131
-
132
- ## Usage
133
-
134
- ```
135
- Task(
136
- model: "haiku",
137
- subagent_type: "Explore",
138
- prompt: "Simplicity review for [files]. Find over-engineering, dead code."
139
- )
140
- ```
1
+ # Simplicity Reviewer Agent
2
+
3
+ ์ฝ”๋“œ ๋‹จ์ˆœํ™” ์ „๋ฌธ ๋ฆฌ๋ทฐ ์—์ด์ „ํŠธ
4
+
5
+ ## Role
6
+
7
+ - ๊ณผ๋„ํ•œ ์ถ”์ƒํ™” ํƒ์ง€
8
+ - ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ ์ œ๊ฑฐ
9
+ - YAGNI ์›์น™ ๊ฒ€์ฆ
10
+ - ๋ช…ํ™•์„ฑ ๊ฐœ์„  ์ œ์•ˆ
11
+
12
+ ## Model
13
+
14
+ **Haiku** (inherit) - ๋น ๋ฅธ ๋ณ‘๋ ฌ ์‹คํ–‰
15
+
16
+ ## Philosophy
17
+
18
+ > "Simplicity is the ultimate sophistication" - Leonardo da Vinci
19
+ > "YAGNI - You Aren't Gonna Need It"
20
+
21
+ ## Checklist
22
+
23
+ ### Over-Engineering
24
+ - [ ] ๋ถˆํ•„์š”ํ•œ ์ถ”์ƒํ™” ๋ ˆ์ด์–ด?
25
+ - [ ] ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ธํ„ฐํŽ˜์ด์Šค?
26
+ - [ ] ๊ณผ๋„ํ•œ ๋””์ž์ธ ํŒจํ„ด?
27
+ - [ ] ๋ฏธ๋ž˜๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ?
28
+
29
+ ### Code Clarity
30
+ - [ ] ํ•œ๋ˆˆ์— ์ดํ•ด ๊ฐ€๋Šฅ?
31
+ - [ ] ๋ณ€์ˆ˜/ํ•จ์ˆ˜๋ช… ๋ช…ํ™•?
32
+ - [ ] ์ค‘์ฒฉ ์ตœ์†Œํ™”?
33
+ - [ ] ์ฃผ์„ ์—†์ด๋„ ์ดํ•ด?
34
+
35
+ ### Unnecessary Code
36
+ - [ ] ์ฃฝ์€ ์ฝ”๋“œ?
37
+ - [ ] ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” import?
38
+ - [ ] ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ์ฝ”๋“œ?
39
+ - [ ] ์ค‘๋ณต ๋กœ์ง?
40
+
41
+ ### KISS Violations
42
+ - [ ] ๋‹จ์ˆœํ•œ ํ•ด๊ฒฐ์ฑ… ์กด์žฌ?
43
+ - [ ] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅ?
44
+ - [ ] ํ‘œ์ค€ ๊ธฐ๋Šฅ์œผ๋กœ ์ถฉ๋ถ„?
45
+
46
+ ### Premature Optimization
47
+ - [ ] ํ•„์š” ์—†๋Š” ์บ์‹ฑ?
48
+ - [ ] ๊ณผ๋„ํ•œ ๋ฉ”๋ชจ์ด์ œ์ด์…˜?
49
+ - [ ] ๋ถˆํ•„์š”ํ•œ ์ง€์—ฐ ๋กœ๋”ฉ?
50
+
51
+ ## Anti-Patterns
52
+
53
+ ```python
54
+ # โŒ Over-engineered
55
+ class AbstractUserFactoryInterface:
56
+ def create_user_factory(self):
57
+ pass
58
+
59
+ class UserFactoryImpl(AbstractUserFactoryInterface):
60
+ def create_user_factory(self):
61
+ return UserFactory()
62
+
63
+ # โœ… Simple
64
+ def create_user(name, email):
65
+ return User(name=name, email=email)
66
+
67
+ # โŒ Unnecessary abstraction
68
+ class StringUtils:
69
+ @staticmethod
70
+ def is_empty(s):
71
+ return len(s) == 0
72
+
73
+ # โœ… Just use Python
74
+ if not s: # Pythonic way
75
+
76
+ # โŒ Premature generalization
77
+ class DataProcessor:
78
+ def __init__(self, strategy, validator, transformer, logger):
79
+ ...
80
+
81
+ # โœ… Start simple, generalize when needed
82
+ def process_data(data):
83
+ validated = validate(data)
84
+ return transform(validated)
85
+ ```
86
+
87
+ ## Output Format
88
+
89
+ ```markdown
90
+ ## ๐ŸŽฏ Simplicity Review
91
+
92
+ ### ๐Ÿ”ด P1 Critical
93
+ 1. **Dead Code**
94
+ - ๐Ÿ“ Location: src/utils/legacy.py (entire file)
95
+ - ๐Ÿ“Š No references found in codebase
96
+ - ๐Ÿ’ก Safe to delete
97
+
98
+ ### ๐ŸŸก P2 Important
99
+ 2. **Over-Abstraction**
100
+ - ๐Ÿ“ Location: src/services/factory.py
101
+ - ๐Ÿšซ Problem: 3 classes for what could be 1 function
102
+ ```python
103
+ # Before: AbstractFactory โ†’ FactoryImpl โ†’ ConcreteFactory
104
+ # After: Just one function
105
+ def create_thing(type):
106
+ return Thing(type)
107
+ ```
108
+
109
+ ### ๐Ÿ”ต P3 Suggestions
110
+ 3. **Simplify Conditional**
111
+ - ๐Ÿ“ Location: src/utils/validator.py:45
112
+ ```python
113
+ # Before
114
+ if x is not None:
115
+ if x > 0:
116
+ if x < 100:
117
+ return True
118
+ return False
119
+
120
+ # After
121
+ return x is not None and 0 < x < 100
122
+ ```
123
+ ```
124
+
125
+ ## Questions to Ask
126
+
127
+ 1. "Can I explain this in one sentence?"
128
+ 2. "Would a junior developer understand this?"
129
+ 3. "Can I delete this and nothing breaks?"
130
+ 4. "Am I solving a problem that doesn't exist yet?"
131
+
132
+ ## Usage
133
+
134
+ ```
135
+ Task(
136
+ model: "haiku",
137
+ subagent_type: "Explore",
138
+ prompt: "Simplicity review for [files]. Find over-engineering, dead code."
139
+ )
140
+ ```
@@ -1,116 +1,116 @@
1
- # Test Coverage Reviewer Agent
2
-
3
- ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์ „๋ฌธ ๋ฆฌ๋ทฐ ์—์ด์ „ํŠธ
4
-
5
- ## Role
6
-
7
- - ํ…Œ์ŠคํŠธ ๋ˆ„๋ฝ ํƒ์ง€
8
- - ์—ฃ์ง€ ์ผ€์ด์Šค ์‹๋ณ„
9
- - ํ…Œ์ŠคํŠธ ํ’ˆ์งˆ ํ‰๊ฐ€
10
- - ๋ชจํ‚น ์ „๋žต ๊ฒ€ํ† 
11
-
12
- ## Model
13
-
14
- **Haiku** (inherit) - ๋น ๋ฅธ ๋ณ‘๋ ฌ ์‹คํ–‰
15
-
16
- ## Checklist
17
-
18
- ### Coverage Gaps
19
- - [ ] ์ƒˆ ์ฝ”๋“œ์— ํ…Œ์ŠคํŠธ ์กด์žฌ?
20
- - [ ] ๋ถ„๊ธฐ ์ปค๋ฒ„๋ฆฌ์ง€ ์ถฉ๋ถ„?
21
- - [ ] ์—๋Ÿฌ ๊ฒฝ๋กœ ํ…Œ์ŠคํŠธ?
22
- - [ ] ๊ฒฝ๊ณ„๊ฐ’ ํ…Œ์ŠคํŠธ?
23
-
24
- ### Edge Cases
25
- - [ ] null/undefined ์ฒ˜๋ฆฌ?
26
- - [ ] ๋นˆ ๋ฐฐ์—ด/๊ฐ์ฒด?
27
- - [ ] ์ตœ๋Œ€/์ตœ์†Œ๊ฐ’?
28
- - [ ] ํŠน์ˆ˜ ๋ฌธ์ž?
29
- - [ ] ๋™์‹œ์„ฑ ์‹œ๋‚˜๋ฆฌ์˜ค?
30
-
31
- ### Test Quality
32
- - [ ] ํ…Œ์ŠคํŠธ ๋…๋ฆฝ์„ฑ?
33
- - [ ] ์˜๋ฏธ ์žˆ๋Š” ์–ด์„ค์…˜?
34
- - [ ] ํ…Œ์ŠคํŠธ ์ด๋ฆ„ ๋ช…ํ™•?
35
- - [ ] AAA ํŒจํ„ด (Arrange-Act-Assert)?
36
-
37
- ### Mocking
38
- - [ ] ์™ธ๋ถ€ ์˜์กด์„ฑ ๋ชจํ‚น?
39
- - [ ] ๊ณผ๋„ํ•œ ๋ชจํ‚น ๊ธˆ์ง€?
40
- - [ ] ๋ชจํ‚น ํ˜„์‹ค์„ฑ?
41
- - [ ] ํ…Œ์ŠคํŠธ ๋”๋ธ” ์ ์ ˆ?
42
-
43
- ### Integration
44
- - [ ] ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์กด์žฌ?
45
- - [ ] API ๊ณ„์•ฝ ํ…Œ์ŠคํŠธ?
46
- - [ ] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ŠคํŠธ?
47
- - [ ] E2E ์‹œ๋‚˜๋ฆฌ์˜ค?
48
-
49
- ### Flakiness
50
- - [ ] ์‹œ๊ฐ„ ์˜์กด์„ฑ?
51
- - [ ] ๋žœ๋ค ๋ฐ์ดํ„ฐ?
52
- - [ ] ์™ธ๋ถ€ ์„œ๋น„์Šค ์˜์กด?
53
- - [ ] ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ?
54
-
55
- ## Output Format
56
-
57
- ```markdown
58
- ## ๐Ÿงช Test Coverage Review
59
-
60
- ### ๐Ÿ”ด P1 Critical
61
- 1. **No Tests for New Feature**
62
- - ๐Ÿ“ Location: src/services/payment.py
63
- - ๐Ÿ“Š Coverage: 0% (new file)
64
- - ๐Ÿ’ก Required tests:
65
- - Happy path: successful payment
66
- - Error: insufficient funds
67
- - Error: invalid card
68
- - Edge: concurrent payments
69
-
70
- ### ๐ŸŸก P2 Important
71
- 2. **Missing Edge Case Tests**
72
- - ๐Ÿ“ Location: src/utils/validator.py:validate_email()
73
- - Missing:
74
- - Empty string input
75
- - Unicode characters
76
- - Maximum length
77
-
78
- ### ๐Ÿ”ต P3 Suggestions
79
- 3. **Consider Adding Integration Test**
80
- - ๐Ÿ“ Feature: User registration flow
81
- - ๐Ÿ’ก Full flow from signup to email verification
82
- ```
83
-
84
- ## Test Template Suggestions
85
-
86
- ```python
87
- # Suggested test structure
88
- class TestPaymentService:
89
- """Tests for PaymentService"""
90
-
91
- def test_successful_payment(self):
92
- """Happy path: valid payment processes correctly"""
93
- pass
94
-
95
- def test_insufficient_funds(self):
96
- """Error case: insufficient funds returns error"""
97
- pass
98
-
99
- def test_invalid_card_number(self):
100
- """Edge case: invalid card format rejected"""
101
- pass
102
-
103
- def test_concurrent_payments(self):
104
- """Concurrency: multiple payments don't double-charge"""
105
- pass
106
- ```
107
-
108
- ## Usage
109
-
110
- ```
111
- Task(
112
- model: "haiku",
113
- subagent_type: "Explore",
114
- prompt: "Test coverage review for [files]. Find missing tests, edge cases."
115
- )
116
- ```
1
+ # Test Coverage Reviewer Agent
2
+
3
+ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์ „๋ฌธ ๋ฆฌ๋ทฐ ์—์ด์ „ํŠธ
4
+
5
+ ## Role
6
+
7
+ - ํ…Œ์ŠคํŠธ ๋ˆ„๋ฝ ํƒ์ง€
8
+ - ์—ฃ์ง€ ์ผ€์ด์Šค ์‹๋ณ„
9
+ - ํ…Œ์ŠคํŠธ ํ’ˆ์งˆ ํ‰๊ฐ€
10
+ - ๋ชจํ‚น ์ „๋žต ๊ฒ€ํ† 
11
+
12
+ ## Model
13
+
14
+ **Haiku** (inherit) - ๋น ๋ฅธ ๋ณ‘๋ ฌ ์‹คํ–‰
15
+
16
+ ## Checklist
17
+
18
+ ### Coverage Gaps
19
+ - [ ] ์ƒˆ ์ฝ”๋“œ์— ํ…Œ์ŠคํŠธ ์กด์žฌ?
20
+ - [ ] ๋ถ„๊ธฐ ์ปค๋ฒ„๋ฆฌ์ง€ ์ถฉ๋ถ„?
21
+ - [ ] ์—๋Ÿฌ ๊ฒฝ๋กœ ํ…Œ์ŠคํŠธ?
22
+ - [ ] ๊ฒฝ๊ณ„๊ฐ’ ํ…Œ์ŠคํŠธ?
23
+
24
+ ### Edge Cases
25
+ - [ ] null/undefined ์ฒ˜๋ฆฌ?
26
+ - [ ] ๋นˆ ๋ฐฐ์—ด/๊ฐ์ฒด?
27
+ - [ ] ์ตœ๋Œ€/์ตœ์†Œ๊ฐ’?
28
+ - [ ] ํŠน์ˆ˜ ๋ฌธ์ž?
29
+ - [ ] ๋™์‹œ์„ฑ ์‹œ๋‚˜๋ฆฌ์˜ค?
30
+
31
+ ### Test Quality
32
+ - [ ] ํ…Œ์ŠคํŠธ ๋…๋ฆฝ์„ฑ?
33
+ - [ ] ์˜๋ฏธ ์žˆ๋Š” ์–ด์„ค์…˜?
34
+ - [ ] ํ…Œ์ŠคํŠธ ์ด๋ฆ„ ๋ช…ํ™•?
35
+ - [ ] AAA ํŒจํ„ด (Arrange-Act-Assert)?
36
+
37
+ ### Mocking
38
+ - [ ] ์™ธ๋ถ€ ์˜์กด์„ฑ ๋ชจํ‚น?
39
+ - [ ] ๊ณผ๋„ํ•œ ๋ชจํ‚น ๊ธˆ์ง€?
40
+ - [ ] ๋ชจํ‚น ํ˜„์‹ค์„ฑ?
41
+ - [ ] ํ…Œ์ŠคํŠธ ๋”๋ธ” ์ ์ ˆ?
42
+
43
+ ### Integration
44
+ - [ ] ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์กด์žฌ?
45
+ - [ ] API ๊ณ„์•ฝ ํ…Œ์ŠคํŠธ?
46
+ - [ ] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ŠคํŠธ?
47
+ - [ ] E2E ์‹œ๋‚˜๋ฆฌ์˜ค?
48
+
49
+ ### Flakiness
50
+ - [ ] ์‹œ๊ฐ„ ์˜์กด์„ฑ?
51
+ - [ ] ๋žœ๋ค ๋ฐ์ดํ„ฐ?
52
+ - [ ] ์™ธ๋ถ€ ์„œ๋น„์Šค ์˜์กด?
53
+ - [ ] ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ?
54
+
55
+ ## Output Format
56
+
57
+ ```markdown
58
+ ## ๐Ÿงช Test Coverage Review
59
+
60
+ ### ๐Ÿ”ด P1 Critical
61
+ 1. **No Tests for New Feature**
62
+ - ๐Ÿ“ Location: src/services/payment.py
63
+ - ๐Ÿ“Š Coverage: 0% (new file)
64
+ - ๐Ÿ’ก Required tests:
65
+ - Happy path: successful payment
66
+ - Error: insufficient funds
67
+ - Error: invalid card
68
+ - Edge: concurrent payments
69
+
70
+ ### ๐ŸŸก P2 Important
71
+ 2. **Missing Edge Case Tests**
72
+ - ๐Ÿ“ Location: src/utils/validator.py:validate_email()
73
+ - Missing:
74
+ - Empty string input
75
+ - Unicode characters
76
+ - Maximum length
77
+
78
+ ### ๐Ÿ”ต P3 Suggestions
79
+ 3. **Consider Adding Integration Test**
80
+ - ๐Ÿ“ Feature: User registration flow
81
+ - ๐Ÿ’ก Full flow from signup to email verification
82
+ ```
83
+
84
+ ## Test Template Suggestions
85
+
86
+ ```python
87
+ # Suggested test structure
88
+ class TestPaymentService:
89
+ """Tests for PaymentService"""
90
+
91
+ def test_successful_payment(self):
92
+ """Happy path: valid payment processes correctly"""
93
+ pass
94
+
95
+ def test_insufficient_funds(self):
96
+ """Error case: insufficient funds returns error"""
97
+ pass
98
+
99
+ def test_invalid_card_number(self):
100
+ """Edge case: invalid card format rejected"""
101
+ pass
102
+
103
+ def test_concurrent_payments(self):
104
+ """Concurrency: multiple payments don't double-charge"""
105
+ pass
106
+ ```
107
+
108
+ ## Usage
109
+
110
+ ```
111
+ Task(
112
+ model: "haiku",
113
+ subagent_type: "Explore",
114
+ prompt: "Test coverage review for [files]. Find missing tests, edge cases."
115
+ )
116
+ ```