@su-record/vibe 2.5.11 → 2.5.13
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/CLAUDE.md +243 -0
- package/LICENSE +21 -21
- package/README.md +262 -262
- 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/e2e-tester.md +266 -266
- 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/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +189 -189
- package/agents/research/codebase-patterns-agent.md +147 -147
- package/agents/research/framework-docs-agent.md +178 -178
- package/agents/research/security-advisory-agent.md +203 -203
- 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-previewer.md +129 -129
- package/commands/vibe.analyze.md +356 -356
- package/commands/vibe.reason.md +329 -329
- package/commands/vibe.review.md +326 -326
- package/commands/vibe.run.md +1117 -1051
- package/commands/vibe.spec.md +1058 -1058
- package/commands/vibe.utils.md +353 -296
- package/commands/vibe.verify.md +375 -375
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +102 -102
- package/dist/cli/llm.js +144 -144
- package/dist/cli/mcp.d.ts +49 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +169 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli/postinstall.js +180 -2
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/setup/GlobalInstaller.d.ts +24 -0
- package/dist/cli/setup/GlobalInstaller.d.ts.map +1 -0
- package/dist/cli/setup/GlobalInstaller.js +130 -0
- package/dist/cli/setup/GlobalInstaller.js.map +1 -0
- package/dist/cli/setup/LanguageDetector.d.ts +16 -0
- package/dist/cli/setup/LanguageDetector.d.ts.map +1 -0
- package/dist/cli/setup/LanguageDetector.js +49 -0
- package/dist/cli/setup/LanguageDetector.js.map +1 -0
- package/dist/cli/setup/LegacyMigration.d.ts +25 -0
- package/dist/cli/setup/LegacyMigration.d.ts.map +1 -0
- package/dist/cli/setup/LegacyMigration.js +162 -0
- package/dist/cli/setup/LegacyMigration.js.map +1 -0
- package/dist/cli/setup/ProjectSetup.d.ts +30 -0
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -0
- package/dist/cli/setup/ProjectSetup.js +238 -0
- package/dist/cli/setup/ProjectSetup.js.map +1 -0
- package/dist/cli/setup/index.d.ts +14 -0
- package/dist/cli/setup/index.d.ts.map +1 -0
- package/dist/cli/setup/index.js +18 -0
- package/dist/cli/setup/index.js.map +1 -0
- package/dist/cli/setup.d.ts +10 -77
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +15 -592
- package/dist/cli/setup.js.map +1 -1
- package/dist/lib/DeepInit.d.ts +0 -2
- package/dist/lib/DeepInit.d.ts.map +1 -1
- package/dist/lib/DeepInit.js +24 -26
- package/dist/lib/DeepInit.js.map +1 -1
- package/dist/lib/IterationTracker.d.ts +0 -2
- package/dist/lib/IterationTracker.d.ts.map +1 -1
- package/dist/lib/IterationTracker.js +11 -13
- package/dist/lib/IterationTracker.js.map +1 -1
- package/dist/lib/ModelRouter.d.ts +0 -2
- package/dist/lib/ModelRouter.d.ts.map +1 -1
- package/dist/lib/ModelRouter.js +0 -2
- package/dist/lib/ModelRouter.js.map +1 -1
- package/dist/lib/OrchestrateWorkflow.d.ts +1 -3
- package/dist/lib/OrchestrateWorkflow.d.ts.map +1 -1
- package/dist/lib/OrchestrateWorkflow.js +1 -3
- package/dist/lib/OrchestrateWorkflow.js.map +1 -1
- package/dist/lib/PythonParser.js +108 -108
- package/dist/lib/SkillFrontmatter.d.ts +0 -2
- package/dist/lib/SkillFrontmatter.d.ts.map +1 -1
- package/dist/lib/SkillFrontmatter.js +28 -30
- package/dist/lib/SkillFrontmatter.js.map +1 -1
- package/dist/lib/SkillQualityGate.d.ts +0 -2
- package/dist/lib/SkillQualityGate.d.ts.map +1 -1
- package/dist/lib/SkillQualityGate.js +9 -11
- package/dist/lib/SkillQualityGate.js.map +1 -1
- package/dist/lib/SkillRepository.d.ts +117 -0
- package/dist/lib/SkillRepository.d.ts.map +1 -0
- package/dist/lib/SkillRepository.js +477 -0
- package/dist/lib/SkillRepository.js.map +1 -0
- package/dist/lib/UltraQA.d.ts +0 -2
- package/dist/lib/UltraQA.d.ts.map +1 -1
- package/dist/lib/UltraQA.js +77 -79
- package/dist/lib/UltraQA.js.map +1 -1
- package/dist/lib/gemini-mcp.d.ts +10 -0
- package/dist/lib/gemini-mcp.d.ts.map +1 -0
- package/dist/lib/gemini-mcp.js +353 -0
- package/dist/lib/gemini-mcp.js.map +1 -0
- package/dist/lib/gpt-api.js +4 -4
- package/dist/lib/gpt-mcp.d.ts +10 -0
- package/dist/lib/gpt-mcp.d.ts.map +1 -0
- package/dist/lib/gpt-mcp.js +352 -0
- package/dist/lib/gpt-mcp.js.map +1 -0
- package/dist/lib/llm/auth/ApiKeyManager.d.ts +21 -0
- package/dist/lib/llm/auth/ApiKeyManager.d.ts.map +1 -0
- package/dist/lib/llm/auth/ApiKeyManager.js +43 -0
- package/dist/lib/llm/auth/ApiKeyManager.js.map +1 -0
- package/dist/lib/llm/auth/ConfigManager.d.ts +29 -0
- package/dist/lib/llm/auth/ConfigManager.d.ts.map +1 -0
- package/dist/lib/llm/auth/ConfigManager.js +67 -0
- package/dist/lib/llm/auth/ConfigManager.js.map +1 -0
- package/dist/lib/llm/auth/index.d.ts +25 -0
- package/dist/lib/llm/auth/index.d.ts.map +1 -0
- package/dist/lib/llm/auth/index.js +83 -0
- package/dist/lib/llm/auth/index.js.map +1 -0
- package/dist/lib/llm/index.d.ts +10 -0
- package/dist/lib/llm/index.d.ts.map +1 -0
- package/dist/lib/llm/index.js +12 -0
- package/dist/lib/llm/index.js.map +1 -0
- package/dist/lib/llm/types.d.ts +96 -0
- package/dist/lib/llm/types.d.ts.map +1 -0
- package/dist/lib/llm/types.js +17 -0
- package/dist/lib/llm/types.js.map +1 -0
- package/dist/lib/llm/utils/index.d.ts +6 -0
- package/dist/lib/llm/utils/index.d.ts.map +1 -0
- package/dist/lib/llm/utils/index.js +6 -0
- package/dist/lib/llm/utils/index.js.map +1 -0
- package/dist/lib/llm/utils/retry.d.ts +25 -0
- package/dist/lib/llm/utils/retry.d.ts.map +1 -0
- package/dist/lib/llm/utils/retry.js +72 -0
- package/dist/lib/llm/utils/retry.js.map +1 -0
- package/dist/lib/llm/utils/stream.d.ts +13 -0
- package/dist/lib/llm/utils/stream.d.ts.map +1 -0
- package/dist/lib/llm/utils/stream.js +110 -0
- package/dist/lib/llm/utils/stream.js.map +1 -0
- package/dist/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/lib/memory/MemorySearch.js +20 -20
- package/dist/lib/memory/MemoryStorage.js +64 -64
- package/dist/orchestrator/AgentExecutor.d.ts +23 -0
- package/dist/orchestrator/AgentExecutor.d.ts.map +1 -0
- package/dist/orchestrator/AgentExecutor.js +231 -0
- package/dist/orchestrator/AgentExecutor.js.map +1 -0
- package/dist/orchestrator/AgentManager.d.ts +73 -0
- package/dist/orchestrator/AgentManager.d.ts.map +1 -0
- package/dist/orchestrator/AgentManager.js +184 -0
- package/dist/orchestrator/AgentManager.js.map +1 -0
- package/dist/orchestrator/LLMCluster.d.ts +70 -0
- package/dist/orchestrator/LLMCluster.d.ts.map +1 -0
- package/dist/orchestrator/LLMCluster.js +91 -0
- package/dist/orchestrator/LLMCluster.js.map +1 -0
- package/dist/orchestrator/MultiLlmResearch.d.ts +27 -0
- package/dist/orchestrator/MultiLlmResearch.d.ts.map +1 -0
- package/dist/orchestrator/MultiLlmResearch.js +145 -0
- package/dist/orchestrator/MultiLlmResearch.js.map +1 -0
- package/dist/orchestrator/SessionStore.d.ts +41 -0
- package/dist/orchestrator/SessionStore.d.ts.map +1 -0
- package/dist/orchestrator/SessionStore.js +117 -0
- package/dist/orchestrator/SessionStore.js.map +1 -0
- package/dist/orchestrator/SmartRouter.d.ts +68 -0
- package/dist/orchestrator/SmartRouter.d.ts.map +1 -0
- package/dist/orchestrator/SmartRouter.js +256 -0
- package/dist/orchestrator/SmartRouter.js.map +1 -0
- package/dist/orchestrator/backgroundAgent.d.ts +10 -28
- package/dist/orchestrator/backgroundAgent.d.ts.map +1 -1
- package/dist/orchestrator/backgroundAgent.js +11 -346
- package/dist/orchestrator/backgroundAgent.js.map +1 -1
- package/dist/orchestrator/index.d.ts +3 -0
- package/dist/orchestrator/index.d.ts.map +1 -1
- package/dist/orchestrator/index.js +4 -0
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/orchestrator.d.ts +19 -154
- package/dist/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.js +90 -514
- package/dist/orchestrator/orchestrator.js.map +1 -1
- package/dist/orchestrator/parallelResearch.d.ts +5 -12
- package/dist/orchestrator/parallelResearch.d.ts.map +1 -1
- package/dist/orchestrator/parallelResearch.js +10 -193
- package/dist/orchestrator/parallelResearch.js.map +1 -1
- package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
- package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
- package/dist/tools/analytics/getUsageAnalytics.js +246 -0
- package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
- package/dist/tools/analytics/index.d.ts +5 -0
- package/dist/tools/analytics/index.d.ts.map +1 -0
- package/dist/tools/analytics/index.js +5 -0
- package/dist/tools/analytics/index.js.map +1 -0
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/getCodingGuide.d.ts +7 -0
- package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
- package/dist/tools/convention/getCodingGuide.js +69 -0
- package/dist/tools/convention/getCodingGuide.js.map +1 -0
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
- package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
- package/dist/tools/planning/analyzeRequirements.js +171 -0
- package/dist/tools/planning/analyzeRequirements.js.map +1 -0
- package/dist/tools/planning/createUserStories.d.ts +9 -0
- package/dist/tools/planning/createUserStories.d.ts.map +1 -0
- package/dist/tools/planning/createUserStories.js +124 -0
- package/dist/tools/planning/createUserStories.js.map +1 -0
- package/dist/tools/planning/featureRoadmap.d.ts +10 -0
- package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
- package/dist/tools/planning/featureRoadmap.js +207 -0
- package/dist/tools/planning/featureRoadmap.js.map +1 -0
- package/dist/tools/planning/generatePrd.d.ts +11 -0
- package/dist/tools/planning/generatePrd.d.ts.map +1 -0
- package/dist/tools/planning/generatePrd.js +161 -0
- package/dist/tools/planning/generatePrd.js.map +1 -0
- package/dist/tools/planning/index.d.ts +8 -0
- package/dist/tools/planning/index.d.ts.map +1 -0
- package/dist/tools/planning/index.js +8 -0
- package/dist/tools/planning/index.js.map +1 -0
- package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
- package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
- package/dist/tools/prompt/analyzePrompt.js +150 -0
- package/dist/tools/prompt/analyzePrompt.js.map +1 -0
- package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
- package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
- package/dist/tools/prompt/enhancePrompt.js +110 -0
- package/dist/tools/prompt/enhancePrompt.js.map +1 -0
- package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
- package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
- package/dist/tools/prompt/enhancePromptGemini.js +332 -0
- package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
- package/dist/tools/prompt/index.d.ts +7 -0
- package/dist/tools/prompt/index.d.ts.map +1 -0
- package/dist/tools/prompt/index.js +7 -0
- package/dist/tools/prompt/index.js.map +1 -0
- package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
- package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
- package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
- package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
- package/dist/tools/reasoning/index.d.ts +5 -0
- package/dist/tools/reasoning/index.d.ts.map +1 -0
- package/dist/tools/reasoning/index.js +5 -0
- package/dist/tools/reasoning/index.js.map +1 -0
- package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
- package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
- package/dist/tools/thinking/analyzeProblem.js +55 -0
- package/dist/tools/thinking/analyzeProblem.js.map +1 -0
- package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
- package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
- package/dist/tools/thinking/breakDownProblem.js +145 -0
- package/dist/tools/thinking/breakDownProblem.js.map +1 -0
- package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
- package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
- package/dist/tools/thinking/createThinkingChain.js +44 -0
- package/dist/tools/thinking/createThinkingChain.js.map +1 -0
- package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
- package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
- package/dist/tools/thinking/formatAsPlan.js +78 -0
- package/dist/tools/thinking/formatAsPlan.js.map +1 -0
- package/dist/tools/thinking/index.d.ts +10 -0
- package/dist/tools/thinking/index.d.ts.map +1 -0
- package/dist/tools/thinking/index.js +10 -0
- package/dist/tools/thinking/index.js.map +1 -0
- package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
- package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
- package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
- package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
- package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
- package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
- package/dist/tools/thinking/thinkAloudProcess.js +80 -0
- package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
- package/hooks/hooks.json +222 -222
- package/hooks/scripts/code-check.js +22 -22
- package/hooks/scripts/code-review.js +22 -22
- package/hooks/scripts/complexity.js +22 -22
- package/hooks/scripts/compound.js +23 -23
- package/hooks/scripts/context-save.js +33 -33
- package/hooks/scripts/generate-brand-assets.js +472 -0
- package/hooks/scripts/hud-multiline.js +262 -264
- package/hooks/scripts/hud-status.js +291 -293
- package/hooks/scripts/keyword-detector.js +214 -216
- package/hooks/scripts/llm-orchestrate.js +171 -171
- package/hooks/scripts/post-edit.js +97 -97
- package/hooks/scripts/post-tool-verify.js +210 -212
- package/hooks/scripts/pre-tool-guard.js +125 -127
- package/hooks/scripts/recall.js +22 -22
- package/hooks/scripts/session-start.js +30 -30
- package/hooks/scripts/skill-injector.js +191 -193
- package/hooks/scripts/utils.js +97 -97
- 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 +83 -83
- package/skills/brand-assets.md +141 -0
- package/skills/commerce-patterns.md +361 -0
- package/skills/context7-usage.md +102 -102
- package/skills/e2e-commerce.md +304 -0
- package/skills/frontend-design.md +92 -0
- package/skills/git-worktree.md +181 -181
- package/skills/parallel-research.md +77 -77
- package/skills/priority-todos.md +239 -239
- package/skills/seo-checklist.md +244 -0
- package/skills/tool-fallback.md +190 -190
- package/skills/vibe-capabilities.md +161 -161
- package/vibe/constitution.md +227 -227
- package/vibe/rules/core/communication-guide.md +98 -98
- package/vibe/rules/core/development-philosophy.md +52 -52
- package/vibe/rules/core/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/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/naming-conventions.md +198 -198
- 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/commands/vibe.review.md
CHANGED
|
@@ -1,326 +1,326 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Multi-agent parallel code review with priority-based findings
|
|
3
|
-
argument-hint: "PR number, branch name, or file path"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /vibe.review
|
|
7
|
-
|
|
8
|
-
**Parallel Agent Code Review** - 13+ specialists review simultaneously
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
/vibe.review # Review current branch
|
|
14
|
-
/vibe.review PR#123 # Review specific PR
|
|
15
|
-
/vibe.review feature/login # Review specific branch
|
|
16
|
-
/vibe.review src/api/ # Review specific path
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Priority System
|
|
20
|
-
|
|
21
|
-
| Priority | Criteria | Action |
|
|
22
|
-
|----------|----------|--------|
|
|
23
|
-
| P1 | Security vulnerabilities, data loss, crashes | Block merge, fix immediately |
|
|
24
|
-
| P2 | Performance issues, architecture violations, missing tests | Fix before merge |
|
|
25
|
-
| P3 | Style, refactoring suggestions, documentation | Add to backlog |
|
|
26
|
-
|
|
27
|
-
## Process
|
|
28
|
-
|
|
29
|
-
### Phase 1: Tech Stack Detection
|
|
30
|
-
|
|
31
|
-
Detect project tech stack FIRST before launching reviewers:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
Read package.json -> TypeScript, React, Node.js
|
|
35
|
-
Read pyproject.toml -> Python, FastAPI, Django
|
|
36
|
-
Read Gemfile -> Ruby, Rails
|
|
37
|
-
Read pubspec.yaml -> Flutter, Dart
|
|
38
|
-
Read go.mod -> Go
|
|
39
|
-
Read CLAUDE.md -> Explicit tech stack declaration
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### Phase 2: Parallel Agent Review (STACK-AWARE) via Orchestrator
|
|
43
|
-
|
|
44
|
-
**Execution via Orchestrator (12+ agents in parallel):**
|
|
45
|
-
```bash
|
|
46
|
-
node -e "import('@su-record/vibe/orchestrator').then(o => o.review(['FILE_PATHS'], ['DETECTED_STACKS']).then(r => console.log(r.content[0].text)))"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Example:**
|
|
50
|
-
```bash
|
|
51
|
-
# Review changed files with TypeScript + React stack
|
|
52
|
-
node -e "import('@su-record/vibe/orchestrator').then(o => o.review(['src/api/users.ts', 'src/components/Login.tsx'], ['TypeScript', 'React']).then(r => console.log(r.content[0].text)))"
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
**Core Reviewers (Always Run):**
|
|
56
|
-
| Agent | Focus |
|
|
57
|
-
|-------|-------|
|
|
58
|
-
| security-reviewer | OWASP Top 10, vulnerabilities |
|
|
59
|
-
| data-integrity-reviewer | Data validation, constraints |
|
|
60
|
-
| performance-reviewer | N+1 queries, memory leaks |
|
|
61
|
-
| architecture-reviewer | Layer violations, cycles |
|
|
62
|
-
| complexity-reviewer | Cyclomatic complexity, length |
|
|
63
|
-
| simplicity-reviewer | Over-abstraction, dead code |
|
|
64
|
-
| git-history-reviewer | Churn files, risk patterns |
|
|
65
|
-
| test-coverage-reviewer | Missing tests, edge cases |
|
|
66
|
-
|
|
67
|
-
**Stack-Specific Reviewers (Conditional):**
|
|
68
|
-
| Agent | Condition |
|
|
69
|
-
|-------|-----------|
|
|
70
|
-
| python-reviewer | .py files in diff |
|
|
71
|
-
| typescript-reviewer | .ts/.tsx files OR tsconfig |
|
|
72
|
-
| rails-reviewer | Gemfile has rails |
|
|
73
|
-
| react-reviewer | package.json has react |
|
|
74
|
-
|
|
75
|
-
### Phase 3: Deep Analysis
|
|
76
|
-
|
|
77
|
-
After agent results:
|
|
78
|
-
|
|
79
|
-
1. **System Context**: Component interactions, data flow, external dependencies
|
|
80
|
-
2. **Stakeholder Perspectives**: Developers, Ops, Security, Business
|
|
81
|
-
3. **Edge Cases**: Race conditions, resource exhaustion, network failures
|
|
82
|
-
4. **Multiple Angles**: Technical excellence, business value, risk management
|
|
83
|
-
|
|
84
|
-
### Phase 4: Findings Synthesis
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
REVIEW FINDINGS
|
|
88
|
-
|
|
89
|
-
P1 CRITICAL (Blocks Merge) - N issues
|
|
90
|
-
1. [SECURITY] SQL Injection in user query
|
|
91
|
-
Location: src/api/users.py:42
|
|
92
|
-
Fix: Use parameterized queries
|
|
93
|
-
|
|
94
|
-
P2 IMPORTANT (Should Fix) - N issues
|
|
95
|
-
2. [PERF] N+1 query in user list
|
|
96
|
-
3. [ARCH] Circular dependency detected
|
|
97
|
-
|
|
98
|
-
P3 NICE-TO-HAVE (Enhancement) - N issues
|
|
99
|
-
4. [STYLE] Consider extracting helper function
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### Phase 5: Auto-Fix (P1/P2)
|
|
103
|
-
|
|
104
|
-
**Auto-fixable issues are resolved immediately:**
|
|
105
|
-
|
|
106
|
-
```
|
|
107
|
-
🔧 AUTO-FIX Starting...
|
|
108
|
-
|
|
109
|
-
P1 Critical:
|
|
110
|
-
1. [SECURITY] SQL Injection → Fixed with parameterized query ✅
|
|
111
|
-
2. [DATA] Missing transaction rollback → Added try-finally ✅
|
|
112
|
-
|
|
113
|
-
P2 Important:
|
|
114
|
-
3. [PERF] N+1 query → Added select_related ✅
|
|
115
|
-
4. [ARCH] Circular dependency → Separated dependencies ✅
|
|
116
|
-
5. [TEST] Missing edge case → Added test ✅
|
|
117
|
-
|
|
118
|
-
🔍 Re-validating...
|
|
119
|
-
✅ Build successful
|
|
120
|
-
✅ Tests passed
|
|
121
|
-
|
|
122
|
-
✅ 5 issues auto-fixed!
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**Cases that cannot be auto-fixed:**
|
|
126
|
-
- Requires large-scale architecture changes
|
|
127
|
-
- Requires business logic decisions
|
|
128
|
-
- Requires user confirmation
|
|
129
|
-
|
|
130
|
-
→ Manual handling instructions in Phase 6
|
|
131
|
-
|
|
132
|
-
### Phase 6: Todo File Creation (Items Requiring Manual Handling)
|
|
133
|
-
|
|
134
|
-
Save **remaining** findings to `.claude/vibe/todos/`:
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
{priority}-{category}-{short-desc}.md
|
|
138
|
-
|
|
139
|
-
Examples:
|
|
140
|
-
- P2-arch-large-refactor.md (Cannot be auto-fixed)
|
|
141
|
-
- P3-style-extract-helper.md (Backlog)
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## Output
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
CODE REVIEW SUMMARY
|
|
148
|
-
PR #123: Add user authentication
|
|
149
|
-
|
|
150
|
-
Reviewers: 13 agents | Duration: 45s
|
|
151
|
-
|
|
152
|
-
Score: 92/100 (Good) ← Score after auto-fix
|
|
153
|
-
|
|
154
|
-
Issues Found:
|
|
155
|
-
- P1 Critical: 2 → 0 (✅ Auto-fixed)
|
|
156
|
-
- P2 Important: 5 → 1 (✅ 4 auto-fixed)
|
|
157
|
-
- P3 Nice-to-have: 3 (Backlog)
|
|
158
|
-
|
|
159
|
-
Auto-Fixed: 6 issues
|
|
160
|
-
- [SECURITY] SQL Injection ✅
|
|
161
|
-
- [DATA] Transaction rollback ✅
|
|
162
|
-
- [PERF] N+1 query ✅
|
|
163
|
-
- [ARCH] Circular dependency ✅
|
|
164
|
-
- [PERF] Unnecessary loop ✅
|
|
165
|
-
- [TEST] Missing edge case ✅
|
|
166
|
-
|
|
167
|
-
Remaining (Manual handling required):
|
|
168
|
-
- P2-arch-large-refactor.md (Architecture decision required)
|
|
169
|
-
- P3-style-extract-helper.md (Backlog)
|
|
170
|
-
- P3-docs-add-readme.md (Backlog)
|
|
171
|
-
|
|
172
|
-
✅ MERGE READY (P1/P2 resolved)
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
### Phase 7: Guide to Fix Workflow (Manual Handling Items)
|
|
176
|
-
|
|
177
|
-
**Choose workflow when handling remaining issues:**
|
|
178
|
-
|
|
179
|
-
```
|
|
180
|
-
## Fix Workflow
|
|
181
|
-
|
|
182
|
-
Choose a workflow to fix the discovered issues:
|
|
183
|
-
|
|
184
|
-
| Task Scale | Recommended Approach |
|
|
185
|
-
|------------|---------------------|
|
|
186
|
-
| Simple fix (1-2 files) | Plan Mode |
|
|
187
|
-
| Complex fix (3+ files, validation needed) | /vibe.spec |
|
|
188
|
-
|
|
189
|
-
1. `/vibe.spec "fix: issue-name"` - VIBE workflow (SPEC validation + re-review)
|
|
190
|
-
2. Plan Mode - Quick fix (for simple tasks)
|
|
191
|
-
|
|
192
|
-
Which approach would you like to proceed with?
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
- Wait for user's choice before proceeding
|
|
196
|
-
- If user chooses VIBE → wait for `/vibe.spec` command
|
|
197
|
-
- If user chooses Plan Mode → proceed with EnterPlanMode
|
|
198
|
-
|
|
199
|
-
## Vibe Tools (Code Analysis)
|
|
200
|
-
|
|
201
|
-
### Tool Invocation
|
|
202
|
-
|
|
203
|
-
All tools are called via:
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
node -e "import('@su-record/vibe/tools').then(t => t.TOOL_NAME({...args}).then(r => console.log(r.content[0].text)))"
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Recommended Tools for Review
|
|
210
|
-
|
|
211
|
-
| Tool | Purpose | When to Use |
|
|
212
|
-
|------|---------|-------------|
|
|
213
|
-
| `validateCodeQuality` | Code quality check | Overall code quality scan |
|
|
214
|
-
| `analyzeComplexity` | Complexity metrics | Check function complexity |
|
|
215
|
-
| `findSymbol` | Find definitions | Locate implementations |
|
|
216
|
-
| `findReferences` | Find all usages | Track symbol usage |
|
|
217
|
-
| `saveMemory` | Save findings | Store important review findings |
|
|
218
|
-
|
|
219
|
-
### Example Tool Usage in Review
|
|
220
|
-
|
|
221
|
-
**1. Validate code quality before review:**
|
|
222
|
-
|
|
223
|
-
```bash
|
|
224
|
-
node -e "import('@su-record/vibe/tools').then(t => t.validateCodeQuality({targetPath: 'src/', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
**2. Analyze complexity of changed files:**
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
node -e "import('@su-record/vibe/tools').then(t => t.analyzeComplexity({targetPath: 'src/api/users.ts', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
**3. Save critical finding for reference:**
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
node -e "import('@su-record/vibe/tools').then(t => t.saveMemory({key: 'review-pr123-critical', value: 'SQL injection in users.py:42', category: 'review', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
---
|
|
240
|
-
|
|
241
|
-
## Quality Gate (Mandatory)
|
|
242
|
-
|
|
243
|
-
### Review Quality Checklist
|
|
244
|
-
|
|
245
|
-
Before completing review, ALL items must be verified:
|
|
246
|
-
|
|
247
|
-
| Category | Check Item | Weight |
|
|
248
|
-
|----------|------------|--------|
|
|
249
|
-
| **Security** | OWASP Top 10 vulnerabilities scanned | 20% |
|
|
250
|
-
| **Security** | Authentication/authorization verified | 10% |
|
|
251
|
-
| **Security** | Sensitive data exposure checked | 10% |
|
|
252
|
-
| **Performance** | N+1 queries detected and flagged | 10% |
|
|
253
|
-
| **Performance** | Memory leaks checked | 5% |
|
|
254
|
-
| **Architecture** | Layer violations detected | 10% |
|
|
255
|
-
| **Architecture** | Circular dependencies checked | 5% |
|
|
256
|
-
| **Code Quality** | Complexity limits enforced | 10% |
|
|
257
|
-
| **Code Quality** | Forbidden patterns detected | 10% |
|
|
258
|
-
| **Testing** | Test coverage gaps identified | 5% |
|
|
259
|
-
| **Documentation** | Public API documentation checked | 5% |
|
|
260
|
-
|
|
261
|
-
### Review Score Calculation
|
|
262
|
-
|
|
263
|
-
```
|
|
264
|
-
Score = 100 - (P1 × 20) - (P2 × 5) - (P3 × 1)
|
|
265
|
-
|
|
266
|
-
Grades:
|
|
267
|
-
- 95-100: ✅ EXCELLENT - Merge ready
|
|
268
|
-
-
|
|
269
|
-
-
|
|
270
|
-
- 0-
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### Merge Decision Matrix
|
|
274
|
-
|
|
275
|
-
| P1 Count | P2 Count | Decision |
|
|
276
|
-
|----------|----------|----------|
|
|
277
|
-
| 0 | 0-2 | ✅ MERGE READY |
|
|
278
|
-
| 0 | 3+ | ⚠️ FIX P2 FIRST |
|
|
279
|
-
| 1+ | Any | ❌ BLOCKED |
|
|
280
|
-
|
|
281
|
-
### Auto-Fix Capability Matrix
|
|
282
|
-
|
|
283
|
-
| Issue Type | Auto-Fixable | Method |
|
|
284
|
-
|------------|--------------|--------|
|
|
285
|
-
| SQL Injection | ✅ Yes | Parameterized query |
|
|
286
|
-
| Missing transaction | ✅ Yes | Add try-finally |
|
|
287
|
-
| N+1 query | ✅ Yes | Add eager loading |
|
|
288
|
-
| Circular dependency | ⚠️ Partial | Suggest restructure |
|
|
289
|
-
| Missing tests | ✅ Yes | Generate test skeleton |
|
|
290
|
-
| Hardcoded secrets | ❌ No | Flag for manual review |
|
|
291
|
-
| Architecture violation | ❌ No | Suggest refactoring plan |
|
|
292
|
-
|
|
293
|
-
### Forbidden Patterns (P1 Critical)
|
|
294
|
-
|
|
295
|
-
| Pattern | Risk Level | Detection Method |
|
|
296
|
-
|---------|------------|------------------|
|
|
297
|
-
| Hardcoded credentials | Critical | Regex + entropy scan |
|
|
298
|
-
| SQL string concatenation | Critical | AST analysis |
|
|
299
|
-
| `eval()` or `exec()` | Critical | AST analysis |
|
|
300
|
-
| Disabled CSRF protection | Critical | Config scan |
|
|
301
|
-
| Debug mode in production | Critical | Config scan |
|
|
302
|
-
| Unvalidated redirects | High | URL pattern scan |
|
|
303
|
-
|
|
304
|
-
### Review Output Requirements
|
|
305
|
-
|
|
306
|
-
Every review MUST produce:
|
|
307
|
-
|
|
308
|
-
1. **Summary Statistics**
|
|
309
|
-
- Total issues by priority (P1/P2/P3)
|
|
310
|
-
- Auto-fixed count
|
|
311
|
-
- Remaining manual fixes
|
|
312
|
-
|
|
313
|
-
2. **Detailed Findings**
|
|
314
|
-
- File path and line number
|
|
315
|
-
- Issue description
|
|
316
|
-
- Recommended fix
|
|
317
|
-
- Auto-fix status (applied/pending/manual)
|
|
318
|
-
|
|
319
|
-
3. **Quality Score**
|
|
320
|
-
- Numerical score (0-100)
|
|
321
|
-
- Grade (EXCELLENT/GOOD/FAIR/POOR)
|
|
322
|
-
- Merge recommendation
|
|
323
|
-
|
|
324
|
-
---
|
|
325
|
-
|
|
326
|
-
ARGUMENTS: $ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: Multi-agent parallel code review with priority-based findings
|
|
3
|
+
argument-hint: "PR number, branch name, or file path"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /vibe.review
|
|
7
|
+
|
|
8
|
+
**Parallel Agent Code Review** - 13+ specialists review simultaneously
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/vibe.review # Review current branch
|
|
14
|
+
/vibe.review PR#123 # Review specific PR
|
|
15
|
+
/vibe.review feature/login # Review specific branch
|
|
16
|
+
/vibe.review src/api/ # Review specific path
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Priority System
|
|
20
|
+
|
|
21
|
+
| Priority | Criteria | Action |
|
|
22
|
+
|----------|----------|--------|
|
|
23
|
+
| P1 | Security vulnerabilities, data loss, crashes | Block merge, fix immediately |
|
|
24
|
+
| P2 | Performance issues, architecture violations, missing tests | Fix before merge |
|
|
25
|
+
| P3 | Style, refactoring suggestions, documentation | Add to backlog |
|
|
26
|
+
|
|
27
|
+
## Process
|
|
28
|
+
|
|
29
|
+
### Phase 1: Tech Stack Detection
|
|
30
|
+
|
|
31
|
+
Detect project tech stack FIRST before launching reviewers:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Read package.json -> TypeScript, React, Node.js
|
|
35
|
+
Read pyproject.toml -> Python, FastAPI, Django
|
|
36
|
+
Read Gemfile -> Ruby, Rails
|
|
37
|
+
Read pubspec.yaml -> Flutter, Dart
|
|
38
|
+
Read go.mod -> Go
|
|
39
|
+
Read CLAUDE.md -> Explicit tech stack declaration
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Phase 2: Parallel Agent Review (STACK-AWARE) via Orchestrator
|
|
43
|
+
|
|
44
|
+
**Execution via Orchestrator (12+ agents in parallel):**
|
|
45
|
+
```bash
|
|
46
|
+
node -e "import('@su-record/vibe/orchestrator').then(o => o.review(['FILE_PATHS'], ['DETECTED_STACKS']).then(r => console.log(r.content[0].text)))"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Example:**
|
|
50
|
+
```bash
|
|
51
|
+
# Review changed files with TypeScript + React stack
|
|
52
|
+
node -e "import('@su-record/vibe/orchestrator').then(o => o.review(['src/api/users.ts', 'src/components/Login.tsx'], ['TypeScript', 'React']).then(r => console.log(r.content[0].text)))"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Core Reviewers (Always Run):**
|
|
56
|
+
| Agent | Focus |
|
|
57
|
+
|-------|-------|
|
|
58
|
+
| security-reviewer | OWASP Top 10, vulnerabilities |
|
|
59
|
+
| data-integrity-reviewer | Data validation, constraints |
|
|
60
|
+
| performance-reviewer | N+1 queries, memory leaks |
|
|
61
|
+
| architecture-reviewer | Layer violations, cycles |
|
|
62
|
+
| complexity-reviewer | Cyclomatic complexity, length |
|
|
63
|
+
| simplicity-reviewer | Over-abstraction, dead code |
|
|
64
|
+
| git-history-reviewer | Churn files, risk patterns |
|
|
65
|
+
| test-coverage-reviewer | Missing tests, edge cases |
|
|
66
|
+
|
|
67
|
+
**Stack-Specific Reviewers (Conditional):**
|
|
68
|
+
| Agent | Condition |
|
|
69
|
+
|-------|-----------|
|
|
70
|
+
| python-reviewer | .py files in diff |
|
|
71
|
+
| typescript-reviewer | .ts/.tsx files OR tsconfig |
|
|
72
|
+
| rails-reviewer | Gemfile has rails |
|
|
73
|
+
| react-reviewer | package.json has react |
|
|
74
|
+
|
|
75
|
+
### Phase 3: Deep Analysis
|
|
76
|
+
|
|
77
|
+
After agent results:
|
|
78
|
+
|
|
79
|
+
1. **System Context**: Component interactions, data flow, external dependencies
|
|
80
|
+
2. **Stakeholder Perspectives**: Developers, Ops, Security, Business
|
|
81
|
+
3. **Edge Cases**: Race conditions, resource exhaustion, network failures
|
|
82
|
+
4. **Multiple Angles**: Technical excellence, business value, risk management
|
|
83
|
+
|
|
84
|
+
### Phase 4: Findings Synthesis
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
REVIEW FINDINGS
|
|
88
|
+
|
|
89
|
+
P1 CRITICAL (Blocks Merge) - N issues
|
|
90
|
+
1. [SECURITY] SQL Injection in user query
|
|
91
|
+
Location: src/api/users.py:42
|
|
92
|
+
Fix: Use parameterized queries
|
|
93
|
+
|
|
94
|
+
P2 IMPORTANT (Should Fix) - N issues
|
|
95
|
+
2. [PERF] N+1 query in user list
|
|
96
|
+
3. [ARCH] Circular dependency detected
|
|
97
|
+
|
|
98
|
+
P3 NICE-TO-HAVE (Enhancement) - N issues
|
|
99
|
+
4. [STYLE] Consider extracting helper function
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Phase 5: Auto-Fix (P1/P2)
|
|
103
|
+
|
|
104
|
+
**Auto-fixable issues are resolved immediately:**
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
🔧 AUTO-FIX Starting...
|
|
108
|
+
|
|
109
|
+
P1 Critical:
|
|
110
|
+
1. [SECURITY] SQL Injection → Fixed with parameterized query ✅
|
|
111
|
+
2. [DATA] Missing transaction rollback → Added try-finally ✅
|
|
112
|
+
|
|
113
|
+
P2 Important:
|
|
114
|
+
3. [PERF] N+1 query → Added select_related ✅
|
|
115
|
+
4. [ARCH] Circular dependency → Separated dependencies ✅
|
|
116
|
+
5. [TEST] Missing edge case → Added test ✅
|
|
117
|
+
|
|
118
|
+
🔍 Re-validating...
|
|
119
|
+
✅ Build successful
|
|
120
|
+
✅ Tests passed
|
|
121
|
+
|
|
122
|
+
✅ 5 issues auto-fixed!
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Cases that cannot be auto-fixed:**
|
|
126
|
+
- Requires large-scale architecture changes
|
|
127
|
+
- Requires business logic decisions
|
|
128
|
+
- Requires user confirmation
|
|
129
|
+
|
|
130
|
+
→ Manual handling instructions in Phase 6
|
|
131
|
+
|
|
132
|
+
### Phase 6: Todo File Creation (Items Requiring Manual Handling)
|
|
133
|
+
|
|
134
|
+
Save **remaining** findings to `.claude/vibe/todos/`:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
{priority}-{category}-{short-desc}.md
|
|
138
|
+
|
|
139
|
+
Examples:
|
|
140
|
+
- P2-arch-large-refactor.md (Cannot be auto-fixed)
|
|
141
|
+
- P3-style-extract-helper.md (Backlog)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Output
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
CODE REVIEW SUMMARY
|
|
148
|
+
PR #123: Add user authentication
|
|
149
|
+
|
|
150
|
+
Reviewers: 13 agents | Duration: 45s
|
|
151
|
+
|
|
152
|
+
Score: 92/100 (Good) ← Score after auto-fix
|
|
153
|
+
|
|
154
|
+
Issues Found:
|
|
155
|
+
- P1 Critical: 2 → 0 (✅ Auto-fixed)
|
|
156
|
+
- P2 Important: 5 → 1 (✅ 4 auto-fixed)
|
|
157
|
+
- P3 Nice-to-have: 3 (Backlog)
|
|
158
|
+
|
|
159
|
+
Auto-Fixed: 6 issues
|
|
160
|
+
- [SECURITY] SQL Injection ✅
|
|
161
|
+
- [DATA] Transaction rollback ✅
|
|
162
|
+
- [PERF] N+1 query ✅
|
|
163
|
+
- [ARCH] Circular dependency ✅
|
|
164
|
+
- [PERF] Unnecessary loop ✅
|
|
165
|
+
- [TEST] Missing edge case ✅
|
|
166
|
+
|
|
167
|
+
Remaining (Manual handling required):
|
|
168
|
+
- P2-arch-large-refactor.md (Architecture decision required)
|
|
169
|
+
- P3-style-extract-helper.md (Backlog)
|
|
170
|
+
- P3-docs-add-readme.md (Backlog)
|
|
171
|
+
|
|
172
|
+
✅ MERGE READY (P1/P2 resolved)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Phase 7: Guide to Fix Workflow (Manual Handling Items)
|
|
176
|
+
|
|
177
|
+
**Choose workflow when handling remaining issues:**
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
## Fix Workflow
|
|
181
|
+
|
|
182
|
+
Choose a workflow to fix the discovered issues:
|
|
183
|
+
|
|
184
|
+
| Task Scale | Recommended Approach |
|
|
185
|
+
|------------|---------------------|
|
|
186
|
+
| Simple fix (1-2 files) | Plan Mode |
|
|
187
|
+
| Complex fix (3+ files, validation needed) | /vibe.spec |
|
|
188
|
+
|
|
189
|
+
1. `/vibe.spec "fix: issue-name"` - VIBE workflow (SPEC validation + re-review)
|
|
190
|
+
2. Plan Mode - Quick fix (for simple tasks)
|
|
191
|
+
|
|
192
|
+
Which approach would you like to proceed with?
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
- Wait for user's choice before proceeding
|
|
196
|
+
- If user chooses VIBE → wait for `/vibe.spec` command
|
|
197
|
+
- If user chooses Plan Mode → proceed with EnterPlanMode
|
|
198
|
+
|
|
199
|
+
## Vibe Tools (Code Analysis)
|
|
200
|
+
|
|
201
|
+
### Tool Invocation
|
|
202
|
+
|
|
203
|
+
All tools are called via:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
node -e "import('@su-record/vibe/tools').then(t => t.TOOL_NAME({...args}).then(r => console.log(r.content[0].text)))"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Recommended Tools for Review
|
|
210
|
+
|
|
211
|
+
| Tool | Purpose | When to Use |
|
|
212
|
+
|------|---------|-------------|
|
|
213
|
+
| `validateCodeQuality` | Code quality check | Overall code quality scan |
|
|
214
|
+
| `analyzeComplexity` | Complexity metrics | Check function complexity |
|
|
215
|
+
| `findSymbol` | Find definitions | Locate implementations |
|
|
216
|
+
| `findReferences` | Find all usages | Track symbol usage |
|
|
217
|
+
| `saveMemory` | Save findings | Store important review findings |
|
|
218
|
+
|
|
219
|
+
### Example Tool Usage in Review
|
|
220
|
+
|
|
221
|
+
**1. Validate code quality before review:**
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
node -e "import('@su-record/vibe/tools').then(t => t.validateCodeQuality({targetPath: 'src/', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**2. Analyze complexity of changed files:**
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
node -e "import('@su-record/vibe/tools').then(t => t.analyzeComplexity({targetPath: 'src/api/users.ts', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**3. Save critical finding for reference:**
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
node -e "import('@su-record/vibe/tools').then(t => t.saveMemory({key: 'review-pr123-critical', value: 'SQL injection in users.py:42', category: 'review', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Quality Gate (Mandatory)
|
|
242
|
+
|
|
243
|
+
### Review Quality Checklist
|
|
244
|
+
|
|
245
|
+
Before completing review, ALL items must be verified:
|
|
246
|
+
|
|
247
|
+
| Category | Check Item | Weight |
|
|
248
|
+
|----------|------------|--------|
|
|
249
|
+
| **Security** | OWASP Top 10 vulnerabilities scanned | 20% |
|
|
250
|
+
| **Security** | Authentication/authorization verified | 10% |
|
|
251
|
+
| **Security** | Sensitive data exposure checked | 10% |
|
|
252
|
+
| **Performance** | N+1 queries detected and flagged | 10% |
|
|
253
|
+
| **Performance** | Memory leaks checked | 5% |
|
|
254
|
+
| **Architecture** | Layer violations detected | 10% |
|
|
255
|
+
| **Architecture** | Circular dependencies checked | 5% |
|
|
256
|
+
| **Code Quality** | Complexity limits enforced | 10% |
|
|
257
|
+
| **Code Quality** | Forbidden patterns detected | 10% |
|
|
258
|
+
| **Testing** | Test coverage gaps identified | 5% |
|
|
259
|
+
| **Documentation** | Public API documentation checked | 5% |
|
|
260
|
+
|
|
261
|
+
### Review Score Calculation
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
Score = 100 - (P1 × 20) - (P2 × 5) - (P3 × 1)
|
|
265
|
+
|
|
266
|
+
Grades:
|
|
267
|
+
- 95-100: ✅ EXCELLENT - Merge ready
|
|
268
|
+
- 90-94: ⚠️ GOOD - Minor fixes required before merge
|
|
269
|
+
- 80-89: ⚠️ FAIR - Must fix P2 issues
|
|
270
|
+
- 0-79: ❌ POOR - Block merge, fix P1/P2
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Merge Decision Matrix
|
|
274
|
+
|
|
275
|
+
| P1 Count | P2 Count | Decision |
|
|
276
|
+
|----------|----------|----------|
|
|
277
|
+
| 0 | 0-2 | ✅ MERGE READY |
|
|
278
|
+
| 0 | 3+ | ⚠️ FIX P2 FIRST |
|
|
279
|
+
| 1+ | Any | ❌ BLOCKED |
|
|
280
|
+
|
|
281
|
+
### Auto-Fix Capability Matrix
|
|
282
|
+
|
|
283
|
+
| Issue Type | Auto-Fixable | Method |
|
|
284
|
+
|------------|--------------|--------|
|
|
285
|
+
| SQL Injection | ✅ Yes | Parameterized query |
|
|
286
|
+
| Missing transaction | ✅ Yes | Add try-finally |
|
|
287
|
+
| N+1 query | ✅ Yes | Add eager loading |
|
|
288
|
+
| Circular dependency | ⚠️ Partial | Suggest restructure |
|
|
289
|
+
| Missing tests | ✅ Yes | Generate test skeleton |
|
|
290
|
+
| Hardcoded secrets | ❌ No | Flag for manual review |
|
|
291
|
+
| Architecture violation | ❌ No | Suggest refactoring plan |
|
|
292
|
+
|
|
293
|
+
### Forbidden Patterns (P1 Critical)
|
|
294
|
+
|
|
295
|
+
| Pattern | Risk Level | Detection Method |
|
|
296
|
+
|---------|------------|------------------|
|
|
297
|
+
| Hardcoded credentials | Critical | Regex + entropy scan |
|
|
298
|
+
| SQL string concatenation | Critical | AST analysis |
|
|
299
|
+
| `eval()` or `exec()` | Critical | AST analysis |
|
|
300
|
+
| Disabled CSRF protection | Critical | Config scan |
|
|
301
|
+
| Debug mode in production | Critical | Config scan |
|
|
302
|
+
| Unvalidated redirects | High | URL pattern scan |
|
|
303
|
+
|
|
304
|
+
### Review Output Requirements
|
|
305
|
+
|
|
306
|
+
Every review MUST produce:
|
|
307
|
+
|
|
308
|
+
1. **Summary Statistics**
|
|
309
|
+
- Total issues by priority (P1/P2/P3)
|
|
310
|
+
- Auto-fixed count
|
|
311
|
+
- Remaining manual fixes
|
|
312
|
+
|
|
313
|
+
2. **Detailed Findings**
|
|
314
|
+
- File path and line number
|
|
315
|
+
- Issue description
|
|
316
|
+
- Recommended fix
|
|
317
|
+
- Auto-fix status (applied/pending/manual)
|
|
318
|
+
|
|
319
|
+
3. **Quality Score**
|
|
320
|
+
- Numerical score (0-100)
|
|
321
|
+
- Grade (EXCELLENT/GOOD/FAIR/POOR)
|
|
322
|
+
- Merge recommendation
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
ARGUMENTS: $ARGUMENTS
|