@su-record/vibe 2.16.4 → 3.1.0
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 +8 -8
- package/README.en.md +46 -29
- package/README.md +41 -24
- package/agents/acceptance-tester.md +56 -0
- package/agents/architect.md +25 -67
- package/agents/build-error-resolver.md +28 -97
- package/agents/code-reviewer.md +89 -0
- package/agents/diagrammer.md +34 -169
- package/agents/documenter.md +43 -0
- package/agents/e2e-tester.md +46 -281
- package/agents/event/event-ops.md +54 -77
- package/agents/event/event-planner.md +63 -0
- package/agents/figma/figma-engineer.md +76 -0
- package/agents/implementer.md +26 -41
- package/agents/security-reviewer.md +56 -0
- package/agents/tester.md +37 -33
- package/agents/ui/design-reviewer.md +62 -0
- package/agents/ui/design-system-gen.md +63 -0
- package/dist/cli/commands/remove.d.ts.map +1 -1
- package/dist/cli/commands/remove.js +8 -10
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/index.d.ts +0 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +0 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/model-refresh.js +1 -1
- package/dist/cli/llm/model-refresh.js.map +1 -1
- package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/claude-agents.js +16 -77
- package/dist/cli/postinstall/claude-agents.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +80 -296
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
- package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +26 -68
- package/dist/cli/postinstall/cursor-agents.js.map +1 -1
- package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
- package/dist/cli/postinstall/cursor-skills.js +26 -30
- package/dist/cli/postinstall/cursor-skills.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +0 -2
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/Provisioner.d.ts.map +1 -1
- package/dist/cli/setup/Provisioner.js +19 -21
- package/dist/cli/setup/Provisioner.js.map +1 -1
- package/dist/cli/utils.d.ts +4 -1
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +4 -1
- package/dist/cli/utils.js.map +1 -1
- package/dist/infra/lib/FrameworkDetector.js +4 -4
- package/dist/infra/lib/FrameworkDetector.js.map +1 -1
- package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
- package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
- package/dist/infra/lib/browser/launch.js +1 -1
- package/dist/infra/lib/browser/launch.js.map +1 -1
- package/dist/infra/lib/browser/types.d.ts +1 -1
- package/dist/infra/lib/browser/types.js +1 -1
- package/dist/infra/lib/constants.d.ts +1 -1
- package/dist/infra/lib/constants.d.ts.map +1 -1
- package/dist/infra/lib/constants.js +4 -5
- package/dist/infra/lib/constants.js.map +1 -1
- package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
- package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
- package/dist/infra/lib/memory/index.d.ts +0 -2
- package/dist/infra/lib/memory/index.d.ts.map +1 -1
- package/dist/infra/lib/memory/index.js +0 -2
- package/dist/infra/lib/memory/index.js.map +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
- package/dist/tools/index.d.ts +0 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory/autoSaveContext.d.ts +0 -1
- package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
- package/dist/tools/memory/autoSaveContext.js +13 -27
- package/dist/tools/memory/autoSaveContext.js.map +1 -1
- package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
- package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
- package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
- package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
- package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
- package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
- package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
- package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
- package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
- package/hooks/scripts/__tests__/step-counter.test.js +1 -1
- package/hooks/scripts/clone-extract.js +242 -28
- package/hooks/scripts/clone-merge-responsive.js +184 -0
- package/hooks/scripts/clone-spec.js +33 -8
- package/hooks/scripts/clone-validate.js +15 -9
- package/hooks/scripts/code-check.js +16 -203
- package/hooks/scripts/context-save.js +0 -11
- package/hooks/scripts/lib/scope-from-spec.js +9 -6
- package/hooks/scripts/post-edit-dispatcher.js +1 -1
- package/hooks/scripts/prompt-dispatcher.js +7 -18
- package/hooks/scripts/session-start.js +25 -35
- package/package.json +6 -5
- package/skills/agents-md/SKILL.md +62 -15
- package/skills/arch-guard/SKILL.md +1 -1
- package/skills/brand-assets/SKILL.md +2 -2
- package/skills/capability-loop/SKILL.md +1 -1
- package/skills/chub-usage/SKILL.md +1 -1
- package/skills/clone/SKILL.md +132 -55
- package/skills/commerce-patterns/SKILL.md +2 -2
- package/skills/commit-push-pr/SKILL.md +0 -1
- package/skills/context7-usage/SKILL.md +1 -1
- package/skills/design-refine/SKILL.md +140 -0
- package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
- package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
- package/skills/design-review/SKILL.md +143 -0
- package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
- package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
- package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
- package/skills/{design-audit → design-review}/orchestrator.md +3 -3
- package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
- package/skills/{design-audit → design-review}/templates/report.md +3 -3
- package/skills/design-teach/SKILL.md +11 -11
- package/skills/docs/SKILL.md +14 -16
- package/skills/e2e-commerce/SKILL.md +1 -1
- package/skills/event-comms/SKILL.md +1 -1
- package/skills/event-ops/SKILL.md +2 -2
- package/skills/event-planning/SKILL.md +1 -1
- package/skills/exec-plan/SKILL.md +2 -2
- package/skills/figma/SKILL.md +240 -148
- package/skills/figma/rubrics/css-mapping.md +125 -0
- package/skills/git-worktree/SKILL.md +1 -1
- package/skills/handoff/SKILL.md +1 -1
- package/skills/parallel-research/SKILL.md +14 -28
- package/skills/priority-todos/SKILL.md +1 -1
- package/skills/regress/SKILL.md +11 -0
- package/skills/restraint/SKILL.md +72 -0
- package/skills/seo-checklist/SKILL.md +2 -2
- package/skills/spec/SKILL.md +65 -836
- package/skills/test/SKILL.md +3 -3
- package/skills/tool-fallback/SKILL.md +2 -2
- package/skills/vercel-react-best-practices/SKILL.md +1 -1
- package/skills/vibe/SKILL.md +20 -35
- package/skills/vibe.analyze/SKILL.md +7 -9
- package/skills/vibe.clone/SKILL.md +39 -19
- package/skills/vibe.docs/SKILL.md +1 -1
- package/skills/vibe.event/SKILL.md +27 -27
- package/skills/vibe.figma/SKILL.md +14 -18
- package/skills/vibe.harness/SKILL.md +5 -5
- package/skills/vibe.reason/SKILL.md +0 -2
- package/skills/vibe.review/SKILL.md +45 -49
- package/skills/vibe.run/SKILL.md +2 -5
- package/skills/vibe.run/references/parallel-agents.md +33 -98
- package/skills/vibe.spec/SKILL.md +38 -535
- package/skills/vibe.utils/SKILL.md +3 -3
- package/skills/vibe.verify/SKILL.md +70 -542
- package/skills/video-production/SKILL.md +1 -1
- package/vibe/rules/orchestrator-contract.md +5 -4
- package/vibe/rules/quality/performance.md +1 -1
- package/vibe/templates/claudemd-template.md +1 -1
- package/vibe/templates/spec-template.md +35 -185
- package/agents/architect-low.md +0 -41
- package/agents/architect-medium.md +0 -59
- package/agents/compounder.md +0 -265
- package/agents/docs/api-documenter.md +0 -99
- package/agents/docs/changelog-writer.md +0 -93
- package/agents/event/event-comms.md +0 -78
- package/agents/event/event-content.md +0 -68
- package/agents/event/event-image.md +0 -95
- package/agents/event/event-scheduler.md +0 -69
- package/agents/event/event-speaker.md +0 -86
- package/agents/explorer-low.md +0 -42
- package/agents/explorer-medium.md +0 -59
- package/agents/explorer.md +0 -48
- package/agents/figma/figma-analyst.md +0 -56
- package/agents/figma/figma-architect.md +0 -116
- package/agents/figma/figma-auditor.md +0 -86
- package/agents/figma/figma-builder.md +0 -104
- package/agents/implementer-low.md +0 -43
- package/agents/implementer-medium.md +0 -52
- package/agents/junior-mentor.md +0 -141
- package/agents/planning/requirements-analyst.md +0 -84
- package/agents/planning/ux-advisor.md +0 -83
- package/agents/qa/acceptance-tester.md +0 -86
- package/agents/qa/edge-case-finder.md +0 -93
- package/agents/qa/qa-coordinator.md +0 -131
- package/agents/refactor-cleaner.md +0 -143
- package/agents/research/best-practices.md +0 -199
- package/agents/research/codebase-patterns.md +0 -157
- package/agents/research/framework-docs.md +0 -188
- package/agents/research/security-advisory.md +0 -213
- package/agents/review/architecture-reviewer.md +0 -107
- package/agents/review/complexity-reviewer.md +0 -116
- package/agents/review/data-integrity-reviewer.md +0 -88
- package/agents/review/git-history-reviewer.md +0 -103
- package/agents/review/performance-reviewer.md +0 -86
- package/agents/review/python-reviewer.md +0 -150
- package/agents/review/rails-reviewer.md +0 -139
- package/agents/review/react-reviewer.md +0 -144
- package/agents/review/security-reviewer.md +0 -80
- package/agents/review/simplicity-reviewer.md +0 -140
- package/agents/review/test-coverage-reviewer.md +0 -116
- package/agents/review/typescript-reviewer.md +0 -127
- package/agents/searcher.md +0 -54
- package/agents/simplifier.md +0 -124
- package/agents/teams/debug-team.md +0 -74
- package/agents/teams/dev-team.md +0 -92
- package/agents/teams/docs-team.md +0 -84
- package/agents/teams/figma-team.md +0 -89
- package/agents/teams/fullstack-team.md +0 -87
- package/agents/teams/lite-team.md +0 -73
- package/agents/teams/migration-team.md +0 -82
- package/agents/teams/refactor-team.md +0 -98
- package/agents/teams/research-team.md +0 -90
- package/agents/teams/review-debate-team.md +0 -129
- package/agents/teams/security-team.md +0 -85
- package/agents/ui/ui-a11y-auditor.md +0 -93
- package/agents/ui/ui-antipattern-detector.md +0 -102
- package/agents/ui/ui-dataviz-advisor.md +0 -69
- package/agents/ui/ui-design-system-gen.md +0 -57
- package/agents/ui/ui-industry-analyzer.md +0 -49
- package/agents/ui/ui-layout-architect.md +0 -65
- package/agents/ui/ui-stack-implementer.md +0 -68
- package/agents/ui/ux-compliance-reviewer.md +0 -81
- package/agents/ui-previewer.md +0 -262
- package/dist/cli/llm/gemini-commands.d.ts +0 -25
- package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
- package/dist/cli/llm/gemini-commands.js +0 -143
- package/dist/cli/llm/gemini-commands.js.map +0 -1
- package/dist/cli/postinstall/codex-agents.d.ts +0 -24
- package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
- package/dist/cli/postinstall/codex-agents.js +0 -114
- package/dist/cli/postinstall/codex-agents.js.map +0 -1
- package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
- package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
- package/dist/cli/postinstall/codex-instruction.js +0 -56
- package/dist/cli/postinstall/codex-instruction.js.map +0 -1
- package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
- package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
- package/dist/cli/postinstall/gemini-agents.js +0 -80
- package/dist/cli/postinstall/gemini-agents.js.map +0 -1
- package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
- package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
- package/dist/cli/postinstall/gemini-instruction.js +0 -59
- package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
- package/dist/infra/lib/ContextCompressor.d.ts +0 -104
- package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
- package/dist/infra/lib/ContextCompressor.js +0 -297
- package/dist/infra/lib/ContextCompressor.js.map +0 -1
- package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
- package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
- package/dist/infra/lib/ContextCompressor.test.js +0 -25
- package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
- package/dist/infra/lib/ProgressTracker.d.ts +0 -73
- package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
- package/dist/infra/lib/ProgressTracker.js +0 -267
- package/dist/infra/lib/ProgressTracker.js.map +0 -1
- package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
- package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
- package/dist/infra/lib/TokenBudgetTracker.js +0 -191
- package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
- package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
- package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AuditStore.js +0 -185
- package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
- package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
- package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
- package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
- package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
- package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
- package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
- package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/EventBus.js +0 -119
- package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
- package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
- package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
- package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
- package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
- package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
- package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
- package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
- package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
- package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
- package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
- package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
- package/dist/infra/lib/autonomy/index.d.ts +0 -18
- package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/index.js +0 -22
- package/dist/infra/lib/autonomy/index.js.map +0 -1
- package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
- package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/schemas.js +0 -90
- package/dist/infra/lib/autonomy/schemas.js.map +0 -1
- package/dist/infra/lib/claude/index.d.ts +0 -5
- package/dist/infra/lib/claude/index.d.ts.map +0 -1
- package/dist/infra/lib/claude/index.js +0 -5
- package/dist/infra/lib/claude/index.js.map +0 -1
- package/dist/infra/lib/claude/storage.d.ts +0 -12
- package/dist/infra/lib/claude/storage.d.ts.map +0 -1
- package/dist/infra/lib/claude/storage.js +0 -54
- package/dist/infra/lib/claude/storage.js.map +0 -1
- package/dist/infra/lib/gemini/auth.d.ts +0 -18
- package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
- package/dist/infra/lib/gemini/auth.js +0 -32
- package/dist/infra/lib/gemini/auth.js.map +0 -1
- package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
- package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
- package/dist/infra/lib/gemini/capabilities.js +0 -178
- package/dist/infra/lib/gemini/capabilities.js.map +0 -1
- package/dist/infra/lib/gemini/chat.d.ts +0 -35
- package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
- package/dist/infra/lib/gemini/chat.js +0 -161
- package/dist/infra/lib/gemini/chat.js.map +0 -1
- package/dist/infra/lib/gemini/completion.d.ts +0 -12
- package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
- package/dist/infra/lib/gemini/completion.js +0 -13
- package/dist/infra/lib/gemini/completion.js.map +0 -1
- package/dist/infra/lib/gemini/constants.d.ts +0 -8
- package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
- package/dist/infra/lib/gemini/constants.js +0 -11
- package/dist/infra/lib/gemini/constants.js.map +0 -1
- package/dist/infra/lib/gemini/index.d.ts +0 -13
- package/dist/infra/lib/gemini/index.d.ts.map +0 -1
- package/dist/infra/lib/gemini/index.js +0 -12
- package/dist/infra/lib/gemini/index.js.map +0 -1
- package/dist/infra/lib/gemini/models.d.ts +0 -11
- package/dist/infra/lib/gemini/models.d.ts.map +0 -1
- package/dist/infra/lib/gemini/models.js +0 -38
- package/dist/infra/lib/gemini/models.js.map +0 -1
- package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
- package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
- package/dist/infra/lib/gemini/orchestration.js +0 -62
- package/dist/infra/lib/gemini/orchestration.js.map +0 -1
- package/dist/infra/lib/gemini/types.d.ts +0 -115
- package/dist/infra/lib/gemini/types.d.ts.map +0 -1
- package/dist/infra/lib/gemini/types.js +0 -5
- package/dist/infra/lib/gemini/types.js.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
- package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
- package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
- package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
- package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentExecutor.js +0 -272
- package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
- package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
- package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentManager.js +0 -183
- package/dist/infra/orchestrator/AgentManager.js.map +0 -1
- package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
- package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
- package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
- package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.js +0 -217
- package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
- package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
- package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.js +0 -620
- package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
- package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
- package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
- package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/CheckpointManager.js +0 -121
- package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
- package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
- package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
- package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
- package/dist/infra/orchestrator/LLMCluster.js +0 -146
- package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
- package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
- package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
- package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
- package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
- package/dist/infra/orchestrator/PhasePipeline.js +0 -385
- package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
- package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
- package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
- package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
- package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
- package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
- package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
- package/dist/infra/orchestrator/SessionStore.js +0 -116
- package/dist/infra/orchestrator/SessionStore.js.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.js +0 -277
- package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
- package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
- package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
- package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
- package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
- package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
- package/dist/infra/orchestrator/agentDiscovery.js +0 -175
- package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
- package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
- package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
- package/dist/infra/orchestrator/backgroundAgent.js +0 -10
- package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
- package/dist/infra/orchestrator/index.d.ts +0 -207
- package/dist/infra/orchestrator/index.d.ts.map +0 -1
- package/dist/infra/orchestrator/index.js +0 -362
- package/dist/infra/orchestrator/index.js.map +0 -1
- package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
- package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
- package/dist/infra/orchestrator/orchestrator.js +0 -214
- package/dist/infra/orchestrator/orchestrator.js.map +0 -1
- package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
- package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
- package/dist/infra/orchestrator/parallelResearch.js +0 -285
- package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
- package/dist/infra/orchestrator/types.d.ts +0 -205
- package/dist/infra/orchestrator/types.d.ts.map +0 -1
- package/dist/infra/orchestrator/types.js +0 -87
- package/dist/infra/orchestrator/types.js.map +0 -1
- package/dist/infra/orchestrator/types.test.d.ts +0 -2
- package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/types.test.js +0 -57
- package/dist/infra/orchestrator/types.test.js.map +0 -1
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
- package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
- package/dist/tools/semantic/astGrep.d.ts +0 -25
- package/dist/tools/semantic/astGrep.d.ts.map +0 -1
- package/dist/tools/semantic/astGrep.js +0 -324
- package/dist/tools/semantic/astGrep.js.map +0 -1
- package/dist/tools/semantic/astGrep.test.d.ts +0 -2
- package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
- package/dist/tools/semantic/astGrep.test.js +0 -74
- package/dist/tools/semantic/astGrep.test.js.map +0 -1
- package/dist/tools/semantic/findReferences.d.ts +0 -9
- package/dist/tools/semantic/findReferences.d.ts.map +0 -1
- package/dist/tools/semantic/findReferences.js +0 -200
- package/dist/tools/semantic/findReferences.js.map +0 -1
- package/dist/tools/semantic/findSymbol.d.ts +0 -8
- package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
- package/dist/tools/semantic/findSymbol.js +0 -204
- package/dist/tools/semantic/findSymbol.js.map +0 -1
- package/dist/tools/semantic/index.d.ts +0 -9
- package/dist/tools/semantic/index.d.ts.map +0 -1
- package/dist/tools/semantic/index.js +0 -11
- package/dist/tools/semantic/index.js.map +0 -1
- package/dist/tools/semantic/lsp.d.ts +0 -68
- package/dist/tools/semantic/lsp.d.ts.map +0 -1
- package/dist/tools/semantic/lsp.js +0 -561
- package/dist/tools/semantic/lsp.js.map +0 -1
- package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
- package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
- package/dist/tools/spec/e2eTestGenerator.js +0 -255
- package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
- package/dist/tools/spec/specVersioning.d.ts +0 -76
- package/dist/tools/spec/specVersioning.d.ts.map +0 -1
- package/dist/tools/spec/specVersioning.js +0 -236
- package/dist/tools/spec/specVersioning.js.map +0 -1
- package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
- package/hooks/scripts/keyword-detector.js +0 -226
- package/skills/characterization-test/SKILL.md +0 -209
- package/skills/characterization-test/agents/behavior-capturer.md +0 -50
- package/skills/characterization-test/agents/coverage-checker.md +0 -54
- package/skills/characterization-test/agents/reporter.md +0 -50
- package/skills/characterization-test/agents/test-writer.md +0 -49
- package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
- package/skills/characterization-test/templates/test-template.ts +0 -101
- package/skills/claude-md-guide/SKILL.md +0 -353
- package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
- package/skills/design-audit/SKILL.md +0 -154
- package/skills/design-critique/SKILL.md +0 -140
- package/skills/design-distill/SKILL.md +0 -131
- package/skills/design-normalize/SKILL.md +0 -135
- package/skills/design-polish/SKILL.md +0 -132
- package/skills/figma-convert/SKILL.md +0 -236
- package/skills/figma-extract/SKILL.md +0 -242
- package/skills/interview/SKILL.md +0 -358
- package/skills/interview/checklists/api.md +0 -101
- package/skills/interview/checklists/feature.md +0 -88
- package/skills/interview/checklists/library.md +0 -95
- package/skills/interview/checklists/mobile.md +0 -89
- package/skills/interview/checklists/webapp.md +0 -97
- package/skills/interview/checklists/website.md +0 -99
- package/skills/plan/SKILL.md +0 -254
- package/skills/rob-pike/SKILL.md +0 -66
- package/skills/spec/references/askuser-examples.md +0 -57
- package/skills/spec/references/example-session.md +0 -87
- package/skills/spec/references/templates.md +0 -194
- package/skills/spec-review/SKILL.md +0 -725
- package/skills/systematic-debugging/SKILL.md +0 -142
- package/skills/techdebt/SKILL.md +0 -126
- package/skills/techdebt/agents/analyzer.md +0 -50
- package/skills/techdebt/agents/fixer.md +0 -41
- package/skills/techdebt/agents/reviewer.md +0 -47
- package/skills/techdebt/agents/scanner.md +0 -44
- package/skills/techdebt/orchestrator.md +0 -72
- package/skills/techdebt/rubrics/severity.md +0 -51
- package/skills/techdebt/scripts/scan.js +0 -90
- package/skills/techdebt/templates/report.md +0 -86
- package/skills/typescript-advanced-types/SKILL.md +0 -68
- package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
- package/skills/yagni-ladder/SKILL.md +0 -90
- /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
- /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
- /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
- /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
- /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
- /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
- /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
- /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
- /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
- /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
- /package/skills/{figma-convert → figma}/templates/component.md +0 -0
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
# Python Reviewer Agent
|
|
2
|
-
|
|
3
|
-
<!-- Python Code Expert Review Agent -->
|
|
4
|
-
|
|
5
|
-
## Role
|
|
6
|
-
|
|
7
|
-
- PEP 8 style guide compliance
|
|
8
|
-
- Type hint verification
|
|
9
|
-
- Pythonic pattern suggestions
|
|
10
|
-
- async/await pattern review
|
|
11
|
-
|
|
12
|
-
## Model
|
|
13
|
-
|
|
14
|
-
**Sonnet** — Accurate code analysis for quality gates
|
|
15
|
-
|
|
16
|
-
## Checklist
|
|
17
|
-
|
|
18
|
-
### PEP 8 Style
|
|
19
|
-
- [ ] Naming: snake_case (variables/functions), PascalCase (classes)?
|
|
20
|
-
- [ ] Line length ≤ 88 (black standard)?
|
|
21
|
-
- [ ] Import order: stdlib → third-party → local?
|
|
22
|
-
- [ ] Whitespace rules followed?
|
|
23
|
-
|
|
24
|
-
### Type Hints (PEP 484)
|
|
25
|
-
- [ ] Function parameter type hints?
|
|
26
|
-
- [ ] Return type specified?
|
|
27
|
-
- [ ] `T | None` instead of Optional (Python 3.10+)?
|
|
28
|
-
- [ ] TypedDict, Protocol used appropriately?
|
|
29
|
-
|
|
30
|
-
### Pythonic Patterns
|
|
31
|
-
- [ ] List comprehension used appropriately?
|
|
32
|
-
- [ ] Context manager (with) used?
|
|
33
|
-
- [ ] range(len()) instead of enumerate?
|
|
34
|
-
- [ ] f-string used?
|
|
35
|
-
- [ ] Walrus operator (:=) used appropriately?
|
|
36
|
-
|
|
37
|
-
### Error Handling
|
|
38
|
-
- [ ] Specific exception types used?
|
|
39
|
-
- [ ] Bare except prohibited?
|
|
40
|
-
- [ ] Exception chaining (from e)?
|
|
41
|
-
- [ ] Appropriate logging?
|
|
42
|
-
|
|
43
|
-
### Async/Await
|
|
44
|
-
- [ ] Calling async from sync function?
|
|
45
|
-
- [ ] asyncio.gather utilized?
|
|
46
|
-
- [ ] Appropriate timeout settings?
|
|
47
|
-
- [ ] Resource cleanup (async with)?
|
|
48
|
-
|
|
49
|
-
### Security
|
|
50
|
-
- [ ] eval/exec usage prohibited?
|
|
51
|
-
- [ ] pickle untrusted data?
|
|
52
|
-
- [ ] SQL parameterization?
|
|
53
|
-
- [ ] Sensitive information logging?
|
|
54
|
-
|
|
55
|
-
### Performance
|
|
56
|
-
- [ ] Generator utilization (large data)?
|
|
57
|
-
- [ ] `__slots__` usage considered?
|
|
58
|
-
- [ ] lru_cache decorator?
|
|
59
|
-
- [ ] Unnecessary list conversions?
|
|
60
|
-
|
|
61
|
-
## Framework Specific
|
|
62
|
-
|
|
63
|
-
### Django
|
|
64
|
-
- [ ] N+1 queries (select_related/prefetch_related)?
|
|
65
|
-
- [ ] QuerySet lazy evaluation understood?
|
|
66
|
-
- [ ] Transaction management?
|
|
67
|
-
- [ ] Migration reversibility?
|
|
68
|
-
|
|
69
|
-
### FastAPI
|
|
70
|
-
- [ ] Pydantic models appropriate?
|
|
71
|
-
- [ ] Dependency injection utilized?
|
|
72
|
-
- [ ] Async routes?
|
|
73
|
-
- [ ] Response model defined?
|
|
74
|
-
|
|
75
|
-
### SQLAlchemy
|
|
76
|
-
- [ ] Session management?
|
|
77
|
-
- [ ] N+1 (joinedload/selectinload)?
|
|
78
|
-
- [ ] Transaction scope?
|
|
79
|
-
- [ ] Connection pool settings?
|
|
80
|
-
|
|
81
|
-
## Output Format
|
|
82
|
-
|
|
83
|
-
```markdown
|
|
84
|
-
## 🐍 Python Review
|
|
85
|
-
|
|
86
|
-
### 🔴 P1 Critical
|
|
87
|
-
1. **Missing Type Hints in Public API**
|
|
88
|
-
- 📍 Location: src/services/user.py:get_user()
|
|
89
|
-
- 💡 Fix: Add `def get_user(user_id: int) -> User | None:`
|
|
90
|
-
|
|
91
|
-
### 🟡 P2 Important
|
|
92
|
-
2. **Bare Except Clause**
|
|
93
|
-
- 📍 Location: src/utils/parser.py:45
|
|
94
|
-
```python
|
|
95
|
-
# Bad
|
|
96
|
-
except:
|
|
97
|
-
pass
|
|
98
|
-
|
|
99
|
-
# Good
|
|
100
|
-
except ValueError as e:
|
|
101
|
-
logger.error(f"Parse error: {e}")
|
|
102
|
-
raise
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### 🔵 P3 Suggestions
|
|
106
|
-
3. **Use List Comprehension**
|
|
107
|
-
- 📍 Location: src/api/orders.py:23
|
|
108
|
-
```python
|
|
109
|
-
# Before
|
|
110
|
-
result = []
|
|
111
|
-
for item in items:
|
|
112
|
-
if item.active:
|
|
113
|
-
result.append(item.name)
|
|
114
|
-
|
|
115
|
-
# After
|
|
116
|
-
result = [item.name for item in items if item.active]
|
|
117
|
-
```
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## Usage
|
|
121
|
-
|
|
122
|
-
```text
|
|
123
|
-
Task(
|
|
124
|
-
model: "sonnet",
|
|
125
|
-
subagent_type: "Explore",
|
|
126
|
-
prompt: "Python review for [files]. Check PEP8, type hints, async patterns."
|
|
127
|
-
)
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## External LLM Enhancement (Optional)
|
|
131
|
-
|
|
132
|
-
**When GPT Codex is enabled**, get Python expert 2nd opinion:
|
|
133
|
-
|
|
134
|
-
```text
|
|
135
|
-
Primary: Task(Sonnet) Python review
|
|
136
|
-
↓
|
|
137
|
-
[GPT enabled?]
|
|
138
|
-
↓ YES
|
|
139
|
-
gpt.Python code review. Check PEP8, type hints, async patterns, Django/FastAPI best practices:
|
|
140
|
-
[Python code to review]
|
|
141
|
-
↓
|
|
142
|
-
Compare results → Common issues gain confidence, differences need additional review
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Use cases:**
|
|
146
|
-
- When reviewing complex async/await patterns
|
|
147
|
-
- When reviewing Django/FastAPI architecture
|
|
148
|
-
- When type hint coverage is severely lacking
|
|
149
|
-
|
|
150
|
-
**When GPT is not configured:** Primary works normally on its own
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# Rails Reviewer Agent
|
|
2
|
-
|
|
3
|
-
<!-- Ruby on Rails Code Expert Review Agent (DHH Style) -->
|
|
4
|
-
|
|
5
|
-
## Role
|
|
6
|
-
|
|
7
|
-
- Rails Way compliance verification
|
|
8
|
-
- N+1 query detection
|
|
9
|
-
- ActiveRecord pattern review
|
|
10
|
-
- Security best practices
|
|
11
|
-
|
|
12
|
-
## Model
|
|
13
|
-
|
|
14
|
-
**Sonnet** — Accurate code analysis for quality gates
|
|
15
|
-
|
|
16
|
-
## Philosophy (DHH Style)
|
|
17
|
-
|
|
18
|
-
> "Convention over Configuration"
|
|
19
|
-
> "Rails is omakase"
|
|
20
|
-
|
|
21
|
-
- Follow framework conventions
|
|
22
|
-
- Don't fear the magic
|
|
23
|
-
- Pursue simplicity
|
|
24
|
-
- System tests over test coverage
|
|
25
|
-
|
|
26
|
-
## Checklist
|
|
27
|
-
|
|
28
|
-
### ActiveRecord
|
|
29
|
-
- [ ] N+1 queries: includes/preload/eager_load?
|
|
30
|
-
- [ ] No callback abuse?
|
|
31
|
-
- [ ] Scope utilized appropriately?
|
|
32
|
-
- [ ] Transaction scope appropriate?
|
|
33
|
-
- [ ] Validations appropriate?
|
|
34
|
-
|
|
35
|
-
### Controllers
|
|
36
|
-
- [ ] No fat controllers?
|
|
37
|
-
- [ ] Strong parameters used?
|
|
38
|
-
- [ ] before_action appropriate?
|
|
39
|
-
- [ ] Authentication/authorization handling?
|
|
40
|
-
- [ ] Response format consistency?
|
|
41
|
-
|
|
42
|
-
### Models
|
|
43
|
-
- [ ] Business logic placement appropriate?
|
|
44
|
-
- [ ] Relationships set up correctly?
|
|
45
|
-
- [ ] Callbacks minimized?
|
|
46
|
-
- [ ] Validations complete?
|
|
47
|
-
|
|
48
|
-
### Views/Helpers
|
|
49
|
-
- [ ] Logic minimized?
|
|
50
|
-
- [ ] Helpers utilized appropriately?
|
|
51
|
-
- [ ] Partials reused?
|
|
52
|
-
- [ ] XSS prevention (minimize html_safe)?
|
|
53
|
-
|
|
54
|
-
### Migrations
|
|
55
|
-
- [ ] Reversible migration?
|
|
56
|
-
- [ ] Indexes added?
|
|
57
|
-
- [ ] NOT NULL constraints?
|
|
58
|
-
- [ ] Data migration separated?
|
|
59
|
-
|
|
60
|
-
### Security
|
|
61
|
-
- [ ] SQL Injection prevention?
|
|
62
|
-
- [ ] Mass assignment protection?
|
|
63
|
-
- [ ] CSRF token used?
|
|
64
|
-
- [ ] Sensitive info logging prohibited?
|
|
65
|
-
|
|
66
|
-
### Performance
|
|
67
|
-
- [ ] Counter cache utilized?
|
|
68
|
-
- [ ] Caching strategy?
|
|
69
|
-
- [ ] Background jobs (Sidekiq)?
|
|
70
|
-
- [ ] Pagination?
|
|
71
|
-
|
|
72
|
-
## Common Anti-Patterns
|
|
73
|
-
|
|
74
|
-
```ruby
|
|
75
|
-
# ❌ Bad: N+1 Query
|
|
76
|
-
users.each { |u| u.posts.count }
|
|
77
|
-
|
|
78
|
-
# ✅ Good: Eager loading
|
|
79
|
-
users.includes(:posts).each { |u| u.posts.size }
|
|
80
|
-
|
|
81
|
-
# ❌ Bad: Fat controller
|
|
82
|
-
def create
|
|
83
|
-
@user = User.new(user_params)
|
|
84
|
-
if @user.save
|
|
85
|
-
UserMailer.welcome(@user).deliver_later
|
|
86
|
-
Analytics.track('signup', @user.id)
|
|
87
|
-
# ... more logic
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
# ✅ Good: Thin controller
|
|
92
|
-
def create
|
|
93
|
-
@user = User.create_with_welcome(user_params)
|
|
94
|
-
# Model handles the rest
|
|
95
|
-
end
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Output Format
|
|
99
|
-
|
|
100
|
-
```markdown
|
|
101
|
-
## 💎 Rails Review (DHH Style)
|
|
102
|
-
|
|
103
|
-
### 🔴 P1 Critical
|
|
104
|
-
1. **N+1 Query Detected**
|
|
105
|
-
- 📍 Location: app/controllers/posts_controller.rb:12
|
|
106
|
-
```ruby
|
|
107
|
-
# Before
|
|
108
|
-
@posts = Post.all
|
|
109
|
-
# View: post.author.name (N+1!)
|
|
110
|
-
|
|
111
|
-
# After
|
|
112
|
-
@posts = Post.includes(:author)
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### 🟡 P2 Important
|
|
116
|
-
2. **Fat Controller**
|
|
117
|
-
- 📍 Location: app/controllers/orders_controller.rb:create
|
|
118
|
-
- 💡 Extract to service object or model method
|
|
119
|
-
|
|
120
|
-
### 🔵 P3 Suggestions
|
|
121
|
-
3. **Use Counter Cache**
|
|
122
|
-
- 📍 Location: app/models/user.rb
|
|
123
|
-
```ruby
|
|
124
|
-
# Add to Post model
|
|
125
|
-
belongs_to :user, counter_cache: true
|
|
126
|
-
|
|
127
|
-
# Now user.posts_count is cached
|
|
128
|
-
```
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
## Usage
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
Task(
|
|
135
|
-
model: "sonnet",
|
|
136
|
-
subagent_type: "Explore",
|
|
137
|
-
prompt: "Rails review for [files]. Check N+1, Rails Way, DHH style."
|
|
138
|
-
)
|
|
139
|
-
```
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
# React Reviewer Agent
|
|
2
|
-
|
|
3
|
-
<!-- React Code Expert Review Agent -->
|
|
4
|
-
|
|
5
|
-
## Role
|
|
6
|
-
|
|
7
|
-
- Hook rules verification
|
|
8
|
-
- Re-render optimization
|
|
9
|
-
- State management patterns
|
|
10
|
-
- Accessibility (a11y) inspection
|
|
11
|
-
|
|
12
|
-
## Model
|
|
13
|
-
|
|
14
|
-
**Sonnet** — Accurate code analysis for quality gates
|
|
15
|
-
|
|
16
|
-
## Checklist
|
|
17
|
-
|
|
18
|
-
### Rules of Hooks
|
|
19
|
-
- [ ] Hooks called only at top level?
|
|
20
|
-
- [ ] No hooks in conditionals/loops?
|
|
21
|
-
- [ ] Custom hook naming (use-)?
|
|
22
|
-
- [ ] Hook order consistency?
|
|
23
|
-
|
|
24
|
-
### Dependencies
|
|
25
|
-
- [ ] useEffect dependency array complete?
|
|
26
|
-
- [ ] useMemo/useCallback dependencies accurate?
|
|
27
|
-
- [ ] Unnecessary dependencies removed?
|
|
28
|
-
- [ ] Function reference stability?
|
|
29
|
-
|
|
30
|
-
### Re-rendering
|
|
31
|
-
- [ ] Unnecessary re-renders?
|
|
32
|
-
- [ ] React.memo used appropriately?
|
|
33
|
-
- [ ] useMemo for expensive computations?
|
|
34
|
-
- [ ] useCallback for callback stabilization?
|
|
35
|
-
- [ ] State separation (co-location)?
|
|
36
|
-
|
|
37
|
-
### State Management
|
|
38
|
-
- [ ] Local vs global state distinction?
|
|
39
|
-
- [ ] State minimization?
|
|
40
|
-
- [ ] Derived state calculation?
|
|
41
|
-
- [ ] State lifting/colocation appropriate?
|
|
42
|
-
|
|
43
|
-
### Component Design
|
|
44
|
-
- [ ] Single responsibility principle?
|
|
45
|
-
- [ ] Excessive props drilling?
|
|
46
|
-
- [ ] Component size appropriate?
|
|
47
|
-
- [ ] Container/Presentational separation?
|
|
48
|
-
|
|
49
|
-
### Accessibility (a11y)
|
|
50
|
-
- [ ] Semantic HTML used?
|
|
51
|
-
- [ ] ARIA attributes appropriate?
|
|
52
|
-
- [ ] Keyboard navigation?
|
|
53
|
-
- [ ] Sufficient color contrast?
|
|
54
|
-
- [ ] Alt text?
|
|
55
|
-
|
|
56
|
-
### Error Handling
|
|
57
|
-
- [ ] Error Boundary used?
|
|
58
|
-
- [ ] Loading/error states handled?
|
|
59
|
-
- [ ] Suspense utilized?
|
|
60
|
-
- [ ] User-friendly error UI?
|
|
61
|
-
|
|
62
|
-
### Performance
|
|
63
|
-
- [ ] Bundle size impact?
|
|
64
|
-
- [ ] Code splitting?
|
|
65
|
-
- [ ] Image optimization?
|
|
66
|
-
- [ ] Virtualization (large lists)?
|
|
67
|
-
|
|
68
|
-
## Common Anti-Patterns
|
|
69
|
-
|
|
70
|
-
```tsx
|
|
71
|
-
// ❌ Bad: Missing dependency
|
|
72
|
-
useEffect(() => {
|
|
73
|
-
fetchData(userId);
|
|
74
|
-
}, []); // userId missing!
|
|
75
|
-
|
|
76
|
-
// ✅ Good: Complete dependencies
|
|
77
|
-
useEffect(() => {
|
|
78
|
-
fetchData(userId);
|
|
79
|
-
}, [userId]);
|
|
80
|
-
|
|
81
|
-
// ❌ Bad: Object in dependency (new reference each render)
|
|
82
|
-
useEffect(() => {
|
|
83
|
-
doSomething(options);
|
|
84
|
-
}, [{ sort: 'asc' }]); // Always new object!
|
|
85
|
-
|
|
86
|
-
// ✅ Good: Stable reference
|
|
87
|
-
const options = useMemo(() => ({ sort: 'asc' }), []);
|
|
88
|
-
|
|
89
|
-
// ❌ Bad: Inline function causing re-render
|
|
90
|
-
<Button onClick={() => handleClick(id)} />
|
|
91
|
-
|
|
92
|
-
// ✅ Good: Stable callback
|
|
93
|
-
const handleButtonClick = useCallback(() => {
|
|
94
|
-
handleClick(id);
|
|
95
|
-
}, [id]);
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Output Format
|
|
99
|
-
|
|
100
|
-
```markdown
|
|
101
|
-
## ⚛️ React Review
|
|
102
|
-
|
|
103
|
-
### 🔴 P1 Critical
|
|
104
|
-
1. **Missing useEffect Dependency**
|
|
105
|
-
- 📍 Location: src/components/UserProfile.tsx:23
|
|
106
|
-
```tsx
|
|
107
|
-
// Before
|
|
108
|
-
useEffect(() => {
|
|
109
|
-
fetchUser(userId);
|
|
110
|
-
}, []); // ❌ userId missing
|
|
111
|
-
|
|
112
|
-
// After
|
|
113
|
-
useEffect(() => {
|
|
114
|
-
fetchUser(userId);
|
|
115
|
-
}, [userId]);
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### 🟡 P2 Important
|
|
119
|
-
2. **Unnecessary Re-renders**
|
|
120
|
-
- 📍 Location: src/components/List.tsx:45
|
|
121
|
-
- 📊 Impact: 100+ items re-render on each keystroke
|
|
122
|
-
- 💡 Fix: Use React.memo and stable callbacks
|
|
123
|
-
|
|
124
|
-
### 🔵 P3 Suggestions
|
|
125
|
-
3. **Accessibility: Missing alt text**
|
|
126
|
-
- 📍 Location: src/components/Avatar.tsx:12
|
|
127
|
-
```tsx
|
|
128
|
-
// Before
|
|
129
|
-
<img src={user.avatar} />
|
|
130
|
-
|
|
131
|
-
// After
|
|
132
|
-
<img src={user.avatar} alt={`${user.name}'s avatar`} />
|
|
133
|
-
```
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Usage
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
Task(
|
|
140
|
-
model: "sonnet",
|
|
141
|
-
subagent_type: "Explore",
|
|
142
|
-
prompt: "React review for [files]. Check hooks, re-renders, a11y."
|
|
143
|
-
)
|
|
144
|
-
```
|
|
@@ -1,80 +0,0 @@
|
|
|
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
|
-
**Sonnet** — Accurate code analysis for quality gates
|
|
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: "sonnet",
|
|
77
|
-
subagent_type: "Explore",
|
|
78
|
-
prompt: "Security review for changes in [files]. Check OWASP Top 10."
|
|
79
|
-
)
|
|
80
|
-
```
|
|
@@ -1,140 +0,0 @@
|
|
|
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
|
-
**Sonnet** — Accurate code analysis for quality gates
|
|
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: "sonnet",
|
|
137
|
-
subagent_type: "Explore",
|
|
138
|
-
prompt: "Simplicity review for [files]. Find over-engineering, dead code."
|
|
139
|
-
)
|
|
140
|
-
```
|