@hiai-gg/hiai-opencode 0.1.0 → 0.1.1
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 +57 -57
- package/AGENTS.md +281 -281
- package/ARCHITECTURE.md +281 -281
- package/LICENSE.md +59 -59
- package/README.md +301 -301
- package/assets/mcp/mempalace.mjs +153 -153
- package/assets/mcp/rag.mjs +236 -236
- package/assets/runtime/npm-package-runner.mjs +54 -54
- package/config/hiai-opencode.schema.json +82 -82
- package/config/opencode.json +4 -4
- package/dist/index.js +242 -242
- package/hiai-opencode.json +57 -57
- package/package.json +91 -91
- package/scripts/check_docs.ts +128 -128
- package/scripts/doctor.ts +522 -522
- package/scripts/measure_prompts.ts +192 -192
- package/scripts/test_routing.ts +294 -294
- package/skills/api-and-interface-design/SKILL.md +294 -294
- package/skills/brainstorming/SKILL.md +164 -164
- package/skills/brainstorming/scripts/frame-template.html +214 -214
- package/skills/brainstorming/scripts/helper.js +88 -88
- package/skills/brainstorming/scripts/server.cjs +354 -354
- package/skills/brainstorming/scripts/start-server.sh +148 -148
- package/skills/brainstorming/scripts/stop-server.sh +56 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
- package/skills/brainstorming/visual-companion.md +287 -287
- package/skills/browser-testing-with-devtools/SKILL.md +302 -302
- package/skills/ci-cd-and-automation/SKILL.md +390 -390
- package/skills/code-review-and-quality/SKILL.md +347 -347
- package/skills/code-simplification/SKILL.md +331 -331
- package/skills/context-engineering/SKILL.md +289 -289
- package/skills/deprecation-and-migration/SKILL.md +206 -206
- package/skills/dispatching-parallel-agents/SKILL.md +182 -182
- package/skills/documentation-and-adrs/SKILL.md +278 -278
- package/skills/executing-plans/SKILL.md +70 -70
- package/skills/finishing-a-development-branch/SKILL.md +200 -200
- package/skills/frontend-ui-engineering/SKILL.md +322 -322
- package/skills/git-workflow-and-versioning/SKILL.md +300 -300
- package/skills/incremental-implementation/SKILL.md +241 -241
- package/skills/performance-optimization/SKILL.md +350 -350
- package/skills/receiving-code-review/SKILL.md +213 -213
- package/skills/requesting-code-review/SKILL.md +105 -105
- package/skills/requesting-code-review/code-reviewer.md +146 -146
- package/skills/security-and-hardening/SKILL.md +349 -349
- package/skills/shipping-and-launch/SKILL.md +309 -309
- package/skills/source-driven-development/SKILL.md +194 -194
- package/skills/spec-driven-development/SKILL.md +200 -200
- package/skills/subagent-driven-development/SKILL.md +277 -277
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
- package/skills/subagent-driven-development/implementer-prompt.md +113 -113
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
- package/skills/systematic-debugging/CREATION-LOG.md +119 -119
- package/skills/systematic-debugging/SKILL.md +596 -596
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
- package/skills/systematic-debugging/condition-based-waiting.md +115 -115
- package/skills/systematic-debugging/defense-in-depth.md +122 -122
- package/skills/systematic-debugging/find-polluter.sh +63 -63
- package/skills/systematic-debugging/root-cause-tracing.md +169 -169
- package/skills/systematic-debugging/test-academic.md +14 -14
- package/skills/systematic-debugging/test-pressure-1.md +58 -58
- package/skills/systematic-debugging/test-pressure-2.md +68 -68
- package/skills/systematic-debugging/test-pressure-3.md +69 -69
- package/skills/test-driven-development/SKILL.md +379 -379
- package/skills/using-agent-skills/SKILL.md +174 -174
- package/skills/using-git-worktrees/SKILL.md +218 -218
- package/skills/using-superpowers/SKILL.md +117 -117
- package/skills/using-superpowers/references/codex-tools.md +100 -100
- package/skills/using-superpowers/references/copilot-tools.md +52 -52
- package/skills/using-superpowers/references/gemini-tools.md +33 -33
- package/skills/verification-before-completion/SKILL.md +139 -139
- package/skills/writing-plans/SKILL.md +152 -152
- package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
- package/skills/writing-skills/SKILL.md +655 -655
- package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
- package/skills/writing-skills/graphviz-conventions.dot +171 -171
- package/skills/writing-skills/persuasion-principles.md +187 -187
- package/skills/writing-skills/render-graphs.js +168 -168
- package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
- package/src/AGENTS.md +41 -41
- package/src/agents/AGENTS.md +74 -74
- package/src/agents/agent-builder.ts +50 -50
- package/src/agents/bob/AGENTS.md +29 -29
- package/src/agents/bob/default.ts +128 -128
- package/src/agents/bob/gemini.ts +237 -237
- package/src/agents/bob/gpt-pro.ts +430 -430
- package/src/agents/bob/index.ts +19 -19
- package/src/agents/bob.ts +528 -528
- package/src/agents/builtin-agents/agent-overrides.ts +75 -75
- package/src/agents/builtin-agents/available-skills.ts +35 -35
- package/src/agents/builtin-agents/bob-agent.ts +96 -96
- package/src/agents/builtin-agents/coder-agent.ts +98 -98
- package/src/agents/builtin-agents/environment-context.ts +16 -16
- package/src/agents/builtin-agents/general-agents.ts +122 -122
- package/src/agents/builtin-agents/guard-agent.ts +66 -66
- package/src/agents/builtin-agents/model-resolution.ts +31 -31
- package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
- package/src/agents/builtin-agents.ts +194 -194
- package/src/agents/coder/AGENTS.md +34 -34
- package/src/agents/coder/agent.ts +162 -162
- package/src/agents/coder/gpt-codex.ts +404 -404
- package/src/agents/coder/gpt-pro.ts +319 -319
- package/src/agents/coder/gpt.ts +253 -253
- package/src/agents/coder/index.ts +8 -8
- package/src/agents/critic/agent.ts +105 -105
- package/src/agents/custom-agent-summaries.ts +61 -61
- package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
- package/src/agents/dynamic-agent-core-sections.ts +237 -237
- package/src/agents/dynamic-agent-policy-sections.ts +182 -182
- package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
- package/src/agents/dynamic-agent-prompt-types.ts +24 -24
- package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
- package/src/agents/env-context.ts +16 -16
- package/src/agents/gpt-apply-patch-guard.ts +7 -7
- package/src/agents/guard/agent.ts +146 -146
- package/src/agents/guard/default-prompt-sections.ts +305 -305
- package/src/agents/guard/default.ts +22 -22
- package/src/agents/guard/gemini-prompt-sections.ts +293 -293
- package/src/agents/guard/gemini.ts +22 -22
- package/src/agents/guard/gpt-prompt-sections.ts +296 -296
- package/src/agents/guard/gpt.ts +22 -22
- package/src/agents/guard/index.ts +2 -2
- package/src/agents/guard/prompt-section-builder.ts +104 -104
- package/src/agents/guard/shared-prompt.ts +172 -172
- package/src/agents/index.ts +5 -5
- package/src/agents/platform-adapter.ts +236 -236
- package/src/agents/platform-manager.ts +57 -57
- package/src/agents/prompt-library/identity.ts +14 -14
- package/src/agents/prompt-library/index.ts +7 -7
- package/src/agents/prompt-library/intent-gate.ts +149 -149
- package/src/agents/prompt-library/orchestration.ts +60 -60
- package/src/agents/prompt-library/platform.ts +36 -36
- package/src/agents/prompt-library/specialized.ts +39 -39
- package/src/agents/prompt-library/strategy.ts +80 -80
- package/src/agents/prompt-library/todo-discipline.ts +22 -22
- package/src/agents/quality-guardian.ts +76 -76
- package/src/agents/researcher.ts +73 -73
- package/src/agents/strategist/AGENTS.md +37 -37
- package/src/agents/strategist/behavioral-summary.ts +79 -79
- package/src/agents/strategist/gemini.ts +333 -333
- package/src/agents/strategist/gpt.ts +460 -460
- package/src/agents/strategist/high-accuracy-mode.ts +78 -78
- package/src/agents/strategist/identity-constraints.ts +336 -336
- package/src/agents/strategist/index.ts +6 -6
- package/src/agents/strategist/interview-mode.ts +335 -335
- package/src/agents/strategist/plan-generation.ts +213 -213
- package/src/agents/strategist/plan-template.ts +325 -325
- package/src/agents/strategist/system-prompt.ts +68 -68
- package/src/agents/sub/agent.ts +141 -141
- package/src/agents/sub/default.ts +52 -52
- package/src/agents/sub/gemini.ts +194 -194
- package/src/agents/sub/gpt-codex.ts +156 -156
- package/src/agents/sub/gpt-pro.ts +161 -161
- package/src/agents/sub/gpt.ts +157 -157
- package/src/agents/sub/index.ts +13 -13
- package/src/agents/types.ts +144 -144
- package/src/agents/ui.ts +58 -58
- package/src/config/data/model-capabilities.json +40690 -40690
- package/src/config/defaults.ts +146 -146
- package/src/config/hiai-opencode.schema.json +12 -12
- package/src/config/index.ts +67 -67
- package/src/config/loader.test.ts +65 -65
- package/src/config/loader.ts +183 -183
- package/src/config/models.ts +32 -32
- package/src/config/platform-schema.ts +192 -192
- package/src/config/schema/agent-definitions.ts +5 -5
- package/src/config/schema/agent-names.ts +66 -66
- package/src/config/schema/agent-overrides.ts +95 -95
- package/src/config/schema/babysitting.ts +7 -7
- package/src/config/schema/background-task.ts +29 -29
- package/src/config/schema/bob-agent.ts +11 -11
- package/src/config/schema/bob.ts +17 -17
- package/src/config/schema/browser-automation.ts +24 -24
- package/src/config/schema/categories.ts +45 -45
- package/src/config/schema/claude-code.ts +13 -13
- package/src/config/schema/commands.ts +14 -14
- package/src/config/schema/comment-checker.ts +8 -8
- package/src/config/schema/dynamic-context-pruning.ts +53 -53
- package/src/config/schema/experimental.ts +27 -27
- package/src/config/schema/fallback-models.ts +31 -31
- package/src/config/schema/fast-apply.ts +14 -14
- package/src/config/schema/git-env-prefix.ts +28 -28
- package/src/config/schema/git-master.ts +14 -14
- package/src/config/schema/hooks.ts +61 -61
- package/src/config/schema/index.ts +52 -52
- package/src/config/schema/internal/permission.ts +20 -20
- package/src/config/schema/model-capabilities.ts +10 -10
- package/src/config/schema/notification.ts +8 -8
- package/src/config/schema/oh-my-opencode-config.ts +90 -90
- package/src/config/schema/openclaw.ts +50 -50
- package/src/config/schema/ralph-loop.ts +11 -11
- package/src/config/schema/runtime-fallback.ts +18 -18
- package/src/config/schema/skills.ts +39 -39
- package/src/config/schema/start-work.ts +7 -7
- package/src/config/schema/tmux.ts +28 -28
- package/src/config/schema/websearch.ts +15 -15
- package/src/config/types.ts +174 -174
- package/src/create-hooks.ts +93 -93
- package/src/create-managers.ts +116 -116
- package/src/create-runtime-tmux-config.ts +18 -18
- package/src/create-tools.ts +53 -53
- package/src/features/background-agent/AGENTS.md +56 -56
- package/src/features/background-agent/abort-with-timeout.ts +35 -35
- package/src/features/background-agent/background-task-notification-template.ts +74 -74
- package/src/features/background-agent/compaction-aware-message-resolver.ts +164 -164
- package/src/features/background-agent/concurrency.ts +137 -137
- package/src/features/background-agent/constants.ts +58 -58
- package/src/features/background-agent/duration-formatter.ts +14 -14
- package/src/features/background-agent/error-classifier.ts +83 -83
- package/src/features/background-agent/fallback-retry-handler.ts +134 -134
- package/src/features/background-agent/index.ts +2 -2
- package/src/features/background-agent/loop-detector.ts +102 -102
- package/src/features/background-agent/manager.ts +2220 -2220
- package/src/features/background-agent/opencode-client.ts +3 -3
- package/src/features/background-agent/process-cleanup.ts +98 -98
- package/src/features/background-agent/remove-task-toast-tracking.ts +8 -8
- package/src/features/background-agent/session-existence.ts +57 -57
- package/src/features/background-agent/session-idle-event-handler.ts +93 -93
- package/src/features/background-agent/session-status-classifier.ts +20 -20
- package/src/features/background-agent/spawner/parent-directory-resolver.ts +24 -24
- package/src/features/background-agent/spawner.ts +327 -327
- package/src/features/background-agent/state.ts +199 -199
- package/src/features/background-agent/subagent-spawn-limits.ts +97 -97
- package/src/features/background-agent/task-history.ts +79 -79
- package/src/features/background-agent/task-poller.ts +225 -225
- package/src/features/background-agent/types.ts +100 -100
- package/src/features/boulder-state/constants.ts +13 -13
- package/src/features/boulder-state/index.ts +4 -4
- package/src/features/boulder-state/storage.ts +336 -336
- package/src/features/boulder-state/top-level-task.ts +78 -78
- package/src/features/boulder-state/types.ts +61 -61
- package/src/features/builtin-commands/commands.ts +143 -143
- package/src/features/builtin-commands/index.ts +2 -2
- package/src/features/builtin-commands/templates/handoff.ts +177 -177
- package/src/features/builtin-commands/templates/init-deep.ts +305 -305
- package/src/features/builtin-commands/templates/ralph-loop.ts +66 -66
- package/src/features/builtin-commands/templates/refactor.ts +619 -619
- package/src/features/builtin-commands/templates/remove-ai-slops.ts +96 -96
- package/src/features/builtin-commands/templates/start-work.ts +128 -128
- package/src/features/builtin-commands/templates/stop-continuation.ts +13 -13
- package/src/features/builtin-commands/types.ts +9 -9
- package/src/features/builtin-skills/index.ts +2 -2
- package/src/features/builtin-skills/materialize.ts +338 -338
- package/src/features/builtin-skills/skills/ai-slop-remover.ts +145 -145
- package/src/features/builtin-skills/skills/dev-browser.ts +221 -221
- package/src/features/builtin-skills/skills/frontend-ui-ux.ts +79 -79
- package/src/features/builtin-skills/skills/git-master-sections/commit-workflow.ts +509 -509
- package/src/features/builtin-skills/skills/git-master-sections/history-search-workflow.ts +229 -229
- package/src/features/builtin-skills/skills/git-master-sections/overview.ts +64 -64
- package/src/features/builtin-skills/skills/git-master-sections/quick-reference.ts +86 -86
- package/src/features/builtin-skills/skills/git-master-sections/rebase-workflow.ts +181 -181
- package/src/features/builtin-skills/skills/git-master-skill-metadata.ts +4 -4
- package/src/features/builtin-skills/skills/git-master.ts +28 -28
- package/src/features/builtin-skills/skills/index.ts +7 -7
- package/src/features/builtin-skills/skills/playwright-cli.ts +268 -268
- package/src/features/builtin-skills/skills/playwright.ts +466 -466
- package/src/features/builtin-skills/skills/review-work.ts +536 -536
- package/src/features/builtin-skills/skills.ts +39 -39
- package/src/features/builtin-skills/types.ts +16 -16
- package/src/features/claude-code-agent-loader/agent-definitions-loader.ts +87 -87
- package/src/features/claude-code-agent-loader/claude-model-mapper.ts +53 -53
- package/src/features/claude-code-agent-loader/index.ts +5 -5
- package/src/features/claude-code-agent-loader/json-agent-loader.ts +53 -53
- package/src/features/claude-code-agent-loader/loader.ts +86 -86
- package/src/features/claude-code-agent-loader/opencode-config-agents-reader.ts +125 -125
- package/src/features/claude-code-agent-loader/types.ts +31 -31
- package/src/features/claude-code-command-loader/index.ts +2 -2
- package/src/features/claude-code-command-loader/loader.ts +169 -169
- package/src/features/claude-code-command-loader/types.ts +46 -46
- package/src/features/claude-code-mcp-loader/configure-allowed-env-vars.ts +48 -48
- package/src/features/claude-code-mcp-loader/env-expander.ts +51 -51
- package/src/features/claude-code-mcp-loader/index.ts +12 -12
- package/src/features/claude-code-mcp-loader/loader.ts +156 -156
- package/src/features/claude-code-mcp-loader/scope-filter.ts +17 -17
- package/src/features/claude-code-mcp-loader/transformer.ts +57 -57
- package/src/features/claude-code-mcp-loader/types.ts +51 -51
- package/src/features/claude-code-plugin-loader/agent-loader.ts +59 -59
- package/src/features/claude-code-plugin-loader/command-loader.ts +53 -53
- package/src/features/claude-code-plugin-loader/discovery.ts +251 -251
- package/src/features/claude-code-plugin-loader/hook-loader.ts +26 -26
- package/src/features/claude-code-plugin-loader/index.ts +10 -10
- package/src/features/claude-code-plugin-loader/loader.ts +134 -134
- package/src/features/claude-code-plugin-loader/mcp-server-loader.ts +59 -59
- package/src/features/claude-code-plugin-loader/plugin-path-resolver.ts +23 -23
- package/src/features/claude-code-plugin-loader/scope-filter.ts +29 -29
- package/src/features/claude-code-plugin-loader/skill-loader.ts +62 -62
- package/src/features/claude-code-plugin-loader/types.ts +255 -255
- package/src/features/claude-code-session-state/index.ts +1 -1
- package/src/features/claude-code-session-state/state.ts +154 -154
- package/src/features/claude-tasks/session-storage.ts +52 -52
- package/src/features/claude-tasks/storage.ts +169 -169
- package/src/features/claude-tasks/types.ts +20 -20
- package/src/features/context-injector/collector.ts +91 -91
- package/src/features/context-injector/index.ts +14 -14
- package/src/features/context-injector/injector.ts +167 -167
- package/src/features/context-injector/types.ts +91 -91
- package/src/features/hook-message-injector/constants.ts +1 -1
- package/src/features/hook-message-injector/index.ts +11 -11
- package/src/features/hook-message-injector/injector.ts +437 -437
- package/src/features/hook-message-injector/types.ts +49 -49
- package/src/features/mcp-oauth/AGENTS.md +54 -54
- package/src/features/mcp-oauth/callback-server.ts +106 -106
- package/src/features/mcp-oauth/dcr.ts +98 -98
- package/src/features/mcp-oauth/discovery.ts +134 -134
- package/src/features/mcp-oauth/oauth-authorization-flow.ts +150 -150
- package/src/features/mcp-oauth/provider.ts +215 -215
- package/src/features/mcp-oauth/refresh-mutex.ts +58 -58
- package/src/features/mcp-oauth/resource-indicator.ts +16 -16
- package/src/features/mcp-oauth/schema.ts +8 -8
- package/src/features/mcp-oauth/step-up.ts +79 -79
- package/src/features/mcp-oauth/storage.ts +155 -155
- package/src/features/opencode-skill-loader/AGENTS.md +59 -59
- package/src/features/opencode-skill-loader/allowed-tools-parser.ts +9 -9
- package/src/features/opencode-skill-loader/async-loader.ts +213 -213
- package/src/features/opencode-skill-loader/blocking.ts +62 -62
- package/src/features/opencode-skill-loader/config-source-discovery.ts +114 -114
- package/src/features/opencode-skill-loader/discover-worker.ts +56 -56
- package/src/features/opencode-skill-loader/git-master-template-injection.ts +150 -150
- package/src/features/opencode-skill-loader/index.ts +17 -17
- package/src/features/opencode-skill-loader/loaded-skill-from-path.ts +73 -73
- package/src/features/opencode-skill-loader/loaded-skill-template-extractor.ts +16 -16
- package/src/features/opencode-skill-loader/loader.ts +172 -172
- package/src/features/opencode-skill-loader/merger/builtin-skill-converter.ts +26 -26
- package/src/features/opencode-skill-loader/merger/config-skill-entry-loader.ts +117 -117
- package/src/features/opencode-skill-loader/merger/scope-priority.ts +10 -10
- package/src/features/opencode-skill-loader/merger/skill-definition-merger.ts +31 -31
- package/src/features/opencode-skill-loader/merger/skills-config-normalizer.ts +19 -19
- package/src/features/opencode-skill-loader/merger.ts +96 -96
- package/src/features/opencode-skill-loader/skill-content.ts +11 -11
- package/src/features/opencode-skill-loader/skill-deduplication.ts +13 -13
- package/src/features/opencode-skill-loader/skill-definition-record.ts +11 -11
- package/src/features/opencode-skill-loader/skill-directory-loader.ts +112 -112
- package/src/features/opencode-skill-loader/skill-discovery.ts +76 -76
- package/src/features/opencode-skill-loader/skill-mcp-config.ts +45 -45
- package/src/features/opencode-skill-loader/skill-resolution-options.ts +9 -9
- package/src/features/opencode-skill-loader/skill-template-resolver.ts +97 -97
- package/src/features/opencode-skill-loader/types.ts +38 -38
- package/src/features/run-continuation-state/constants.ts +1 -1
- package/src/features/run-continuation-state/index.ts +3 -3
- package/src/features/run-continuation-state/storage.ts +80 -80
- package/src/features/run-continuation-state/types.ts +15 -15
- package/src/features/skill-mcp-manager/AGENTS.md +111 -111
- package/src/features/skill-mcp-manager/cleanup.ts +153 -153
- package/src/features/skill-mcp-manager/connection-type.ts +26 -26
- package/src/features/skill-mcp-manager/connection.ts +146 -146
- package/src/features/skill-mcp-manager/env-cleaner.ts +59 -59
- package/src/features/skill-mcp-manager/error-redaction.ts +47 -47
- package/src/features/skill-mcp-manager/http-client.ts +126 -126
- package/src/features/skill-mcp-manager/index.ts +2 -2
- package/src/features/skill-mcp-manager/manager.ts +178 -178
- package/src/features/skill-mcp-manager/oauth-handler.ts +160 -160
- package/src/features/skill-mcp-manager/stdio-client.ts +112 -112
- package/src/features/skill-mcp-manager/types.ts +96 -96
- package/src/features/task-toast-manager/index.ts +2 -2
- package/src/features/task-toast-manager/manager.ts +251 -251
- package/src/features/task-toast-manager/types.ts +29 -29
- package/src/features/tmux-subagent/action-executor-core.ts +82 -82
- package/src/features/tmux-subagent/action-executor.ts +137 -137
- package/src/features/tmux-subagent/cleanup.ts +42 -42
- package/src/features/tmux-subagent/decision-engine.ts +22 -22
- package/src/features/tmux-subagent/event-handlers.ts +6 -6
- package/src/features/tmux-subagent/grid-planning.ts +137 -137
- package/src/features/tmux-subagent/index.ts +16 -16
- package/src/features/tmux-subagent/manager.ts +969 -969
- package/src/features/tmux-subagent/oldest-agent-pane.ts +37 -37
- package/src/features/tmux-subagent/pane-split-availability.ts +77 -77
- package/src/features/tmux-subagent/pane-state-parser.ts +135 -135
- package/src/features/tmux-subagent/pane-state-querier.ts +76 -76
- package/src/features/tmux-subagent/polling-constants.ts +6 -6
- package/src/features/tmux-subagent/polling-manager.ts +167 -167
- package/src/features/tmux-subagent/polling.ts +183 -183
- package/src/features/tmux-subagent/session-created-event.ts +44 -44
- package/src/features/tmux-subagent/session-created-handler.ts +175 -175
- package/src/features/tmux-subagent/session-deleted-handler.ts +50 -50
- package/src/features/tmux-subagent/session-message-count.ts +3 -3
- package/src/features/tmux-subagent/session-ready-waiter.ts +44 -44
- package/src/features/tmux-subagent/session-status-parser.ts +17 -17
- package/src/features/tmux-subagent/spawn-action-decider.ts +147 -147
- package/src/features/tmux-subagent/spawn-target-finder.ts +146 -146
- package/src/features/tmux-subagent/tmux-grid-constants.ts +57 -57
- package/src/features/tmux-subagent/tracked-session-state.ts +29 -29
- package/src/features/tmux-subagent/types.ts +54 -54
- package/src/features/tool-metadata-store/index.ts +7 -7
- package/src/features/tool-metadata-store/store.ts +84 -84
- package/src/hooks/agent-usage-reminder/constants.ts +52 -52
- package/src/hooks/agent-usage-reminder/hook.ts +134 -134
- package/src/hooks/agent-usage-reminder/index.ts +1 -1
- package/src/hooks/agent-usage-reminder/storage.ts +42 -42
- package/src/hooks/agent-usage-reminder/types.ts +6 -6
- package/src/hooks/anthropic-context-window-limit-recovery/AGENTS.md +49 -49
- package/src/hooks/anthropic-context-window-limit-recovery/aggressive-truncation-strategy.ts +87 -87
- package/src/hooks/anthropic-context-window-limit-recovery/client.ts +21 -21
- package/src/hooks/anthropic-context-window-limit-recovery/deduplication-recovery.ts +77 -77
- package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.ts +199 -199
- package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery.ts +149 -149
- package/src/hooks/anthropic-context-window-limit-recovery/executor.ts +83 -83
- package/src/hooks/anthropic-context-window-limit-recovery/index.ts +8 -8
- package/src/hooks/anthropic-context-window-limit-recovery/message-builder.ts +190 -190
- package/src/hooks/anthropic-context-window-limit-recovery/message-storage-directory.ts +40 -40
- package/src/hooks/anthropic-context-window-limit-recovery/parser.ts +209 -209
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +189 -189
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-tool-output-truncation.ts +142 -142
- package/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +44 -44
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.ts +119 -119
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.ts +193 -193
- package/src/hooks/anthropic-context-window-limit-recovery/recovery-strategy.ts +2 -2
- package/src/hooks/anthropic-context-window-limit-recovery/session-timeout-map.ts +20 -20
- package/src/hooks/anthropic-context-window-limit-recovery/state.ts +78 -78
- package/src/hooks/anthropic-context-window-limit-recovery/storage-paths.ts +6 -6
- package/src/hooks/anthropic-context-window-limit-recovery/storage.ts +18 -18
- package/src/hooks/anthropic-context-window-limit-recovery/summarize-retry-strategy.ts +218 -218
- package/src/hooks/anthropic-context-window-limit-recovery/target-token-truncation.ts +196 -196
- package/src/hooks/anthropic-context-window-limit-recovery/tool-part-types.ts +38 -38
- package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage-sdk.ts +123 -123
- package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage.ts +119 -119
- package/src/hooks/anthropic-context-window-limit-recovery/types.ts +44 -44
- package/src/hooks/anthropic-effort/hook.ts +93 -93
- package/src/hooks/anthropic-effort/index.ts +1 -1
- package/src/hooks/auto-slash-command/constants.ts +12 -12
- package/src/hooks/auto-slash-command/detector.ts +88 -88
- package/src/hooks/auto-slash-command/executor.ts +165 -165
- package/src/hooks/auto-slash-command/hook.ts +238 -238
- package/src/hooks/auto-slash-command/index.ts +7 -7
- package/src/hooks/auto-slash-command/processed-command-store.ts +74 -74
- package/src/hooks/auto-slash-command/types.ts +42 -42
- package/src/hooks/background-notification/hook.ts +54 -54
- package/src/hooks/background-notification/index.ts +2 -2
- package/src/hooks/background-notification/types.ts +5 -5
- package/src/hooks/bash-file-read-guard.ts +44 -44
- package/src/hooks/category-skill-reminder/formatter.ts +37 -37
- package/src/hooks/category-skill-reminder/hook.ts +142 -142
- package/src/hooks/category-skill-reminder/index.ts +1 -1
- package/src/hooks/claude-code-hooks/AGENTS.md +41 -41
- package/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts +28 -28
- package/src/hooks/claude-code-hooks/config-loader.ts +151 -151
- package/src/hooks/claude-code-hooks/config.ts +147 -147
- package/src/hooks/claude-code-hooks/dispatch-hook.ts +27 -27
- package/src/hooks/claude-code-hooks/execute-http-hook.ts +116 -116
- package/src/hooks/claude-code-hooks/handlers/chat-message-handler.ts +140 -140
- package/src/hooks/claude-code-hooks/handlers/pre-compact-handler.ts +41 -41
- package/src/hooks/claude-code-hooks/handlers/session-event-handler.ts +137 -137
- package/src/hooks/claude-code-hooks/handlers/tool-execute-after-handler.ts +160 -160
- package/src/hooks/claude-code-hooks/handlers/tool-execute-before-handler.ts +93 -93
- package/src/hooks/claude-code-hooks/index.ts +1 -1
- package/src/hooks/claude-code-hooks/plugin-config.ts +12 -12
- package/src/hooks/claude-code-hooks/post-tool-use.ts +195 -195
- package/src/hooks/claude-code-hooks/pre-compact.ts +105 -105
- package/src/hooks/claude-code-hooks/pre-tool-use.ts +168 -168
- package/src/hooks/claude-code-hooks/session-hook-state.ts +17 -17
- package/src/hooks/claude-code-hooks/stop.ts +118 -118
- package/src/hooks/claude-code-hooks/todo.ts +76 -76
- package/src/hooks/claude-code-hooks/tool-input-cache.ts +82 -82
- package/src/hooks/claude-code-hooks/transcript.ts +248 -248
- package/src/hooks/claude-code-hooks/types.ts +214 -214
- package/src/hooks/claude-code-hooks/user-prompt-submit.ts +121 -121
- package/src/hooks/comment-checker/cli-runner.ts +127 -127
- package/src/hooks/comment-checker/cli.ts +269 -269
- package/src/hooks/comment-checker/downloader.ts +170 -170
- package/src/hooks/comment-checker/hook.ts +192 -192
- package/src/hooks/comment-checker/index.ts +1 -1
- package/src/hooks/comment-checker/pending-calls.ts +45 -45
- package/src/hooks/comment-checker/types.ts +33 -33
- package/src/hooks/compaction-context-injector/compaction-context-prompt.ts +56 -56
- package/src/hooks/compaction-context-injector/constants.ts +5 -5
- package/src/hooks/compaction-context-injector/hook.ts +164 -164
- package/src/hooks/compaction-context-injector/index.ts +1 -1
- package/src/hooks/compaction-context-injector/recovery-prompt-config.ts +77 -77
- package/src/hooks/compaction-context-injector/recovery.ts +163 -163
- package/src/hooks/compaction-context-injector/session-id.ts +8 -8
- package/src/hooks/compaction-context-injector/session-prompt-config-resolver.ts +120 -120
- package/src/hooks/compaction-context-injector/tail-monitor.ts +52 -52
- package/src/hooks/compaction-context-injector/types.ts +25 -25
- package/src/hooks/compaction-context-injector/validated-model.ts +47 -47
- package/src/hooks/compaction-todo-preserver/hook.ts +127 -127
- package/src/hooks/compaction-todo-preserver/index.ts +2 -2
- package/src/hooks/context-window-monitor.ts +113 -113
- package/src/hooks/delegate-task-retry/guidance.ts +45 -45
- package/src/hooks/delegate-task-retry/hook.ts +22 -22
- package/src/hooks/delegate-task-retry/index.ts +4 -4
- package/src/hooks/delegate-task-retry/patterns.ts +77 -77
- package/src/hooks/directory-agents-injector/constants.ts +7 -7
- package/src/hooks/directory-agents-injector/finder.ts +38 -38
- package/src/hooks/directory-agents-injector/hook.ts +80 -80
- package/src/hooks/directory-agents-injector/index.ts +1 -1
- package/src/hooks/directory-agents-injector/injector.ts +59 -59
- package/src/hooks/directory-agents-injector/storage.ts +8 -8
- package/src/hooks/directory-readme-injector/constants.ts +7 -7
- package/src/hooks/directory-readme-injector/finder.ts +33 -33
- package/src/hooks/directory-readme-injector/hook.ts +80 -80
- package/src/hooks/directory-readme-injector/index.ts +1 -1
- package/src/hooks/directory-readme-injector/injector.ts +59 -59
- package/src/hooks/directory-readme-injector/storage.ts +8 -8
- package/src/hooks/edit-error-recovery/hook.ts +58 -58
- package/src/hooks/edit-error-recovery/index.ts +5 -5
- package/src/hooks/empty-task-response-detector.ts +27 -27
- package/src/hooks/fast-apply/hook.ts +11 -11
- package/src/hooks/fast-apply/index.ts +1 -1
- package/src/hooks/fast-apply/ollama-client.ts +53 -53
- package/src/hooks/fast-apply/tool-execute-before-handler.ts +86 -86
- package/src/hooks/guard/AGENTS.md +64 -64
- package/src/hooks/guard/background-launch-session-tracking.ts +97 -97
- package/src/hooks/guard/bob-path.ts +8 -8
- package/src/hooks/guard/boulder-continuation-injector.ts +109 -109
- package/src/hooks/guard/boulder-session-lineage.ts +44 -44
- package/src/hooks/guard/event-handler.ts +104 -104
- package/src/hooks/guard/final-wave-approval-gate.ts +47 -47
- package/src/hooks/guard/final-wave-plan-state.ts +60 -60
- package/src/hooks/guard/guard-hook.ts +27 -27
- package/src/hooks/guard/hook-name.ts +1 -1
- package/src/hooks/guard/idle-event.ts +341 -341
- package/src/hooks/guard/index.ts +3 -3
- package/src/hooks/guard/is-abort-error.ts +20 -20
- package/src/hooks/guard/recent-model-resolver.ts +89 -89
- package/src/hooks/guard/resolve-active-boulder-session.ts +29 -29
- package/src/hooks/guard/session-last-agent.ts +153 -153
- package/src/hooks/guard/subagent-session-id.ts +54 -54
- package/src/hooks/guard/system-reminder-templates.ts +249 -249
- package/src/hooks/guard/task-context.ts +45 -45
- package/src/hooks/guard/tool-execute-after.ts +209 -209
- package/src/hooks/guard/tool-execute-before.ts +102 -102
- package/src/hooks/guard/tsconfig.json +9 -9
- package/src/hooks/guard/types.ts +45 -45
- package/src/hooks/guard/verification-reminders.ts +197 -197
- package/src/hooks/guard/write-edit-tool-policy.ts +5 -5
- package/src/hooks/hashline-edit-diff-enhancer/hook.ts +106 -106
- package/src/hooks/hashline-read-enhancer/hook.ts +193 -193
- package/src/hooks/hashline-read-enhancer/index.ts +1 -1
- package/src/hooks/index.ts +58 -58
- package/src/hooks/interactive-bash-session/constants.ts +13 -13
- package/src/hooks/interactive-bash-session/hook.ts +125 -125
- package/src/hooks/interactive-bash-session/index.ts +3 -3
- package/src/hooks/interactive-bash-session/interactive-bash-session-tracker.ts +119 -119
- package/src/hooks/interactive-bash-session/parser.ts +118 -118
- package/src/hooks/interactive-bash-session/state-manager.ts +35 -35
- package/src/hooks/interactive-bash-session/storage.ts +59 -59
- package/src/hooks/interactive-bash-session/tmux-command-parser.ts +125 -125
- package/src/hooks/interactive-bash-session/types.ts +11 -11
- package/src/hooks/json-error-recovery/hook.ts +58 -58
- package/src/hooks/json-error-recovery/index.ts +6 -6
- package/src/hooks/keyword-detector/AGENTS.md +57 -57
- package/src/hooks/keyword-detector/analyze/default.ts +28 -28
- package/src/hooks/keyword-detector/analyze/index.ts +1 -1
- package/src/hooks/keyword-detector/constants.ts +45 -45
- package/src/hooks/keyword-detector/detector.ts +53 -53
- package/src/hooks/keyword-detector/hook.ts +143 -143
- package/src/hooks/keyword-detector/index.ts +5 -5
- package/src/hooks/keyword-detector/search/default.ts +20 -20
- package/src/hooks/keyword-detector/search/index.ts +1 -1
- package/src/hooks/keyword-detector/types.ts +4 -4
- package/src/hooks/keyword-detector/ultrawork/default.ts +302 -302
- package/src/hooks/keyword-detector/ultrawork/gemini.ts +290 -290
- package/src/hooks/keyword-detector/ultrawork/gpt.ts +173 -173
- package/src/hooks/keyword-detector/ultrawork/index.ts +56 -56
- package/src/hooks/keyword-detector/ultrawork/planner.ts +140 -140
- package/src/hooks/keyword-detector/ultrawork/source-detector.ts +65 -65
- package/src/hooks/legacy-plugin-toast/auto-migrate-runner.ts +2 -2
- package/src/hooks/legacy-plugin-toast/auto-migrate.ts +64 -64
- package/src/hooks/legacy-plugin-toast/hook.ts +68 -68
- package/src/hooks/legacy-plugin-toast/index.ts +1 -1
- package/src/hooks/legacy-plugin-toast/plugin-entry-migrator.ts +1 -1
- package/src/hooks/model-fallback/chat-message-fallback-handler.ts +74 -74
- package/src/hooks/model-fallback/hook.ts +201 -201
- package/src/hooks/model-fallback/next-fallback.ts +84 -84
- package/src/hooks/no-bob-gpt/hook.ts +56 -56
- package/src/hooks/no-bob-gpt/index.ts +1 -1
- package/src/hooks/no-coder-non-gpt/hook.ts +67 -67
- package/src/hooks/no-coder-non-gpt/index.ts +1 -1
- package/src/hooks/non-interactive-env/constants.ts +70 -70
- package/src/hooks/non-interactive-env/detector.ts +19 -19
- package/src/hooks/non-interactive-env/index.ts +5 -5
- package/src/hooks/non-interactive-env/non-interactive-env-hook.ts +73 -73
- package/src/hooks/non-interactive-env/types.ts +3 -3
- package/src/hooks/preemptive-compaction-degradation-monitor.ts +212 -212
- package/src/hooks/preemptive-compaction-no-text-tail.ts +70 -70
- package/src/hooks/preemptive-compaction.ts +218 -218
- package/src/hooks/question-label-truncator/hook.ts +62 -62
- package/src/hooks/question-label-truncator/index.ts +1 -1
- package/src/hooks/ralph-loop/AGENTS.md +62 -62
- package/src/hooks/ralph-loop/command-arguments.ts +30 -30
- package/src/hooks/ralph-loop/completion-handler.ts +65 -65
- package/src/hooks/ralph-loop/completion-promise-detector-test-input.ts +23 -23
- package/src/hooks/ralph-loop/completion-promise-detector.ts +165 -165
- package/src/hooks/ralph-loop/constants.ts +7 -7
- package/src/hooks/ralph-loop/continuation-prompt-builder.ts +77 -77
- package/src/hooks/ralph-loop/continuation-prompt-injector.ts +91 -91
- package/src/hooks/ralph-loop/index.ts +6 -6
- package/src/hooks/ralph-loop/iteration-continuation.ts +64 -64
- package/src/hooks/ralph-loop/logician-verification-detector.ts +88 -88
- package/src/hooks/ralph-loop/loop-session-recovery.ts +33 -33
- package/src/hooks/ralph-loop/loop-state-controller.ts +178 -178
- package/src/hooks/ralph-loop/message-storage-directory.ts +1 -1
- package/src/hooks/ralph-loop/pending-verification-handler.ts +152 -152
- package/src/hooks/ralph-loop/ralph-loop-event-handler.ts +231 -231
- package/src/hooks/ralph-loop/ralph-loop-hook.ts +90 -90
- package/src/hooks/ralph-loop/session-event-handler.ts +56 -56
- package/src/hooks/ralph-loop/session-reset-strategy.ts +69 -69
- package/src/hooks/ralph-loop/storage.ts +164 -164
- package/src/hooks/ralph-loop/types.ts +25 -25
- package/src/hooks/ralph-loop/verification-failure-handler.ts +103 -103
- package/src/hooks/ralph-loop/with-timeout.ts +20 -20
- package/src/hooks/read-image-resizer/hook.ts +209 -209
- package/src/hooks/read-image-resizer/image-dimensions.ts +191 -191
- package/src/hooks/read-image-resizer/image-resizer.ts +191 -191
- package/src/hooks/read-image-resizer/index.ts +1 -1
- package/src/hooks/read-image-resizer/png-fallback-resizer.ts +359 -359
- package/src/hooks/read-image-resizer/types.ts +16 -16
- package/src/hooks/rules-injector/AGENTS.md +53 -53
- package/src/hooks/rules-injector/cache.ts +27 -27
- package/src/hooks/rules-injector/constants.ts +31 -31
- package/src/hooks/rules-injector/finder.ts +3 -3
- package/src/hooks/rules-injector/hook.ts +94 -94
- package/src/hooks/rules-injector/index.ts +2 -2
- package/src/hooks/rules-injector/injector.ts +189 -189
- package/src/hooks/rules-injector/matcher.ts +63 -63
- package/src/hooks/rules-injector/output-path.ts +22 -22
- package/src/hooks/rules-injector/parser.ts +211 -211
- package/src/hooks/rules-injector/project-root-finder.ts +36 -36
- package/src/hooks/rules-injector/rule-distance.ts +53 -53
- package/src/hooks/rules-injector/rule-file-finder.ts +139 -139
- package/src/hooks/rules-injector/rule-file-scanner.ts +55 -55
- package/src/hooks/rules-injector/storage.ts +59 -59
- package/src/hooks/rules-injector/types.ts +57 -57
- package/src/hooks/runtime-fallback/AGENTS.md +102 -102
- package/src/hooks/runtime-fallback/agent-resolver.ts +50 -50
- package/src/hooks/runtime-fallback/auto-retry-signal.ts +32 -32
- package/src/hooks/runtime-fallback/auto-retry.ts +228 -228
- package/src/hooks/runtime-fallback/chat-message-handler.ts +62 -62
- package/src/hooks/runtime-fallback/constants.ts +47 -47
- package/src/hooks/runtime-fallback/error-classifier.ts +183 -183
- package/src/hooks/runtime-fallback/event-handler.ts +213 -213
- package/src/hooks/runtime-fallback/fallback-bootstrap-model.ts +63 -63
- package/src/hooks/runtime-fallback/fallback-models.ts +86 -86
- package/src/hooks/runtime-fallback/fallback-retry-dispatcher.ts +55 -55
- package/src/hooks/runtime-fallback/fallback-state.ts +74 -74
- package/src/hooks/runtime-fallback/hook.ts +87 -87
- package/src/hooks/runtime-fallback/index.ts +2 -2
- package/src/hooks/runtime-fallback/last-user-retry-parts.ts +20 -20
- package/src/hooks/runtime-fallback/message-update-handler.ts +168 -168
- package/src/hooks/runtime-fallback/retry-model-payload.ts +30 -30
- package/src/hooks/runtime-fallback/session-messages.ts +38 -38
- package/src/hooks/runtime-fallback/session-status-handler.ts +126 -126
- package/src/hooks/runtime-fallback/types.ts +77 -77
- package/src/hooks/runtime-fallback/visible-assistant-response.ts +80 -80
- package/src/hooks/session-notification-content.ts +145 -145
- package/src/hooks/session-notification-formatting.ts +25 -25
- package/src/hooks/session-notification-scheduler.ts +188 -188
- package/src/hooks/session-notification-sender.ts +117 -117
- package/src/hooks/session-notification-utils.ts +80 -80
- package/src/hooks/session-notification.ts +219 -219
- package/src/hooks/session-recovery/AGENTS.md +59 -59
- package/src/hooks/session-recovery/constants.ts +5 -5
- package/src/hooks/session-recovery/detect-error-type.ts +102 -102
- package/src/hooks/session-recovery/hook.ts +166 -166
- package/src/hooks/session-recovery/index.ts +7 -7
- package/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +201 -201
- package/src/hooks/session-recovery/recover-thinking-block-order.ts +137 -137
- package/src/hooks/session-recovery/recover-thinking-disabled-violation.ts +75 -75
- package/src/hooks/session-recovery/recover-tool-result-missing.ts +108 -108
- package/src/hooks/session-recovery/recover-unavailable-tool.ts +108 -108
- package/src/hooks/session-recovery/resume.ts +49 -49
- package/src/hooks/session-recovery/storage/empty-messages.ts +47 -47
- package/src/hooks/session-recovery/storage/empty-text.ts +118 -118
- package/src/hooks/session-recovery/storage/message-dir.ts +1 -1
- package/src/hooks/session-recovery/storage/messages-reader.ts +83 -83
- package/src/hooks/session-recovery/storage/orphan-thinking-search.ts +43 -43
- package/src/hooks/session-recovery/storage/part-content.ts +28 -28
- package/src/hooks/session-recovery/storage/part-id.ts +5 -5
- package/src/hooks/session-recovery/storage/parts-reader.ts +56 -56
- package/src/hooks/session-recovery/storage/text-part-injector.ts +63 -63
- package/src/hooks/session-recovery/storage/thinking-block-search.ts +42 -42
- package/src/hooks/session-recovery/storage/thinking-prepend.ts +223 -223
- package/src/hooks/session-recovery/storage/thinking-strip.ts +67 -67
- package/src/hooks/session-recovery/storage.ts +34 -34
- package/src/hooks/session-recovery/types.ts +101 -101
- package/src/hooks/session-todo-status.ts +20 -20
- package/src/hooks/shared/compaction-model-resolver.ts +34 -34
- package/src/hooks/shared/shared/compaction-model-resolver.ts +34 -34
- package/src/hooks/start-work/context-info-builder.ts +319 -319
- package/src/hooks/start-work/index.ts +4 -4
- package/src/hooks/start-work/parse-user-request.ts +32 -32
- package/src/hooks/start-work/start-work-hook.ts +135 -135
- package/src/hooks/start-work/worktree-block.ts +11 -11
- package/src/hooks/start-work/worktree-detector.ts +77 -77
- package/src/hooks/stop-continuation-guard/hook.ts +122 -122
- package/src/hooks/stop-continuation-guard/index.ts +2 -2
- package/src/hooks/strategist-md-only/agent-matcher.ts +5 -5
- package/src/hooks/strategist-md-only/agent-resolution.ts +70 -70
- package/src/hooks/strategist-md-only/constants.ts +78 -78
- package/src/hooks/strategist-md-only/hook.ts +82 -82
- package/src/hooks/strategist-md-only/index.ts +2 -2
- package/src/hooks/strategist-md-only/path-policy.ts +41 -41
- package/src/hooks/sub-notepad/constants.ts +29 -29
- package/src/hooks/sub-notepad/hook.ts +44 -44
- package/src/hooks/sub-notepad/index.ts +3 -3
- package/src/hooks/task-reminder/hook.ts +59 -59
- package/src/hooks/task-reminder/index.ts +1 -1
- package/src/hooks/task-resume-info/hook.ts +39 -39
- package/src/hooks/task-resume-info/index.ts +1 -1
- package/src/hooks/tasks-todowrite-disabler/constants.ts +30 -30
- package/src/hooks/tasks-todowrite-disabler/hook.ts +34 -34
- package/src/hooks/tasks-todowrite-disabler/index.ts +2 -2
- package/src/hooks/think-mode/detector.ts +59 -59
- package/src/hooks/think-mode/hook.ts +76 -76
- package/src/hooks/think-mode/index.ts +5 -5
- package/src/hooks/think-mode/switcher.ts +100 -100
- package/src/hooks/think-mode/types.ts +16 -16
- package/src/hooks/thinking-block-validator/hook.ts +181 -181
- package/src/hooks/thinking-block-validator/index.ts +1 -1
- package/src/hooks/todo-continuation-enforcer/AGENTS.md +65 -65
- package/src/hooks/todo-continuation-enforcer/abort-detection.ts +17 -17
- package/src/hooks/todo-continuation-enforcer/compaction-guard.ts +39 -39
- package/src/hooks/todo-continuation-enforcer/constants.ts +25 -25
- package/src/hooks/todo-continuation-enforcer/continuation-injection.ts +222 -222
- package/src/hooks/todo-continuation-enforcer/countdown.ts +86 -86
- package/src/hooks/todo-continuation-enforcer/handler.ts +99 -99
- package/src/hooks/todo-continuation-enforcer/idle-event.ts +225 -225
- package/src/hooks/todo-continuation-enforcer/index.ts +59 -59
- package/src/hooks/todo-continuation-enforcer/message-directory.ts +1 -1
- package/src/hooks/todo-continuation-enforcer/non-idle-events.ts +107 -107
- package/src/hooks/todo-continuation-enforcer/pending-question-detection.ts +40 -40
- package/src/hooks/todo-continuation-enforcer/resolve-message-info.ts +48 -48
- package/src/hooks/todo-continuation-enforcer/session-state.ts +283 -283
- package/src/hooks/todo-continuation-enforcer/stagnation-detection.ts +36 -36
- package/src/hooks/todo-continuation-enforcer/todo.ts +11 -11
- package/src/hooks/todo-continuation-enforcer/token-limit-detection.ts +38 -38
- package/src/hooks/todo-continuation-enforcer/types.ts +74 -74
- package/src/hooks/todo-description-override/description.ts +28 -28
- package/src/hooks/todo-description-override/hook.ts +14 -14
- package/src/hooks/todo-description-override/index.ts +1 -1
- package/src/hooks/tool-output-truncator.ts +66 -66
- package/src/hooks/tool-pair-validator/hook.ts +184 -184
- package/src/hooks/tool-pair-validator/index.ts +1 -1
- package/src/hooks/unstable-agent-babysitter/index.ts +9 -9
- package/src/hooks/unstable-agent-babysitter/task-message-analyzer.ts +110 -110
- package/src/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.ts +238 -238
- package/src/hooks/webfetch-redirect-guard/constants.ts +11 -11
- package/src/hooks/webfetch-redirect-guard/hook.ts +123 -123
- package/src/hooks/webfetch-redirect-guard/index.ts +1 -1
- package/src/hooks/webfetch-redirect-guard/redirect-resolution.ts +89 -89
- package/src/hooks/write-existing-file-guard/hook.ts +108 -108
- package/src/hooks/write-existing-file-guard/index.ts +1 -1
- package/src/hooks/write-existing-file-guard/session-read-permissions.ts +36 -36
- package/src/hooks/write-existing-file-guard/tool-execute-before-handler.ts +176 -176
- package/src/index.ts +284 -284
- package/src/internals/plugins/pty/LICENSE +21 -21
- package/src/internals/plugins/pty/constants.ts +7 -7
- package/src/internals/plugins/pty/plugin.ts +28 -28
- package/src/internals/plugins/pty/pty/buffer.ts +75 -75
- package/src/internals/plugins/pty/pty/formatters.ts +22 -22
- package/src/internals/plugins/pty/pty/manager.ts +175 -175
- package/src/internals/plugins/pty/pty/notification-manager.ts +75 -75
- package/src/internals/plugins/pty/pty/output-manager.ts +29 -29
- package/src/internals/plugins/pty/pty/permissions.ts +115 -115
- package/src/internals/plugins/pty/pty/session-lifecycle.ts +161 -161
- package/src/internals/plugins/pty/pty/tools/kill.ts +41 -41
- package/src/internals/plugins/pty/pty/tools/kill.txt +25 -25
- package/src/internals/plugins/pty/pty/tools/list.ts +25 -25
- package/src/internals/plugins/pty/pty/tools/list.txt +22 -22
- package/src/internals/plugins/pty/pty/tools/read.ts +234 -234
- package/src/internals/plugins/pty/pty/tools/read.txt +39 -39
- package/src/internals/plugins/pty/pty/tools/spawn.ts +71 -71
- package/src/internals/plugins/pty/pty/tools/spawn.txt +47 -47
- package/src/internals/plugins/pty/pty/tools/write.ts +96 -96
- package/src/internals/plugins/pty/pty/tools/write.txt +28 -28
- package/src/internals/plugins/pty/pty/types.ts +67 -67
- package/src/internals/plugins/pty/pty/utils.ts +21 -21
- package/src/internals/plugins/pty/pty/wildcard.ts +62 -62
- package/src/internals/plugins/pty/shared/constants.ts +7 -7
- package/src/internals/plugins/pty/types.ts +7 -7
- package/src/internals/plugins/subtask2/LICENSE +128 -128
- package/src/internals/plugins/subtask2/commands/index.ts +7 -7
- package/src/internals/plugins/subtask2/commands/loader.ts +39 -39
- package/src/internals/plugins/subtask2/commands/manifest.ts +64 -64
- package/src/internals/plugins/subtask2/commands/resolver.ts +28 -28
- package/src/internals/plugins/subtask2/core/plugin.ts +52 -52
- package/src/internals/plugins/subtask2/core/state.ts +764 -764
- package/src/internals/plugins/subtask2/features/auto.ts +57 -57
- package/src/internals/plugins/subtask2/features/index.ts +9 -9
- package/src/internals/plugins/subtask2/features/inline-subtasks.ts +205 -205
- package/src/internals/plugins/subtask2/features/parallel.ts +148 -148
- package/src/internals/plugins/subtask2/features/results.ts +48 -48
- package/src/internals/plugins/subtask2/features/returns.ts +273 -273
- package/src/internals/plugins/subtask2/features/turns.ts +190 -190
- package/src/internals/plugins/subtask2/hooks/command-hooks.ts +283 -283
- package/src/internals/plugins/subtask2/hooks/message-hooks.ts +603 -603
- package/src/internals/plugins/subtask2/hooks/session-idle-hook.ts +358 -358
- package/src/internals/plugins/subtask2/hooks/tool-hooks.ts +309 -309
- package/src/internals/plugins/subtask2/loop.ts +122 -122
- package/src/internals/plugins/subtask2/parsing/auto.ts +33 -33
- package/src/internals/plugins/subtask2/parsing/commands.ts +154 -154
- package/src/internals/plugins/subtask2/parsing/frontmatter.ts +20 -20
- package/src/internals/plugins/subtask2/parsing/index.ts +10 -10
- package/src/internals/plugins/subtask2/parsing/overrides.ts +68 -68
- package/src/internals/plugins/subtask2/parsing/parallel.ts +88 -88
- package/src/internals/plugins/subtask2/parsing/turns.ts +78 -78
- package/src/internals/plugins/subtask2/types.ts +41 -41
- package/src/internals/plugins/subtask2/utils/config.ts +100 -100
- package/src/internals/plugins/subtask2/utils/index.ts +7 -7
- package/src/internals/plugins/subtask2/utils/logger.ts +67 -67
- package/src/internals/plugins/subtask2/utils/prompts.ts +117 -117
- package/src/internals/plugins/websearch-cited/LICENSE +214 -214
- package/src/internals/plugins/websearch-cited/codex_prompt.txt +79 -79
- package/src/internals/plugins/websearch-cited/google.ts +749 -749
- package/src/internals/plugins/websearch-cited/index.ts +301 -301
- package/src/internals/plugins/websearch-cited/openai.ts +407 -407
- package/src/internals/plugins/websearch-cited/openrouter.ts +190 -190
- package/src/internals/plugins/websearch-cited/types.ts +7 -7
- package/src/lsp/index.ts +15 -15
- package/src/mcp/context7.ts +9 -9
- package/src/mcp/grep-app.ts +6 -6
- package/src/mcp/index.ts +87 -87
- package/src/mcp/omo-mcp-index.ts +35 -35
- package/src/mcp/types.ts +9 -9
- package/src/mcp/websearch.ts +44 -44
- package/src/permissions/index.ts +25 -25
- package/src/plugin/AGENTS.md +54 -54
- package/src/plugin/available-categories.ts +24 -24
- package/src/plugin/chat-headers.ts +141 -141
- package/src/plugin/chat-message.ts +309 -309
- package/src/plugin/chat-params.ts +182 -182
- package/src/plugin/command-execute-before.ts +80 -80
- package/src/plugin/event.ts +639 -639
- package/src/plugin/hooks/create-continuation-hooks.ts +128 -128
- package/src/plugin/hooks/create-core-hooks.ts +47 -47
- package/src/plugin/hooks/create-session-hooks.ts +286 -286
- package/src/plugin/hooks/create-skill-hooks.ts +50 -50
- package/src/plugin/hooks/create-tool-guard-hooks.ts +159 -159
- package/src/plugin/hooks/create-transform-hooks.ts +85 -85
- package/src/plugin/messages-transform.ts +28 -28
- package/src/plugin/normalize-tool-arg-schemas.ts +75 -75
- package/src/plugin/recent-synthetic-idles.ts +20 -20
- package/src/plugin/session-agent-resolver.ts +37 -37
- package/src/plugin/session-status-normalizer.ts +22 -22
- package/src/plugin/skill-context.ts +132 -132
- package/src/plugin/system-transform.ts +6 -6
- package/src/plugin/tool-execute-after.ts +178 -178
- package/src/plugin/tool-execute-before.ts +222 -222
- package/src/plugin/tool-registry.ts +282 -282
- package/src/plugin/types.ts +26 -26
- package/src/plugin/ultrawork-db-model-override.ts +142 -142
- package/src/plugin/ultrawork-model-override.ts +196 -196
- package/src/plugin/ultrawork-variant-availability.ts +51 -51
- package/src/plugin/unstable-agent-babysitter.ts +41 -41
- package/src/plugin-config.ts +314 -314
- package/src/plugin-dispose.ts +51 -51
- package/src/plugin-handlers/AGENTS.md +92 -92
- package/src/plugin-handlers/agent-config-handler.ts +502 -502
- package/src/plugin-handlers/agent-key-remapper.ts +39 -39
- package/src/plugin-handlers/agent-override-protection.ts +38 -38
- package/src/plugin-handlers/agent-priority-order.ts +63 -63
- package/src/plugin-handlers/category-config-resolver.ts +9 -9
- package/src/plugin-handlers/command-config-handler.ts +105 -105
- package/src/plugin-handlers/config-handler.ts +61 -61
- package/src/plugin-handlers/index.ts +10 -10
- package/src/plugin-handlers/mcp-config-handler.ts +205 -205
- package/src/plugin-handlers/plan-model-inheritance.ts +27 -27
- package/src/plugin-handlers/plugin-components-loader.ts +70 -70
- package/src/plugin-handlers/provider-config-handler.ts +73 -73
- package/src/plugin-handlers/strategist-agent-config-builder.ts +128 -128
- package/src/plugin-handlers/tool-config-handler.ts +193 -193
- package/src/plugin-interface.ts +83 -83
- package/src/plugin-state.ts +18 -18
- package/src/shared/AGENTS.md +54 -54
- package/src/shared/agent-display-names.ts +182 -182
- package/src/shared/agent-tool-restrictions.ts +80 -80
- package/src/shared/agent-variant.ts +101 -101
- package/src/shared/agents-config-dir.ts +23 -23
- package/src/shared/archive-entry-validator.ts +83 -83
- package/src/shared/background-output-consumption.ts +69 -69
- package/src/shared/binary-downloader.ts +127 -127
- package/src/shared/claude-config-dir.ts +16 -16
- package/src/shared/closure-protocol.ts +53 -53
- package/src/shared/command-executor/embedded-commands.ts +26 -26
- package/src/shared/command-executor/execute-command.ts +28 -28
- package/src/shared/command-executor/execute-hook-command.ts +129 -129
- package/src/shared/command-executor/home-directory.ts +5 -5
- package/src/shared/command-executor/resolve-commands-in-text.ts +49 -49
- package/src/shared/command-executor/shell-path.ts +27 -27
- package/src/shared/command-executor.ts +5 -5
- package/src/shared/compaction-agent-config-checkpoint.ts +42 -42
- package/src/shared/compaction-marker.ts +61 -61
- package/src/shared/config-errors.ts +18 -18
- package/src/shared/connected-providers-cache.ts +215 -215
- package/src/shared/contains-path.ts +50 -50
- package/src/shared/context-limit-resolver.ts +42 -42
- package/src/shared/data-path.ts +64 -64
- package/src/shared/deep-merge.ts +53 -53
- package/src/shared/disabled-tools.ts +19 -19
- package/src/shared/dynamic-truncator.ts +222 -222
- package/src/shared/external-plugin-detector.ts +139 -139
- package/src/shared/fallback-chain-from-models.ts +124 -124
- package/src/shared/fallback-model-availability.ts +102 -102
- package/src/shared/file-reference-resolver.ts +99 -99
- package/src/shared/file-utils.ts +34 -34
- package/src/shared/first-message-variant.ts +28 -28
- package/src/shared/frontmatter.ts +31 -31
- package/src/shared/git-worktree/collect-git-diff-stats.ts +56 -56
- package/src/shared/git-worktree/format-file-changes.ts +46 -46
- package/src/shared/git-worktree/index.ts +7 -7
- package/src/shared/git-worktree/parse-diff-numstat.ts +27 -27
- package/src/shared/git-worktree/parse-status-porcelain-line.ts +27 -27
- package/src/shared/git-worktree/parse-status-porcelain.ts +15 -15
- package/src/shared/git-worktree/types.ts +8 -8
- package/src/shared/hook-disabled.ts +22 -22
- package/src/shared/index.ts +80 -80
- package/src/shared/internal-initiator-marker.ts +18 -18
- package/src/shared/is-abort-error.ts +20 -20
- package/src/shared/json-file-cache-store.ts +98 -98
- package/src/shared/jsonc-parser.ts +98 -98
- package/src/shared/known-variants.ts +16 -16
- package/src/shared/legacy-plugin-warning.ts +68 -68
- package/src/shared/load-opencode-plugins.ts +60 -60
- package/src/shared/log-legacy-plugin-startup-warning.ts +46 -46
- package/src/shared/logger.ts +48 -48
- package/src/shared/merge-categories.ts +18 -18
- package/src/shared/migrate-legacy-config-file.ts +66 -66
- package/src/shared/migrate-legacy-plugin-entry.ts +75 -75
- package/src/shared/migration/agent-category.ts +60 -60
- package/src/shared/migration/agent-names.ts +100 -100
- package/src/shared/migration/config-migration.ts +210 -210
- package/src/shared/migration/hook-names.ts +40 -40
- package/src/shared/migration/migrations-sidecar.ts +92 -92
- package/src/shared/migration/model-versions.ts +50 -50
- package/src/shared/migration.ts +5 -5
- package/src/shared/model-availability.ts +294 -294
- package/src/shared/model-capabilities/bundled-snapshot.ts +15 -15
- package/src/shared/model-capabilities/get-model-capabilities.ts +140 -140
- package/src/shared/model-capabilities/index.ts +9 -9
- package/src/shared/model-capabilities/runtime-model-readers.ts +190 -190
- package/src/shared/model-capabilities/types.ts +80 -80
- package/src/shared/model-capabilities-cache.ts +213 -213
- package/src/shared/model-capability-aliases.ts +108 -108
- package/src/shared/model-capability-guardrails.ts +149 -149
- package/src/shared/model-capability-heuristics.ts +32 -32
- package/src/shared/model-error-classifier.ts +214 -214
- package/src/shared/model-format-normalizer.ts +20 -20
- package/src/shared/model-normalization.ts +8 -8
- package/src/shared/model-requirements.ts +26 -26
- package/src/shared/model-resolution-pipeline.ts +216 -216
- package/src/shared/model-resolution-types.ts +41 -41
- package/src/shared/model-resolver.ts +106 -106
- package/src/shared/model-sanitizer.ts +12 -12
- package/src/shared/model-settings-compatibility.ts +200 -200
- package/src/shared/model-suggestion-retry.ts +182 -182
- package/src/shared/normalize-sdk-response.ts +36 -36
- package/src/shared/opencode-command-dirs.ts +36 -36
- package/src/shared/opencode-config-dir-types.ts +15 -15
- package/src/shared/opencode-config-dir.ts +135 -135
- package/src/shared/opencode-http-api.ts +139 -139
- package/src/shared/opencode-message-dir.ts +29 -29
- package/src/shared/opencode-server-auth.ts +190 -190
- package/src/shared/opencode-storage-detection.ts +33 -33
- package/src/shared/opencode-storage-paths.ts +6 -6
- package/src/shared/opencode-version.ts +80 -80
- package/src/shared/parse-tools-config.ts +25 -25
- package/src/shared/pattern-matcher.ts +46 -46
- package/src/shared/permission-compat.ts +86 -86
- package/src/shared/plugin-command-discovery.ts +28 -28
- package/src/shared/plugin-entry-migrator.ts +21 -21
- package/src/shared/plugin-identity.ts +8 -8
- package/src/shared/port-utils.ts +48 -48
- package/src/shared/project-discovery-dirs.ts +101 -101
- package/src/shared/prompt-timeout-context.ts +49 -49
- package/src/shared/prompt-tools.ts +35 -35
- package/src/shared/provider-model-id-transform.ts +58 -58
- package/src/shared/question-denied-session-permission.ts +9 -9
- package/src/shared/record-type-guard.ts +3 -3
- package/src/shared/resolve-agent-definition-paths.ts +22 -22
- package/src/shared/retry-status-utils.ts +19 -19
- package/src/shared/runtime-plugin-config.ts +98 -98
- package/src/shared/safe-create-hook.ts +24 -24
- package/src/shared/session-category-registry.ts +27 -27
- package/src/shared/session-cursor.ts +108 -108
- package/src/shared/session-directory-resolver.ts +41 -41
- package/src/shared/session-injected-paths.ts +59 -59
- package/src/shared/session-model-state.ts +15 -15
- package/src/shared/session-prompt-params-helpers.ts +31 -31
- package/src/shared/session-prompt-params-state.ts +37 -37
- package/src/shared/session-tools-store.ts +18 -18
- package/src/shared/session-utils.ts +25 -25
- package/src/shared/shell-env.ts +175 -175
- package/src/shared/skill-path-resolver.ts +26 -26
- package/src/shared/snake-case.ts +44 -44
- package/src/shared/spawn-with-windows-hide.ts +84 -84
- package/src/shared/system-directive.ts +67 -67
- package/src/shared/task-system-enabled.ts +9 -9
- package/src/shared/tmux/constants.ts +12 -12
- package/src/shared/tmux/index.ts +3 -3
- package/src/shared/tmux/tmux-utils/environment.ts +13 -13
- package/src/shared/tmux/tmux-utils/layout.ts +96 -96
- package/src/shared/tmux/tmux-utils/pane-close.ts +48 -48
- package/src/shared/tmux/tmux-utils/pane-dimensions.ts +28 -28
- package/src/shared/tmux/tmux-utils/pane-replace.ts +73 -73
- package/src/shared/tmux/tmux-utils/pane-spawn.ts +94 -94
- package/src/shared/tmux/tmux-utils/server-health.ts +62 -62
- package/src/shared/tmux/tmux-utils/session-spawn.ts +145 -145
- package/src/shared/tmux/tmux-utils/window-spawn.ts +93 -93
- package/src/shared/tmux/tmux-utils.ts +15 -15
- package/src/shared/tmux/types.ts +4 -4
- package/src/shared/tool-name.ts +27 -27
- package/src/shared/truncate-description.ts +11 -11
- package/src/shared/vision-capable-models-cache.ts +17 -17
- package/src/shared/write-file-atomically.ts +31 -31
- package/src/shared/zip-entry-listing/powershell-zip-entry-listing.ts +99 -99
- package/src/shared/zip-entry-listing/python-zip-entry-listing.ts +55 -55
- package/src/shared/zip-entry-listing/read-zip-symlink-target.ts +23 -23
- package/src/shared/zip-entry-listing/tar-zip-entry-listing.ts +93 -93
- package/src/shared/zip-entry-listing/zipinfo-zip-entry-listing.ts +72 -72
- package/src/shared/zip-entry-listing.ts +13 -13
- package/src/shared/zip-extractor.ts +118 -118
- package/src/skills/index.ts +56 -56
- package/src/testing/module-mock-lifecycle.ts +143 -143
- package/src/tools/AGENTS.md +108 -108
- package/src/tools/ast-grep/cli-binary-path-resolution.ts +60 -60
- package/src/tools/ast-grep/cli.ts +177 -177
- package/src/tools/ast-grep/constants.ts +5 -5
- package/src/tools/ast-grep/downloader.ts +119 -119
- package/src/tools/ast-grep/environment-check.ts +89 -89
- package/src/tools/ast-grep/index.ts +5 -5
- package/src/tools/ast-grep/language-support.ts +63 -63
- package/src/tools/ast-grep/process-output-timeout.ts +28 -28
- package/src/tools/ast-grep/result-formatter.ts +102 -102
- package/src/tools/ast-grep/sg-cli-path.ts +102 -102
- package/src/tools/ast-grep/sg-compact-json-output.ts +54 -54
- package/src/tools/ast-grep/tools.ts +117 -117
- package/src/tools/ast-grep/types.ts +61 -61
- package/src/tools/background-task/AGENTS.md +53 -53
- package/src/tools/background-task/clients.ts +32 -32
- package/src/tools/background-task/constants.ts +9 -9
- package/src/tools/background-task/create-background-cancel.ts +115 -115
- package/src/tools/background-task/create-background-output.ts +159 -159
- package/src/tools/background-task/create-background-task.ts +126 -126
- package/src/tools/background-task/delay.ts +3 -3
- package/src/tools/background-task/full-session-format.ts +148 -148
- package/src/tools/background-task/index.ts +8 -8
- package/src/tools/background-task/message-dir.ts +1 -1
- package/src/tools/background-task/session-messages.ts +22 -22
- package/src/tools/background-task/task-result-format.ts +113 -113
- package/src/tools/background-task/task-status-format.ts +72 -72
- package/src/tools/background-task/time-format.ts +30 -30
- package/src/tools/background-task/tools.ts +11 -11
- package/src/tools/background-task/truncate-text.ts +4 -4
- package/src/tools/background-task/types.ts +72 -72
- package/src/tools/call-omo-agent/AGENTS.md +51 -51
- package/src/tools/call-omo-agent/agent-resolver.ts +64 -64
- package/src/tools/call-omo-agent/background-agent-executor.ts +91 -91
- package/src/tools/call-omo-agent/background-executor.ts +98 -98
- package/src/tools/call-omo-agent/completion-poller.ts +65 -65
- package/src/tools/call-omo-agent/constants.ts +23 -23
- package/src/tools/call-omo-agent/index.ts +3 -3
- package/src/tools/call-omo-agent/message-dir.ts +1 -1
- package/src/tools/call-omo-agent/message-processor.ts +86 -86
- package/src/tools/call-omo-agent/message-storage-directory.ts +1 -1
- package/src/tools/call-omo-agent/session-creator.ts +70 -70
- package/src/tools/call-omo-agent/subagent-session-creator.ts +74 -74
- package/src/tools/call-omo-agent/sync-executor.ts +148 -148
- package/src/tools/call-omo-agent/tool-context-with-metadata.ts +10 -10
- package/src/tools/call-omo-agent/tools.ts +192 -192
- package/src/tools/call-omo-agent/types.ts +34 -34
- package/src/tools/delegate-task/AGENTS.md +58 -58
- package/src/tools/delegate-task/anthropic-categories.ts +62 -62
- package/src/tools/delegate-task/available-models.ts +64 -64
- package/src/tools/delegate-task/background-continuation.ts +68 -68
- package/src/tools/delegate-task/background-task.ts +165 -165
- package/src/tools/delegate-task/builtin-categories.ts +33 -33
- package/src/tools/delegate-task/builtin-category-definition.ts +8 -8
- package/src/tools/delegate-task/cancel-unstable-agent-task.ts +19 -19
- package/src/tools/delegate-task/categories.ts +77 -77
- package/src/tools/delegate-task/category-resolver.ts +310 -310
- package/src/tools/delegate-task/constants.ts +351 -351
- package/src/tools/delegate-task/delegated-model-config.ts +20 -20
- package/src/tools/delegate-task/error-formatting.ts +51 -51
- package/src/tools/delegate-task/executor-types.ts +39 -39
- package/src/tools/delegate-task/executor.ts +16 -16
- package/src/tools/delegate-task/fallback-entry-resolution.ts +27 -27
- package/src/tools/delegate-task/fallback-entry-settings.ts +20 -20
- package/src/tools/delegate-task/google-categories.ts +130 -130
- package/src/tools/delegate-task/index.ts +4 -4
- package/src/tools/delegate-task/kimi-categories.ts +40 -40
- package/src/tools/delegate-task/model-selection.ts +201 -201
- package/src/tools/delegate-task/model-string-parser.ts +63 -63
- package/src/tools/delegate-task/openai-categories.ts +128 -128
- package/src/tools/delegate-task/parent-context-resolver.ts +47 -47
- package/src/tools/delegate-task/prompt-builder.ts +107 -107
- package/src/tools/delegate-task/resolve-call-id.ts +5 -5
- package/src/tools/delegate-task/skill-resolver.ts +22 -22
- package/src/tools/delegate-task/sub-agent.ts +70 -70
- package/src/tools/delegate-task/subagent-discovery.ts +152 -152
- package/src/tools/delegate-task/subagent-resolver.ts +225 -225
- package/src/tools/delegate-task/sync-continuation-deps.ts +9 -9
- package/src/tools/delegate-task/sync-continuation.ts +149 -149
- package/src/tools/delegate-task/sync-prompt-sender.ts +137 -137
- package/src/tools/delegate-task/sync-result-fetcher.ts +60 -60
- package/src/tools/delegate-task/sync-session-creator.ts +29 -29
- package/src/tools/delegate-task/sync-session-poller.ts +188 -188
- package/src/tools/delegate-task/sync-task-deps.ts +13 -13
- package/src/tools/delegate-task/sync-task-fallback.ts +68 -68
- package/src/tools/delegate-task/sync-task.ts +243 -243
- package/src/tools/delegate-task/time-formatter.ts +13 -13
- package/src/tools/delegate-task/timing.ts +46 -46
- package/src/tools/delegate-task/token-limiter.ts +123 -123
- package/src/tools/delegate-task/tools.ts +259 -259
- package/src/tools/delegate-task/types.ts +89 -89
- package/src/tools/delegate-task/unstable-agent-task.ts +243 -243
- package/src/tools/glob/cli.ts +206 -206
- package/src/tools/glob/constants.ts +12 -12
- package/src/tools/glob/index.ts +1 -1
- package/src/tools/glob/result-formatter.ts +26 -26
- package/src/tools/glob/tools.ts +49 -49
- package/src/tools/glob/types.ts +23 -23
- package/src/tools/grep/cli.ts +279 -279
- package/src/tools/grep/constants.ts +141 -141
- package/src/tools/grep/downloader.ts +128 -128
- package/src/tools/grep/index.ts +1 -1
- package/src/tools/grep/result-formatter.ts +60 -60
- package/src/tools/grep/tools.ts +75 -75
- package/src/tools/grep/types.ts +42 -42
- package/src/tools/hashline-edit/AGENTS.md +92 -92
- package/src/tools/hashline-edit/autocorrect-replacement-lines.ts +179 -179
- package/src/tools/hashline-edit/constants.ts +10 -10
- package/src/tools/hashline-edit/diff-utils.ts +53 -53
- package/src/tools/hashline-edit/edit-deduplication.ts +43 -43
- package/src/tools/hashline-edit/edit-operation-primitives.ts +126 -126
- package/src/tools/hashline-edit/edit-operations.ts +103 -103
- package/src/tools/hashline-edit/edit-ordering.ts +56 -56
- package/src/tools/hashline-edit/edit-text-normalization.ts +111 -111
- package/src/tools/hashline-edit/file-text-canonicalization.ts +44 -44
- package/src/tools/hashline-edit/formatter-trigger.ts +132 -132
- package/src/tools/hashline-edit/hash-computation.ts +154 -154
- package/src/tools/hashline-edit/hashline-chunk-formatter.ts +52 -52
- package/src/tools/hashline-edit/hashline-edit-diff.ts +31 -31
- package/src/tools/hashline-edit/hashline-edit-executor.ts +197 -197
- package/src/tools/hashline-edit/index.ts +20 -20
- package/src/tools/hashline-edit/normalize-edits.ts +95 -95
- package/src/tools/hashline-edit/tool-description.ts +95 -95
- package/src/tools/hashline-edit/tools.ts +42 -42
- package/src/tools/hashline-edit/types.ts +20 -20
- package/src/tools/hashline-edit/validation.ts +181 -181
- package/src/tools/index.ts +64 -64
- package/src/tools/interactive-bash/constants.ts +18 -18
- package/src/tools/interactive-bash/index.ts +4 -4
- package/src/tools/interactive-bash/tmux-path-resolver.ts +71 -71
- package/src/tools/interactive-bash/tools.ts +136 -136
- package/src/tools/look-at/assistant-message-extractor.ts +67 -67
- package/src/tools/look-at/constants.ts +3 -3
- package/src/tools/look-at/image-converter.ts +164 -164
- package/src/tools/look-at/index.ts +3 -3
- package/src/tools/look-at/look-at-arguments.ts +34 -34
- package/src/tools/look-at/mime-type-inference.ts +94 -94
- package/src/tools/look-at/multimodal-agent-metadata.ts +166 -166
- package/src/tools/look-at/multimodal-fallback-chain.ts +66 -66
- package/src/tools/look-at/session-poller.ts +42 -42
- package/src/tools/look-at/tools.ts +245 -245
- package/src/tools/look-at/types.ts +5 -5
- package/src/tools/lsp/AGENTS.md +70 -70
- package/src/tools/lsp/client.ts +3 -3
- package/src/tools/lsp/config.ts +3 -3
- package/src/tools/lsp/constants.ts +7 -7
- package/src/tools/lsp/diagnostics-tool.ts +75 -75
- package/src/tools/lsp/directory-diagnostics.ts +163 -163
- package/src/tools/lsp/find-references-tool.ts +43 -43
- package/src/tools/lsp/goto-definition-tool.ts +42 -42
- package/src/tools/lsp/index.ts +9 -9
- package/src/tools/lsp/infer-extension.ts +65 -65
- package/src/tools/lsp/language-config.ts +5 -5
- package/src/tools/lsp/language-mappings.ts +171 -171
- package/src/tools/lsp/lsp-client-connection.ts +66 -66
- package/src/tools/lsp/lsp-client-transport.ts +210 -210
- package/src/tools/lsp/lsp-client-wrapper.ts +116 -116
- package/src/tools/lsp/lsp-client.ts +129 -129
- package/src/tools/lsp/lsp-formatters.ts +193 -193
- package/src/tools/lsp/lsp-manager-process-cleanup.ts +83 -83
- package/src/tools/lsp/lsp-manager-temp-directory-cleanup.ts +29 -29
- package/src/tools/lsp/lsp-process.ts +158 -158
- package/src/tools/lsp/lsp-server.ts +217 -217
- package/src/tools/lsp/rename-tools.ts +53 -53
- package/src/tools/lsp/server-config-loader.ts +116 -116
- package/src/tools/lsp/server-definitions.ts +91 -91
- package/src/tools/lsp/server-installation.ts +58 -58
- package/src/tools/lsp/server-path-bases.ts +16 -16
- package/src/tools/lsp/server-resolution.ts +109 -109
- package/src/tools/lsp/symbols-tool.ts +76 -76
- package/src/tools/lsp/tools.ts +5 -5
- package/src/tools/lsp/types.ts +124 -124
- package/src/tools/lsp/workspace-edit.ts +121 -121
- package/src/tools/session-manager/constants.ts +93 -93
- package/src/tools/session-manager/file-storage.ts +203 -203
- package/src/tools/session-manager/index.ts +3 -3
- package/src/tools/session-manager/sdk-storage.ts +135 -135
- package/src/tools/session-manager/sdk-unavailable.ts +43 -43
- package/src/tools/session-manager/session-formatter.ts +199 -199
- package/src/tools/session-manager/storage.ts +161 -161
- package/src/tools/session-manager/tools.ts +197 -197
- package/src/tools/session-manager/types.ts +99 -99
- package/src/tools/shared/semaphore.ts +32 -32
- package/src/tools/skill/constants.ts +14 -14
- package/src/tools/skill/description-formatter.ts +61 -61
- package/src/tools/skill/index.ts +3 -3
- package/src/tools/skill/mcp-capability-formatter.ts +97 -97
- package/src/tools/skill/native-skills.ts +62 -62
- package/src/tools/skill/scope-priority.ts +17 -17
- package/src/tools/skill/skill-body.ts +26 -26
- package/src/tools/skill/skill-matcher.ts +40 -40
- package/src/tools/skill/tools.ts +196 -196
- package/src/tools/skill/types.ts +48 -48
- package/src/tools/skill-mcp/constants.ts +9 -9
- package/src/tools/skill-mcp/index.ts +3 -3
- package/src/tools/skill-mcp/tools.ts +204 -204
- package/src/tools/skill-mcp/types.ts +8 -8
- package/src/tools/slashcommand/command-discovery.ts +161 -161
- package/src/tools/slashcommand/command-output-formatter.ts +75 -75
- package/src/tools/slashcommand/index.ts +2 -2
- package/src/tools/slashcommand/types.ts +21 -21
- package/src/tools/task/index.ts +7 -7
- package/src/tools/task/task-create.ts +113 -113
- package/src/tools/task/task-get.ts +47 -47
- package/src/tools/task/task-list.ts +79 -79
- package/src/tools/task/task-update.ts +152 -152
- package/src/tools/task/todo-sync.ts +205 -205
- package/src/tools/task/types.ts +77 -77
- package/dist/ast-grep-napi.linux-x64-gnu-d8zfa2q0.node +0 -0
- package/dist/ast-grep-napi.linux-x64-musl-0wywtr8y.node +0 -0
- package/dist/prompt-snapshots/bob.default.md +0 -514
- package/dist/prompt-snapshots/bob.gemini.md +0 -725
- package/dist/prompt-snapshots/bob.gpt-pro.md +0 -514
- package/dist/prompt-snapshots/coder.gpt-codex.md +0 -299
- package/dist/prompt-snapshots/coder.gpt-pro.md +0 -315
- package/dist/prompt-snapshots/coder.gpt.md +0 -315
- package/dist/prompt-snapshots/critic.md +0 -68
- package/dist/prompt-snapshots/guard.md +0 -599
- package/dist/prompt-snapshots/multimodal.md +0 -39
- package/dist/prompt-snapshots/platform-manager.md +0 -222
- package/dist/prompt-snapshots/quality-guardian.md +0 -32
- package/dist/prompt-snapshots/researcher.md +0 -29
- package/dist/prompt-snapshots/strategist.md +0 -573
- package/dist/prompt-snapshots/sub.md +0 -105
|
@@ -1,536 +1,536 @@
|
|
|
1
|
-
import type { BuiltinSkill } from "../types"
|
|
2
|
-
|
|
3
|
-
export const reviewWorkSkill: BuiltinSkill = {
|
|
4
|
-
name: "review-work",
|
|
5
|
-
description:
|
|
6
|
-
"Post-implementation review orchestrator. Launches 5 parallel background sub-agents: critic (goal/constraint verification), critic (code quality), critic (security), unspecified-high (hands-on QA execution), researcher (context mining from GitHub/git/Slack/Notion). All must pass for review to pass. MUST USE after completing any significant implementation work. Triggers: 'review work', 'review my work', 'review changes', 'QA my work', 'verify implementation', 'check my work', 'validate changes', 'post-implementation review'.",
|
|
7
|
-
template: `# Review Work - 5-Agent Parallel Review Orchestrator
|
|
8
|
-
|
|
9
|
-
Launch 5 specialized sub-agents in parallel to review completed implementation work from every angle. All 5 must pass for the review to pass. If even ONE fails, the review fails.
|
|
10
|
-
|
|
11
|
-
The 5 agents cover complementary concerns - together they form a comprehensive review that no single reviewer could match:
|
|
12
|
-
|
|
13
|
-
| # | Agent | Type | Role | Focus Level |
|
|
14
|
-
|---|-------|------|------|-------------|
|
|
15
|
-
| 1 | Goal Verifier | critic | Did we build what was asked? | MAIN |
|
|
16
|
-
| 2 | QA Executor | unspecified-high | Does it actually work? | MAIN |
|
|
17
|
-
| 3 | Code Reviewer | critic | Is the code well-written? | MAIN |
|
|
18
|
-
| 4 | Security Auditor | critic | Is it secure? | SUB |
|
|
19
|
-
| 5 | Context Miner | researcher | Did we miss any context? | MAIN |
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Phase 0: Gather Review Context
|
|
24
|
-
|
|
25
|
-
Before launching agents, collect these inputs. Extract from conversation history first - the user's original request, constraints discussed, and decisions made are usually already in the thread. Only ask if truly missing.
|
|
26
|
-
|
|
27
|
-
<required_inputs>
|
|
28
|
-
|
|
29
|
-
- **GOAL**: The original objective. What was the user trying to achieve? Pull from the initial request in this conversation.
|
|
30
|
-
- **CONSTRAINTS**: Rules, requirements, or limitations. Tech stack restrictions, performance targets, API contracts, design patterns to follow, backward compatibility needs.
|
|
31
|
-
- **BACKGROUND**: Why this work was needed. Business context, user stories, related systems, prior decisions that informed the approach.
|
|
32
|
-
- **CHANGED_FILES**: Auto-collect via \`git diff --name-only HEAD~1\` or against the appropriate base (branch point, specific commit).
|
|
33
|
-
- **DIFF**: Auto-collect via \`git diff HEAD~1\` or against the appropriate base.
|
|
34
|
-
- **FILE_CONTENTS**: Read the full content of each changed file (not just the diff). critic agents cannot read files - they need full context in the prompt.
|
|
35
|
-
- **RUN_COMMAND**: How to start/run the application. Check \`package.json\` scripts, \`Makefile\`, \`docker-compose.yml\`, or ask the user.
|
|
36
|
-
|
|
37
|
-
</required_inputs>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
**NEVER CHECKOUT A PR BRANCH IN THE MAIN WORKTREE. ALWAYS CREATE A NEW GIT WORKTREE (\`git worktree add\`) AND WORK THERE. THIS PREVENTS CONTAMINATING THE USER'S WORKING DIRECTORY WITH UNRELATED BRANCH STATE.**
|
|
41
|
-
|
|
42
|
-
**Auto-collection sequence:**
|
|
43
|
-
|
|
44
|
-
\`\`\`bash
|
|
45
|
-
# 1. Get changed files
|
|
46
|
-
git diff --name-only HEAD~1 # or: git diff --name-only main...HEAD
|
|
47
|
-
|
|
48
|
-
# 2. Get diff
|
|
49
|
-
git diff HEAD~1 # or: git diff main...HEAD
|
|
50
|
-
|
|
51
|
-
# 3. Detect run command
|
|
52
|
-
# Check package.json -> "scripts.dev" or "scripts.start"
|
|
53
|
-
# Check Makefile -> default target
|
|
54
|
-
# Check docker-compose.yml -> services
|
|
55
|
-
\`\`\`
|
|
56
|
-
|
|
57
|
-
For GOAL, CONSTRAINTS, BACKGROUND - review the full conversation history. The user's original message almost always contains the goal. Constraints often emerge during discussion. If anything critical is ambiguous, ask ONE focused question - not a checklist.
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Phase 1: Launch 5 Agents
|
|
62
|
-
|
|
63
|
-
Launch ALL 5 in a single turn. Every agent uses \`run_in_background=true\`. No sequential launches. No waiting between them.
|
|
64
|
-
|
|
65
|
-
**Critic agents receive everything in the prompt** (they cannot read files or run commands). Include DIFF + FILE_CONTENTS + all context directly in the prompt text.
|
|
66
|
-
|
|
67
|
-
**unspecified-high agents are autonomous** - they can read files, run commands, and use tools. Give them goals and pointers, not raw content dumps.
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
### Agent 1: Goal & Constraint Verification (Critic) - MAIN
|
|
72
|
-
|
|
73
|
-
This agent answers: "Did we build exactly what was asked, within the rules we were given?"
|
|
74
|
-
|
|
75
|
-
\`\`\`
|
|
76
|
-
task(
|
|
77
|
-
subagent_type="critic",
|
|
78
|
-
run_in_background=true,
|
|
79
|
-
load_skills=[],
|
|
80
|
-
description="Verify implementation against original goal and constraints",
|
|
81
|
-
prompt="""
|
|
82
|
-
<review_type>GOAL & CONSTRAINT VERIFICATION</review_type>
|
|
83
|
-
|
|
84
|
-
<original_goal>
|
|
85
|
-
{GOAL - paste the user's original request and any clarifications}
|
|
86
|
-
</original_goal>
|
|
87
|
-
|
|
88
|
-
<constraints>
|
|
89
|
-
{CONSTRAINTS - every rule, requirement, or limitation discussed}
|
|
90
|
-
</constraints>
|
|
91
|
-
|
|
92
|
-
<background>
|
|
93
|
-
{BACKGROUND - why this work was needed, broader context}
|
|
94
|
-
</background>
|
|
95
|
-
|
|
96
|
-
<changed_files>
|
|
97
|
-
{CHANGED_FILES - list of modified file paths}
|
|
98
|
-
</changed_files>
|
|
99
|
-
|
|
100
|
-
<file_contents>
|
|
101
|
-
{FILE_CONTENTS - full content of every changed file, clearly delimited per file}
|
|
102
|
-
</file_contents>
|
|
103
|
-
|
|
104
|
-
<diff>
|
|
105
|
-
{DIFF - the actual git diff}
|
|
106
|
-
</diff>
|
|
107
|
-
|
|
108
|
-
Review whether this implementation correctly and completely achieves the stated goal within the given constraints. Be obsessively thorough - the point of this review is to catch what the implementer missed.
|
|
109
|
-
|
|
110
|
-
REVIEW CHECKLIST:
|
|
111
|
-
|
|
112
|
-
1. **Goal Completeness**: Break the goal into every sub-requirement (explicit AND implied). For each, mark ACHIEVED / MISSED / PARTIAL. Missing even one implied requirement that a reasonable engineer would have addressed = PARTIAL at minimum.
|
|
113
|
-
|
|
114
|
-
2. **Constraint Compliance**: List every constraint. For each, verify compliance with specific code evidence. A constraint violated = automatic FAIL.
|
|
115
|
-
|
|
116
|
-
3. **Requirement Gaps**: Requirements the user clearly wanted but didn't spell out. Things implied by the goal or background that a thoughtful engineer would have included.
|
|
117
|
-
|
|
118
|
-
4. **Over-Engineering**: Anything added that wasn't requested - unnecessary abstractions, extra features, premature optimizations, speculative generality. Flag these as scope creep.
|
|
119
|
-
|
|
120
|
-
5. **Edge Cases**: Given the goal, what inputs or scenarios would break this? Trace through at least 5 edge cases mentally.
|
|
121
|
-
|
|
122
|
-
6. **Behavioral Correctness**: Walk through the code logic for 3+ representative scenarios. Does the code actually produce the expected behavior in each case?
|
|
123
|
-
|
|
124
|
-
OUTPUT FORMAT:
|
|
125
|
-
<verdict>PASS or FAIL</verdict>
|
|
126
|
-
<confidence>HIGH / MEDIUM / LOW</confidence>
|
|
127
|
-
<summary>1-3 sentence overall assessment</summary>
|
|
128
|
-
<goal_breakdown>
|
|
129
|
-
For each sub-requirement:
|
|
130
|
-
- [ACHIEVED/MISSED/PARTIAL] Requirement description
|
|
131
|
-
- Evidence: specific code reference or gap
|
|
132
|
-
</goal_breakdown>
|
|
133
|
-
<constraint_compliance>
|
|
134
|
-
For each constraint:
|
|
135
|
-
- [ACHIEVED/MISSED] Constraint description - evidence
|
|
136
|
-
</constraint_compliance>
|
|
137
|
-
<findings>
|
|
138
|
-
- [PASS/FAIL/WARN] Category: Description
|
|
139
|
-
- File: path (line range if applicable)
|
|
140
|
-
- Evidence: specific code or logic reference
|
|
141
|
-
</findings>
|
|
142
|
-
<blocking_issues>Issues that MUST be fixed. Empty if PASS.</blocking_issues>
|
|
143
|
-
""")
|
|
144
|
-
\`\`\`
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
### Agent 2: QA via App Execution (unspecified-high) - MAIN
|
|
149
|
-
|
|
150
|
-
This agent answers: "Does it actually work when you run it?"
|
|
151
|
-
|
|
152
|
-
The QA agent follows a structured process: brainstorm scenarios exhaustively first, then self-review and augment, then create a task list, then execute systematically.
|
|
153
|
-
|
|
154
|
-
\`\`\`
|
|
155
|
-
task(
|
|
156
|
-
category="unspecified-high",
|
|
157
|
-
run_in_background=true,
|
|
158
|
-
load_skills=["playwright", "dev-browser"],
|
|
159
|
-
description="QA by actually running and using the application",
|
|
160
|
-
prompt="""
|
|
161
|
-
<review_type>QA - HANDS-ON APP EXECUTION</review_type>
|
|
162
|
-
|
|
163
|
-
<original_goal>
|
|
164
|
-
{GOAL}
|
|
165
|
-
</original_goal>
|
|
166
|
-
|
|
167
|
-
<constraints>
|
|
168
|
-
{CONSTRAINTS}
|
|
169
|
-
</constraints>
|
|
170
|
-
|
|
171
|
-
<changed_files>
|
|
172
|
-
{CHANGED_FILES}
|
|
173
|
-
</changed_files>
|
|
174
|
-
|
|
175
|
-
<run_command>
|
|
176
|
-
{RUN_COMMAND - how to start the application, or "unknown" if not determined}
|
|
177
|
-
</run_command>
|
|
178
|
-
|
|
179
|
-
You are a QA engineer. Your job is to RUN the application and verify it works through hands-on testing. You do not review code - you test behavior.
|
|
180
|
-
|
|
181
|
-
MANDATORY PROCESS (follow in order):
|
|
182
|
-
|
|
183
|
-
### Step 1: Scenario Brainstorm
|
|
184
|
-
|
|
185
|
-
Before touching the app, write down EVERY test scenario you can think of. Be exhaustive. Think about:
|
|
186
|
-
|
|
187
|
-
- **Happy paths**: The primary use cases this implementation enables. What's the main thing the user wanted to do?
|
|
188
|
-
- **Boundary conditions**: Empty inputs, maximum-length inputs, zero values, negative numbers, special characters, unicode, very large datasets.
|
|
189
|
-
- **Error paths**: Invalid inputs, network failures, missing files, permission denied, timeout conditions.
|
|
190
|
-
- **Regression scenarios**: Existing features that touch the same code paths. Things that worked before and must still work.
|
|
191
|
-
- **State transitions**: What happens when you do things out of order? Rapid repeated actions? Concurrent usage?
|
|
192
|
-
- **UX scenarios** (if applicable): Layout on different sizes, keyboard navigation, screen reader compatibility, loading states, error messages.
|
|
193
|
-
- **Integration points**: Does this feature interact with external services, databases, or other modules? Test those boundaries.
|
|
194
|
-
|
|
195
|
-
Write each scenario as a one-liner with expected behavior. Aim for 15-30 scenarios minimum.
|
|
196
|
-
|
|
197
|
-
### Step 2: Scenario Augmentation
|
|
198
|
-
|
|
199
|
-
Review your scenario list with fresh eyes. For each scenario, ask:
|
|
200
|
-
- "What could go wrong here that I haven't considered?"
|
|
201
|
-
- "What would a malicious or careless user do?"
|
|
202
|
-
- "What environmental conditions could affect this?" (disk full, slow network, expired tokens)
|
|
203
|
-
|
|
204
|
-
Add at least 5 more scenarios from this reflection. Group scenarios by priority: P0 (must pass), P1 (should pass), P2 (nice to pass).
|
|
205
|
-
|
|
206
|
-
### Step 3: Create Task List
|
|
207
|
-
|
|
208
|
-
Convert your augmented scenario list into a structured task list (use TaskCreate/TaskUpdate or your todo system). Each task = one test scenario with:
|
|
209
|
-
- Test name
|
|
210
|
-
- Steps to execute
|
|
211
|
-
- Expected result
|
|
212
|
-
- Priority (P0/P1/P2)
|
|
213
|
-
|
|
214
|
-
### Step 4: Execute Systematically
|
|
215
|
-
|
|
216
|
-
Work through the task list in priority order (P0 first). For each test:
|
|
217
|
-
|
|
218
|
-
1. Execute the test steps
|
|
219
|
-
2. Record actual result
|
|
220
|
-
3. Compare with expected result
|
|
221
|
-
4. Mark PASS or FAIL
|
|
222
|
-
5. If FAIL: capture evidence (screenshot, terminal output, error message)
|
|
223
|
-
6. Mark the task complete
|
|
224
|
-
|
|
225
|
-
**Execution guidance by app type:**
|
|
226
|
-
- **Web app**: Use playwright/dev-browser to navigate, click, fill forms, verify visual output.
|
|
227
|
-
- **CLI tool**: Run commands with various arguments, pipe inputs, check exit codes and output.
|
|
228
|
-
- **Library/SDK**: Write and execute a test script that imports and exercises the public API.
|
|
229
|
-
- **Backend API**: Use curl/httpie to hit endpoints with various payloads, verify response codes and bodies.
|
|
230
|
-
- **Mobile/Desktop**: If not directly runnable, write integration tests and execute them.
|
|
231
|
-
|
|
232
|
-
If the app cannot be started (build failure), that's an immediate FAIL - no need to continue.
|
|
233
|
-
|
|
234
|
-
### Step 5: Compile Results
|
|
235
|
-
|
|
236
|
-
OUTPUT FORMAT:
|
|
237
|
-
<verdict>PASS or FAIL</verdict>
|
|
238
|
-
<confidence>HIGH / MEDIUM / LOW</confidence>
|
|
239
|
-
<summary>1-3 sentence overall assessment</summary>
|
|
240
|
-
<scenario_coverage>
|
|
241
|
-
Total scenarios: N
|
|
242
|
-
P0: X tested, Y passed
|
|
243
|
-
P1: X tested, Y passed
|
|
244
|
-
P2: X tested, Y passed
|
|
245
|
-
</scenario_coverage>
|
|
246
|
-
<test_results>
|
|
247
|
-
For each test:
|
|
248
|
-
- [PASS/FAIL] Test name (Priority)
|
|
249
|
-
- Steps: What you did
|
|
250
|
-
- Expected: What should happen
|
|
251
|
-
- Actual: What actually happened
|
|
252
|
-
- Evidence: Screenshot path or terminal output snippet (if FAIL)
|
|
253
|
-
</test_results>
|
|
254
|
-
<blocking_issues>P0 or P1 failures only. Empty if PASS.</blocking_issues>
|
|
255
|
-
""")
|
|
256
|
-
\`\`\`
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
### Agent 3: Code Quality Review (Critic) - MAIN
|
|
261
|
-
|
|
262
|
-
This agent answers: "Is the code well-written, maintainable, and consistent with the codebase?"
|
|
263
|
-
|
|
264
|
-
\`\`\`
|
|
265
|
-
task(
|
|
266
|
-
subagent_type="critic",
|
|
267
|
-
run_in_background=true,
|
|
268
|
-
load_skills=[],
|
|
269
|
-
description="Review overall code quality, patterns, and architecture",
|
|
270
|
-
prompt="""
|
|
271
|
-
<review_type>CODE QUALITY REVIEW</review_type>
|
|
272
|
-
|
|
273
|
-
<changed_files>
|
|
274
|
-
{CHANGED_FILES}
|
|
275
|
-
</changed_files>
|
|
276
|
-
|
|
277
|
-
<file_contents>
|
|
278
|
-
{FILE_CONTENTS - full content of changed files AND neighboring files that show existing patterns}
|
|
279
|
-
</file_contents>
|
|
280
|
-
|
|
281
|
-
<diff>
|
|
282
|
-
{DIFF}
|
|
283
|
-
</diff>
|
|
284
|
-
|
|
285
|
-
<background>
|
|
286
|
-
{BACKGROUND}
|
|
287
|
-
</background>
|
|
288
|
-
|
|
289
|
-
You are a senior staff engineer conducting a code review. Your standard: "Would I approve this PR without comments?"
|
|
290
|
-
|
|
291
|
-
REVIEW DIMENSIONS (examine each):
|
|
292
|
-
|
|
293
|
-
1. **Correctness**: Logic errors, off-by-one, null/undefined handling, race conditions, resource leaks, unhandled promise rejections.
|
|
294
|
-
|
|
295
|
-
2. **Pattern Consistency**: Does new code follow the codebase's established patterns? Compare with the neighboring files provided. Introducing a new pattern where one already exists = finding.
|
|
296
|
-
|
|
297
|
-
3. **Naming & Readability**: Clear variable/function/type names? Self-documenting code? Would another engineer understand this without explanation?
|
|
298
|
-
|
|
299
|
-
4. **Error Handling**: Errors properly caught, logged, and propagated? No empty catch blocks? No swallowed errors? User-facing errors are helpful?
|
|
300
|
-
|
|
301
|
-
5. **Type Safety**: Any \`as any\`, \`@ts-ignore\`, \`@ts-expect-error\`? Proper generic usage? Correct type narrowing? (If TypeScript/typed language)
|
|
302
|
-
|
|
303
|
-
6. **Performance**: N+1 queries? Unnecessary re-renders? Blocking I/O on hot paths? Memory leaks? Unbounded growth?
|
|
304
|
-
|
|
305
|
-
7. **Abstraction Level**: Right level of abstraction? No copy-paste duplication? But also no premature over-abstraction?
|
|
306
|
-
|
|
307
|
-
8. **Testing**: New behaviors covered by tests? Tests are meaningful, not just coverage padding? Test names describe scenarios?
|
|
308
|
-
|
|
309
|
-
9. **API Design**: Public interfaces clean and consistent with existing APIs? Breaking changes flagged?
|
|
310
|
-
|
|
311
|
-
10. **Tech Debt**: Does this introduce new tech debt? Or create coupling that will be painful to change?
|
|
312
|
-
|
|
313
|
-
Categorize each finding by severity:
|
|
314
|
-
- **CRITICAL**: Will cause bugs, data loss, or crashes in production
|
|
315
|
-
- **MAJOR**: Significant quality issue that should be fixed before merge
|
|
316
|
-
- **MINOR**: Improvement worth making but not blocking
|
|
317
|
-
- **NITPICK**: Style preference, optional
|
|
318
|
-
|
|
319
|
-
OUTPUT FORMAT:
|
|
320
|
-
<verdict>PASS or FAIL</verdict>
|
|
321
|
-
<confidence>HIGH / MEDIUM / LOW</confidence>
|
|
322
|
-
<summary>1-3 sentence overall assessment</summary>
|
|
323
|
-
<findings>
|
|
324
|
-
- [CRITICAL/MAJOR/MINOR/NITPICK] Category: Description
|
|
325
|
-
- File: path (line range)
|
|
326
|
-
- Current: what the code does now
|
|
327
|
-
- Suggestion: how to improve
|
|
328
|
-
</findings>
|
|
329
|
-
<blocking_issues>CRITICAL and MAJOR items only. Empty if PASS.</blocking_issues>
|
|
330
|
-
""")
|
|
331
|
-
\`\`\`
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
### Agent 4: Security Review (Critic) - SUB
|
|
336
|
-
|
|
337
|
-
This agent answers: "Are there security vulnerabilities in these changes?"
|
|
338
|
-
|
|
339
|
-
This is supplementary - it focuses exclusively on security. It does NOT comment on code style, architecture, or functionality unless those directly create a security risk.
|
|
340
|
-
|
|
341
|
-
\`\`\`
|
|
342
|
-
task(
|
|
343
|
-
subagent_type="critic",
|
|
344
|
-
run_in_background=true,
|
|
345
|
-
load_skills=[],
|
|
346
|
-
description="Security-focused review of implementation changes",
|
|
347
|
-
prompt="""
|
|
348
|
-
<review_type>SECURITY REVIEW (supplementary)</review_type>
|
|
349
|
-
|
|
350
|
-
<changed_files>
|
|
351
|
-
{CHANGED_FILES}
|
|
352
|
-
</changed_files>
|
|
353
|
-
|
|
354
|
-
<file_contents>
|
|
355
|
-
{FILE_CONTENTS - full content of changed files}
|
|
356
|
-
</file_contents>
|
|
357
|
-
|
|
358
|
-
<diff>
|
|
359
|
-
{DIFF}
|
|
360
|
-
</diff>
|
|
361
|
-
|
|
362
|
-
You are a security engineer. Review this diff exclusively for security vulnerabilities and anti-patterns. Ignore code style, naming, architecture - unless it directly creates a security risk.
|
|
363
|
-
|
|
364
|
-
SECURITY CHECKLIST:
|
|
365
|
-
|
|
366
|
-
1. **Input Validation**: User inputs sanitized? SQL injection, XSS, command injection, SSRF vectors?
|
|
367
|
-
2. **Auth & AuthZ**: Authentication checks where needed? Authorization verified for each action? Privilege escalation paths?
|
|
368
|
-
3. **Secrets & Credentials**: Hardcoded secrets, API keys, tokens in code or config? Secrets in logs?
|
|
369
|
-
4. **Data Exposure**: Sensitive data in logs? PII in error messages? Over-exposed API responses?
|
|
370
|
-
5. **Dependencies**: New dependencies added? Known CVEs? Suspicious or unnecessary packages?
|
|
371
|
-
6. **Cryptography**: Proper algorithms? No custom crypto? Secure random? Proper key management?
|
|
372
|
-
7. **File & Path**: Path traversal? Unsafe file operations? Symlink following?
|
|
373
|
-
8. **Network**: CORS configured correctly? Rate limiting? TLS enforced? Certificate validation?
|
|
374
|
-
9. **Error Leakage**: Stack traces exposed to users? Internal details in error responses?
|
|
375
|
-
10. **Supply Chain**: Lockfile updated consistently? Dependency pinning?
|
|
376
|
-
|
|
377
|
-
OUTPUT FORMAT:
|
|
378
|
-
<verdict>PASS or FAIL</verdict>
|
|
379
|
-
<severity>CRITICAL / HIGH / MEDIUM / LOW / NONE</severity>
|
|
380
|
-
<summary>1-3 sentence overall assessment</summary>
|
|
381
|
-
<findings>
|
|
382
|
-
- [CRITICAL/HIGH/MEDIUM/LOW] Category: Description
|
|
383
|
-
- File: path (line range)
|
|
384
|
-
- Risk: What could an attacker do?
|
|
385
|
-
- Remediation: Specific fix
|
|
386
|
-
</findings>
|
|
387
|
-
<blocking_issues>CRITICAL and HIGH items only. Empty if PASS.</blocking_issues>
|
|
388
|
-
""")
|
|
389
|
-
\`\`\`
|
|
390
|
-
|
|
391
|
-
---
|
|
392
|
-
|
|
393
|
-
### Agent 5: Context Mining (unspecified-high) - MAIN
|
|
394
|
-
|
|
395
|
-
This agent answers: "Did we miss any context that should have informed this implementation?"
|
|
396
|
-
|
|
397
|
-
\`\`\`
|
|
398
|
-
task(
|
|
399
|
-
category="unspecified-high",
|
|
400
|
-
run_in_background=true,
|
|
401
|
-
load_skills=["git-master"],
|
|
402
|
-
description="Mine all accessible contexts for missed requirements or background knowledge",
|
|
403
|
-
prompt="""
|
|
404
|
-
<review_type>CONTEXT MINING - MISSED REQUIREMENTS & BACKGROUND</review_type>
|
|
405
|
-
|
|
406
|
-
<original_goal>
|
|
407
|
-
{GOAL}
|
|
408
|
-
</original_goal>
|
|
409
|
-
|
|
410
|
-
<constraints>
|
|
411
|
-
{CONSTRAINTS}
|
|
412
|
-
</constraints>
|
|
413
|
-
|
|
414
|
-
<changed_files>
|
|
415
|
-
{CHANGED_FILES}
|
|
416
|
-
</changed_files>
|
|
417
|
-
|
|
418
|
-
<background>
|
|
419
|
-
{BACKGROUND}
|
|
420
|
-
</background>
|
|
421
|
-
|
|
422
|
-
You are an investigator. Your mission: search every accessible information source to find context that should have informed this implementation but might have been missed. The question: "Is there something we should have known but didn't?"
|
|
423
|
-
|
|
424
|
-
SOURCES TO SEARCH (use every available tool):
|
|
425
|
-
|
|
426
|
-
1. **Git History** (ALWAYS search):
|
|
427
|
-
- \`git log --oneline -20 -- {each changed file}\` - recent changes and their reasons
|
|
428
|
-
- \`git blame {critical sections}\` - who wrote what and when
|
|
429
|
-
- \`git log --all --grep="{keywords from goal}"\` - related commits
|
|
430
|
-
- Look for reverted commits, TODO/FIXME/HACK comments in history
|
|
431
|
-
|
|
432
|
-
2. **GitHub** (if \`gh\` CLI available):
|
|
433
|
-
- \`gh issue list --search "{keywords}"\` - related open/closed issues
|
|
434
|
-
- \`gh pr list --search "{keywords}" --state all\` - related PRs and their review comments
|
|
435
|
-
- Check if any issue is specifically linked to this work
|
|
436
|
-
- Look at review comments on past PRs touching these files
|
|
437
|
-
|
|
438
|
-
3. **Communication Channels** (if MCP tools available):
|
|
439
|
-
- Slack: search for messages mentioning the feature, file names, or related keywords
|
|
440
|
-
- Notion: search for design docs, RFCs, ADRs related to this feature
|
|
441
|
-
- Discord: relevant discussions
|
|
442
|
-
|
|
443
|
-
4. **Codebase Cross-References** (ALWAYS search):
|
|
444
|
-
- Files that import or reference the changed modules
|
|
445
|
-
- Tests that might need updating due to behavior changes
|
|
446
|
-
- Documentation (README, docs/, comments) that references changed behavior
|
|
447
|
-
- Config files that might need corresponding updates
|
|
448
|
-
- Related features in the same domain
|
|
449
|
-
|
|
450
|
-
WHAT TO LOOK FOR:
|
|
451
|
-
|
|
452
|
-
- Requirements mentioned in issues/PRs that the implementation misses
|
|
453
|
-
- Past decisions explaining WHY code was written a certain way - and whether new changes respect those reasons
|
|
454
|
-
- Related systems or features affected by these changes
|
|
455
|
-
- Warnings from previous developers (PR review comments, inline TODOs, commit messages)
|
|
456
|
-
- Migration or deprecation notes that affect the changed code
|
|
457
|
-
- Design decisions documented outside the codebase (Notion, Slack, ADRs)
|
|
458
|
-
|
|
459
|
-
OUTPUT FORMAT:
|
|
460
|
-
<verdict>PASS or FAIL</verdict>
|
|
461
|
-
<confidence>HIGH / MEDIUM / LOW</confidence>
|
|
462
|
-
<summary>1-3 sentence overall assessment</summary>
|
|
463
|
-
<sources_searched>
|
|
464
|
-
- [SEARCHED/SKIPPED] Source name - what was searched (or why it wasn't accessible)
|
|
465
|
-
</sources_searched>
|
|
466
|
-
<discovered_context>
|
|
467
|
-
For each discovery:
|
|
468
|
-
- Source: Where found (git commit abc123, GitHub issue #42, Slack message, etc.)
|
|
469
|
-
- Finding: What was found
|
|
470
|
-
- Relevance: How it relates to the current work
|
|
471
|
-
- Impact: [BLOCKING / IMPORTANT / FYI]
|
|
472
|
-
</discovered_context>
|
|
473
|
-
<missed_requirements>Requirements the implementation should address but doesn't. Empty if none.</missed_requirements>
|
|
474
|
-
<blocking_issues>BLOCKING items only. Empty if PASS.</blocking_issues>
|
|
475
|
-
""")
|
|
476
|
-
\`\`\`
|
|
477
|
-
|
|
478
|
-
---
|
|
479
|
-
|
|
480
|
-
## Phase 2: Wait & Collect
|
|
481
|
-
|
|
482
|
-
After launching all 5 agents in one turn, **end your response**. Wait for system notifications as each agent completes.
|
|
483
|
-
|
|
484
|
-
As each completes, collect via \`background_output(task_id="...")\`. Store each verdict:
|
|
485
|
-
|
|
486
|
-
| Agent | Verdict | Notes |
|
|
487
|
-
|-------|---------|-------|
|
|
488
|
-
| 1. Goal Verification | pending | - |
|
|
489
|
-
| 2. QA Execution | pending | - |
|
|
490
|
-
| 3. Code Quality | pending | - |
|
|
491
|
-
| 4. Security | pending | - |
|
|
492
|
-
| 5. Context Mining | pending | - |
|
|
493
|
-
|
|
494
|
-
Do NOT deliver the final report until ALL 5 have completed.
|
|
495
|
-
|
|
496
|
-
---
|
|
497
|
-
|
|
498
|
-
## Phase 3: Deliver Verdict
|
|
499
|
-
|
|
500
|
-
<verdict_logic>
|
|
501
|
-
|
|
502
|
-
ALL 5 agents returned PASS → **REVIEW PASSED**
|
|
503
|
-
ANY agent returned FAIL → **REVIEW FAILED - criteria not met**
|
|
504
|
-
|
|
505
|
-
</verdict_logic>
|
|
506
|
-
|
|
507
|
-
Compile the final report in this format:
|
|
508
|
-
|
|
509
|
-
\`\`\`markdown
|
|
510
|
-
# Review Work - Final Report
|
|
511
|
-
|
|
512
|
-
## Overall Verdict: PASSED / FAILED
|
|
513
|
-
|
|
514
|
-
| # | Review Area | Agent Type | Verdict | Confidence |
|
|
515
|
-
|---|------------|------------|---------|------------|
|
|
516
|
-
| 1 | Goal & Constraint Verification | Critic | PASS/FAIL | HIGH/MED/LOW |
|
|
517
|
-
| 2 | QA Execution | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
|
|
518
|
-
| 3 | Code Quality | Critic | PASS/FAIL | HIGH/MED/LOW |
|
|
519
|
-
| 4 | Security (supplementary) | Critic | PASS/FAIL | Severity |
|
|
520
|
-
| 5 | Context Mining | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
|
|
521
|
-
|
|
522
|
-
## Blocking Issues
|
|
523
|
-
[Aggregated from all agents - deduplicated, prioritized]
|
|
524
|
-
|
|
525
|
-
## Key Findings
|
|
526
|
-
[Top 5-10 most important findings across all agents, grouped by theme]
|
|
527
|
-
|
|
528
|
-
## Recommendations
|
|
529
|
-
[If FAILED: exactly what to fix, in priority order]
|
|
530
|
-
[If PASSED: non-blocking suggestions worth considering]
|
|
531
|
-
\`\`\`
|
|
532
|
-
|
|
533
|
-
If FAILED - be specific. The user should know exactly what to fix and in what order. No vague "consider improving X" - state the problem, the file, and the fix.
|
|
534
|
-
|
|
535
|
-
If PASSED - keep it short. Highlight any non-blocking suggestions, but don't turn a passing review into a lecture.`,
|
|
536
|
-
}
|
|
1
|
+
import type { BuiltinSkill } from "../types"
|
|
2
|
+
|
|
3
|
+
export const reviewWorkSkill: BuiltinSkill = {
|
|
4
|
+
name: "review-work",
|
|
5
|
+
description:
|
|
6
|
+
"Post-implementation review orchestrator. Launches 5 parallel background sub-agents: critic (goal/constraint verification), critic (code quality), critic (security), unspecified-high (hands-on QA execution), researcher (context mining from GitHub/git/Slack/Notion). All must pass for review to pass. MUST USE after completing any significant implementation work. Triggers: 'review work', 'review my work', 'review changes', 'QA my work', 'verify implementation', 'check my work', 'validate changes', 'post-implementation review'.",
|
|
7
|
+
template: `# Review Work - 5-Agent Parallel Review Orchestrator
|
|
8
|
+
|
|
9
|
+
Launch 5 specialized sub-agents in parallel to review completed implementation work from every angle. All 5 must pass for the review to pass. If even ONE fails, the review fails.
|
|
10
|
+
|
|
11
|
+
The 5 agents cover complementary concerns - together they form a comprehensive review that no single reviewer could match:
|
|
12
|
+
|
|
13
|
+
| # | Agent | Type | Role | Focus Level |
|
|
14
|
+
|---|-------|------|------|-------------|
|
|
15
|
+
| 1 | Goal Verifier | critic | Did we build what was asked? | MAIN |
|
|
16
|
+
| 2 | QA Executor | unspecified-high | Does it actually work? | MAIN |
|
|
17
|
+
| 3 | Code Reviewer | critic | Is the code well-written? | MAIN |
|
|
18
|
+
| 4 | Security Auditor | critic | Is it secure? | SUB |
|
|
19
|
+
| 5 | Context Miner | researcher | Did we miss any context? | MAIN |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Phase 0: Gather Review Context
|
|
24
|
+
|
|
25
|
+
Before launching agents, collect these inputs. Extract from conversation history first - the user's original request, constraints discussed, and decisions made are usually already in the thread. Only ask if truly missing.
|
|
26
|
+
|
|
27
|
+
<required_inputs>
|
|
28
|
+
|
|
29
|
+
- **GOAL**: The original objective. What was the user trying to achieve? Pull from the initial request in this conversation.
|
|
30
|
+
- **CONSTRAINTS**: Rules, requirements, or limitations. Tech stack restrictions, performance targets, API contracts, design patterns to follow, backward compatibility needs.
|
|
31
|
+
- **BACKGROUND**: Why this work was needed. Business context, user stories, related systems, prior decisions that informed the approach.
|
|
32
|
+
- **CHANGED_FILES**: Auto-collect via \`git diff --name-only HEAD~1\` or against the appropriate base (branch point, specific commit).
|
|
33
|
+
- **DIFF**: Auto-collect via \`git diff HEAD~1\` or against the appropriate base.
|
|
34
|
+
- **FILE_CONTENTS**: Read the full content of each changed file (not just the diff). critic agents cannot read files - they need full context in the prompt.
|
|
35
|
+
- **RUN_COMMAND**: How to start/run the application. Check \`package.json\` scripts, \`Makefile\`, \`docker-compose.yml\`, or ask the user.
|
|
36
|
+
|
|
37
|
+
</required_inputs>
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
**NEVER CHECKOUT A PR BRANCH IN THE MAIN WORKTREE. ALWAYS CREATE A NEW GIT WORKTREE (\`git worktree add\`) AND WORK THERE. THIS PREVENTS CONTAMINATING THE USER'S WORKING DIRECTORY WITH UNRELATED BRANCH STATE.**
|
|
41
|
+
|
|
42
|
+
**Auto-collection sequence:**
|
|
43
|
+
|
|
44
|
+
\`\`\`bash
|
|
45
|
+
# 1. Get changed files
|
|
46
|
+
git diff --name-only HEAD~1 # or: git diff --name-only main...HEAD
|
|
47
|
+
|
|
48
|
+
# 2. Get diff
|
|
49
|
+
git diff HEAD~1 # or: git diff main...HEAD
|
|
50
|
+
|
|
51
|
+
# 3. Detect run command
|
|
52
|
+
# Check package.json -> "scripts.dev" or "scripts.start"
|
|
53
|
+
# Check Makefile -> default target
|
|
54
|
+
# Check docker-compose.yml -> services
|
|
55
|
+
\`\`\`
|
|
56
|
+
|
|
57
|
+
For GOAL, CONSTRAINTS, BACKGROUND - review the full conversation history. The user's original message almost always contains the goal. Constraints often emerge during discussion. If anything critical is ambiguous, ask ONE focused question - not a checklist.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Phase 1: Launch 5 Agents
|
|
62
|
+
|
|
63
|
+
Launch ALL 5 in a single turn. Every agent uses \`run_in_background=true\`. No sequential launches. No waiting between them.
|
|
64
|
+
|
|
65
|
+
**Critic agents receive everything in the prompt** (they cannot read files or run commands). Include DIFF + FILE_CONTENTS + all context directly in the prompt text.
|
|
66
|
+
|
|
67
|
+
**unspecified-high agents are autonomous** - they can read files, run commands, and use tools. Give them goals and pointers, not raw content dumps.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### Agent 1: Goal & Constraint Verification (Critic) - MAIN
|
|
72
|
+
|
|
73
|
+
This agent answers: "Did we build exactly what was asked, within the rules we were given?"
|
|
74
|
+
|
|
75
|
+
\`\`\`
|
|
76
|
+
task(
|
|
77
|
+
subagent_type="critic",
|
|
78
|
+
run_in_background=true,
|
|
79
|
+
load_skills=[],
|
|
80
|
+
description="Verify implementation against original goal and constraints",
|
|
81
|
+
prompt="""
|
|
82
|
+
<review_type>GOAL & CONSTRAINT VERIFICATION</review_type>
|
|
83
|
+
|
|
84
|
+
<original_goal>
|
|
85
|
+
{GOAL - paste the user's original request and any clarifications}
|
|
86
|
+
</original_goal>
|
|
87
|
+
|
|
88
|
+
<constraints>
|
|
89
|
+
{CONSTRAINTS - every rule, requirement, or limitation discussed}
|
|
90
|
+
</constraints>
|
|
91
|
+
|
|
92
|
+
<background>
|
|
93
|
+
{BACKGROUND - why this work was needed, broader context}
|
|
94
|
+
</background>
|
|
95
|
+
|
|
96
|
+
<changed_files>
|
|
97
|
+
{CHANGED_FILES - list of modified file paths}
|
|
98
|
+
</changed_files>
|
|
99
|
+
|
|
100
|
+
<file_contents>
|
|
101
|
+
{FILE_CONTENTS - full content of every changed file, clearly delimited per file}
|
|
102
|
+
</file_contents>
|
|
103
|
+
|
|
104
|
+
<diff>
|
|
105
|
+
{DIFF - the actual git diff}
|
|
106
|
+
</diff>
|
|
107
|
+
|
|
108
|
+
Review whether this implementation correctly and completely achieves the stated goal within the given constraints. Be obsessively thorough - the point of this review is to catch what the implementer missed.
|
|
109
|
+
|
|
110
|
+
REVIEW CHECKLIST:
|
|
111
|
+
|
|
112
|
+
1. **Goal Completeness**: Break the goal into every sub-requirement (explicit AND implied). For each, mark ACHIEVED / MISSED / PARTIAL. Missing even one implied requirement that a reasonable engineer would have addressed = PARTIAL at minimum.
|
|
113
|
+
|
|
114
|
+
2. **Constraint Compliance**: List every constraint. For each, verify compliance with specific code evidence. A constraint violated = automatic FAIL.
|
|
115
|
+
|
|
116
|
+
3. **Requirement Gaps**: Requirements the user clearly wanted but didn't spell out. Things implied by the goal or background that a thoughtful engineer would have included.
|
|
117
|
+
|
|
118
|
+
4. **Over-Engineering**: Anything added that wasn't requested - unnecessary abstractions, extra features, premature optimizations, speculative generality. Flag these as scope creep.
|
|
119
|
+
|
|
120
|
+
5. **Edge Cases**: Given the goal, what inputs or scenarios would break this? Trace through at least 5 edge cases mentally.
|
|
121
|
+
|
|
122
|
+
6. **Behavioral Correctness**: Walk through the code logic for 3+ representative scenarios. Does the code actually produce the expected behavior in each case?
|
|
123
|
+
|
|
124
|
+
OUTPUT FORMAT:
|
|
125
|
+
<verdict>PASS or FAIL</verdict>
|
|
126
|
+
<confidence>HIGH / MEDIUM / LOW</confidence>
|
|
127
|
+
<summary>1-3 sentence overall assessment</summary>
|
|
128
|
+
<goal_breakdown>
|
|
129
|
+
For each sub-requirement:
|
|
130
|
+
- [ACHIEVED/MISSED/PARTIAL] Requirement description
|
|
131
|
+
- Evidence: specific code reference or gap
|
|
132
|
+
</goal_breakdown>
|
|
133
|
+
<constraint_compliance>
|
|
134
|
+
For each constraint:
|
|
135
|
+
- [ACHIEVED/MISSED] Constraint description - evidence
|
|
136
|
+
</constraint_compliance>
|
|
137
|
+
<findings>
|
|
138
|
+
- [PASS/FAIL/WARN] Category: Description
|
|
139
|
+
- File: path (line range if applicable)
|
|
140
|
+
- Evidence: specific code or logic reference
|
|
141
|
+
</findings>
|
|
142
|
+
<blocking_issues>Issues that MUST be fixed. Empty if PASS.</blocking_issues>
|
|
143
|
+
""")
|
|
144
|
+
\`\`\`
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### Agent 2: QA via App Execution (unspecified-high) - MAIN
|
|
149
|
+
|
|
150
|
+
This agent answers: "Does it actually work when you run it?"
|
|
151
|
+
|
|
152
|
+
The QA agent follows a structured process: brainstorm scenarios exhaustively first, then self-review and augment, then create a task list, then execute systematically.
|
|
153
|
+
|
|
154
|
+
\`\`\`
|
|
155
|
+
task(
|
|
156
|
+
category="unspecified-high",
|
|
157
|
+
run_in_background=true,
|
|
158
|
+
load_skills=["playwright", "dev-browser"],
|
|
159
|
+
description="QA by actually running and using the application",
|
|
160
|
+
prompt="""
|
|
161
|
+
<review_type>QA - HANDS-ON APP EXECUTION</review_type>
|
|
162
|
+
|
|
163
|
+
<original_goal>
|
|
164
|
+
{GOAL}
|
|
165
|
+
</original_goal>
|
|
166
|
+
|
|
167
|
+
<constraints>
|
|
168
|
+
{CONSTRAINTS}
|
|
169
|
+
</constraints>
|
|
170
|
+
|
|
171
|
+
<changed_files>
|
|
172
|
+
{CHANGED_FILES}
|
|
173
|
+
</changed_files>
|
|
174
|
+
|
|
175
|
+
<run_command>
|
|
176
|
+
{RUN_COMMAND - how to start the application, or "unknown" if not determined}
|
|
177
|
+
</run_command>
|
|
178
|
+
|
|
179
|
+
You are a QA engineer. Your job is to RUN the application and verify it works through hands-on testing. You do not review code - you test behavior.
|
|
180
|
+
|
|
181
|
+
MANDATORY PROCESS (follow in order):
|
|
182
|
+
|
|
183
|
+
### Step 1: Scenario Brainstorm
|
|
184
|
+
|
|
185
|
+
Before touching the app, write down EVERY test scenario you can think of. Be exhaustive. Think about:
|
|
186
|
+
|
|
187
|
+
- **Happy paths**: The primary use cases this implementation enables. What's the main thing the user wanted to do?
|
|
188
|
+
- **Boundary conditions**: Empty inputs, maximum-length inputs, zero values, negative numbers, special characters, unicode, very large datasets.
|
|
189
|
+
- **Error paths**: Invalid inputs, network failures, missing files, permission denied, timeout conditions.
|
|
190
|
+
- **Regression scenarios**: Existing features that touch the same code paths. Things that worked before and must still work.
|
|
191
|
+
- **State transitions**: What happens when you do things out of order? Rapid repeated actions? Concurrent usage?
|
|
192
|
+
- **UX scenarios** (if applicable): Layout on different sizes, keyboard navigation, screen reader compatibility, loading states, error messages.
|
|
193
|
+
- **Integration points**: Does this feature interact with external services, databases, or other modules? Test those boundaries.
|
|
194
|
+
|
|
195
|
+
Write each scenario as a one-liner with expected behavior. Aim for 15-30 scenarios minimum.
|
|
196
|
+
|
|
197
|
+
### Step 2: Scenario Augmentation
|
|
198
|
+
|
|
199
|
+
Review your scenario list with fresh eyes. For each scenario, ask:
|
|
200
|
+
- "What could go wrong here that I haven't considered?"
|
|
201
|
+
- "What would a malicious or careless user do?"
|
|
202
|
+
- "What environmental conditions could affect this?" (disk full, slow network, expired tokens)
|
|
203
|
+
|
|
204
|
+
Add at least 5 more scenarios from this reflection. Group scenarios by priority: P0 (must pass), P1 (should pass), P2 (nice to pass).
|
|
205
|
+
|
|
206
|
+
### Step 3: Create Task List
|
|
207
|
+
|
|
208
|
+
Convert your augmented scenario list into a structured task list (use TaskCreate/TaskUpdate or your todo system). Each task = one test scenario with:
|
|
209
|
+
- Test name
|
|
210
|
+
- Steps to execute
|
|
211
|
+
- Expected result
|
|
212
|
+
- Priority (P0/P1/P2)
|
|
213
|
+
|
|
214
|
+
### Step 4: Execute Systematically
|
|
215
|
+
|
|
216
|
+
Work through the task list in priority order (P0 first). For each test:
|
|
217
|
+
|
|
218
|
+
1. Execute the test steps
|
|
219
|
+
2. Record actual result
|
|
220
|
+
3. Compare with expected result
|
|
221
|
+
4. Mark PASS or FAIL
|
|
222
|
+
5. If FAIL: capture evidence (screenshot, terminal output, error message)
|
|
223
|
+
6. Mark the task complete
|
|
224
|
+
|
|
225
|
+
**Execution guidance by app type:**
|
|
226
|
+
- **Web app**: Use playwright/dev-browser to navigate, click, fill forms, verify visual output.
|
|
227
|
+
- **CLI tool**: Run commands with various arguments, pipe inputs, check exit codes and output.
|
|
228
|
+
- **Library/SDK**: Write and execute a test script that imports and exercises the public API.
|
|
229
|
+
- **Backend API**: Use curl/httpie to hit endpoints with various payloads, verify response codes and bodies.
|
|
230
|
+
- **Mobile/Desktop**: If not directly runnable, write integration tests and execute them.
|
|
231
|
+
|
|
232
|
+
If the app cannot be started (build failure), that's an immediate FAIL - no need to continue.
|
|
233
|
+
|
|
234
|
+
### Step 5: Compile Results
|
|
235
|
+
|
|
236
|
+
OUTPUT FORMAT:
|
|
237
|
+
<verdict>PASS or FAIL</verdict>
|
|
238
|
+
<confidence>HIGH / MEDIUM / LOW</confidence>
|
|
239
|
+
<summary>1-3 sentence overall assessment</summary>
|
|
240
|
+
<scenario_coverage>
|
|
241
|
+
Total scenarios: N
|
|
242
|
+
P0: X tested, Y passed
|
|
243
|
+
P1: X tested, Y passed
|
|
244
|
+
P2: X tested, Y passed
|
|
245
|
+
</scenario_coverage>
|
|
246
|
+
<test_results>
|
|
247
|
+
For each test:
|
|
248
|
+
- [PASS/FAIL] Test name (Priority)
|
|
249
|
+
- Steps: What you did
|
|
250
|
+
- Expected: What should happen
|
|
251
|
+
- Actual: What actually happened
|
|
252
|
+
- Evidence: Screenshot path or terminal output snippet (if FAIL)
|
|
253
|
+
</test_results>
|
|
254
|
+
<blocking_issues>P0 or P1 failures only. Empty if PASS.</blocking_issues>
|
|
255
|
+
""")
|
|
256
|
+
\`\`\`
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
### Agent 3: Code Quality Review (Critic) - MAIN
|
|
261
|
+
|
|
262
|
+
This agent answers: "Is the code well-written, maintainable, and consistent with the codebase?"
|
|
263
|
+
|
|
264
|
+
\`\`\`
|
|
265
|
+
task(
|
|
266
|
+
subagent_type="critic",
|
|
267
|
+
run_in_background=true,
|
|
268
|
+
load_skills=[],
|
|
269
|
+
description="Review overall code quality, patterns, and architecture",
|
|
270
|
+
prompt="""
|
|
271
|
+
<review_type>CODE QUALITY REVIEW</review_type>
|
|
272
|
+
|
|
273
|
+
<changed_files>
|
|
274
|
+
{CHANGED_FILES}
|
|
275
|
+
</changed_files>
|
|
276
|
+
|
|
277
|
+
<file_contents>
|
|
278
|
+
{FILE_CONTENTS - full content of changed files AND neighboring files that show existing patterns}
|
|
279
|
+
</file_contents>
|
|
280
|
+
|
|
281
|
+
<diff>
|
|
282
|
+
{DIFF}
|
|
283
|
+
</diff>
|
|
284
|
+
|
|
285
|
+
<background>
|
|
286
|
+
{BACKGROUND}
|
|
287
|
+
</background>
|
|
288
|
+
|
|
289
|
+
You are a senior staff engineer conducting a code review. Your standard: "Would I approve this PR without comments?"
|
|
290
|
+
|
|
291
|
+
REVIEW DIMENSIONS (examine each):
|
|
292
|
+
|
|
293
|
+
1. **Correctness**: Logic errors, off-by-one, null/undefined handling, race conditions, resource leaks, unhandled promise rejections.
|
|
294
|
+
|
|
295
|
+
2. **Pattern Consistency**: Does new code follow the codebase's established patterns? Compare with the neighboring files provided. Introducing a new pattern where one already exists = finding.
|
|
296
|
+
|
|
297
|
+
3. **Naming & Readability**: Clear variable/function/type names? Self-documenting code? Would another engineer understand this without explanation?
|
|
298
|
+
|
|
299
|
+
4. **Error Handling**: Errors properly caught, logged, and propagated? No empty catch blocks? No swallowed errors? User-facing errors are helpful?
|
|
300
|
+
|
|
301
|
+
5. **Type Safety**: Any \`as any\`, \`@ts-ignore\`, \`@ts-expect-error\`? Proper generic usage? Correct type narrowing? (If TypeScript/typed language)
|
|
302
|
+
|
|
303
|
+
6. **Performance**: N+1 queries? Unnecessary re-renders? Blocking I/O on hot paths? Memory leaks? Unbounded growth?
|
|
304
|
+
|
|
305
|
+
7. **Abstraction Level**: Right level of abstraction? No copy-paste duplication? But also no premature over-abstraction?
|
|
306
|
+
|
|
307
|
+
8. **Testing**: New behaviors covered by tests? Tests are meaningful, not just coverage padding? Test names describe scenarios?
|
|
308
|
+
|
|
309
|
+
9. **API Design**: Public interfaces clean and consistent with existing APIs? Breaking changes flagged?
|
|
310
|
+
|
|
311
|
+
10. **Tech Debt**: Does this introduce new tech debt? Or create coupling that will be painful to change?
|
|
312
|
+
|
|
313
|
+
Categorize each finding by severity:
|
|
314
|
+
- **CRITICAL**: Will cause bugs, data loss, or crashes in production
|
|
315
|
+
- **MAJOR**: Significant quality issue that should be fixed before merge
|
|
316
|
+
- **MINOR**: Improvement worth making but not blocking
|
|
317
|
+
- **NITPICK**: Style preference, optional
|
|
318
|
+
|
|
319
|
+
OUTPUT FORMAT:
|
|
320
|
+
<verdict>PASS or FAIL</verdict>
|
|
321
|
+
<confidence>HIGH / MEDIUM / LOW</confidence>
|
|
322
|
+
<summary>1-3 sentence overall assessment</summary>
|
|
323
|
+
<findings>
|
|
324
|
+
- [CRITICAL/MAJOR/MINOR/NITPICK] Category: Description
|
|
325
|
+
- File: path (line range)
|
|
326
|
+
- Current: what the code does now
|
|
327
|
+
- Suggestion: how to improve
|
|
328
|
+
</findings>
|
|
329
|
+
<blocking_issues>CRITICAL and MAJOR items only. Empty if PASS.</blocking_issues>
|
|
330
|
+
""")
|
|
331
|
+
\`\`\`
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
### Agent 4: Security Review (Critic) - SUB
|
|
336
|
+
|
|
337
|
+
This agent answers: "Are there security vulnerabilities in these changes?"
|
|
338
|
+
|
|
339
|
+
This is supplementary - it focuses exclusively on security. It does NOT comment on code style, architecture, or functionality unless those directly create a security risk.
|
|
340
|
+
|
|
341
|
+
\`\`\`
|
|
342
|
+
task(
|
|
343
|
+
subagent_type="critic",
|
|
344
|
+
run_in_background=true,
|
|
345
|
+
load_skills=[],
|
|
346
|
+
description="Security-focused review of implementation changes",
|
|
347
|
+
prompt="""
|
|
348
|
+
<review_type>SECURITY REVIEW (supplementary)</review_type>
|
|
349
|
+
|
|
350
|
+
<changed_files>
|
|
351
|
+
{CHANGED_FILES}
|
|
352
|
+
</changed_files>
|
|
353
|
+
|
|
354
|
+
<file_contents>
|
|
355
|
+
{FILE_CONTENTS - full content of changed files}
|
|
356
|
+
</file_contents>
|
|
357
|
+
|
|
358
|
+
<diff>
|
|
359
|
+
{DIFF}
|
|
360
|
+
</diff>
|
|
361
|
+
|
|
362
|
+
You are a security engineer. Review this diff exclusively for security vulnerabilities and anti-patterns. Ignore code style, naming, architecture - unless it directly creates a security risk.
|
|
363
|
+
|
|
364
|
+
SECURITY CHECKLIST:
|
|
365
|
+
|
|
366
|
+
1. **Input Validation**: User inputs sanitized? SQL injection, XSS, command injection, SSRF vectors?
|
|
367
|
+
2. **Auth & AuthZ**: Authentication checks where needed? Authorization verified for each action? Privilege escalation paths?
|
|
368
|
+
3. **Secrets & Credentials**: Hardcoded secrets, API keys, tokens in code or config? Secrets in logs?
|
|
369
|
+
4. **Data Exposure**: Sensitive data in logs? PII in error messages? Over-exposed API responses?
|
|
370
|
+
5. **Dependencies**: New dependencies added? Known CVEs? Suspicious or unnecessary packages?
|
|
371
|
+
6. **Cryptography**: Proper algorithms? No custom crypto? Secure random? Proper key management?
|
|
372
|
+
7. **File & Path**: Path traversal? Unsafe file operations? Symlink following?
|
|
373
|
+
8. **Network**: CORS configured correctly? Rate limiting? TLS enforced? Certificate validation?
|
|
374
|
+
9. **Error Leakage**: Stack traces exposed to users? Internal details in error responses?
|
|
375
|
+
10. **Supply Chain**: Lockfile updated consistently? Dependency pinning?
|
|
376
|
+
|
|
377
|
+
OUTPUT FORMAT:
|
|
378
|
+
<verdict>PASS or FAIL</verdict>
|
|
379
|
+
<severity>CRITICAL / HIGH / MEDIUM / LOW / NONE</severity>
|
|
380
|
+
<summary>1-3 sentence overall assessment</summary>
|
|
381
|
+
<findings>
|
|
382
|
+
- [CRITICAL/HIGH/MEDIUM/LOW] Category: Description
|
|
383
|
+
- File: path (line range)
|
|
384
|
+
- Risk: What could an attacker do?
|
|
385
|
+
- Remediation: Specific fix
|
|
386
|
+
</findings>
|
|
387
|
+
<blocking_issues>CRITICAL and HIGH items only. Empty if PASS.</blocking_issues>
|
|
388
|
+
""")
|
|
389
|
+
\`\`\`
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
### Agent 5: Context Mining (unspecified-high) - MAIN
|
|
394
|
+
|
|
395
|
+
This agent answers: "Did we miss any context that should have informed this implementation?"
|
|
396
|
+
|
|
397
|
+
\`\`\`
|
|
398
|
+
task(
|
|
399
|
+
category="unspecified-high",
|
|
400
|
+
run_in_background=true,
|
|
401
|
+
load_skills=["git-master"],
|
|
402
|
+
description="Mine all accessible contexts for missed requirements or background knowledge",
|
|
403
|
+
prompt="""
|
|
404
|
+
<review_type>CONTEXT MINING - MISSED REQUIREMENTS & BACKGROUND</review_type>
|
|
405
|
+
|
|
406
|
+
<original_goal>
|
|
407
|
+
{GOAL}
|
|
408
|
+
</original_goal>
|
|
409
|
+
|
|
410
|
+
<constraints>
|
|
411
|
+
{CONSTRAINTS}
|
|
412
|
+
</constraints>
|
|
413
|
+
|
|
414
|
+
<changed_files>
|
|
415
|
+
{CHANGED_FILES}
|
|
416
|
+
</changed_files>
|
|
417
|
+
|
|
418
|
+
<background>
|
|
419
|
+
{BACKGROUND}
|
|
420
|
+
</background>
|
|
421
|
+
|
|
422
|
+
You are an investigator. Your mission: search every accessible information source to find context that should have informed this implementation but might have been missed. The question: "Is there something we should have known but didn't?"
|
|
423
|
+
|
|
424
|
+
SOURCES TO SEARCH (use every available tool):
|
|
425
|
+
|
|
426
|
+
1. **Git History** (ALWAYS search):
|
|
427
|
+
- \`git log --oneline -20 -- {each changed file}\` - recent changes and their reasons
|
|
428
|
+
- \`git blame {critical sections}\` - who wrote what and when
|
|
429
|
+
- \`git log --all --grep="{keywords from goal}"\` - related commits
|
|
430
|
+
- Look for reverted commits, TODO/FIXME/HACK comments in history
|
|
431
|
+
|
|
432
|
+
2. **GitHub** (if \`gh\` CLI available):
|
|
433
|
+
- \`gh issue list --search "{keywords}"\` - related open/closed issues
|
|
434
|
+
- \`gh pr list --search "{keywords}" --state all\` - related PRs and their review comments
|
|
435
|
+
- Check if any issue is specifically linked to this work
|
|
436
|
+
- Look at review comments on past PRs touching these files
|
|
437
|
+
|
|
438
|
+
3. **Communication Channels** (if MCP tools available):
|
|
439
|
+
- Slack: search for messages mentioning the feature, file names, or related keywords
|
|
440
|
+
- Notion: search for design docs, RFCs, ADRs related to this feature
|
|
441
|
+
- Discord: relevant discussions
|
|
442
|
+
|
|
443
|
+
4. **Codebase Cross-References** (ALWAYS search):
|
|
444
|
+
- Files that import or reference the changed modules
|
|
445
|
+
- Tests that might need updating due to behavior changes
|
|
446
|
+
- Documentation (README, docs/, comments) that references changed behavior
|
|
447
|
+
- Config files that might need corresponding updates
|
|
448
|
+
- Related features in the same domain
|
|
449
|
+
|
|
450
|
+
WHAT TO LOOK FOR:
|
|
451
|
+
|
|
452
|
+
- Requirements mentioned in issues/PRs that the implementation misses
|
|
453
|
+
- Past decisions explaining WHY code was written a certain way - and whether new changes respect those reasons
|
|
454
|
+
- Related systems or features affected by these changes
|
|
455
|
+
- Warnings from previous developers (PR review comments, inline TODOs, commit messages)
|
|
456
|
+
- Migration or deprecation notes that affect the changed code
|
|
457
|
+
- Design decisions documented outside the codebase (Notion, Slack, ADRs)
|
|
458
|
+
|
|
459
|
+
OUTPUT FORMAT:
|
|
460
|
+
<verdict>PASS or FAIL</verdict>
|
|
461
|
+
<confidence>HIGH / MEDIUM / LOW</confidence>
|
|
462
|
+
<summary>1-3 sentence overall assessment</summary>
|
|
463
|
+
<sources_searched>
|
|
464
|
+
- [SEARCHED/SKIPPED] Source name - what was searched (or why it wasn't accessible)
|
|
465
|
+
</sources_searched>
|
|
466
|
+
<discovered_context>
|
|
467
|
+
For each discovery:
|
|
468
|
+
- Source: Where found (git commit abc123, GitHub issue #42, Slack message, etc.)
|
|
469
|
+
- Finding: What was found
|
|
470
|
+
- Relevance: How it relates to the current work
|
|
471
|
+
- Impact: [BLOCKING / IMPORTANT / FYI]
|
|
472
|
+
</discovered_context>
|
|
473
|
+
<missed_requirements>Requirements the implementation should address but doesn't. Empty if none.</missed_requirements>
|
|
474
|
+
<blocking_issues>BLOCKING items only. Empty if PASS.</blocking_issues>
|
|
475
|
+
""")
|
|
476
|
+
\`\`\`
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
## Phase 2: Wait & Collect
|
|
481
|
+
|
|
482
|
+
After launching all 5 agents in one turn, **end your response**. Wait for system notifications as each agent completes.
|
|
483
|
+
|
|
484
|
+
As each completes, collect via \`background_output(task_id="...")\`. Store each verdict:
|
|
485
|
+
|
|
486
|
+
| Agent | Verdict | Notes |
|
|
487
|
+
|-------|---------|-------|
|
|
488
|
+
| 1. Goal Verification | pending | - |
|
|
489
|
+
| 2. QA Execution | pending | - |
|
|
490
|
+
| 3. Code Quality | pending | - |
|
|
491
|
+
| 4. Security | pending | - |
|
|
492
|
+
| 5. Context Mining | pending | - |
|
|
493
|
+
|
|
494
|
+
Do NOT deliver the final report until ALL 5 have completed.
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## Phase 3: Deliver Verdict
|
|
499
|
+
|
|
500
|
+
<verdict_logic>
|
|
501
|
+
|
|
502
|
+
ALL 5 agents returned PASS → **REVIEW PASSED**
|
|
503
|
+
ANY agent returned FAIL → **REVIEW FAILED - criteria not met**
|
|
504
|
+
|
|
505
|
+
</verdict_logic>
|
|
506
|
+
|
|
507
|
+
Compile the final report in this format:
|
|
508
|
+
|
|
509
|
+
\`\`\`markdown
|
|
510
|
+
# Review Work - Final Report
|
|
511
|
+
|
|
512
|
+
## Overall Verdict: PASSED / FAILED
|
|
513
|
+
|
|
514
|
+
| # | Review Area | Agent Type | Verdict | Confidence |
|
|
515
|
+
|---|------------|------------|---------|------------|
|
|
516
|
+
| 1 | Goal & Constraint Verification | Critic | PASS/FAIL | HIGH/MED/LOW |
|
|
517
|
+
| 2 | QA Execution | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
|
|
518
|
+
| 3 | Code Quality | Critic | PASS/FAIL | HIGH/MED/LOW |
|
|
519
|
+
| 4 | Security (supplementary) | Critic | PASS/FAIL | Severity |
|
|
520
|
+
| 5 | Context Mining | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
|
|
521
|
+
|
|
522
|
+
## Blocking Issues
|
|
523
|
+
[Aggregated from all agents - deduplicated, prioritized]
|
|
524
|
+
|
|
525
|
+
## Key Findings
|
|
526
|
+
[Top 5-10 most important findings across all agents, grouped by theme]
|
|
527
|
+
|
|
528
|
+
## Recommendations
|
|
529
|
+
[If FAILED: exactly what to fix, in priority order]
|
|
530
|
+
[If PASSED: non-blocking suggestions worth considering]
|
|
531
|
+
\`\`\`
|
|
532
|
+
|
|
533
|
+
If FAILED - be specific. The user should know exactly what to fix and in what order. No vague "consider improving X" - state the problem, the file, and the fix.
|
|
534
|
+
|
|
535
|
+
If PASSED - keep it short. Highlight any non-blocking suggestions, but don't turn a passing review into a lecture.`,
|
|
536
|
+
}
|