@su-record/vibe 2.7.13 → 2.7.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.
- package/.env.example +37 -37
- package/CLAUDE.md +134 -126
- package/LICENSE +21 -21
- package/README.md +449 -449
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +294 -294
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +94 -94
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +258 -260
- package/commands/vibe.analyze.md +11 -13
- package/commands/vibe.review.md +43 -1
- package/commands/vibe.run.md +2124 -2078
- package/commands/vibe.spec.md +9 -4
- package/commands/vibe.spec.review.md +569 -565
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +33 -8
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.js +54 -54
- package/dist/cli/commands/init.js +5 -5
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/skills.js +5 -5
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +51 -51
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +19 -19
- package/dist/cli/llm/config.js.map +1 -1
- package/dist/cli/llm/gemini-commands.js +16 -16
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/cli/types.d.ts +0 -2
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
- package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- 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 +23 -23
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +137 -137
- package/hooks/scripts/code-check.js +77 -70
- package/hooks/scripts/context-save.js +212 -212
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +475 -475
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +104 -104
- package/hooks/scripts/session-start.js +106 -106
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +100 -100
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +121 -121
- package/skills/agents-md/SKILL.md +120 -120
- package/skills/arch-guard/SKILL.md +180 -180
- package/skills/brand-assets/SKILL.md +146 -146
- package/skills/capability-loop/SKILL.md +167 -167
- package/skills/characterization-test/SKILL.md +206 -206
- package/skills/commerce-patterns/SKILL.md +59 -59
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +48 -48
- package/skills/e2e-commerce/SKILL.md +57 -57
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +73 -73
- package/skills/git-worktree/SKILL.md +72 -72
- package/skills/handoff/SKILL.md +109 -109
- package/skills/parallel-research/SKILL.md +87 -87
- package/skills/priority-todos/SKILL.md +63 -63
- package/skills/seo-checklist/SKILL.md +57 -57
- package/skills/techdebt/SKILL.md +122 -122
- package/skills/tool-fallback/SKILL.md +103 -103
- package/skills/typescript-advanced-types/SKILL.md +66 -65
- package/skills/ui-ux-pro-max/SKILL.md +206 -206
- package/skills/vercel-react-best-practices/SKILL.md +59 -59
- package/skills/video-production/SKILL.md +51 -51
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
|
@@ -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
|