@su-record/vibe 2.6.14 → 2.6.16

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 (233) hide show
  1. package/CLAUDE.md +1 -394
  2. package/LICENSE +21 -21
  3. package/README.md +203 -497
  4. package/agents/architect-low.md +41 -41
  5. package/agents/architect-medium.md +59 -59
  6. package/agents/architect.md +80 -80
  7. package/agents/build-error-resolver.md +115 -115
  8. package/agents/compounder.md +261 -261
  9. package/agents/diagrammer.md +178 -178
  10. package/agents/e2e-tester.md +266 -266
  11. package/agents/explorer-low.md +42 -42
  12. package/agents/explorer-medium.md +59 -59
  13. package/agents/explorer.md +48 -48
  14. package/agents/implementer-low.md +43 -43
  15. package/agents/implementer-medium.md +52 -52
  16. package/agents/implementer.md +54 -54
  17. package/agents/refactor-cleaner.md +143 -143
  18. package/agents/research/best-practices-agent.md +199 -199
  19. package/agents/research/codebase-patterns-agent.md +157 -157
  20. package/agents/research/framework-docs-agent.md +188 -188
  21. package/agents/research/security-advisory-agent.md +213 -213
  22. package/agents/review/architecture-reviewer.md +107 -107
  23. package/agents/review/complexity-reviewer.md +116 -116
  24. package/agents/review/data-integrity-reviewer.md +88 -88
  25. package/agents/review/git-history-reviewer.md +103 -103
  26. package/agents/review/performance-reviewer.md +86 -86
  27. package/agents/review/python-reviewer.md +150 -150
  28. package/agents/review/rails-reviewer.md +139 -139
  29. package/agents/review/react-reviewer.md +144 -144
  30. package/agents/review/security-reviewer.md +80 -80
  31. package/agents/review/simplicity-reviewer.md +140 -140
  32. package/agents/review/test-coverage-reviewer.md +116 -116
  33. package/agents/review/typescript-reviewer.md +127 -127
  34. package/agents/searcher.md +54 -54
  35. package/agents/simplifier.md +120 -120
  36. package/agents/tester.md +49 -49
  37. package/agents/ui-previewer.md +268 -268
  38. package/commands/vibe.analyze.md +356 -356
  39. package/commands/vibe.reason.md +329 -329
  40. package/commands/vibe.review.md +412 -412
  41. package/commands/vibe.run.md +1266 -1266
  42. package/commands/vibe.spec.md +1054 -1054
  43. package/commands/vibe.spec.review.md +319 -319
  44. package/commands/vibe.trace.md +161 -161
  45. package/commands/vibe.utils.md +376 -376
  46. package/commands/vibe.verify.md +375 -375
  47. package/dist/cli/collaborator.js +52 -52
  48. package/dist/cli/detect.js +32 -32
  49. package/dist/cli/hud.js +20 -20
  50. package/dist/cli/index.js +118 -118
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/llm.js +144 -144
  53. package/dist/cli/mcp.d.ts +49 -0
  54. package/dist/cli/mcp.d.ts.map +1 -0
  55. package/dist/cli/mcp.js +169 -0
  56. package/dist/cli/mcp.js.map +1 -0
  57. package/dist/cli/postinstall.js +858 -858
  58. package/dist/cli/setup/ProjectSetup.d.ts +3 -3
  59. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  60. package/dist/cli/setup/ProjectSetup.js +76 -30
  61. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  62. package/dist/lib/DeepInit.js +24 -24
  63. package/dist/lib/IterationTracker.js +11 -11
  64. package/dist/lib/PythonParser.js +108 -108
  65. package/dist/lib/ReviewRace.js +96 -96
  66. package/dist/lib/SkillFrontmatter.js +28 -28
  67. package/dist/lib/SkillQualityGate.js +9 -9
  68. package/dist/lib/SkillRepository.js +159 -159
  69. package/dist/lib/UltraQA.js +77 -77
  70. package/dist/lib/gemini-api.js +5 -5
  71. package/dist/lib/gemini-mcp.d.ts +10 -0
  72. package/dist/lib/gemini-mcp.d.ts.map +1 -0
  73. package/dist/lib/gemini-mcp.js +353 -0
  74. package/dist/lib/gemini-mcp.js.map +1 -0
  75. package/dist/lib/gpt-api.js +4 -4
  76. package/dist/lib/gpt-mcp.d.ts +10 -0
  77. package/dist/lib/gpt-mcp.d.ts.map +1 -0
  78. package/dist/lib/gpt-mcp.js +352 -0
  79. package/dist/lib/gpt-mcp.js.map +1 -0
  80. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  81. package/dist/lib/memory/MemorySearch.js +20 -20
  82. package/dist/lib/memory/MemoryStorage.js +64 -64
  83. package/dist/orchestrator/AgentManager.js +12 -12
  84. package/dist/orchestrator/MultiLlmResearch.js +8 -8
  85. package/dist/orchestrator/SmartRouter.js +11 -11
  86. package/dist/orchestrator/parallelResearch.js +24 -24
  87. package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
  88. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
  89. package/dist/tools/analytics/getUsageAnalytics.js +246 -0
  90. package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
  91. package/dist/tools/analytics/index.d.ts +5 -0
  92. package/dist/tools/analytics/index.d.ts.map +1 -0
  93. package/dist/tools/analytics/index.js +5 -0
  94. package/dist/tools/analytics/index.js.map +1 -0
  95. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  96. package/dist/tools/convention/getCodingGuide.d.ts +7 -0
  97. package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
  98. package/dist/tools/convention/getCodingGuide.js +69 -0
  99. package/dist/tools/convention/getCodingGuide.js.map +1 -0
  100. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  101. package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
  102. package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
  103. package/dist/tools/planning/analyzeRequirements.js +171 -0
  104. package/dist/tools/planning/analyzeRequirements.js.map +1 -0
  105. package/dist/tools/planning/createUserStories.d.ts +9 -0
  106. package/dist/tools/planning/createUserStories.d.ts.map +1 -0
  107. package/dist/tools/planning/createUserStories.js +124 -0
  108. package/dist/tools/planning/createUserStories.js.map +1 -0
  109. package/dist/tools/planning/featureRoadmap.d.ts +10 -0
  110. package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
  111. package/dist/tools/planning/featureRoadmap.js +207 -0
  112. package/dist/tools/planning/featureRoadmap.js.map +1 -0
  113. package/dist/tools/planning/generatePrd.d.ts +11 -0
  114. package/dist/tools/planning/generatePrd.d.ts.map +1 -0
  115. package/dist/tools/planning/generatePrd.js +161 -0
  116. package/dist/tools/planning/generatePrd.js.map +1 -0
  117. package/dist/tools/planning/index.d.ts +8 -0
  118. package/dist/tools/planning/index.d.ts.map +1 -0
  119. package/dist/tools/planning/index.js +8 -0
  120. package/dist/tools/planning/index.js.map +1 -0
  121. package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
  122. package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
  123. package/dist/tools/prompt/analyzePrompt.js +150 -0
  124. package/dist/tools/prompt/analyzePrompt.js.map +1 -0
  125. package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
  126. package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
  127. package/dist/tools/prompt/enhancePrompt.js +110 -0
  128. package/dist/tools/prompt/enhancePrompt.js.map +1 -0
  129. package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
  130. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
  131. package/dist/tools/prompt/enhancePromptGemini.js +332 -0
  132. package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
  133. package/dist/tools/prompt/index.d.ts +7 -0
  134. package/dist/tools/prompt/index.d.ts.map +1 -0
  135. package/dist/tools/prompt/index.js +7 -0
  136. package/dist/tools/prompt/index.js.map +1 -0
  137. package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
  138. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
  139. package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
  140. package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
  141. package/dist/tools/reasoning/index.d.ts +5 -0
  142. package/dist/tools/reasoning/index.d.ts.map +1 -0
  143. package/dist/tools/reasoning/index.js +5 -0
  144. package/dist/tools/reasoning/index.js.map +1 -0
  145. package/dist/tools/spec/prdParser.test.js +171 -171
  146. package/dist/tools/spec/specGenerator.js +169 -169
  147. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  148. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  149. package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
  150. package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
  151. package/dist/tools/thinking/analyzeProblem.js +55 -0
  152. package/dist/tools/thinking/analyzeProblem.js.map +1 -0
  153. package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
  154. package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
  155. package/dist/tools/thinking/breakDownProblem.js +145 -0
  156. package/dist/tools/thinking/breakDownProblem.js.map +1 -0
  157. package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
  158. package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
  159. package/dist/tools/thinking/createThinkingChain.js +44 -0
  160. package/dist/tools/thinking/createThinkingChain.js.map +1 -0
  161. package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
  162. package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
  163. package/dist/tools/thinking/formatAsPlan.js +78 -0
  164. package/dist/tools/thinking/formatAsPlan.js.map +1 -0
  165. package/dist/tools/thinking/index.d.ts +10 -0
  166. package/dist/tools/thinking/index.d.ts.map +1 -0
  167. package/dist/tools/thinking/index.js +10 -0
  168. package/dist/tools/thinking/index.js.map +1 -0
  169. package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
  170. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
  171. package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
  172. package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
  173. package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
  174. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
  175. package/dist/tools/thinking/thinkAloudProcess.js +80 -0
  176. package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
  177. package/hooks/hooks.json +222 -222
  178. package/hooks/scripts/code-check.js +22 -22
  179. package/hooks/scripts/code-review.js +22 -22
  180. package/hooks/scripts/complexity.js +22 -22
  181. package/hooks/scripts/compound.js +23 -23
  182. package/hooks/scripts/context-save.js +33 -33
  183. package/hooks/scripts/gemini-ui-gen.js +281 -281
  184. package/hooks/scripts/generate-brand-assets.js +474 -474
  185. package/hooks/scripts/hud-multiline.js +262 -262
  186. package/hooks/scripts/hud-status.js +291 -291
  187. package/hooks/scripts/keyword-detector.js +214 -214
  188. package/hooks/scripts/llm-orchestrate.js +171 -171
  189. package/hooks/scripts/post-edit.js +97 -97
  190. package/hooks/scripts/post-tool-verify.js +210 -210
  191. package/hooks/scripts/pre-tool-guard.js +125 -125
  192. package/hooks/scripts/recall.js +22 -22
  193. package/hooks/scripts/session-start.js +30 -30
  194. package/hooks/scripts/skill-injector.js +191 -191
  195. package/hooks/scripts/utils.js +97 -97
  196. package/languages/csharp-unity.md +515 -515
  197. package/languages/gdscript-godot.md +470 -470
  198. package/languages/ruby-rails.md +489 -489
  199. package/languages/typescript-angular.md +433 -433
  200. package/languages/typescript-astro.md +416 -416
  201. package/languages/typescript-electron.md +406 -406
  202. package/languages/typescript-nestjs.md +524 -524
  203. package/languages/typescript-svelte.md +407 -407
  204. package/languages/typescript-tauri.md +365 -365
  205. package/package.json +84 -84
  206. package/skills/brand-assets.md +141 -141
  207. package/skills/commerce-patterns.md +361 -361
  208. package/skills/context7-usage.md +102 -102
  209. package/skills/e2e-commerce.md +304 -304
  210. package/skills/frontend-design.md +92 -92
  211. package/skills/git-worktree.md +181 -181
  212. package/skills/parallel-research.md +77 -77
  213. package/skills/priority-todos.md +239 -239
  214. package/skills/seo-checklist.md +244 -244
  215. package/skills/tool-fallback.md +190 -190
  216. package/skills/vibe-capabilities.md +161 -161
  217. package/vibe/constitution.md +227 -227
  218. package/vibe/rules/core/communication-guide.md +98 -98
  219. package/vibe/rules/core/development-philosophy.md +52 -52
  220. package/vibe/rules/core/quick-start.md +102 -102
  221. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  222. package/vibe/rules/quality/checklist.md +276 -276
  223. package/vibe/rules/quality/testing-strategy.md +440 -440
  224. package/vibe/rules/standards/anti-patterns.md +541 -541
  225. package/vibe/rules/standards/code-structure.md +291 -291
  226. package/vibe/rules/standards/complexity-metrics.md +313 -313
  227. package/vibe/rules/standards/naming-conventions.md +198 -198
  228. package/vibe/setup.sh +31 -31
  229. package/vibe/templates/constitution-template.md +252 -252
  230. package/vibe/templates/contract-backend-template.md +526 -526
  231. package/vibe/templates/contract-frontend-template.md +599 -599
  232. package/vibe/templates/feature-template.md +96 -96
  233. 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