@su-record/vibe 2.8.48 → 2.8.50
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 +169 -169
- package/LICENSE +21 -21
- package/README.md +694 -554
- 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/event/event-comms.md +78 -78
- package/agents/event/event-content.md +68 -68
- package/agents/event/event-image.md +95 -95
- package/agents/event/event-ops.md +84 -84
- package/agents/event/event-scheduler.md +69 -69
- package/agents/event/event-speaker.md +86 -86
- 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/qa/qa-coordinator.md +131 -131
- 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 +102 -102
- 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 +379 -379
- package/commands/vibe.docs.md +32 -32
- package/commands/vibe.event.md +163 -163
- package/commands/vibe.figma.md +69 -69
- package/commands/vibe.review.md +686 -686
- package/commands/vibe.run.md +2276 -2276
- package/commands/vibe.spec.md +1195 -1195
- package/commands/vibe.spec.review.md +609 -609
- package/commands/vibe.trace.md +259 -259
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +510 -510
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/config.js +9 -9
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/figma.js +20 -20
- package/dist/cli/commands/info.js +53 -53
- 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/stats.js +6 -6
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +53 -53
- 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/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.d.ts +3 -3
- 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/ParityTester.js +57 -57
- 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 +170 -170
- package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
- package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
- package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
- package/hooks/scripts/auto-commit.js +97 -65
- package/hooks/scripts/auto-format.js +64 -64
- package/hooks/scripts/auto-test.js +81 -81
- package/hooks/scripts/code-check.js +268 -216
- package/hooks/scripts/codex-detect.js +46 -46
- package/hooks/scripts/codex-review-gate.js +80 -80
- package/hooks/scripts/command-log.js +32 -32
- package/hooks/scripts/context-save.js +353 -353
- package/hooks/scripts/evolution-engine.js +91 -91
- package/hooks/scripts/figma-extract.js +477 -477
- package/hooks/scripts/hud-status.js +321 -321
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +572 -555
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pr-test-gate.js +52 -52
- package/hooks/scripts/pre-tool-guard.js +159 -159
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +131 -131
- package/hooks/scripts/session-start.js +177 -106
- package/hooks/scripts/skill-injector.js +83 -83
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +243 -186
- 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 +101 -100
- package/skills/agents-md/SKILL.md +121 -121
- package/skills/agents-md/rubrics/what-to-keep.md +49 -49
- package/skills/agents-md/templates/agents-md.md +36 -36
- package/skills/arch-guard/SKILL.md +181 -181
- package/skills/arch-guard/agents/detector.md +48 -48
- package/skills/arch-guard/agents/reporter.md +48 -48
- package/skills/arch-guard/agents/rule-generator.md +49 -49
- package/skills/arch-guard/agents/violation-checker.md +51 -51
- package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
- package/skills/arch-guard/frameworks/solid.md +102 -102
- package/skills/arch-guard/scripts/check-boundaries.js +90 -90
- package/skills/arch-guard/templates/arch-rules.json +47 -47
- package/skills/arch-guard/templates/violation-report.md +53 -53
- package/skills/brand-assets/SKILL.md +147 -147
- package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
- package/skills/brand-assets/templates/brand-guide.md +161 -161
- package/skills/capability-loop/SKILL.md +168 -168
- package/skills/capability-loop/agents/capability-designer.md +61 -61
- package/skills/capability-loop/agents/failure-analyst.md +55 -55
- package/skills/capability-loop/agents/implementer.md +50 -50
- package/skills/capability-loop/agents/tester.md +53 -53
- package/skills/capability-loop/templates/capability-spec.md +118 -118
- package/skills/capability-loop/templates/failure-analysis.md +118 -118
- package/skills/characterization-test/SKILL.md +207 -207
- package/skills/characterization-test/agents/behavior-capturer.md +50 -50
- package/skills/characterization-test/agents/coverage-checker.md +54 -54
- package/skills/characterization-test/agents/reporter.md +50 -50
- package/skills/characterization-test/agents/test-writer.md +49 -49
- package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
- package/skills/characterization-test/templates/test-template.ts +101 -101
- package/skills/chub-usage/SKILL.md +115 -115
- package/skills/claude-md-guide/SKILL.md +351 -351
- package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
- package/skills/claude-md-guide/templates/claude-md.md +54 -54
- package/skills/commerce-patterns/SKILL.md +64 -64
- package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
- package/skills/commerce-patterns/templates/product-schema.md +85 -85
- package/skills/commit-push-pr/SKILL.md +77 -77
- package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
- package/skills/commit-push-pr/agents/message-writer.md +50 -50
- package/skills/commit-push-pr/agents/pr-writer.md +58 -58
- package/skills/commit-push-pr/agents/reviewer.md +52 -52
- package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
- package/skills/commit-push-pr/templates/pr-body.md +63 -63
- package/skills/context7-usage/SKILL.md +106 -106
- package/skills/context7-usage/rubrics/when-to-use.md +50 -50
- package/skills/create-prd/SKILL.md +90 -90
- package/skills/create-prd/agents/edge-case-finder.md +48 -48
- package/skills/create-prd/agents/prioritizer.md +60 -60
- package/skills/create-prd/agents/requirements-writer.md +48 -48
- package/skills/create-prd/agents/researcher.md +55 -55
- package/skills/create-prd/agents/reviewer.md +54 -54
- package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
- package/skills/create-prd/frameworks/rice-scoring.md +97 -97
- package/skills/create-prd/orchestrator.md +70 -70
- package/skills/create-prd/rubrics/completeness.md +58 -58
- package/skills/create-prd/templates/prd.md +139 -139
- package/skills/design-audit/SKILL.md +152 -152
- package/skills/design-audit/agents/a11y-auditor.md +43 -43
- package/skills/design-audit/agents/performance-auditor.md +46 -46
- package/skills/design-audit/agents/responsive-auditor.md +46 -46
- package/skills/design-audit/agents/scorer.md +47 -47
- package/skills/design-audit/agents/slop-detector.md +47 -47
- package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
- package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
- package/skills/design-audit/orchestrator.md +64 -64
- package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
- package/skills/design-audit/rubrics/scoring.md +63 -63
- package/skills/design-audit/templates/report.md +88 -88
- package/skills/design-critique/SKILL.md +139 -139
- package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
- package/skills/design-critique/templates/critique-report.md +86 -86
- package/skills/design-distill/SKILL.md +130 -130
- package/skills/design-distill/templates/design-system.md +132 -132
- package/skills/design-normalize/SKILL.md +133 -133
- package/skills/design-normalize/rubrics/token-naming.md +117 -117
- package/skills/design-normalize/templates/token-audit.md +89 -89
- package/skills/design-polish/SKILL.md +131 -131
- package/skills/design-polish/rubrics/polish-checklist.md +68 -68
- package/skills/design-polish/templates/polish-report.md +64 -64
- package/skills/design-teach/SKILL.md +182 -182
- package/skills/design-teach/rubrics/brand-personality.md +73 -73
- package/skills/design-teach/templates/design-context.json +36 -36
- package/skills/e2e-commerce/SKILL.md +62 -62
- package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
- package/skills/event-comms/SKILL.md +162 -162
- package/skills/event-comms/templates/email-invite.md +99 -99
- package/skills/event-comms/templates/sns-post.md +133 -133
- package/skills/event-ops/SKILL.md +198 -198
- package/skills/event-ops/rubrics/contingency.md +85 -85
- package/skills/event-ops/templates/d-day-checklist.md +65 -65
- package/skills/event-planning/SKILL.md +132 -132
- package/skills/event-planning/rubrics/timeline.md +70 -70
- package/skills/event-planning/templates/event-plan.md +91 -91
- package/skills/exec-plan/SKILL.md +149 -149
- package/skills/exec-plan/agents/decomposer.md +47 -47
- package/skills/exec-plan/agents/dependency-mapper.md +44 -44
- package/skills/exec-plan/agents/estimator.md +43 -43
- package/skills/exec-plan/agents/validator.md +55 -55
- package/skills/exec-plan/orchestrator.md +70 -70
- package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
- package/skills/exec-plan/templates/plan.md +147 -147
- package/skills/git-worktree/SKILL.md +73 -73
- package/skills/git-worktree/rubrics/when-to-use.md +55 -55
- package/skills/handoff/SKILL.md +110 -110
- package/skills/handoff/agents/context-summarizer.md +51 -51
- package/skills/handoff/agents/document-writer.md +63 -63
- package/skills/handoff/agents/state-collector.md +53 -53
- package/skills/handoff/agents/verifier.md +48 -48
- package/skills/handoff/rubrics/completeness.md +62 -62
- package/skills/handoff/templates/handoff.md +107 -107
- package/skills/parallel-research/SKILL.md +89 -89
- package/skills/parallel-research/agents/best-practices.md +43 -43
- package/skills/parallel-research/agents/codebase-patterns.md +46 -46
- package/skills/parallel-research/agents/framework-docs.md +45 -45
- package/skills/parallel-research/agents/security-advisory.md +46 -46
- package/skills/parallel-research/agents/synthesizer.md +52 -52
- package/skills/parallel-research/experts/best-practices.md +50 -50
- package/skills/parallel-research/experts/codebase-patterns.md +70 -70
- package/skills/parallel-research/experts/framework-docs.md +65 -65
- package/skills/parallel-research/experts/security-advisory.md +69 -69
- package/skills/parallel-research/orchestrator.md +65 -65
- package/skills/parallel-research/templates/synthesis.md +101 -101
- package/skills/prioritization-frameworks/SKILL.md +87 -87
- package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
- package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
- package/skills/priority-todos/SKILL.md +64 -64
- package/skills/priority-todos/rubrics/prioritization.md +70 -70
- package/skills/priority-todos/templates/todo-board.md +59 -59
- package/skills/seo-checklist/SKILL.md +58 -58
- package/skills/seo-checklist/frameworks/structured-data.md +153 -153
- package/skills/seo-checklist/rubrics/content-seo.md +42 -42
- package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
- package/skills/techdebt/SKILL.md +124 -124
- package/skills/techdebt/agents/analyzer.md +50 -50
- package/skills/techdebt/agents/fixer.md +41 -41
- package/skills/techdebt/agents/reviewer.md +47 -47
- package/skills/techdebt/agents/scanner.md +44 -44
- package/skills/techdebt/orchestrator.md +70 -70
- package/skills/techdebt/rubrics/severity.md +51 -51
- package/skills/techdebt/scripts/scan.js +90 -90
- package/skills/techdebt/templates/report.md +86 -86
- package/skills/tool-fallback/SKILL.md +104 -104
- package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
- package/skills/typescript-advanced-types/SKILL.md +67 -67
- package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
- package/skills/ui-ux-pro-max/SKILL.md +236 -236
- package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
- package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
- package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
- package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
- package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
- package/skills/ui-ux-pro-max/reference/typography.md +455 -455
- package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
- package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
- package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
- package/skills/user-personas/SKILL.md +75 -75
- package/skills/user-personas/rubrics/research-methods.md +56 -56
- package/skills/user-personas/templates/persona.md +89 -89
- package/skills/vercel-react-best-practices/SKILL.md +60 -60
- package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
- package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
- package/skills/vibe.docs/SKILL.md +171 -171
- package/skills/vibe.docs/templates/architecture.md +80 -80
- package/skills/vibe.docs/templates/readme.md +84 -84
- package/skills/vibe.docs/templates/release-notes.md +74 -74
- package/skills/vibe.figma/SKILL.md +982 -1064
- package/skills/vibe.figma/rubrics/extraction-checklist.md +51 -51
- package/skills/vibe.figma/templates/component-index.md +126 -126
- package/skills/vibe.figma/templates/figma-handoff.md +100 -100
- package/skills/vibe.figma/templates/remapped-tree.md +277 -277
- package/skills/vibe.figma.convert/SKILL.md +511 -553
- package/skills/vibe.figma.convert/rubrics/conversion-rules.md +113 -129
- package/skills/vibe.figma.convert/templates/component.md +140 -140
- package/skills/vibe.figma.extract/SKILL.md +300 -312
- package/skills/vibe.figma.extract/rubrics/image-rules.md +137 -145
- package/skills/video-production/SKILL.md +52 -52
- package/skills/video-production/rubrics/quality-checklist.md +58 -58
- package/skills/video-production/templates/production-plan.md +104 -104
- 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
|
@@ -153,48 +153,48 @@ export class Provisioner {
|
|
|
153
153
|
const stateSection = details.stateManagement.length > 0
|
|
154
154
|
? details.stateManagement.join(', ')
|
|
155
155
|
: 'N/A';
|
|
156
|
-
return `# [Feature Name] SPEC
|
|
157
|
-
|
|
158
|
-
## Overview
|
|
159
|
-
<!-- Brief description of the feature -->
|
|
160
|
-
|
|
161
|
-
## Tech Stack
|
|
162
|
-
${stackList}
|
|
163
|
-
|
|
164
|
-
### Infrastructure
|
|
165
|
-
- **Databases**: ${dbSection}
|
|
166
|
-
- **State Management**: ${stateSection}
|
|
167
|
-
|
|
168
|
-
## Problem Statement
|
|
169
|
-
<!-- What problem does this solve? -->
|
|
170
|
-
|
|
171
|
-
## Proposed Solution
|
|
172
|
-
<!-- High-level approach -->
|
|
173
|
-
|
|
174
|
-
## Requirements
|
|
175
|
-
|
|
176
|
-
### Functional
|
|
177
|
-
1. <!-- Requirement 1 -->
|
|
178
|
-
|
|
179
|
-
### Non-Functional
|
|
180
|
-
1. <!-- Performance, security, accessibility -->
|
|
181
|
-
|
|
182
|
-
## API Design
|
|
183
|
-
<!-- Endpoints, request/response schemas -->
|
|
184
|
-
|
|
185
|
-
## Data Model
|
|
186
|
-
<!-- Schema changes, migrations -->
|
|
187
|
-
|
|
188
|
-
## Test Strategy
|
|
189
|
-
- Unit tests: <!-- scope -->
|
|
190
|
-
- Integration tests: <!-- scope -->
|
|
191
|
-
- E2E tests: <!-- scope -->
|
|
192
|
-
|
|
193
|
-
## Acceptance Criteria
|
|
194
|
-
- [ ] <!-- Criterion 1 -->
|
|
195
|
-
|
|
196
|
-
## References
|
|
197
|
-
<!-- Links to relevant docs, designs, PRs -->
|
|
156
|
+
return `# [Feature Name] SPEC
|
|
157
|
+
|
|
158
|
+
## Overview
|
|
159
|
+
<!-- Brief description of the feature -->
|
|
160
|
+
|
|
161
|
+
## Tech Stack
|
|
162
|
+
${stackList}
|
|
163
|
+
|
|
164
|
+
### Infrastructure
|
|
165
|
+
- **Databases**: ${dbSection}
|
|
166
|
+
- **State Management**: ${stateSection}
|
|
167
|
+
|
|
168
|
+
## Problem Statement
|
|
169
|
+
<!-- What problem does this solve? -->
|
|
170
|
+
|
|
171
|
+
## Proposed Solution
|
|
172
|
+
<!-- High-level approach -->
|
|
173
|
+
|
|
174
|
+
## Requirements
|
|
175
|
+
|
|
176
|
+
### Functional
|
|
177
|
+
1. <!-- Requirement 1 -->
|
|
178
|
+
|
|
179
|
+
### Non-Functional
|
|
180
|
+
1. <!-- Performance, security, accessibility -->
|
|
181
|
+
|
|
182
|
+
## API Design
|
|
183
|
+
<!-- Endpoints, request/response schemas -->
|
|
184
|
+
|
|
185
|
+
## Data Model
|
|
186
|
+
<!-- Schema changes, migrations -->
|
|
187
|
+
|
|
188
|
+
## Test Strategy
|
|
189
|
+
- Unit tests: <!-- scope -->
|
|
190
|
+
- Integration tests: <!-- scope -->
|
|
191
|
+
- E2E tests: <!-- scope -->
|
|
192
|
+
|
|
193
|
+
## Acceptance Criteria
|
|
194
|
+
- [ ] <!-- Criterion 1 -->
|
|
195
|
+
|
|
196
|
+
## References
|
|
197
|
+
<!-- Links to relevant docs, designs, PRs -->
|
|
198
198
|
`;
|
|
199
199
|
}
|
|
200
200
|
}
|
|
@@ -216,30 +216,30 @@ export function generateNavigationHeader(dir, rootPath) {
|
|
|
216
216
|
* Describe DeepInit workflow
|
|
217
217
|
*/
|
|
218
218
|
export function describeDeepInitWorkflow() {
|
|
219
|
-
return `
|
|
220
|
-
## DeepInit Workflow
|
|
221
|
-
|
|
222
|
-
Hierarchical AI-readable documentation generation:
|
|
223
|
-
|
|
224
|
-
\`\`\`
|
|
225
|
-
project/
|
|
226
|
-
├── AGENTS.md ← Root documentation
|
|
227
|
-
├── src/
|
|
228
|
-
│ ├── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
229
|
-
│ ├── components/
|
|
230
|
-
│ │ └── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
231
|
-
│ └── services/
|
|
232
|
-
│ └── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
233
|
-
└── tests/
|
|
234
|
-
└── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
235
|
-
\`\`\`
|
|
236
|
-
|
|
237
|
-
Features:
|
|
238
|
-
- Parent references for navigation
|
|
239
|
-
- Auto-detected purpose and conventions
|
|
240
|
-
- Preserved manual notes on regeneration
|
|
241
|
-
- Entry point identification
|
|
242
|
-
- Child module linking
|
|
219
|
+
return `
|
|
220
|
+
## DeepInit Workflow
|
|
221
|
+
|
|
222
|
+
Hierarchical AI-readable documentation generation:
|
|
223
|
+
|
|
224
|
+
\`\`\`
|
|
225
|
+
project/
|
|
226
|
+
├── AGENTS.md ← Root documentation
|
|
227
|
+
├── src/
|
|
228
|
+
│ ├── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
229
|
+
│ ├── components/
|
|
230
|
+
│ │ └── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
231
|
+
│ └── services/
|
|
232
|
+
│ └── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
233
|
+
└── tests/
|
|
234
|
+
└── AGENTS.md ← <!-- Parent: ../AGENTS.md -->
|
|
235
|
+
\`\`\`
|
|
236
|
+
|
|
237
|
+
Features:
|
|
238
|
+
- Parent references for navigation
|
|
239
|
+
- Auto-detected purpose and conventions
|
|
240
|
+
- Preserved manual notes on regeneration
|
|
241
|
+
- Entry point identification
|
|
242
|
+
- Child module linking
|
|
243
243
|
`.trim();
|
|
244
244
|
}
|
|
245
245
|
//# sourceMappingURL=DeepInit.js.map
|
|
@@ -363,10 +363,10 @@ export function formatProgress(state = currentState) {
|
|
|
363
363
|
* Phase 시작 배너
|
|
364
364
|
*/
|
|
365
365
|
export function formatPhaseStart(phaseNumber, phaseName, totalPhases) {
|
|
366
|
-
return `
|
|
367
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
368
|
-
🏔️ BOULDER ROLLING... Phase ${phaseNumber}/${totalPhases}
|
|
369
|
-
${phaseName}
|
|
366
|
+
return `
|
|
367
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
368
|
+
🏔️ BOULDER ROLLING... Phase ${phaseNumber}/${totalPhases}
|
|
369
|
+
${phaseName}
|
|
370
370
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`.trim();
|
|
371
371
|
}
|
|
372
372
|
/**
|
|
@@ -384,13 +384,13 @@ export function formatIterationComplete(state) {
|
|
|
384
384
|
: 0;
|
|
385
385
|
const totalRetries = state.phases.reduce((sum, p) => sum + p.retryCount, 0);
|
|
386
386
|
const retryInfo = totalRetries > 0 ? ` (${totalRetries} retries)` : '';
|
|
387
|
-
return `
|
|
388
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
389
|
-
🎉 BOULDER REACHED THE TOP!
|
|
390
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
391
|
-
Feature: ${state.featureName}
|
|
392
|
-
Phases: ${state.totalPhases}/${state.totalPhases} complete${retryInfo}
|
|
393
|
-
Time: ${duration}s
|
|
387
|
+
return `
|
|
388
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
389
|
+
🎉 BOULDER REACHED THE TOP!
|
|
390
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
391
|
+
Feature: ${state.featureName}
|
|
392
|
+
Phases: ${state.totalPhases}/${state.totalPhases} complete${retryInfo}
|
|
393
|
+
Time: ${duration}s
|
|
394
394
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`.trim();
|
|
395
395
|
}
|
|
396
396
|
/**
|
|
@@ -35,114 +35,114 @@ function getPythonCommand() {
|
|
|
35
35
|
const PYTHON_CMD = getPythonCommand();
|
|
36
36
|
export class PythonParser {
|
|
37
37
|
static cleanupRegistered = false;
|
|
38
|
-
static pythonScript = `
|
|
39
|
-
import ast
|
|
40
|
-
import sys
|
|
41
|
-
import json
|
|
42
|
-
|
|
43
|
-
def analyze_code(code):
|
|
44
|
-
try:
|
|
45
|
-
tree = ast.parse(code)
|
|
46
|
-
symbols = []
|
|
47
|
-
|
|
48
|
-
for node in ast.walk(tree):
|
|
49
|
-
if isinstance(node, ast.FunctionDef):
|
|
50
|
-
symbols.append({
|
|
51
|
-
'name': node.name,
|
|
52
|
-
'kind': 'function',
|
|
53
|
-
'line': node.lineno,
|
|
54
|
-
'column': node.col_offset,
|
|
55
|
-
'endLine': node.end_lineno,
|
|
56
|
-
'docstring': ast.get_docstring(node)
|
|
57
|
-
})
|
|
58
|
-
elif isinstance(node, ast.ClassDef):
|
|
59
|
-
symbols.append({
|
|
60
|
-
'name': node.name,
|
|
61
|
-
'kind': 'class',
|
|
62
|
-
'line': node.lineno,
|
|
63
|
-
'column': node.col_offset,
|
|
64
|
-
'endLine': node.end_lineno,
|
|
65
|
-
'docstring': ast.get_docstring(node)
|
|
66
|
-
})
|
|
67
|
-
elif isinstance(node, ast.Assign):
|
|
68
|
-
for target in node.targets:
|
|
69
|
-
if isinstance(target, ast.Name):
|
|
70
|
-
symbols.append({
|
|
71
|
-
'name': target.id,
|
|
72
|
-
'kind': 'variable',
|
|
73
|
-
'line': node.lineno,
|
|
74
|
-
'column': node.col_offset
|
|
75
|
-
})
|
|
76
|
-
elif isinstance(node, ast.Import) or isinstance(node, ast.ImportFrom):
|
|
77
|
-
for alias in node.names:
|
|
78
|
-
symbols.append({
|
|
79
|
-
'name': alias.name,
|
|
80
|
-
'kind': 'import',
|
|
81
|
-
'line': node.lineno,
|
|
82
|
-
'column': node.col_offset
|
|
83
|
-
})
|
|
84
|
-
|
|
85
|
-
return {'success': True, 'symbols': symbols}
|
|
86
|
-
except SyntaxError as e:
|
|
87
|
-
return {'success': False, 'error': str(e)}
|
|
88
|
-
except Exception as e:
|
|
89
|
-
return {'success': False, 'error': str(e)}
|
|
90
|
-
|
|
91
|
-
def calculate_complexity(code):
|
|
92
|
-
try:
|
|
93
|
-
tree = ast.parse(code)
|
|
94
|
-
|
|
95
|
-
def cyclomatic_complexity(node):
|
|
96
|
-
complexity = 1
|
|
97
|
-
for child in ast.walk(node):
|
|
98
|
-
if isinstance(child, (ast.If, ast.For, ast.While, ast.And, ast.Or, ast.ExceptHandler)):
|
|
99
|
-
complexity += 1
|
|
100
|
-
elif isinstance(child, ast.BoolOp):
|
|
101
|
-
complexity += len(child.values) - 1
|
|
102
|
-
return complexity
|
|
103
|
-
|
|
104
|
-
functions = []
|
|
105
|
-
classes = []
|
|
106
|
-
total_complexity = 1
|
|
107
|
-
|
|
108
|
-
for node in ast.walk(tree):
|
|
109
|
-
if isinstance(node, ast.FunctionDef):
|
|
110
|
-
func_complexity = cyclomatic_complexity(node)
|
|
111
|
-
functions.append({
|
|
112
|
-
'name': node.name,
|
|
113
|
-
'complexity': func_complexity,
|
|
114
|
-
'line': node.lineno
|
|
115
|
-
})
|
|
116
|
-
total_complexity += func_complexity
|
|
117
|
-
elif isinstance(node, ast.ClassDef):
|
|
118
|
-
method_count = sum(1 for n in node.body if isinstance(n, ast.FunctionDef))
|
|
119
|
-
classes.append({
|
|
120
|
-
'name': node.name,
|
|
121
|
-
'methods': method_count,
|
|
122
|
-
'line': node.lineno
|
|
123
|
-
})
|
|
124
|
-
|
|
125
|
-
return {
|
|
126
|
-
'success': True,
|
|
127
|
-
'cyclomaticComplexity': total_complexity,
|
|
128
|
-
'functions': functions,
|
|
129
|
-
'classes': classes
|
|
130
|
-
}
|
|
131
|
-
except Exception as e:
|
|
132
|
-
return {'success': False, 'error': str(e)}
|
|
133
|
-
|
|
134
|
-
if __name__ == '__main__':
|
|
135
|
-
code = sys.stdin.read()
|
|
136
|
-
action = sys.argv[1] if len(sys.argv) > 1 else 'symbols'
|
|
137
|
-
|
|
138
|
-
if action == 'symbols':
|
|
139
|
-
result = analyze_code(code)
|
|
140
|
-
elif action == 'complexity':
|
|
141
|
-
result = calculate_complexity(code)
|
|
142
|
-
else:
|
|
143
|
-
result = {'success': False, 'error': 'Unknown action'}
|
|
144
|
-
|
|
145
|
-
print(json.dumps(result))
|
|
38
|
+
static pythonScript = `
|
|
39
|
+
import ast
|
|
40
|
+
import sys
|
|
41
|
+
import json
|
|
42
|
+
|
|
43
|
+
def analyze_code(code):
|
|
44
|
+
try:
|
|
45
|
+
tree = ast.parse(code)
|
|
46
|
+
symbols = []
|
|
47
|
+
|
|
48
|
+
for node in ast.walk(tree):
|
|
49
|
+
if isinstance(node, ast.FunctionDef):
|
|
50
|
+
symbols.append({
|
|
51
|
+
'name': node.name,
|
|
52
|
+
'kind': 'function',
|
|
53
|
+
'line': node.lineno,
|
|
54
|
+
'column': node.col_offset,
|
|
55
|
+
'endLine': node.end_lineno,
|
|
56
|
+
'docstring': ast.get_docstring(node)
|
|
57
|
+
})
|
|
58
|
+
elif isinstance(node, ast.ClassDef):
|
|
59
|
+
symbols.append({
|
|
60
|
+
'name': node.name,
|
|
61
|
+
'kind': 'class',
|
|
62
|
+
'line': node.lineno,
|
|
63
|
+
'column': node.col_offset,
|
|
64
|
+
'endLine': node.end_lineno,
|
|
65
|
+
'docstring': ast.get_docstring(node)
|
|
66
|
+
})
|
|
67
|
+
elif isinstance(node, ast.Assign):
|
|
68
|
+
for target in node.targets:
|
|
69
|
+
if isinstance(target, ast.Name):
|
|
70
|
+
symbols.append({
|
|
71
|
+
'name': target.id,
|
|
72
|
+
'kind': 'variable',
|
|
73
|
+
'line': node.lineno,
|
|
74
|
+
'column': node.col_offset
|
|
75
|
+
})
|
|
76
|
+
elif isinstance(node, ast.Import) or isinstance(node, ast.ImportFrom):
|
|
77
|
+
for alias in node.names:
|
|
78
|
+
symbols.append({
|
|
79
|
+
'name': alias.name,
|
|
80
|
+
'kind': 'import',
|
|
81
|
+
'line': node.lineno,
|
|
82
|
+
'column': node.col_offset
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
return {'success': True, 'symbols': symbols}
|
|
86
|
+
except SyntaxError as e:
|
|
87
|
+
return {'success': False, 'error': str(e)}
|
|
88
|
+
except Exception as e:
|
|
89
|
+
return {'success': False, 'error': str(e)}
|
|
90
|
+
|
|
91
|
+
def calculate_complexity(code):
|
|
92
|
+
try:
|
|
93
|
+
tree = ast.parse(code)
|
|
94
|
+
|
|
95
|
+
def cyclomatic_complexity(node):
|
|
96
|
+
complexity = 1
|
|
97
|
+
for child in ast.walk(node):
|
|
98
|
+
if isinstance(child, (ast.If, ast.For, ast.While, ast.And, ast.Or, ast.ExceptHandler)):
|
|
99
|
+
complexity += 1
|
|
100
|
+
elif isinstance(child, ast.BoolOp):
|
|
101
|
+
complexity += len(child.values) - 1
|
|
102
|
+
return complexity
|
|
103
|
+
|
|
104
|
+
functions = []
|
|
105
|
+
classes = []
|
|
106
|
+
total_complexity = 1
|
|
107
|
+
|
|
108
|
+
for node in ast.walk(tree):
|
|
109
|
+
if isinstance(node, ast.FunctionDef):
|
|
110
|
+
func_complexity = cyclomatic_complexity(node)
|
|
111
|
+
functions.append({
|
|
112
|
+
'name': node.name,
|
|
113
|
+
'complexity': func_complexity,
|
|
114
|
+
'line': node.lineno
|
|
115
|
+
})
|
|
116
|
+
total_complexity += func_complexity
|
|
117
|
+
elif isinstance(node, ast.ClassDef):
|
|
118
|
+
method_count = sum(1 for n in node.body if isinstance(n, ast.FunctionDef))
|
|
119
|
+
classes.append({
|
|
120
|
+
'name': node.name,
|
|
121
|
+
'methods': method_count,
|
|
122
|
+
'line': node.lineno
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
return {
|
|
126
|
+
'success': True,
|
|
127
|
+
'cyclomaticComplexity': total_complexity,
|
|
128
|
+
'functions': functions,
|
|
129
|
+
'classes': classes
|
|
130
|
+
}
|
|
131
|
+
except Exception as e:
|
|
132
|
+
return {'success': False, 'error': str(e)}
|
|
133
|
+
|
|
134
|
+
if __name__ == '__main__':
|
|
135
|
+
code = sys.stdin.read()
|
|
136
|
+
action = sys.argv[1] if len(sys.argv) > 1 else 'symbols'
|
|
137
|
+
|
|
138
|
+
if action == 'symbols':
|
|
139
|
+
result = analyze_code(code)
|
|
140
|
+
elif action == 'complexity':
|
|
141
|
+
result = calculate_complexity(code)
|
|
142
|
+
else:
|
|
143
|
+
result = {'success': False, 'error': 'Unknown action'}
|
|
144
|
+
|
|
145
|
+
print(json.dumps(result))
|
|
146
146
|
`;
|
|
147
147
|
// Singleton Python script path to avoid recreating it
|
|
148
148
|
static scriptPath = null;
|
|
@@ -24,90 +24,90 @@ import { isCodexAvailable, isGeminiAvailable } from './llm-availability.js';
|
|
|
24
24
|
// Constants
|
|
25
25
|
// ============================================================================
|
|
26
26
|
const REVIEW_PROMPTS = {
|
|
27
|
-
security: `You are a security expert reviewing code changes.
|
|
28
|
-
Identify security vulnerabilities including:
|
|
29
|
-
- SQL injection, XSS, CSRF
|
|
30
|
-
- Authentication/authorization flaws
|
|
31
|
-
- Sensitive data exposure
|
|
32
|
-
- Insecure dependencies
|
|
33
|
-
- OWASP Top 10 issues
|
|
34
|
-
|
|
35
|
-
For each issue found, respond in this exact JSON format:
|
|
36
|
-
{
|
|
37
|
-
"issues": [
|
|
38
|
-
{
|
|
39
|
-
"id": "SEC-001",
|
|
40
|
-
"title": "Brief title",
|
|
41
|
-
"description": "Detailed description",
|
|
42
|
-
"location": "file.ts:42",
|
|
43
|
-
"severity": "critical|high|medium|low",
|
|
44
|
-
"suggestion": "How to fix"
|
|
45
|
-
}
|
|
46
|
-
]
|
|
47
|
-
}
|
|
48
|
-
|
|
27
|
+
security: `You are a security expert reviewing code changes.
|
|
28
|
+
Identify security vulnerabilities including:
|
|
29
|
+
- SQL injection, XSS, CSRF
|
|
30
|
+
- Authentication/authorization flaws
|
|
31
|
+
- Sensitive data exposure
|
|
32
|
+
- Insecure dependencies
|
|
33
|
+
- OWASP Top 10 issues
|
|
34
|
+
|
|
35
|
+
For each issue found, respond in this exact JSON format:
|
|
36
|
+
{
|
|
37
|
+
"issues": [
|
|
38
|
+
{
|
|
39
|
+
"id": "SEC-001",
|
|
40
|
+
"title": "Brief title",
|
|
41
|
+
"description": "Detailed description",
|
|
42
|
+
"location": "file.ts:42",
|
|
43
|
+
"severity": "critical|high|medium|low",
|
|
44
|
+
"suggestion": "How to fix"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
|
|
49
49
|
If no issues found, respond: {"issues": []}`,
|
|
50
|
-
performance: `You are a performance expert reviewing code changes.
|
|
51
|
-
Identify performance issues including:
|
|
52
|
-
- N+1 queries
|
|
53
|
-
- Memory leaks
|
|
54
|
-
- Unnecessary re-renders
|
|
55
|
-
- Blocking operations
|
|
56
|
-
- Large bundle size impacts
|
|
57
|
-
- Missing caching opportunities
|
|
58
|
-
|
|
59
|
-
Respond in JSON format:
|
|
60
|
-
{
|
|
61
|
-
"issues": [
|
|
62
|
-
{
|
|
63
|
-
"id": "PERF-001",
|
|
64
|
-
"title": "Brief title",
|
|
65
|
-
"description": "Detailed description",
|
|
66
|
-
"location": "file.ts:42",
|
|
67
|
-
"severity": "critical|high|medium|low",
|
|
68
|
-
"suggestion": "How to fix"
|
|
69
|
-
}
|
|
70
|
-
]
|
|
50
|
+
performance: `You are a performance expert reviewing code changes.
|
|
51
|
+
Identify performance issues including:
|
|
52
|
+
- N+1 queries
|
|
53
|
+
- Memory leaks
|
|
54
|
+
- Unnecessary re-renders
|
|
55
|
+
- Blocking operations
|
|
56
|
+
- Large bundle size impacts
|
|
57
|
+
- Missing caching opportunities
|
|
58
|
+
|
|
59
|
+
Respond in JSON format:
|
|
60
|
+
{
|
|
61
|
+
"issues": [
|
|
62
|
+
{
|
|
63
|
+
"id": "PERF-001",
|
|
64
|
+
"title": "Brief title",
|
|
65
|
+
"description": "Detailed description",
|
|
66
|
+
"location": "file.ts:42",
|
|
67
|
+
"severity": "critical|high|medium|low",
|
|
68
|
+
"suggestion": "How to fix"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
71
|
}`,
|
|
72
|
-
architecture: `You are an architecture expert reviewing code changes.
|
|
73
|
-
Identify architecture issues including:
|
|
74
|
-
- Circular dependencies
|
|
75
|
-
- Layer violations (e.g., UI calling DB directly)
|
|
76
|
-
- Missing abstractions
|
|
77
|
-
- Tight coupling
|
|
78
|
-
- Single Responsibility violations
|
|
79
|
-
- DRY violations
|
|
80
|
-
|
|
72
|
+
architecture: `You are an architecture expert reviewing code changes.
|
|
73
|
+
Identify architecture issues including:
|
|
74
|
+
- Circular dependencies
|
|
75
|
+
- Layer violations (e.g., UI calling DB directly)
|
|
76
|
+
- Missing abstractions
|
|
77
|
+
- Tight coupling
|
|
78
|
+
- Single Responsibility violations
|
|
79
|
+
- DRY violations
|
|
80
|
+
|
|
81
81
|
Respond in JSON format with issues array.`,
|
|
82
|
-
complexity: `You are a code quality expert reviewing complexity.
|
|
83
|
-
Identify complexity issues including:
|
|
84
|
-
- Functions > 30 lines
|
|
85
|
-
- Nesting depth > 3 levels
|
|
86
|
-
- Cyclomatic complexity > 10
|
|
87
|
-
- Too many parameters (> 5)
|
|
88
|
-
- Long files (> 300 lines)
|
|
89
|
-
|
|
82
|
+
complexity: `You are a code quality expert reviewing complexity.
|
|
83
|
+
Identify complexity issues including:
|
|
84
|
+
- Functions > 30 lines
|
|
85
|
+
- Nesting depth > 3 levels
|
|
86
|
+
- Cyclomatic complexity > 10
|
|
87
|
+
- Too many parameters (> 5)
|
|
88
|
+
- Long files (> 300 lines)
|
|
89
|
+
|
|
90
90
|
Respond in JSON format with issues array.`,
|
|
91
|
-
'data-integrity': `You are a data integrity expert reviewing code changes.
|
|
92
|
-
Identify data integrity issues including:
|
|
93
|
-
- Missing validations
|
|
94
|
-
- Race conditions
|
|
95
|
-
- Inconsistent state handling
|
|
96
|
-
- Missing error handling
|
|
97
|
-
- Data loss scenarios
|
|
98
|
-
|
|
91
|
+
'data-integrity': `You are a data integrity expert reviewing code changes.
|
|
92
|
+
Identify data integrity issues including:
|
|
93
|
+
- Missing validations
|
|
94
|
+
- Race conditions
|
|
95
|
+
- Inconsistent state handling
|
|
96
|
+
- Missing error handling
|
|
97
|
+
- Data loss scenarios
|
|
98
|
+
|
|
99
99
|
Respond in JSON format with issues array.`,
|
|
100
|
-
'test-coverage': `You are a testing expert reviewing code changes.
|
|
101
|
-
Identify missing test coverage including:
|
|
102
|
-
- Untested edge cases
|
|
103
|
-
- Missing error case tests
|
|
104
|
-
- Missing integration tests
|
|
105
|
-
- Untested business logic
|
|
106
|
-
|
|
100
|
+
'test-coverage': `You are a testing expert reviewing code changes.
|
|
101
|
+
Identify missing test coverage including:
|
|
102
|
+
- Untested edge cases
|
|
103
|
+
- Missing error case tests
|
|
104
|
+
- Missing integration tests
|
|
105
|
+
- Untested business logic
|
|
106
|
+
|
|
107
107
|
Respond in JSON format with issues array.`,
|
|
108
|
-
general: `You are a senior code reviewer.
|
|
109
|
-
Review this code for any issues including security, performance, maintainability, and best practices.
|
|
110
|
-
|
|
108
|
+
general: `You are a senior code reviewer.
|
|
109
|
+
Review this code for any issues including security, performance, maintainability, and best practices.
|
|
110
|
+
|
|
111
111
|
Respond in JSON format with issues array.`,
|
|
112
112
|
};
|
|
113
113
|
// ============================================================================
|
|
@@ -203,15 +203,15 @@ function selectBestDescription(issues) {
|
|
|
203
203
|
async function reviewWithGPT(reviewType, code, context) {
|
|
204
204
|
const startTime = Date.now();
|
|
205
205
|
try {
|
|
206
|
-
const prompt = `${REVIEW_PROMPTS[reviewType]}
|
|
207
|
-
|
|
208
|
-
Context: ${context || 'Code review'}
|
|
209
|
-
|
|
210
|
-
Code to review:
|
|
211
|
-
\`\`\`
|
|
212
|
-
${code}
|
|
213
|
-
\`\`\`
|
|
214
|
-
|
|
206
|
+
const prompt = `${REVIEW_PROMPTS[reviewType]}
|
|
207
|
+
|
|
208
|
+
Context: ${context || 'Code review'}
|
|
209
|
+
|
|
210
|
+
Code to review:
|
|
211
|
+
\`\`\`
|
|
212
|
+
${code}
|
|
213
|
+
\`\`\`
|
|
214
|
+
|
|
215
215
|
Respond with JSON only.`;
|
|
216
216
|
const response = await gptApi.ask(prompt, {
|
|
217
217
|
model: isCodexAvailable() ? 'gpt-5.3-codex-spark' : 'gpt-5.3-codex',
|
|
@@ -239,15 +239,15 @@ Respond with JSON only.`;
|
|
|
239
239
|
async function reviewWithGemini(reviewType, code, context) {
|
|
240
240
|
const startTime = Date.now();
|
|
241
241
|
try {
|
|
242
|
-
const prompt = `${REVIEW_PROMPTS[reviewType]}
|
|
243
|
-
|
|
244
|
-
Context: ${context || 'Code review'}
|
|
245
|
-
|
|
246
|
-
Code to review:
|
|
247
|
-
\`\`\`
|
|
248
|
-
${code}
|
|
249
|
-
\`\`\`
|
|
250
|
-
|
|
242
|
+
const prompt = `${REVIEW_PROMPTS[reviewType]}
|
|
243
|
+
|
|
244
|
+
Context: ${context || 'Code review'}
|
|
245
|
+
|
|
246
|
+
Code to review:
|
|
247
|
+
\`\`\`
|
|
248
|
+
${code}
|
|
249
|
+
\`\`\`
|
|
250
|
+
|
|
251
251
|
Respond with JSON only.`;
|
|
252
252
|
const response = await geminiApi.ask(prompt, {
|
|
253
253
|
model: 'gemini-flash',
|