@su-record/vibe 2.7.14 โ 2.7.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.
- 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 -258
- 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.d.ts.map +1 -1
- package/dist/cli/commands/info.js +51 -55
- package/dist/cli/commands/info.js.map +1 -1
- 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 +18 -18
- 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/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +7 -8
- package/dist/cli/postinstall/constants.js.map +1 -1
- 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/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 +63 -59
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +13 -48
- package/skills/e2e-commerce/SKILL.md +61 -57
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +12 -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 -66
- package/skills/ui-ux-pro-max/SKILL.md +221 -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,80 +1,80 @@
|
|
|
1
|
-
# Security Reviewer Agent
|
|
2
|
-
|
|
3
|
-
<!-- Security Vulnerability Expert Review Agent -->
|
|
4
|
-
|
|
5
|
-
## Role
|
|
6
|
-
|
|
7
|
-
- OWASP Top 10 vulnerability inspection
|
|
8
|
-
- Authentication/authorization logic verification
|
|
9
|
-
- Sensitive data exposure detection
|
|
10
|
-
- Security headers and configuration review
|
|
11
|
-
|
|
12
|
-
## Model
|
|
13
|
-
|
|
14
|
-
**Haiku** (inherit) - Fast parallel execution
|
|
15
|
-
|
|
16
|
-
## Checklist
|
|
17
|
-
|
|
18
|
-
### Injection (A03:2021)
|
|
19
|
-
- [ ] SQL Injection: Parameterized queries used?
|
|
20
|
-
- [ ] NoSQL Injection: User input validated?
|
|
21
|
-
- [ ] Command Injection: Shell commands escaped?
|
|
22
|
-
- [ ] LDAP Injection: LDAP queries validated?
|
|
23
|
-
|
|
24
|
-
### Broken Authentication (A07:2021)
|
|
25
|
-
- [ ] Password hashing (bcrypt, argon2)?
|
|
26
|
-
- [ ] Session management security?
|
|
27
|
-
- [ ] Brute force prevention?
|
|
28
|
-
- [ ] 2FA implementation?
|
|
29
|
-
|
|
30
|
-
### Sensitive Data Exposure (A02:2021)
|
|
31
|
-
- [ ] Hardcoded API keys, passwords?
|
|
32
|
-
- [ ] Sensitive info exposed in logs?
|
|
33
|
-
- [ ] HTTPS enforced?
|
|
34
|
-
- [ ] Sensitive data encrypted?
|
|
35
|
-
|
|
36
|
-
### XSS (A03:2021)
|
|
37
|
-
- [ ] User input escaped?
|
|
38
|
-
- [ ] Content-Security-Policy configured?
|
|
39
|
-
- [ ] textContent instead of innerHTML?
|
|
40
|
-
- [ ] React dangerouslySetInnerHTML reviewed?
|
|
41
|
-
|
|
42
|
-
### CSRF
|
|
43
|
-
- [ ] CSRF token used?
|
|
44
|
-
- [ ] SameSite cookie configured?
|
|
45
|
-
- [ ] Origin validation?
|
|
46
|
-
|
|
47
|
-
### Security Misconfiguration (A05:2021)
|
|
48
|
-
- [ ] Debug mode disabled?
|
|
49
|
-
- [ ] Default accounts/passwords removed?
|
|
50
|
-
- [ ] Stack traces in error messages?
|
|
51
|
-
- [ ] Unnecessary features/ports disabled?
|
|
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
|
+
<!-- Security Vulnerability Expert Review Agent -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- OWASP Top 10 vulnerability inspection
|
|
8
|
+
- Authentication/authorization logic verification
|
|
9
|
+
- Sensitive data exposure detection
|
|
10
|
+
- Security headers and configuration review
|
|
11
|
+
|
|
12
|
+
## Model
|
|
13
|
+
|
|
14
|
+
**Haiku** (inherit) - Fast parallel execution
|
|
15
|
+
|
|
16
|
+
## Checklist
|
|
17
|
+
|
|
18
|
+
### Injection (A03:2021)
|
|
19
|
+
- [ ] SQL Injection: Parameterized queries used?
|
|
20
|
+
- [ ] NoSQL Injection: User input validated?
|
|
21
|
+
- [ ] Command Injection: Shell commands escaped?
|
|
22
|
+
- [ ] LDAP Injection: LDAP queries validated?
|
|
23
|
+
|
|
24
|
+
### Broken Authentication (A07:2021)
|
|
25
|
+
- [ ] Password hashing (bcrypt, argon2)?
|
|
26
|
+
- [ ] Session management security?
|
|
27
|
+
- [ ] Brute force prevention?
|
|
28
|
+
- [ ] 2FA implementation?
|
|
29
|
+
|
|
30
|
+
### Sensitive Data Exposure (A02:2021)
|
|
31
|
+
- [ ] Hardcoded API keys, passwords?
|
|
32
|
+
- [ ] Sensitive info exposed in logs?
|
|
33
|
+
- [ ] HTTPS enforced?
|
|
34
|
+
- [ ] Sensitive data encrypted?
|
|
35
|
+
|
|
36
|
+
### XSS (A03:2021)
|
|
37
|
+
- [ ] User input escaped?
|
|
38
|
+
- [ ] Content-Security-Policy configured?
|
|
39
|
+
- [ ] textContent instead of innerHTML?
|
|
40
|
+
- [ ] React dangerouslySetInnerHTML reviewed?
|
|
41
|
+
|
|
42
|
+
### CSRF
|
|
43
|
+
- [ ] CSRF token used?
|
|
44
|
+
- [ ] SameSite cookie configured?
|
|
45
|
+
- [ ] Origin validation?
|
|
46
|
+
|
|
47
|
+
### Security Misconfiguration (A05:2021)
|
|
48
|
+
- [ ] Debug mode disabled?
|
|
49
|
+
- [ ] Default accounts/passwords removed?
|
|
50
|
+
- [ ] Stack traces in error messages?
|
|
51
|
+
- [ ] Unnecessary features/ports disabled?
|
|
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
|
-
<!-- Code Simplification Expert Review Agent -->
|
|
4
|
-
|
|
5
|
-
## Role
|
|
6
|
-
|
|
7
|
-
- Over-abstraction detection
|
|
8
|
-
- Unnecessary complexity removal
|
|
9
|
-
- YAGNI principle verification
|
|
10
|
-
- Clarity improvement suggestions
|
|
11
|
-
|
|
12
|
-
## Model
|
|
13
|
-
|
|
14
|
-
**Haiku** (inherit) - Fast parallel execution
|
|
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
|
-
- [ ] Unnecessary abstraction layers?
|
|
25
|
-
- [ ] Unused interfaces?
|
|
26
|
-
- [ ] Excessive design patterns?
|
|
27
|
-
- [ ] Code for the future?
|
|
28
|
-
|
|
29
|
-
### Code Clarity
|
|
30
|
-
- [ ] Understandable at a glance?
|
|
31
|
-
- [ ] Variable/function names clear?
|
|
32
|
-
- [ ] Nesting minimized?
|
|
33
|
-
- [ ] Understandable without comments?
|
|
34
|
-
|
|
35
|
-
### Unnecessary Code
|
|
36
|
-
- [ ] Dead code?
|
|
37
|
-
- [ ] Unused imports?
|
|
38
|
-
- [ ] Commented out code?
|
|
39
|
-
- [ ] Duplicate logic?
|
|
40
|
-
|
|
41
|
-
### KISS Violations
|
|
42
|
-
- [ ] Simple solution exists?
|
|
43
|
-
- [ ] Replaceable with library?
|
|
44
|
-
- [ ] Standard features sufficient?
|
|
45
|
-
|
|
46
|
-
### Premature Optimization
|
|
47
|
-
- [ ] Unnecessary caching?
|
|
48
|
-
- [ ] Excessive memoization?
|
|
49
|
-
- [ ] Unnecessary lazy loading?
|
|
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
|
+
<!-- Code Simplification Expert Review Agent -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- Over-abstraction detection
|
|
8
|
+
- Unnecessary complexity removal
|
|
9
|
+
- YAGNI principle verification
|
|
10
|
+
- Clarity improvement suggestions
|
|
11
|
+
|
|
12
|
+
## Model
|
|
13
|
+
|
|
14
|
+
**Haiku** (inherit) - Fast parallel execution
|
|
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
|
+
- [ ] Unnecessary abstraction layers?
|
|
25
|
+
- [ ] Unused interfaces?
|
|
26
|
+
- [ ] Excessive design patterns?
|
|
27
|
+
- [ ] Code for the future?
|
|
28
|
+
|
|
29
|
+
### Code Clarity
|
|
30
|
+
- [ ] Understandable at a glance?
|
|
31
|
+
- [ ] Variable/function names clear?
|
|
32
|
+
- [ ] Nesting minimized?
|
|
33
|
+
- [ ] Understandable without comments?
|
|
34
|
+
|
|
35
|
+
### Unnecessary Code
|
|
36
|
+
- [ ] Dead code?
|
|
37
|
+
- [ ] Unused imports?
|
|
38
|
+
- [ ] Commented out code?
|
|
39
|
+
- [ ] Duplicate logic?
|
|
40
|
+
|
|
41
|
+
### KISS Violations
|
|
42
|
+
- [ ] Simple solution exists?
|
|
43
|
+
- [ ] Replaceable with library?
|
|
44
|
+
- [ ] Standard features sufficient?
|
|
45
|
+
|
|
46
|
+
### Premature Optimization
|
|
47
|
+
- [ ] Unnecessary caching?
|
|
48
|
+
- [ ] Excessive memoization?
|
|
49
|
+
- [ ] Unnecessary lazy loading?
|
|
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
|
-
<!-- Test Coverage Expert Review Agent -->
|
|
4
|
-
|
|
5
|
-
## Role
|
|
6
|
-
|
|
7
|
-
- Missing test detection
|
|
8
|
-
- Edge case identification
|
|
9
|
-
- Test quality evaluation
|
|
10
|
-
- Mocking strategy review
|
|
11
|
-
|
|
12
|
-
## Model
|
|
13
|
-
|
|
14
|
-
**Haiku** (inherit) - Fast parallel execution
|
|
15
|
-
|
|
16
|
-
## Checklist
|
|
17
|
-
|
|
18
|
-
### Coverage Gaps
|
|
19
|
-
- [ ] Tests exist for new code?
|
|
20
|
-
- [ ] Branch coverage sufficient?
|
|
21
|
-
- [ ] Error paths tested?
|
|
22
|
-
- [ ] Boundary values tested?
|
|
23
|
-
|
|
24
|
-
### Edge Cases
|
|
25
|
-
- [ ] null/undefined handling?
|
|
26
|
-
- [ ] Empty arrays/objects?
|
|
27
|
-
- [ ] Maximum/minimum values?
|
|
28
|
-
- [ ] Special characters?
|
|
29
|
-
- [ ] Concurrency scenarios?
|
|
30
|
-
|
|
31
|
-
### Test Quality
|
|
32
|
-
- [ ] Test independence?
|
|
33
|
-
- [ ] Meaningful assertions?
|
|
34
|
-
- [ ] Test names clear?
|
|
35
|
-
- [ ] AAA pattern (Arrange-Act-Assert)?
|
|
36
|
-
|
|
37
|
-
### Mocking
|
|
38
|
-
- [ ] External dependencies mocked?
|
|
39
|
-
- [ ] No excessive mocking?
|
|
40
|
-
- [ ] Mock realism?
|
|
41
|
-
- [ ] Test doubles appropriate?
|
|
42
|
-
|
|
43
|
-
### Integration
|
|
44
|
-
- [ ] Integration tests exist?
|
|
45
|
-
- [ ] API contract tests?
|
|
46
|
-
- [ ] Database tests?
|
|
47
|
-
- [ ] E2E scenarios?
|
|
48
|
-
|
|
49
|
-
### Flakiness
|
|
50
|
-
- [ ] Time dependency?
|
|
51
|
-
- [ ] Random data?
|
|
52
|
-
- [ ] External service dependency?
|
|
53
|
-
- [ ] Async handling?
|
|
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
|
+
<!-- Test Coverage Expert Review Agent -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- Missing test detection
|
|
8
|
+
- Edge case identification
|
|
9
|
+
- Test quality evaluation
|
|
10
|
+
- Mocking strategy review
|
|
11
|
+
|
|
12
|
+
## Model
|
|
13
|
+
|
|
14
|
+
**Haiku** (inherit) - Fast parallel execution
|
|
15
|
+
|
|
16
|
+
## Checklist
|
|
17
|
+
|
|
18
|
+
### Coverage Gaps
|
|
19
|
+
- [ ] Tests exist for new code?
|
|
20
|
+
- [ ] Branch coverage sufficient?
|
|
21
|
+
- [ ] Error paths tested?
|
|
22
|
+
- [ ] Boundary values tested?
|
|
23
|
+
|
|
24
|
+
### Edge Cases
|
|
25
|
+
- [ ] null/undefined handling?
|
|
26
|
+
- [ ] Empty arrays/objects?
|
|
27
|
+
- [ ] Maximum/minimum values?
|
|
28
|
+
- [ ] Special characters?
|
|
29
|
+
- [ ] Concurrency scenarios?
|
|
30
|
+
|
|
31
|
+
### Test Quality
|
|
32
|
+
- [ ] Test independence?
|
|
33
|
+
- [ ] Meaningful assertions?
|
|
34
|
+
- [ ] Test names clear?
|
|
35
|
+
- [ ] AAA pattern (Arrange-Act-Assert)?
|
|
36
|
+
|
|
37
|
+
### Mocking
|
|
38
|
+
- [ ] External dependencies mocked?
|
|
39
|
+
- [ ] No excessive mocking?
|
|
40
|
+
- [ ] Mock realism?
|
|
41
|
+
- [ ] Test doubles appropriate?
|
|
42
|
+
|
|
43
|
+
### Integration
|
|
44
|
+
- [ ] Integration tests exist?
|
|
45
|
+
- [ ] API contract tests?
|
|
46
|
+
- [ ] Database tests?
|
|
47
|
+
- [ ] E2E scenarios?
|
|
48
|
+
|
|
49
|
+
### Flakiness
|
|
50
|
+
- [ ] Time dependency?
|
|
51
|
+
- [ ] Random data?
|
|
52
|
+
- [ ] External service dependency?
|
|
53
|
+
- [ ] Async handling?
|
|
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
|
+
```
|