oh-my-copilot 4.11.7 → 4.11.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +18 -4
- package/agents/analyst.agent.md +1 -1
- package/agents/architect.agent.md +1 -1
- package/agents/code-reviewer.agent.md +1 -1
- package/agents/code-simplifier.agent.md +1 -1
- package/agents/critic.agent.md +1 -1
- package/agents/debugger.agent.md +1 -1
- package/agents/designer.agent.md +1 -1
- package/agents/devils-advocate.agent.md +219 -0
- package/agents/document-specialist.agent.md +1 -1
- package/agents/executor.agent.md +1 -1
- package/agents/explore.agent.md +1 -1
- package/agents/git-master.agent.md +1 -1
- package/agents/planner.agent.md +1 -1
- package/agents/qa-tester.agent.md +1 -1
- package/agents/scientist.agent.md +1 -1
- package/agents/security-reviewer.agent.md +1 -1
- package/agents/test-engineer.agent.md +1 -1
- package/agents/verifier.agent.md +1 -1
- package/agents/writer.agent.md +1 -1
- package/bridge/cli.cjs +3721 -2272
- package/bridge/runtime-cli.cjs +902 -20
- package/bridge/team-bridge.cjs +106 -48
- package/bridge/team.js +1491 -72
- package/dist/__tests__/agent-registry.test.js +3 -3
- package/dist/__tests__/auto-slash-aliases.test.js +73 -0
- package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
- package/dist/__tests__/cleanup-validation.test.js +2 -2
- package/dist/__tests__/hud/render.test.js +87 -0
- package/dist/__tests__/hud/render.test.js.map +1 -1
- package/dist/__tests__/hud/state.test.js +42 -1
- package/dist/__tests__/hud/state.test.js.map +1 -1
- package/dist/__tests__/hud/usage-api.test.js +202 -14
- package/dist/__tests__/hud/usage-api.test.js.map +1 -1
- package/dist/__tests__/installer.test.js +23 -13
- package/dist/__tests__/installer.test.js.map +1 -1
- package/dist/__tests__/issue-2652-runtime-wiring-and-output-contract.test.d.ts +2 -0
- package/dist/__tests__/issue-2652-runtime-wiring-and-output-contract.test.d.ts.map +1 -0
- package/dist/__tests__/issue-2652-runtime-wiring-and-output-contract.test.js +21 -0
- package/dist/__tests__/issue-2652-runtime-wiring-and-output-contract.test.js.map +1 -0
- package/dist/__tests__/keyword-detector-script.test.js +100 -3
- package/dist/__tests__/keyword-detector-script.test.js.map +1 -1
- package/dist/__tests__/omc-cli-rendering.test.d.ts +2 -0
- package/dist/__tests__/omc-cli-rendering.test.d.ts.map +1 -0
- package/dist/__tests__/omc-cli-rendering.test.js +54 -0
- package/dist/__tests__/omc-cli-rendering.test.js.map +1 -0
- package/dist/__tests__/post-tool-use-failure.test.js +36 -0
- package/dist/__tests__/post-tool-use-failure.test.js.map +1 -1
- package/dist/__tests__/pre-tool-enforcer.test.js +590 -15
- package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
- package/dist/__tests__/project-session-manager-session-filter.test.d.ts +2 -0
- package/dist/__tests__/project-session-manager-session-filter.test.d.ts.map +1 -0
- package/dist/__tests__/project-session-manager-session-filter.test.js +69 -0
- package/dist/__tests__/project-session-manager-session-filter.test.js.map +1 -0
- package/dist/__tests__/ralph-prd-mandatory.test.js +1 -0
- package/dist/__tests__/ralph-prd-mandatory.test.js.map +1 -1
- package/dist/__tests__/skills.test.js +93 -5
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/__tests__/state-root-resolution.test.d.ts +2 -0
- package/dist/__tests__/state-root-resolution.test.d.ts.map +1 -1
- package/dist/__tests__/state-root-resolution.test.js +95 -1
- package/dist/__tests__/state-root-resolution.test.js.map +1 -1
- package/dist/agents/definitions.d.ts +5 -1
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +14 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/prompt-helpers.d.ts.map +1 -1
- package/dist/agents/prompt-helpers.js +4 -6
- package/dist/agents/prompt-helpers.js.map +1 -1
- package/dist/cli/__tests__/ask.test.js +3 -1
- package/dist/cli/__tests__/ask.test.js.map +1 -1
- package/dist/cli/commands/__tests__/team.test.js +18 -0
- package/dist/cli/commands/__tests__/team.test.js.map +1 -1
- package/dist/cli/commands/doctor-team-routing.d.ts +11 -0
- package/dist/cli/commands/doctor-team-routing.d.ts.map +1 -0
- package/dist/cli/commands/doctor-team-routing.js +94 -0
- package/dist/cli/commands/doctor-team-routing.js.map +1 -0
- package/dist/cli/commands/team.d.ts +1 -1
- package/dist/cli/commands/team.d.ts.map +1 -1
- package/dist/cli/commands/team.js +13 -5
- package/dist/cli/commands/team.js.map +1 -1
- package/dist/cli/index.js +27 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/launch.js +1 -1
- package/dist/cli/launch.js.map +1 -1
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.js +1 -1
- package/dist/config/__tests__/loader.test.js +183 -1
- package/dist/config/__tests__/loader.test.js.map +1 -1
- package/dist/config/loader.d.ts +1 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +151 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/features/auto-update.js +2 -2
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/builtin-skills/skills.d.ts +1 -0
- package/dist/features/builtin-skills/skills.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.js +19 -2
- package/dist/features/builtin-skills/skills.js.map +1 -1
- package/dist/features/delegation-routing/types.d.ts.map +1 -1
- package/dist/features/delegation-routing/types.js +2 -0
- package/dist/features/delegation-routing/types.js.map +1 -1
- package/dist/hooks/__tests__/bridge-routing.test.js +246 -0
- package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
- package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/executor.js +5 -1
- package/dist/hooks/auto-slash-command/executor.js.map +1 -1
- package/dist/hooks/autopilot/__tests__/pipeline.test.js +3 -0
- package/dist/hooks/autopilot/__tests__/pipeline.test.js.map +1 -1
- package/dist/hooks/autopilot/__tests__/prompts.test.js +12 -0
- package/dist/hooks/autopilot/__tests__/prompts.test.js.map +1 -1
- package/dist/hooks/autopilot/adapters/execution-adapter.d.ts.map +1 -1
- package/dist/hooks/autopilot/adapters/execution-adapter.js +8 -0
- package/dist/hooks/autopilot/adapters/execution-adapter.js.map +1 -1
- package/dist/hooks/autopilot/adapters/ralph-adapter.d.ts.map +1 -1
- package/dist/hooks/autopilot/adapters/ralph-adapter.js +2 -0
- package/dist/hooks/autopilot/adapters/ralph-adapter.js.map +1 -1
- package/dist/hooks/autopilot/prompts.d.ts.map +1 -1
- package/dist/hooks/autopilot/prompts.js +3 -0
- package/dist/hooks/autopilot/prompts.js.map +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +145 -2
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/keyword-detector/__tests__/index.test.js +95 -0
- package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
- package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
- package/dist/hooks/keyword-detector/index.js +159 -1
- package/dist/hooks/keyword-detector/index.js.map +1 -1
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +18 -0
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
- package/dist/hooks/ralph/verifier.d.ts.map +1 -1
- package/dist/hooks/ralph/verifier.js +1 -0
- package/dist/hooks/ralph/verifier.js.map +1 -1
- package/dist/hud/__tests__/git-status.test.js +5 -0
- package/dist/hud/__tests__/git-status.test.js.map +1 -1
- package/dist/hud/elements/git.d.ts +1 -1
- package/dist/hud/elements/git.js +2 -2
- package/dist/hud/elements/git.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +19 -1
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +3 -0
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/types.d.ts +2 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js.map +1 -1
- package/dist/hud/usage-api.d.ts +11 -1
- package/dist/hud/usage-api.d.ts.map +1 -1
- package/dist/hud/usage-api.js +51 -11
- package/dist/hud/usage-api.js.map +1 -1
- package/dist/installer/hooks.d.ts +1 -1
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +1 -0
- package/dist/installer/hooks.js.map +1 -1
- package/dist/notifications/__tests__/formatter.test.js +18 -0
- package/dist/notifications/__tests__/formatter.test.js.map +1 -1
- package/dist/notifications/__tests__/notify-registry-integration.test.js +23 -0
- package/dist/notifications/__tests__/notify-registry-integration.test.js.map +1 -1
- package/dist/notifications/formatter.d.ts.map +1 -1
- package/dist/notifications/formatter.js +27 -1
- package/dist/notifications/formatter.js.map +1 -1
- package/dist/notifications/index.js +3 -3
- package/dist/notifications/index.js.map +1 -1
- package/dist/shared/types.d.ts +47 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +44 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/team/__tests__/behavior-snapshot.test.d.ts +2 -0
- package/dist/team/__tests__/behavior-snapshot.test.d.ts.map +1 -0
- package/dist/team/__tests__/behavior-snapshot.test.js +79 -0
- package/dist/team/__tests__/behavior-snapshot.test.js.map +1 -0
- package/dist/team/__tests__/cli-worker-contract.test.d.ts +2 -0
- package/dist/team/__tests__/cli-worker-contract.test.d.ts.map +1 -0
- package/dist/team/__tests__/cli-worker-contract.test.js +128 -0
- package/dist/team/__tests__/cli-worker-contract.test.js.map +1 -0
- package/dist/team/__tests__/critic-cli-worker.integration.test.d.ts +2 -0
- package/dist/team/__tests__/critic-cli-worker.integration.test.d.ts.map +1 -0
- package/dist/team/__tests__/critic-cli-worker.integration.test.js +102 -0
- package/dist/team/__tests__/critic-cli-worker.integration.test.js.map +1 -0
- package/dist/team/__tests__/prompt-sanitization.test.js +21 -9
- package/dist/team/__tests__/prompt-sanitization.test.js.map +1 -1
- package/dist/team/__tests__/resolved-routing-snapshot.test.d.ts +2 -0
- package/dist/team/__tests__/resolved-routing-snapshot.test.d.ts.map +1 -0
- package/dist/team/__tests__/resolved-routing-snapshot.test.js +100 -0
- package/dist/team/__tests__/resolved-routing-snapshot.test.js.map +1 -0
- package/dist/team/__tests__/runtime-v2-role-routing.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-v2-role-routing.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-v2-role-routing.test.js +229 -0
- package/dist/team/__tests__/runtime-v2-role-routing.test.js.map +1 -0
- package/dist/team/__tests__/runtime-v2.dispatch.test.js +1 -0
- package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
- package/dist/team/__tests__/runtime-v2.gemini-preflight.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-v2.gemini-preflight.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-v2.gemini-preflight.test.js +97 -0
- package/dist/team/__tests__/runtime-v2.gemini-preflight.test.js.map +1 -0
- package/dist/team/__tests__/stage-router.test.d.ts +2 -0
- package/dist/team/__tests__/stage-router.test.d.ts.map +1 -0
- package/dist/team/__tests__/stage-router.test.js +121 -0
- package/dist/team/__tests__/stage-router.test.js.map +1 -0
- package/dist/team/__tests__/worker-bootstrap.test.js +21 -3
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/__tests__/worker-cli-roundtrip.test.d.ts +2 -0
- package/dist/team/__tests__/worker-cli-roundtrip.test.d.ts.map +1 -0
- package/dist/team/__tests__/worker-cli-roundtrip.test.js +71 -0
- package/dist/team/__tests__/worker-cli-roundtrip.test.js.map +1 -0
- package/dist/team/cli-worker-contract.d.ts +58 -0
- package/dist/team/cli-worker-contract.d.ts.map +1 -0
- package/dist/team/cli-worker-contract.js +158 -0
- package/dist/team/cli-worker-contract.js.map +1 -0
- package/dist/team/mcp-team-bridge.d.ts.map +1 -1
- package/dist/team/mcp-team-bridge.js +2 -14
- package/dist/team/mcp-team-bridge.js.map +1 -1
- package/dist/team/model-contract.d.ts +6 -0
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +1 -1
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/runtime-v2.d.ts +36 -0
- package/dist/team/runtime-v2.d.ts.map +1 -1
- package/dist/team/runtime-v2.js +320 -10
- package/dist/team/runtime-v2.js.map +1 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +90 -9
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/stage-router.d.ts +47 -0
- package/dist/team/stage-router.d.ts.map +1 -0
- package/dist/team/stage-router.js +179 -0
- package/dist/team/stage-router.js.map +1 -0
- package/dist/team/types.d.ts +17 -1
- package/dist/team/types.d.ts.map +1 -1
- package/dist/team/types.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts +2 -2
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +10 -6
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/utils/omc-cli-rendering.d.ts.map +1 -1
- package/dist/utils/omc-cli-rendering.js +25 -5
- package/dist/utils/omc-cli-rendering.js.map +1 -1
- package/docs/REFERENCE.md +5 -5
- package/docs/architecture/performance.md +3 -3
- package/docs/architecture/permissions.md +2 -2
- package/docs/copilot-instructions.md +1 -1
- package/docs/design/project-session-manager.md +7 -7
- package/package.json +2 -2
- package/scripts/keyword-detector.mjs +223 -2
- package/scripts/post-tool-use-failure.mjs +65 -0
- package/scripts/post-tool-verifier.mjs +22 -1
- package/scripts/pre-tool-enforcer.mjs +31 -28
- package/scripts/session-start.mjs +40 -2
- package/skills/AGENTS.md +20 -4
- package/skills/critique/SKILL.md +136 -0
- package/skills/mcp-setup/SKILL.md +45 -10
- package/skills/omc-setup/phases/03-integrations.md +6 -6
- package/skills/omc-teams/SKILL.md +1 -1
- package/skills/project-session-manager/lib/session.sh +2 -2
- package/skills/team/SKILL.md +53 -10
- package/templates/hooks/keyword-detector.mjs +166 -2
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "oh-my-copilot",
|
|
12
12
|
"description": "Copilot CLI native multi-agent orchestration with intelligent model routing, 18 agent variants, and 32 powerful skills. Zero learning curve. Maximum power.",
|
|
13
|
-
"version": "4.11.
|
|
13
|
+
"version": "4.11.8",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Robin Norberg",
|
|
16
16
|
"email": "github@platypus.se"
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
]
|
|
28
28
|
}
|
|
29
29
|
],
|
|
30
|
-
"version": "4.11.
|
|
30
|
+
"version": "4.11.8"
|
|
31
31
|
}
|
package/README.md
CHANGED
|
@@ -36,15 +36,15 @@
|
|
|
36
36
|
# or
|
|
37
37
|
npm i -g oh-my-copilot@latest
|
|
38
38
|
|
|
39
|
-
|
|
40
39
|
# Step 2: Setup
|
|
41
40
|
/omc-setup
|
|
42
41
|
|
|
43
|
-
|
|
44
42
|
# Step 3: Build something
|
|
45
43
|
/autopilot: build a todo-app
|
|
46
44
|
# or
|
|
47
45
|
autopilot: build a todo-app
|
|
46
|
+
|
|
47
|
+
# If you enjoy the output, give the repo att ⭐ and tell a friend
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
### Not Sure Where to Start?
|
|
@@ -86,32 +86,46 @@ Optional shortcuts for power users. Natural language works fine without them.
|
|
|
86
86
|
| `c3g` |  | Quadri-model orchestration | `c3g review this PR` |
|
|
87
87
|
| `omcp team` |  | tmux CLI workers (codex/gemini/copilot) | `omcp team 2:codex "security review"` |
|
|
88
88
|
| `code review` |  | Code review mode | `code review the auth module` |
|
|
89
|
+
| `critique` |  | Pre-push adversarial critique | `critique my changes` |
|
|
90
|
+
| `debug`, `diagnose` |  | Session/repo diagnostics | `debug why hooks aren't firing` |
|
|
89
91
|
| `deep-analyze` |  | Deep analysis mode | `deep-analyze why tests are failing` |
|
|
90
92
|
| `deep-dive` |  | Trace → interview pipeline | `deep-dive why auth is slow` |
|
|
93
|
+
| `deepinit` |  | Deep codebase init with AGENTS.md | `deepinit` |
|
|
91
94
|
| `deep-interview` |  | Socratic requirements clarification | `deep-interview "vague idea"` |
|
|
92
95
|
| `deep-review` |  | Multi-pass code review (4 passes) | `deep-review this PR` |
|
|
93
96
|
| `deepsearch` |  | Codebase-focused search routing | `deepsearch for auth middleware` |
|
|
97
|
+
| `deslop`, `anti-slop` |  | AI code slop cleanup | `deslop the auth module` |
|
|
94
98
|
| `discover` |  | Parallel codebase quality scan | `discover src/hooks/` |
|
|
99
|
+
| `external-context` |  | Parallel external doc/web search | `external-context React Server Components` |
|
|
100
|
+
| `sciomc` |  | Parallel scientist orchestration | `sciomc analyze test failures` |
|
|
95
101
|
| `security review` |  | Security review mode | `security review the API endpoints` |
|
|
96
102
|
| `tdd`, `test first` |  | TDD workflow enforcement | `tdd: implement password validation` |
|
|
103
|
+
| `trace` |  | Evidence-driven causal tracing | `trace why auth is broken` |
|
|
104
|
+
| `verify` |  | Verify changes work before claiming done | `verify the fix` |
|
|
97
105
|
| `ultrathink` |  | Deep reasoning mode | `ultrathink about this architecture` |
|
|
98
106
|
| `ralplan` |  | Iterative planning consensus | `ralplan this feature` |
|
|
99
107
|
| `autopilot` |  | Full autonomous execution | `autopilot: build a todo app` |
|
|
108
|
+
| `cancelomc`, `stopomc` |  | Stop active OMC modes | `stopomc` |
|
|
100
109
|
| `experiment` |  | Hypothesis-driven experiment loop | `experiment: optimize API latency` |
|
|
101
110
|
| `ralph` |  | Persistence mode | `ralph: refactor auth` |
|
|
102
111
|
| `ralphthon` |  | Autonomous hackathon mode | `ralphthon: build MVP in 2 hours` |
|
|
112
|
+
| `self-improve` |  | Autonomous evolutionary code improvement | `self-improve the parser module` |
|
|
113
|
+
| `skillify` |  | Extract reusable skill from session | `skillify this workflow` |
|
|
103
114
|
| `ulw` |  | Maximum parallelism | `ulw fix all errors` |
|
|
104
115
|
| `gh setup` |  | Configure GitHub integration | `gh setup` |
|
|
105
116
|
| `gh triage` |  | GitHub issue/PR/CI triage | `gh triage` |
|
|
106
117
|
| `gh review` |  | Interactive GitHub PR review | `gh review` |
|
|
107
118
|
| `gh auto-review` |  | Automated code review via code-reviewer agent | `gh auto-review` |
|
|
108
119
|
| `gh project` |  | Manage GitHub Projects (v2) boards | `gh project` |
|
|
120
|
+
| `ado sprint` |  | Sprint planning and iteration management | `ado sprint` |
|
|
109
121
|
| `ado setup` |  | Configure Azure DevOps integration | `ado setup` |
|
|
110
122
|
| `ado triage` |  | Azure DevOps work item triage | `ado triage` |
|
|
111
123
|
| `ado review` |  | Interactive Azure DevOps PR review | `ado review` |
|
|
112
124
|
| `ado auto-review` |  | Automated code review via code-reviewer agent | `ado auto-review` |
|
|
113
|
-
| `
|
|
114
|
-
| `
|
|
125
|
+
| `hud` |  | Configure status line display | `hud preset minimal` |
|
|
126
|
+
| `learner` |  | Learn a skill from the current conversation | `learner` |
|
|
127
|
+
| `remember` |  | Save reusable project knowledge | `remember this pattern` |
|
|
128
|
+
| `wiki` |  | Persistent markdown knowledge base | `wiki add auth architecture notes` |
|
|
115
129
|
|
|
116
130
|
**Notes:**
|
|
117
131
|
|
package/agents/analyst.agent.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-reviewer
|
|
3
3
|
description: Expert code review specialist with severity-rated feedback, logic defect detection, SOLID principle checks, style, performance, and quality strategy
|
|
4
|
-
model:
|
|
4
|
+
model: opus
|
|
5
5
|
disallowedTools: Write, Edit
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-simplifier
|
|
3
3
|
description: Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
|
|
4
|
-
model:
|
|
4
|
+
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<Agent_Prompt>
|
package/agents/critic.agent.md
CHANGED
package/agents/debugger.agent.md
CHANGED
package/agents/designer.agent.md
CHANGED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devils-advocate
|
|
3
|
+
description: Independent pre-push critique — finds flaws in unpushed commits with adversarial skepticism
|
|
4
|
+
model: opus
|
|
5
|
+
disallowedTools: Write, Edit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<Agent_Prompt>
|
|
9
|
+
<Role>
|
|
10
|
+
You are Devil's Advocate — an adversarial pre-push reviewer. You exist because authors are blind to their own mistakes.
|
|
11
|
+
|
|
12
|
+
You are reviewing code that was written in the same agent session or by the same developer. Your job is to find flaws the author missed. Approach with skepticism — the author fills in gaps mentally and rationalizes decisions. You only see the artifact and the codebase.
|
|
13
|
+
|
|
14
|
+
Do not defer to the author's intent. If code is wrong, it is wrong regardless of what the author meant. You are the last line of defense before code reaches the remote.
|
|
15
|
+
|
|
16
|
+
You are responsible for finding what is wrong, suboptimal, insufficient, faulty, or broken in unpushed commits, and proposing concrete fixes for every issue found.
|
|
17
|
+
You are not responsible for implementing fixes (executor), designing architecture (architect), or writing tests (test-engineer).
|
|
18
|
+
</Role>
|
|
19
|
+
|
|
20
|
+
<Why_This_Matters>
|
|
21
|
+
Code that reaches the remote is code that others pull, build on, and deploy. A flaw caught before push costs minutes to fix. The same flaw caught after merge costs hours of debugging, rollbacks, and coordination. Same-context critique has author bias — the author fills in gaps mentally and rationalizes decisions. Independent critique only sees the artifact and codebase, which is why this agent exists as a separate subagent.
|
|
22
|
+
</Why_This_Matters>
|
|
23
|
+
|
|
24
|
+
<Success_Criteria>
|
|
25
|
+
- ALL unpushed commits reviewed (not just the latest)
|
|
26
|
+
- Standards discovered from project config before evaluation begins
|
|
27
|
+
- Every criterion evaluated as binary PASS or FAIL
|
|
28
|
+
- Every FAIL includes file:line evidence and a concrete proposed fix
|
|
29
|
+
- Every PASS includes brief evidence (not vague reassurance)
|
|
30
|
+
- "Not Verified" section lists what could not be checked
|
|
31
|
+
- Clear recommendation: PUSH or FIX FIRST
|
|
32
|
+
- No percentage scores — binary only
|
|
33
|
+
</Success_Criteria>
|
|
34
|
+
|
|
35
|
+
<Constraints>
|
|
36
|
+
- Read-only: Write and Edit tools are blocked.
|
|
37
|
+
- Independent: Never soften findings because the author "probably meant" something. Judge only what exists.
|
|
38
|
+
- Evidence-based: No finding without a file:line citation. Opinions are not findings.
|
|
39
|
+
- Scope-bound: Only evaluate what is in the diff. Do not penalize for out-of-scope features.
|
|
40
|
+
- Honest: If code is genuinely solid, say so. Do not manufacture problems to appear thorough.
|
|
41
|
+
- Inapplicable criteria are marked PASS with a note explaining why they don't apply.
|
|
42
|
+
</Constraints>
|
|
43
|
+
|
|
44
|
+
<Standards_Discovery>
|
|
45
|
+
Before evaluating, calibrate against the project's actual standards:
|
|
46
|
+
|
|
47
|
+
1. Read CLAUDE.md and AGENTS.md if present — these contain documented conventions.
|
|
48
|
+
2. Check config files: .eslintrc, .prettierrc, tsconfig.json, pyproject.toml, .editorconfig.
|
|
49
|
+
3. Scan for ADR files in conventional locations: docs/adr/, adr/, doc/architecture/.
|
|
50
|
+
4. Grep for dominant patterns in the codebase — if 5+ instances follow one approach, that is the enforced convention. Violations of dominant patterns fail even if undocumented.
|
|
51
|
+
5. Check for test conventions: what framework, what naming pattern, where tests live.
|
|
52
|
+
|
|
53
|
+
Use discovered standards to calibrate Consistency and Code Quality evaluations. Cite the source when flagging a convention violation (e.g., "violates pattern seen in 12 files" or "contradicts CLAUDE.md rule").
|
|
54
|
+
</Standards_Discovery>
|
|
55
|
+
|
|
56
|
+
<Investigation_Protocol>
|
|
57
|
+
Phase 1 — Scope Assessment:
|
|
58
|
+
1. Read the commit log to understand what was changed and why.
|
|
59
|
+
2. Read the diff stat to identify which files were modified and the scale of changes.
|
|
60
|
+
3. For each changed file, read the full diff to understand the actual changes.
|
|
61
|
+
4. For files with significant changes, read the surrounding code context (not just the diff) to understand integration points.
|
|
62
|
+
|
|
63
|
+
Phase 2 — Standards Discovery:
|
|
64
|
+
Execute the Standards Discovery protocol above. This calibrates the review.
|
|
65
|
+
|
|
66
|
+
Phase 3 — Systematic Evaluation:
|
|
67
|
+
Evaluate each dimension systematically. For each criterion:
|
|
68
|
+
1. Examine the relevant code in the diff.
|
|
69
|
+
2. Determine PASS or FAIL.
|
|
70
|
+
3. If FAIL: cite the exact file:line, describe the issue, and propose a concrete fix.
|
|
71
|
+
4. If PASS: note the brief evidence.
|
|
72
|
+
|
|
73
|
+
Phase 4 — Cross-cutting Concerns:
|
|
74
|
+
After individual criteria, look for cross-cutting issues:
|
|
75
|
+
- Do the changes work together coherently?
|
|
76
|
+
- Are there interactions between changed files that introduce bugs?
|
|
77
|
+
- Does the commit set tell a coherent story, or are unrelated changes mixed in?
|
|
78
|
+
|
|
79
|
+
Phase 5 — Synthesis:
|
|
80
|
+
Compile the structured report. Count PASSes and FAILs. Issue recommendation.
|
|
81
|
+
</Investigation_Protocol>
|
|
82
|
+
|
|
83
|
+
<Evaluation_Dimensions>
|
|
84
|
+
### Correctness (5 criteria)
|
|
85
|
+
- **logic-correct**: No logic errors, off-by-one, incorrect operators, wrong comparisons
|
|
86
|
+
- **null-safety**: No null/undefined dereferences, proper optional chaining or guards
|
|
87
|
+
- **edge-cases**: Boundary conditions handled (empty arrays, zero values, max values, concurrent access)
|
|
88
|
+
- **error-paths**: Error conditions handled, exceptions caught appropriately, no silent failures
|
|
89
|
+
- **completeness**: No TODO/HACK/placeholder stubs in committed code, no dead code paths, no partial implementations
|
|
90
|
+
|
|
91
|
+
### Security (3 criteria)
|
|
92
|
+
- **no-secrets**: No hardcoded API keys, passwords, tokens, connection strings in source
|
|
93
|
+
- **input-validated**: User/external input sanitized, no SQL/XSS/command injection vectors
|
|
94
|
+
- **auth-enforced**: Authentication and authorization checks present where required, no privilege escalation paths
|
|
95
|
+
|
|
96
|
+
### Code Quality (3 criteria)
|
|
97
|
+
- **no-duplication**: No copy-paste code blocks, DRY principle respected
|
|
98
|
+
- **complexity**: Functions have reasonable cyclomatic complexity (<10), no deeply nested logic (>4 levels)
|
|
99
|
+
- **clarity**: Clear naming, intent is obvious from the code, no misleading names or obscure abbreviations
|
|
100
|
+
|
|
101
|
+
### Performance (2 criteria)
|
|
102
|
+
- **algorithmic**: No O(n^2) when O(n) is possible, no N+1 query patterns, no unnecessary iterations
|
|
103
|
+
- **resources**: No resource leaks (unclosed handles, missing cleanup/dispose), no unbounded growth
|
|
104
|
+
|
|
105
|
+
### Consistency (2 criteria)
|
|
106
|
+
- **style**: Formatting, naming conventions, and patterns match the existing codebase
|
|
107
|
+
- **conventions**: Project-specific conventions (from CLAUDE.md, linter configs, dominant patterns) are followed
|
|
108
|
+
|
|
109
|
+
### Integration (2 criteria)
|
|
110
|
+
- **api-compatibility**: No breaking changes to public APIs or interfaces without version bumps
|
|
111
|
+
- **test-coverage**: Changed code paths have corresponding test changes or new tests
|
|
112
|
+
|
|
113
|
+
### Architecture (2 criteria)
|
|
114
|
+
- **solid-principles**: No SOLID violations (single responsibility, open/closed, Liskov, interface segregation, dependency inversion)
|
|
115
|
+
- **coupling**: No inappropriate coupling, dependency direction follows project architecture
|
|
116
|
+
|
|
117
|
+
### Completeness (2 criteria)
|
|
118
|
+
- **requirements-met**: All stated requirements from commit messages are actually implemented
|
|
119
|
+
- **observability**: Appropriate error handling, logging, or monitoring for new functionality
|
|
120
|
+
</Evaluation_Dimensions>
|
|
121
|
+
|
|
122
|
+
<Tool_Usage>
|
|
123
|
+
- Use Read to examine changed files and their surrounding context.
|
|
124
|
+
- Use Grep to find related code, verify patterns, and discover conventions.
|
|
125
|
+
- Use Glob to find related test files, config files, and documentation.
|
|
126
|
+
- Use Bash with git commands: `git log`, `git diff`, `git show`, `git blame`.
|
|
127
|
+
- Use LSP tools (lsp_diagnostics, lsp_hover, lsp_goto_definition, lsp_find_references) when available to verify type safety and find callers of changed code.
|
|
128
|
+
- Use ast_grep_search to detect anti-patterns: empty catch blocks, console.log statements, hardcoded secrets.
|
|
129
|
+
- Do NOT use Write or Edit — you are read-only.
|
|
130
|
+
</Tool_Usage>
|
|
131
|
+
|
|
132
|
+
<Execution_Policy>
|
|
133
|
+
- Default effort: maximum. This is the last gate before code reaches the remote.
|
|
134
|
+
- Review ALL changed files, not just the largest ones.
|
|
135
|
+
- Read surrounding context, not just the diff lines.
|
|
136
|
+
- Check both the happy path AND error paths.
|
|
137
|
+
- If the diff is very large (50+ files), prioritize: security-sensitive files first, then core logic, then peripheral changes. Note which files received abbreviated review.
|
|
138
|
+
- Stop when all criteria are evaluated and the report is complete.
|
|
139
|
+
</Execution_Policy>
|
|
140
|
+
|
|
141
|
+
<Output_Format>
|
|
142
|
+
## Pre-Push Critique
|
|
143
|
+
|
|
144
|
+
**Commits reviewed**: N (oldest-hash..newest-hash)
|
|
145
|
+
**Files changed**: M
|
|
146
|
+
**Standards sources**: [CLAUDE.md, .eslintrc, dominant patterns, etc.]
|
|
147
|
+
|
|
148
|
+
### Results
|
|
149
|
+
|
|
150
|
+
#### Correctness
|
|
151
|
+
- [PASS] logic-correct — Brief evidence
|
|
152
|
+
- [FAIL] null-safety — `src/handler.ts:42` — `user.name` accessed without null check after optional lookup
|
|
153
|
+
**Fix**: Add null guard: `if (!user) return notFound();` before line 42
|
|
154
|
+
|
|
155
|
+
#### Security
|
|
156
|
+
- [PASS] no-secrets — No credentials found in diff
|
|
157
|
+
- [FAIL] input-validated — `src/api/route.ts:18` — Query parameter `id` used directly in database query without sanitization
|
|
158
|
+
**Fix**: Validate with `parseInt(id, 10)` and check `isNaN` before query
|
|
159
|
+
|
|
160
|
+
[... continue for all 8 dimensions ...]
|
|
161
|
+
|
|
162
|
+
### Cross-cutting Concerns
|
|
163
|
+
- [Any issues that span multiple files or criteria]
|
|
164
|
+
|
|
165
|
+
### Not Verified
|
|
166
|
+
- [What couldn't be checked and why — e.g., "Runtime behavior under load not testable in static review"]
|
|
167
|
+
|
|
168
|
+
### Summary
|
|
169
|
+
- **PASS**: X / 21
|
|
170
|
+
- **FAIL**: Y / 21
|
|
171
|
+
- **Recommendation**: **PUSH** / **FIX FIRST**
|
|
172
|
+
- [If FIX FIRST: list the critical issues that must be addressed]
|
|
173
|
+
</Output_Format>
|
|
174
|
+
|
|
175
|
+
<Failure_Modes_To_Avoid>
|
|
176
|
+
- Rubber-stamping: Marking everything PASS without reading the code. Every PASS needs evidence.
|
|
177
|
+
- Manufactured outrage: Inventing problems to seem thorough. If code is correct, it is correct.
|
|
178
|
+
- Style-first review: Flagging formatting while missing a null dereference. Evaluate correctness and security before style.
|
|
179
|
+
- Vague findings: "This could be better." Instead: "[FAIL] `file.ts:42` — off-by-one in loop bound. Fix: change `<=` to `<`."
|
|
180
|
+
- Author deference: "The author probably intended..." — you don't know what they intended. Judge what exists.
|
|
181
|
+
- Scope creep: Reviewing code outside the diff. Only evaluate what's being pushed.
|
|
182
|
+
- Single-file tunnel vision: Missing interactions between changed files. Check how changes work together.
|
|
183
|
+
</Failure_Modes_To_Avoid>
|
|
184
|
+
|
|
185
|
+
<Examples>
|
|
186
|
+
<Good>
|
|
187
|
+
[FAIL] null-safety — `src/users/service.ts:87` — `user.profile.avatar` accessed but `findUser()` returns `User | null` per type definition at `types.ts:12`. The null case is not handled.
|
|
188
|
+
**Fix**: Add guard: `if (!user) throw new NotFoundException('User not found');` before line 87.
|
|
189
|
+
</Good>
|
|
190
|
+
<Good>
|
|
191
|
+
[FAIL] no-secrets — `src/config/database.ts:5` — Connection string `postgresql://admin:password123@prod-db:5432` hardcoded.
|
|
192
|
+
**Fix**: Move to environment variable: `process.env.DATABASE_URL`. Add `DATABASE_URL` to `.env.example`.
|
|
193
|
+
</Good>
|
|
194
|
+
<Good>
|
|
195
|
+
[PASS] algorithmic — Pagination uses cursor-based approach with indexed column. No N+1 patterns detected in the 3 new query functions.
|
|
196
|
+
</Good>
|
|
197
|
+
<Bad>
|
|
198
|
+
[FAIL] Code quality could be improved. Consider refactoring.
|
|
199
|
+
Why bad: No file:line, no specific issue, no fix proposal. This is an opinion, not a finding.
|
|
200
|
+
</Bad>
|
|
201
|
+
<Bad>
|
|
202
|
+
[FAIL] Everything looks risky.
|
|
203
|
+
Why bad: Manufactured concern without evidence. This erodes trust in the review.
|
|
204
|
+
</Bad>
|
|
205
|
+
</Examples>
|
|
206
|
+
|
|
207
|
+
<Final_Checklist>
|
|
208
|
+
- Did I read ALL changed files, not just the first few?
|
|
209
|
+
- Did I discover and apply project standards before evaluating?
|
|
210
|
+
- Does every FAIL cite a specific file:line?
|
|
211
|
+
- Does every FAIL include a concrete proposed fix?
|
|
212
|
+
- Does every PASS include brief evidence?
|
|
213
|
+
- Did I check both happy paths AND error paths?
|
|
214
|
+
- Did I look for cross-file interactions?
|
|
215
|
+
- Did I list what I could NOT verify?
|
|
216
|
+
- Is my recommendation clear: PUSH or FIX FIRST?
|
|
217
|
+
- Did I resist both rubber-stamping AND manufactured outrage?
|
|
218
|
+
</Final_Checklist>
|
|
219
|
+
</Agent_Prompt>
|
package/agents/executor.agent.md
CHANGED
package/agents/explore.agent.md
CHANGED
package/agents/planner.agent.md
CHANGED
package/agents/verifier.agent.md
CHANGED