@su-record/vibe 2.6.13 → 2.6.15

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 (234) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +497 -497
  3. package/agents/architect-low.md +41 -41
  4. package/agents/architect-medium.md +59 -59
  5. package/agents/architect.md +80 -80
  6. package/agents/build-error-resolver.md +115 -115
  7. package/agents/compounder.md +261 -261
  8. package/agents/diagrammer.md +178 -178
  9. package/agents/e2e-tester.md +266 -266
  10. package/agents/explorer-low.md +42 -42
  11. package/agents/explorer-medium.md +59 -59
  12. package/agents/explorer.md +48 -48
  13. package/agents/implementer-low.md +43 -43
  14. package/agents/implementer-medium.md +52 -52
  15. package/agents/implementer.md +54 -54
  16. package/agents/refactor-cleaner.md +143 -143
  17. package/agents/research/best-practices-agent.md +199 -199
  18. package/agents/research/codebase-patterns-agent.md +157 -157
  19. package/agents/research/framework-docs-agent.md +188 -188
  20. package/agents/research/security-advisory-agent.md +213 -213
  21. package/agents/review/architecture-reviewer.md +107 -107
  22. package/agents/review/complexity-reviewer.md +116 -116
  23. package/agents/review/data-integrity-reviewer.md +88 -88
  24. package/agents/review/git-history-reviewer.md +103 -103
  25. package/agents/review/performance-reviewer.md +86 -86
  26. package/agents/review/python-reviewer.md +150 -150
  27. package/agents/review/rails-reviewer.md +139 -139
  28. package/agents/review/react-reviewer.md +144 -144
  29. package/agents/review/security-reviewer.md +80 -80
  30. package/agents/review/simplicity-reviewer.md +140 -140
  31. package/agents/review/test-coverage-reviewer.md +116 -116
  32. package/agents/review/typescript-reviewer.md +127 -127
  33. package/agents/searcher.md +54 -54
  34. package/agents/simplifier.md +120 -120
  35. package/agents/tester.md +49 -49
  36. package/agents/ui-previewer.md +268 -268
  37. package/commands/vibe.analyze.md +356 -356
  38. package/commands/vibe.reason.md +329 -329
  39. package/commands/vibe.review.md +412 -412
  40. package/commands/vibe.run.md +1266 -1266
  41. package/commands/vibe.spec.md +1054 -1054
  42. package/commands/vibe.spec.review.md +319 -319
  43. package/commands/vibe.trace.md +161 -161
  44. package/commands/vibe.utils.md +376 -376
  45. package/commands/vibe.verify.md +375 -375
  46. package/dist/cli/collaborator.js +52 -52
  47. package/dist/cli/detect.d.ts.map +1 -1
  48. package/dist/cli/detect.js +118 -44
  49. package/dist/cli/detect.js.map +1 -1
  50. package/dist/cli/hud.js +20 -20
  51. package/dist/cli/index.js +118 -118
  52. package/dist/cli/index.js.map +1 -1
  53. package/dist/cli/llm.js +144 -144
  54. package/dist/cli/mcp.d.ts +49 -0
  55. package/dist/cli/mcp.d.ts.map +1 -0
  56. package/dist/cli/mcp.js +169 -0
  57. package/dist/cli/mcp.js.map +1 -0
  58. package/dist/cli/postinstall.js +858 -858
  59. package/dist/cli/setup/ProjectSetup.d.ts +3 -0
  60. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  61. package/dist/cli/setup/ProjectSetup.js +28 -6
  62. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  63. package/dist/lib/DeepInit.js +24 -24
  64. package/dist/lib/IterationTracker.js +11 -11
  65. package/dist/lib/PythonParser.js +108 -108
  66. package/dist/lib/ReviewRace.js +96 -96
  67. package/dist/lib/SkillFrontmatter.js +28 -28
  68. package/dist/lib/SkillQualityGate.js +9 -9
  69. package/dist/lib/SkillRepository.js +159 -159
  70. package/dist/lib/UltraQA.js +77 -77
  71. package/dist/lib/gemini-api.js +5 -5
  72. package/dist/lib/gemini-mcp.d.ts +10 -0
  73. package/dist/lib/gemini-mcp.d.ts.map +1 -0
  74. package/dist/lib/gemini-mcp.js +353 -0
  75. package/dist/lib/gemini-mcp.js.map +1 -0
  76. package/dist/lib/gpt-api.js +4 -4
  77. package/dist/lib/gpt-mcp.d.ts +10 -0
  78. package/dist/lib/gpt-mcp.d.ts.map +1 -0
  79. package/dist/lib/gpt-mcp.js +352 -0
  80. package/dist/lib/gpt-mcp.js.map +1 -0
  81. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  82. package/dist/lib/memory/MemorySearch.js +20 -20
  83. package/dist/lib/memory/MemoryStorage.js +64 -64
  84. package/dist/orchestrator/AgentManager.js +12 -12
  85. package/dist/orchestrator/MultiLlmResearch.js +8 -8
  86. package/dist/orchestrator/SmartRouter.js +11 -11
  87. package/dist/orchestrator/parallelResearch.js +24 -24
  88. package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
  89. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
  90. package/dist/tools/analytics/getUsageAnalytics.js +246 -0
  91. package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
  92. package/dist/tools/analytics/index.d.ts +5 -0
  93. package/dist/tools/analytics/index.d.ts.map +1 -0
  94. package/dist/tools/analytics/index.js +5 -0
  95. package/dist/tools/analytics/index.js.map +1 -0
  96. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  97. package/dist/tools/convention/getCodingGuide.d.ts +7 -0
  98. package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
  99. package/dist/tools/convention/getCodingGuide.js +69 -0
  100. package/dist/tools/convention/getCodingGuide.js.map +1 -0
  101. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  102. package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
  103. package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
  104. package/dist/tools/planning/analyzeRequirements.js +171 -0
  105. package/dist/tools/planning/analyzeRequirements.js.map +1 -0
  106. package/dist/tools/planning/createUserStories.d.ts +9 -0
  107. package/dist/tools/planning/createUserStories.d.ts.map +1 -0
  108. package/dist/tools/planning/createUserStories.js +124 -0
  109. package/dist/tools/planning/createUserStories.js.map +1 -0
  110. package/dist/tools/planning/featureRoadmap.d.ts +10 -0
  111. package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
  112. package/dist/tools/planning/featureRoadmap.js +207 -0
  113. package/dist/tools/planning/featureRoadmap.js.map +1 -0
  114. package/dist/tools/planning/generatePrd.d.ts +11 -0
  115. package/dist/tools/planning/generatePrd.d.ts.map +1 -0
  116. package/dist/tools/planning/generatePrd.js +161 -0
  117. package/dist/tools/planning/generatePrd.js.map +1 -0
  118. package/dist/tools/planning/index.d.ts +8 -0
  119. package/dist/tools/planning/index.d.ts.map +1 -0
  120. package/dist/tools/planning/index.js +8 -0
  121. package/dist/tools/planning/index.js.map +1 -0
  122. package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
  123. package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
  124. package/dist/tools/prompt/analyzePrompt.js +150 -0
  125. package/dist/tools/prompt/analyzePrompt.js.map +1 -0
  126. package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
  127. package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
  128. package/dist/tools/prompt/enhancePrompt.js +110 -0
  129. package/dist/tools/prompt/enhancePrompt.js.map +1 -0
  130. package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
  131. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
  132. package/dist/tools/prompt/enhancePromptGemini.js +332 -0
  133. package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
  134. package/dist/tools/prompt/index.d.ts +7 -0
  135. package/dist/tools/prompt/index.d.ts.map +1 -0
  136. package/dist/tools/prompt/index.js +7 -0
  137. package/dist/tools/prompt/index.js.map +1 -0
  138. package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
  139. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
  140. package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
  141. package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
  142. package/dist/tools/reasoning/index.d.ts +5 -0
  143. package/dist/tools/reasoning/index.d.ts.map +1 -0
  144. package/dist/tools/reasoning/index.js +5 -0
  145. package/dist/tools/reasoning/index.js.map +1 -0
  146. package/dist/tools/spec/prdParser.test.js +171 -171
  147. package/dist/tools/spec/specGenerator.js +169 -169
  148. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  149. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  150. package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
  151. package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
  152. package/dist/tools/thinking/analyzeProblem.js +55 -0
  153. package/dist/tools/thinking/analyzeProblem.js.map +1 -0
  154. package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
  155. package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
  156. package/dist/tools/thinking/breakDownProblem.js +145 -0
  157. package/dist/tools/thinking/breakDownProblem.js.map +1 -0
  158. package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
  159. package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
  160. package/dist/tools/thinking/createThinkingChain.js +44 -0
  161. package/dist/tools/thinking/createThinkingChain.js.map +1 -0
  162. package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
  163. package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
  164. package/dist/tools/thinking/formatAsPlan.js +78 -0
  165. package/dist/tools/thinking/formatAsPlan.js.map +1 -0
  166. package/dist/tools/thinking/index.d.ts +10 -0
  167. package/dist/tools/thinking/index.d.ts.map +1 -0
  168. package/dist/tools/thinking/index.js +10 -0
  169. package/dist/tools/thinking/index.js.map +1 -0
  170. package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
  171. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
  172. package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
  173. package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
  174. package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
  175. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
  176. package/dist/tools/thinking/thinkAloudProcess.js +80 -0
  177. package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
  178. package/hooks/hooks.json +222 -222
  179. package/hooks/scripts/code-check.js +22 -22
  180. package/hooks/scripts/code-review.js +22 -22
  181. package/hooks/scripts/complexity.js +22 -22
  182. package/hooks/scripts/compound.js +23 -23
  183. package/hooks/scripts/context-save.js +33 -33
  184. package/hooks/scripts/gemini-ui-gen.js +281 -281
  185. package/hooks/scripts/generate-brand-assets.js +474 -474
  186. package/hooks/scripts/hud-multiline.js +262 -262
  187. package/hooks/scripts/hud-status.js +291 -291
  188. package/hooks/scripts/keyword-detector.js +214 -214
  189. package/hooks/scripts/llm-orchestrate.js +171 -171
  190. package/hooks/scripts/post-edit.js +97 -97
  191. package/hooks/scripts/post-tool-verify.js +210 -210
  192. package/hooks/scripts/pre-tool-guard.js +125 -125
  193. package/hooks/scripts/recall.js +22 -22
  194. package/hooks/scripts/session-start.js +30 -30
  195. package/hooks/scripts/skill-injector.js +191 -191
  196. package/hooks/scripts/utils.js +97 -97
  197. package/languages/csharp-unity.md +515 -515
  198. package/languages/gdscript-godot.md +470 -470
  199. package/languages/ruby-rails.md +489 -489
  200. package/languages/typescript-angular.md +433 -433
  201. package/languages/typescript-astro.md +416 -416
  202. package/languages/typescript-electron.md +406 -406
  203. package/languages/typescript-nestjs.md +524 -524
  204. package/languages/typescript-svelte.md +407 -407
  205. package/languages/typescript-tauri.md +365 -365
  206. package/package.json +84 -84
  207. package/skills/brand-assets.md +141 -141
  208. package/skills/commerce-patterns.md +361 -361
  209. package/skills/context7-usage.md +102 -102
  210. package/skills/e2e-commerce.md +304 -304
  211. package/skills/frontend-design.md +92 -92
  212. package/skills/git-worktree.md +181 -181
  213. package/skills/parallel-research.md +77 -77
  214. package/skills/priority-todos.md +239 -239
  215. package/skills/seo-checklist.md +244 -244
  216. package/skills/tool-fallback.md +190 -190
  217. package/skills/vibe-capabilities.md +161 -161
  218. package/vibe/constitution.md +227 -227
  219. package/vibe/rules/core/communication-guide.md +98 -98
  220. package/vibe/rules/core/development-philosophy.md +52 -52
  221. package/vibe/rules/core/quick-start.md +102 -102
  222. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  223. package/vibe/rules/quality/checklist.md +276 -276
  224. package/vibe/rules/quality/testing-strategy.md +440 -440
  225. package/vibe/rules/standards/anti-patterns.md +541 -541
  226. package/vibe/rules/standards/code-structure.md +291 -291
  227. package/vibe/rules/standards/complexity-metrics.md +313 -313
  228. package/vibe/rules/standards/naming-conventions.md +198 -198
  229. package/vibe/setup.sh +31 -31
  230. package/vibe/templates/constitution-template.md +252 -252
  231. package/vibe/templates/contract-backend-template.md +526 -526
  232. package/vibe/templates/contract-frontend-template.md +599 -599
  233. package/vibe/templates/feature-template.md +96 -96
  234. package/vibe/templates/spec-template.md +221 -221
@@ -1,86 +1,86 @@
1
- # Performance Reviewer Agent
2
-
3
- <!-- Performance Optimization Expert Review Agent -->
4
-
5
- ## Role
6
-
7
- - N+1 query detection
8
- - Memory leak detection
9
- - Unnecessary computation identification
10
- - Caching opportunity suggestions
11
-
12
- ## Model
13
-
14
- **Haiku** (inherit) - Fast parallel execution
15
-
16
- ## Checklist
17
-
18
- ### Database
19
- - [ ] N+1 query: Individual queries inside loops?
20
- - [ ] Missing index: WHERE/ORDER BY columns?
21
- - [ ] Excessive SELECT *?
22
- - [ ] Unnecessary joins?
23
- - [ ] Pagination implemented?
24
-
25
- ### Memory
26
- - [ ] Large data loaded into memory?
27
- - [ ] Event listeners cleaned up?
28
- - [ ] Circular references?
29
- - [ ] Buffer used instead of stream?
30
-
31
- ### Computation
32
- - [ ] Unnecessary computation inside loops?
33
- - [ ] Regex pre-compiled?
34
- - [ ] Memoization opportunities?
35
- - [ ] Async processing possible?
36
-
37
- ### Caching
38
- - [ ] Repeated API calls?
39
- - [ ] Static data caching?
40
- - [ ] Cache invalidation strategy?
41
- - [ ] CDN utilized?
42
-
43
- ### Frontend
44
- - [ ] Bundle size increase?
45
- - [ ] Image optimization?
46
- - [ ] Lazy loading?
47
- - [ ] Unnecessary re-renders?
48
-
49
- ### Network
50
- - [ ] Unnecessary API calls?
51
- - [ ] Request batching possible?
52
- - [ ] Compression used?
53
- - [ ] Connection pooling?
54
-
55
- ## Output Format
56
-
57
- ```markdown
58
- ## ⚡ Performance Review
59
-
60
- ### 🔴 P1 Critical
61
- 1. **N+1 Query Detected**
62
- - 📍 Location: src/services/orders.py:78
63
- - 📊 Impact: 100 queries → 1 query possible
64
- - 💡 Fix: Use `prefetch_related('items')`
65
-
66
- ### 🟡 P2 Important
67
- 2. **Missing Database Index**
68
- - 📍 Location: migrations/0042_add_status.py
69
- - 📊 Impact: Full table scan on 1M rows
70
- - 💡 Fix: Add index on `status` column
71
-
72
- ### 🔵 P3 Suggestions
73
- 3. **Consider memoization**
74
- - 📍 Location: src/utils/calculate.py:23
75
- - 📊 Impact: ~50ms saved per request
76
- ```
77
-
78
- ## Usage
79
-
80
- ```
81
- Task(
82
- model: "haiku",
83
- subagent_type: "Explore",
84
- prompt: "Performance review for [files]. Check N+1, memory leaks, caching."
85
- )
86
- ```
1
+ # Performance Reviewer Agent
2
+
3
+ <!-- Performance Optimization Expert Review Agent -->
4
+
5
+ ## Role
6
+
7
+ - N+1 query detection
8
+ - Memory leak detection
9
+ - Unnecessary computation identification
10
+ - Caching opportunity suggestions
11
+
12
+ ## Model
13
+
14
+ **Haiku** (inherit) - Fast parallel execution
15
+
16
+ ## Checklist
17
+
18
+ ### Database
19
+ - [ ] N+1 query: Individual queries inside loops?
20
+ - [ ] Missing index: WHERE/ORDER BY columns?
21
+ - [ ] Excessive SELECT *?
22
+ - [ ] Unnecessary joins?
23
+ - [ ] Pagination implemented?
24
+
25
+ ### Memory
26
+ - [ ] Large data loaded into memory?
27
+ - [ ] Event listeners cleaned up?
28
+ - [ ] Circular references?
29
+ - [ ] Buffer used instead of stream?
30
+
31
+ ### Computation
32
+ - [ ] Unnecessary computation inside loops?
33
+ - [ ] Regex pre-compiled?
34
+ - [ ] Memoization opportunities?
35
+ - [ ] Async processing possible?
36
+
37
+ ### Caching
38
+ - [ ] Repeated API calls?
39
+ - [ ] Static data caching?
40
+ - [ ] Cache invalidation strategy?
41
+ - [ ] CDN utilized?
42
+
43
+ ### Frontend
44
+ - [ ] Bundle size increase?
45
+ - [ ] Image optimization?
46
+ - [ ] Lazy loading?
47
+ - [ ] Unnecessary re-renders?
48
+
49
+ ### Network
50
+ - [ ] Unnecessary API calls?
51
+ - [ ] Request batching possible?
52
+ - [ ] Compression used?
53
+ - [ ] Connection pooling?
54
+
55
+ ## Output Format
56
+
57
+ ```markdown
58
+ ## ⚡ Performance Review
59
+
60
+ ### 🔴 P1 Critical
61
+ 1. **N+1 Query Detected**
62
+ - 📍 Location: src/services/orders.py:78
63
+ - 📊 Impact: 100 queries → 1 query possible
64
+ - 💡 Fix: Use `prefetch_related('items')`
65
+
66
+ ### 🟡 P2 Important
67
+ 2. **Missing Database Index**
68
+ - 📍 Location: migrations/0042_add_status.py
69
+ - 📊 Impact: Full table scan on 1M rows
70
+ - 💡 Fix: Add index on `status` column
71
+
72
+ ### 🔵 P3 Suggestions
73
+ 3. **Consider memoization**
74
+ - 📍 Location: src/utils/calculate.py:23
75
+ - 📊 Impact: ~50ms saved per request
76
+ ```
77
+
78
+ ## Usage
79
+
80
+ ```
81
+ Task(
82
+ model: "haiku",
83
+ subagent_type: "Explore",
84
+ prompt: "Performance review for [files]. Check N+1, memory leaks, caching."
85
+ )
86
+ ```
@@ -1,150 +1,150 @@
1
- # Python Reviewer Agent
2
-
3
- <!-- Python Code Expert Review Agent -->
4
-
5
- ## Role
6
-
7
- - PEP 8 style guide compliance
8
- - Type hint verification
9
- - Pythonic pattern suggestions
10
- - async/await pattern review
11
-
12
- ## Model
13
-
14
- **Haiku** (inherit) - Fast parallel execution
15
-
16
- ## Checklist
17
-
18
- ### PEP 8 Style
19
- - [ ] Naming: snake_case (variables/functions), PascalCase (classes)?
20
- - [ ] Line length ≤ 88 (black standard)?
21
- - [ ] Import order: stdlib → third-party → local?
22
- - [ ] Whitespace rules followed?
23
-
24
- ### Type Hints (PEP 484)
25
- - [ ] Function parameter type hints?
26
- - [ ] Return type specified?
27
- - [ ] `T | None` instead of Optional (Python 3.10+)?
28
- - [ ] TypedDict, Protocol used appropriately?
29
-
30
- ### Pythonic Patterns
31
- - [ ] List comprehension used appropriately?
32
- - [ ] Context manager (with) used?
33
- - [ ] range(len()) instead of enumerate?
34
- - [ ] f-string used?
35
- - [ ] Walrus operator (:=) used appropriately?
36
-
37
- ### Error Handling
38
- - [ ] Specific exception types used?
39
- - [ ] Bare except prohibited?
40
- - [ ] Exception chaining (from e)?
41
- - [ ] Appropriate logging?
42
-
43
- ### Async/Await
44
- - [ ] Calling async from sync function?
45
- - [ ] asyncio.gather utilized?
46
- - [ ] Appropriate timeout settings?
47
- - [ ] Resource cleanup (async with)?
48
-
49
- ### Security
50
- - [ ] eval/exec usage prohibited?
51
- - [ ] pickle untrusted data?
52
- - [ ] SQL parameterization?
53
- - [ ] Sensitive information logging?
54
-
55
- ### Performance
56
- - [ ] Generator utilization (large data)?
57
- - [ ] `__slots__` usage considered?
58
- - [ ] lru_cache decorator?
59
- - [ ] Unnecessary list conversions?
60
-
61
- ## Framework Specific
62
-
63
- ### Django
64
- - [ ] N+1 queries (select_related/prefetch_related)?
65
- - [ ] QuerySet lazy evaluation understood?
66
- - [ ] Transaction management?
67
- - [ ] Migration reversibility?
68
-
69
- ### FastAPI
70
- - [ ] Pydantic models appropriate?
71
- - [ ] Dependency injection utilized?
72
- - [ ] Async routes?
73
- - [ ] Response model defined?
74
-
75
- ### SQLAlchemy
76
- - [ ] Session management?
77
- - [ ] N+1 (joinedload/selectinload)?
78
- - [ ] Transaction scope?
79
- - [ ] Connection pool settings?
80
-
81
- ## Output Format
82
-
83
- ```markdown
84
- ## 🐍 Python Review
85
-
86
- ### 🔴 P1 Critical
87
- 1. **Missing Type Hints in Public API**
88
- - 📍 Location: src/services/user.py:get_user()
89
- - 💡 Fix: Add `def get_user(user_id: int) -> User | None:`
90
-
91
- ### 🟡 P2 Important
92
- 2. **Bare Except Clause**
93
- - 📍 Location: src/utils/parser.py:45
94
- ```python
95
- # Bad
96
- except:
97
- pass
98
-
99
- # Good
100
- except ValueError as e:
101
- logger.error(f"Parse error: {e}")
102
- raise
103
- ```
104
-
105
- ### 🔵 P3 Suggestions
106
- 3. **Use List Comprehension**
107
- - 📍 Location: src/api/orders.py:23
108
- ```python
109
- # Before
110
- result = []
111
- for item in items:
112
- if item.active:
113
- result.append(item.name)
114
-
115
- # After
116
- result = [item.name for item in items if item.active]
117
- ```
118
- ```
119
-
120
- ## Usage
121
-
122
- ```text
123
- Task(
124
- model: "haiku",
125
- subagent_type: "Explore",
126
- prompt: "Python review for [files]. Check PEP8, type hints, async patterns."
127
- )
128
- ```
129
-
130
- ## External LLM Enhancement (Optional)
131
-
132
- **When GPT Codex is enabled**, get Python expert 2nd opinion:
133
-
134
- ```text
135
- Primary: Task(Haiku) Python review
136
-
137
- [GPT enabled?]
138
- ↓ YES
139
- gpt.Python code review. Check PEP8, type hints, async patterns, Django/FastAPI best practices:
140
- [Python code to review]
141
-
142
- Compare results → Common issues gain confidence, differences need additional review
143
- ```
144
-
145
- **Use cases:**
146
- - When reviewing complex async/await patterns
147
- - When reviewing Django/FastAPI architecture
148
- - When type hint coverage is severely lacking
149
-
150
- **When GPT is not configured:** Primary works normally on its own
1
+ # Python Reviewer Agent
2
+
3
+ <!-- Python Code Expert Review Agent -->
4
+
5
+ ## Role
6
+
7
+ - PEP 8 style guide compliance
8
+ - Type hint verification
9
+ - Pythonic pattern suggestions
10
+ - async/await pattern review
11
+
12
+ ## Model
13
+
14
+ **Haiku** (inherit) - Fast parallel execution
15
+
16
+ ## Checklist
17
+
18
+ ### PEP 8 Style
19
+ - [ ] Naming: snake_case (variables/functions), PascalCase (classes)?
20
+ - [ ] Line length ≤ 88 (black standard)?
21
+ - [ ] Import order: stdlib → third-party → local?
22
+ - [ ] Whitespace rules followed?
23
+
24
+ ### Type Hints (PEP 484)
25
+ - [ ] Function parameter type hints?
26
+ - [ ] Return type specified?
27
+ - [ ] `T | None` instead of Optional (Python 3.10+)?
28
+ - [ ] TypedDict, Protocol used appropriately?
29
+
30
+ ### Pythonic Patterns
31
+ - [ ] List comprehension used appropriately?
32
+ - [ ] Context manager (with) used?
33
+ - [ ] range(len()) instead of enumerate?
34
+ - [ ] f-string used?
35
+ - [ ] Walrus operator (:=) used appropriately?
36
+
37
+ ### Error Handling
38
+ - [ ] Specific exception types used?
39
+ - [ ] Bare except prohibited?
40
+ - [ ] Exception chaining (from e)?
41
+ - [ ] Appropriate logging?
42
+
43
+ ### Async/Await
44
+ - [ ] Calling async from sync function?
45
+ - [ ] asyncio.gather utilized?
46
+ - [ ] Appropriate timeout settings?
47
+ - [ ] Resource cleanup (async with)?
48
+
49
+ ### Security
50
+ - [ ] eval/exec usage prohibited?
51
+ - [ ] pickle untrusted data?
52
+ - [ ] SQL parameterization?
53
+ - [ ] Sensitive information logging?
54
+
55
+ ### Performance
56
+ - [ ] Generator utilization (large data)?
57
+ - [ ] `__slots__` usage considered?
58
+ - [ ] lru_cache decorator?
59
+ - [ ] Unnecessary list conversions?
60
+
61
+ ## Framework Specific
62
+
63
+ ### Django
64
+ - [ ] N+1 queries (select_related/prefetch_related)?
65
+ - [ ] QuerySet lazy evaluation understood?
66
+ - [ ] Transaction management?
67
+ - [ ] Migration reversibility?
68
+
69
+ ### FastAPI
70
+ - [ ] Pydantic models appropriate?
71
+ - [ ] Dependency injection utilized?
72
+ - [ ] Async routes?
73
+ - [ ] Response model defined?
74
+
75
+ ### SQLAlchemy
76
+ - [ ] Session management?
77
+ - [ ] N+1 (joinedload/selectinload)?
78
+ - [ ] Transaction scope?
79
+ - [ ] Connection pool settings?
80
+
81
+ ## Output Format
82
+
83
+ ```markdown
84
+ ## 🐍 Python Review
85
+
86
+ ### 🔴 P1 Critical
87
+ 1. **Missing Type Hints in Public API**
88
+ - 📍 Location: src/services/user.py:get_user()
89
+ - 💡 Fix: Add `def get_user(user_id: int) -> User | None:`
90
+
91
+ ### 🟡 P2 Important
92
+ 2. **Bare Except Clause**
93
+ - 📍 Location: src/utils/parser.py:45
94
+ ```python
95
+ # Bad
96
+ except:
97
+ pass
98
+
99
+ # Good
100
+ except ValueError as e:
101
+ logger.error(f"Parse error: {e}")
102
+ raise
103
+ ```
104
+
105
+ ### 🔵 P3 Suggestions
106
+ 3. **Use List Comprehension**
107
+ - 📍 Location: src/api/orders.py:23
108
+ ```python
109
+ # Before
110
+ result = []
111
+ for item in items:
112
+ if item.active:
113
+ result.append(item.name)
114
+
115
+ # After
116
+ result = [item.name for item in items if item.active]
117
+ ```
118
+ ```
119
+
120
+ ## Usage
121
+
122
+ ```text
123
+ Task(
124
+ model: "haiku",
125
+ subagent_type: "Explore",
126
+ prompt: "Python review for [files]. Check PEP8, type hints, async patterns."
127
+ )
128
+ ```
129
+
130
+ ## External LLM Enhancement (Optional)
131
+
132
+ **When GPT Codex is enabled**, get Python expert 2nd opinion:
133
+
134
+ ```text
135
+ Primary: Task(Haiku) Python review
136
+
137
+ [GPT enabled?]
138
+ ↓ YES
139
+ gpt.Python code review. Check PEP8, type hints, async patterns, Django/FastAPI best practices:
140
+ [Python code to review]
141
+
142
+ Compare results → Common issues gain confidence, differences need additional review
143
+ ```
144
+
145
+ **Use cases:**
146
+ - When reviewing complex async/await patterns
147
+ - When reviewing Django/FastAPI architecture
148
+ - When type hint coverage is severely lacking
149
+
150
+ **When GPT is not configured:** Primary works normally on its own