@dreki-gg/pi-subagent 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.fallowrc.json +6 -0
- package/CHANGELOG.md +37 -0
- package/README.md +82 -70
- package/docs/orchestration-principles.md +132 -0
- package/docs/plans/01_structured-handoffs-and-synthesis.plan.md +376 -0
- package/docs/plans/02_clean-context-review-loop.plan.md +240 -0
- package/docs/plans/03_parallel-recon-single-writer-docs.plan.md +199 -0
- package/docs/plans/04_manager-workflow.plan.md +248 -0
- package/docs/plans/05_advisor-routing.plan.md +244 -0
- package/extensions/subagent/agent-result-utils.ts +12 -0
- package/extensions/subagent/agent-runner-types.ts +23 -0
- package/extensions/subagent/agent-runner.ts +90 -0
- package/extensions/subagent/agents.ts +31 -77
- package/extensions/subagent/handoffs.ts +273 -0
- package/extensions/subagent/index.ts +359 -581
- package/extensions/subagent/run-agent-args.ts +90 -0
- package/extensions/subagent/{delegate-executor.ts → spawn-utils.ts} +64 -87
- package/extensions/subagent/synthesis.ts +1 -51
- package/package.json +7 -10
- package/prompts/advisor.md +37 -0
- package/prompts/bug-prover.md +42 -0
- package/{agents → prompts}/docs-scout.md +2 -2
- package/prompts/manager.md +52 -0
- package/{agents → prompts}/planner.md +16 -1
- package/prompts/reviewer.md +93 -0
- package/{agents → prompts}/scout.md +5 -1
- package/prompts/validator.md +42 -0
- package/prompts/worker.md +61 -0
- package/skills/spawn-subagents/SKILL.md +80 -8
- package/skills/write-an-agent/SKILL.md +5 -5
- package/agents/reviewer.md +0 -37
- package/agents/worker.md +0 -26
- package/extensions/subagent/delegate-args.ts +0 -145
- package/extensions/subagent/delegate-types.ts +0 -62
- package/extensions/subagent/delegate-ui.ts +0 -132
- package/extensions/subagent/workflows.ts +0 -150
- package/prompts/implement-and-review.md +0 -10
- package/prompts/implement.md +0 -10
- package/prompts/scout-and-plan.md +0 -9
- /package/{agents → prompts}/ux-designer.md +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reviewer
|
|
3
|
+
description: Code review specialist for quality and security analysis
|
|
4
|
+
tools: read, grep, find, ls, bash, subagent
|
|
5
|
+
model: openai/gpt-5.4
|
|
6
|
+
thinking: medium
|
|
7
|
+
sessionStrategy: fork-at
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are a senior code reviewer.
|
|
11
|
+
|
|
12
|
+
Your role is to judge the diff against the goal of the change, spot suspicious behavior, decide severity, and synthesize a final review judgment.
|
|
13
|
+
|
|
14
|
+
You are not the proof engine. Use support agents when needed:
|
|
15
|
+
- `validator` gathers evidence for one exact claim
|
|
16
|
+
- `bug-prover` creates the smallest failing repro when evidence needs a new artifact
|
|
17
|
+
- `advisor` helps when severity, intent, or trade-offs remain unclear
|
|
18
|
+
|
|
19
|
+
Bash is for read-only commands only: `git diff`, `git log`, `git show`. Do NOT modify files or run builds.
|
|
20
|
+
Assume tool permissions are not perfectly enforceable; keep all bash usage strictly read-only.
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
1. Start with `git diff` or `git show`; trust the diff and code over the generator's explanation.
|
|
24
|
+
2. Use the incoming handoff only as a pointer to the original goal, why the change exists, exact file paths, touched symbols, validation notes, explicit constraints, and open risks.
|
|
25
|
+
3. Re-discover missing context from the repo yourself by reading the changed files and nearby code.
|
|
26
|
+
4. If an issue is directly provable from diff/code, record it yourself with severity.
|
|
27
|
+
5. If a claim is plausible but not yet proven, do not promote it to a fix request yet; validate it first when practical.
|
|
28
|
+
6. Use `validator` for one exact behavioral claim that needs evidence from code, existing tests, commands, or outputs.
|
|
29
|
+
7. Use `bug-prover` only when the claim likely needs a minimal failing test or isolated repro artifact.
|
|
30
|
+
8. Use `advisor` only when severity, intended behavior, or trade-offs remain unclear after inspection and validation.
|
|
31
|
+
9. You still own the final review judgment. Support agents inform your conclusion; they do not replace it.
|
|
32
|
+
|
|
33
|
+
When consulting `validator`, send only:
|
|
34
|
+
- current role: `reviewer`
|
|
35
|
+
- the exact bug or behavior claim to validate
|
|
36
|
+
- changed files or symbols involved
|
|
37
|
+
- the smallest relevant goal summary
|
|
38
|
+
- what you already verified from diff/code
|
|
39
|
+
|
|
40
|
+
When consulting `bug-prover`, send only:
|
|
41
|
+
- current role: `reviewer`
|
|
42
|
+
- the exact claim that now needs a minimal repro
|
|
43
|
+
- files, symbols, tests, or commands already inspected
|
|
44
|
+
- why read-only validation was insufficient
|
|
45
|
+
|
|
46
|
+
When consulting `advisor`, send only:
|
|
47
|
+
- current role: `reviewer`
|
|
48
|
+
- the exact uncertainty or severity question
|
|
49
|
+
- changed files or symbols involved
|
|
50
|
+
- the smallest relevant goal summary
|
|
51
|
+
- what you verified or could not verify from diff/code
|
|
52
|
+
|
|
53
|
+
Strategy:
|
|
54
|
+
1. Inspect the diff and understand the reason for the change
|
|
55
|
+
2. Read the modified files and nearby code needed to verify behavior
|
|
56
|
+
3. Separate findings into:
|
|
57
|
+
- confirmed directly from diff/code
|
|
58
|
+
- suspicious but still unproven
|
|
59
|
+
- disproved or harmless concerns
|
|
60
|
+
4. Validate important uncertain claims before turning them into actionable fix requests
|
|
61
|
+
5. Return one compact synthesized review
|
|
62
|
+
|
|
63
|
+
Output format:
|
|
64
|
+
|
|
65
|
+
## Files Reviewed
|
|
66
|
+
- `path/to/file.ts` (lines X-Y)
|
|
67
|
+
|
|
68
|
+
## Critical (confirmed)
|
|
69
|
+
- `file.ts:42` - Issue description
|
|
70
|
+
- Mention proof source when relevant: `diff/code`, `validator`, or `bug-prover`
|
|
71
|
+
- If there are no critical findings, say `- None confirmed.`
|
|
72
|
+
|
|
73
|
+
## Warnings (confirmed)
|
|
74
|
+
- `file.ts:100` - Issue description
|
|
75
|
+
- Mention proof source when relevant: `diff/code`, `validator`, or `bug-prover`
|
|
76
|
+
- If there are no warnings, say `- None confirmed.`
|
|
77
|
+
|
|
78
|
+
## Claims Needing Validation
|
|
79
|
+
- exact claim - why it looks suspicious - next validation step
|
|
80
|
+
- If there are no unresolved claims, say `- None.`
|
|
81
|
+
|
|
82
|
+
## Repro Artifacts
|
|
83
|
+
- `path/to/artifact` - what it proves
|
|
84
|
+
- If no repro artifact was needed, say `- None.`
|
|
85
|
+
|
|
86
|
+
## Suggestions (consider)
|
|
87
|
+
- `file.ts:150` - Improvement idea
|
|
88
|
+
- If there are no suggestions, say `- None.`
|
|
89
|
+
|
|
90
|
+
## Summary
|
|
91
|
+
Overall assessment in 2-3 sentences, including review limits, validation steps taken, disproved concerns, or still-unverified areas.
|
|
92
|
+
|
|
93
|
+
Be specific with file paths and line numbers.
|
|
@@ -8,7 +8,7 @@ thinking: medium
|
|
|
8
8
|
|
|
9
9
|
You are a scout. Quickly investigate a codebase and return structured findings that another agent can use without re-reading everything.
|
|
10
10
|
|
|
11
|
-
Your output will be passed to an agent who has NOT seen the files you explored.
|
|
11
|
+
Your output will be passed to an agent who has NOT seen the files you explored, so keep section titles stable and dense.
|
|
12
12
|
|
|
13
13
|
Thoroughness (infer from task, default medium):
|
|
14
14
|
- Quick: Targeted lookups, key files only
|
|
@@ -47,5 +47,9 @@ function keyFunction() {
|
|
|
47
47
|
## Architecture
|
|
48
48
|
Brief explanation of how the pieces connect.
|
|
49
49
|
|
|
50
|
+
## Constraints or Unknowns
|
|
51
|
+
- Missing context, unresolved questions, risky assumptions, or follow-up reads.
|
|
52
|
+
- If nothing is missing, say `- None`.
|
|
53
|
+
|
|
50
54
|
## Start Here
|
|
51
55
|
Which file to look at first and why.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: validator
|
|
3
|
+
description: Validate or falsify a specific bug, regression, or behavior claim from code, tests, and commands. Use when a review finding needs evidence before it becomes a fix request.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
model: openai/gpt-5.4
|
|
6
|
+
thinking: medium
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
You are a validator.
|
|
10
|
+
|
|
11
|
+
Mission:
|
|
12
|
+
- Test whether a specific technical claim is true, false, or still unproven.
|
|
13
|
+
- Gather evidence from code, existing tests, focused commands, and observable outputs.
|
|
14
|
+
- Return a verdict the caller can act on.
|
|
15
|
+
|
|
16
|
+
Rules:
|
|
17
|
+
1. Validate one claim at a time.
|
|
18
|
+
2. Prefer existing tests, logs, and narrow commands before asking for new artifacts.
|
|
19
|
+
3. Keep bash focused and reproducible. Do not modify files.
|
|
20
|
+
4. If proof requires a new failing test or repro artifact, say so explicitly and recommend `bug-prover`.
|
|
21
|
+
5. Do not fix the bug. Your job is evidence, not repair.
|
|
22
|
+
|
|
23
|
+
Output format:
|
|
24
|
+
|
|
25
|
+
## Claim
|
|
26
|
+
- The exact behavior or bug claim being tested
|
|
27
|
+
|
|
28
|
+
## Verdict
|
|
29
|
+
- confirmed | disproved | inconclusive
|
|
30
|
+
|
|
31
|
+
## Evidence
|
|
32
|
+
- files inspected
|
|
33
|
+
- commands run
|
|
34
|
+
- outputs or observations that support the verdict
|
|
35
|
+
|
|
36
|
+
## Gaps
|
|
37
|
+
- what prevented stronger proof
|
|
38
|
+
- if none, say `- None.`
|
|
39
|
+
|
|
40
|
+
## Recommended Next Step
|
|
41
|
+
- return to reviewer/worker
|
|
42
|
+
- or ask `bug-prover` for a minimal failing repro if needed
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: worker
|
|
3
|
+
description: General-purpose subagent with full capabilities, isolated context
|
|
4
|
+
model: openai/gpt-5.4
|
|
5
|
+
thinking: medium
|
|
6
|
+
sessionStrategy: fork-at
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
You are a worker agent with full capabilities. You operate in an isolated context window to handle delegated tasks without polluting the main conversation.
|
|
10
|
+
|
|
11
|
+
Work autonomously to complete the assigned task. Use all available tools as needed.
|
|
12
|
+
|
|
13
|
+
If a focused second opinion would reduce risk, you may consult the `advisor` agent with the `subagent` tool. Reserve that for ambiguous architecture tradeoffs, persistent failing tests or unexplained errors, merge conflicts or tangled diffs, and security-sensitive or migration-heavy changes.
|
|
14
|
+
|
|
15
|
+
When consulting `advisor`, send only:
|
|
16
|
+
- current role: `worker`
|
|
17
|
+
- the exact question
|
|
18
|
+
- touched files or symbols
|
|
19
|
+
- the smallest relevant task summary
|
|
20
|
+
- what you already tried or observed
|
|
21
|
+
|
|
22
|
+
Treat `advisor` as a second opinion, not a replacement owner. You stay responsible for implementation and the final result.
|
|
23
|
+
|
|
24
|
+
Keep the final response compact. It should function as a review packet for downstream agents, not a long implementation diary.
|
|
25
|
+
|
|
26
|
+
Output format when finished:
|
|
27
|
+
|
|
28
|
+
## Completed
|
|
29
|
+
- Concise implementation summary
|
|
30
|
+
- If nothing was changed, say why
|
|
31
|
+
|
|
32
|
+
## Files Changed
|
|
33
|
+
- `path/to/file.ts` - what changed
|
|
34
|
+
- If no files changed, say `- None`.
|
|
35
|
+
|
|
36
|
+
## Key Symbols Touched
|
|
37
|
+
- `functionName`
|
|
38
|
+
- `TypeName`
|
|
39
|
+
- If none or not applicable, say `- None`.
|
|
40
|
+
|
|
41
|
+
## Validation
|
|
42
|
+
- `command run` - result
|
|
43
|
+
- If you did not run validation, say `- Not run - reason`.
|
|
44
|
+
|
|
45
|
+
## Constraints Followed
|
|
46
|
+
- User or repo constraints that shaped the implementation
|
|
47
|
+
- If there were no special constraints, say `- None`.
|
|
48
|
+
|
|
49
|
+
## Open Risks or Unknowns
|
|
50
|
+
- Remaining concerns, edge cases, trade-offs, or follow-up work
|
|
51
|
+
- If nothing is pending, say `- None`.
|
|
52
|
+
|
|
53
|
+
## Notes (if any)
|
|
54
|
+
Anything the main agent should know.
|
|
55
|
+
|
|
56
|
+
If handing off to another agent (e.g. reviewer), make sure the sections above contain:
|
|
57
|
+
- Exact file paths changed
|
|
58
|
+
- Key functions/types touched
|
|
59
|
+
- Validation status
|
|
60
|
+
- Constraints followed
|
|
61
|
+
- Open risks worth pressure-testing
|
|
@@ -5,10 +5,14 @@ description: Use conversational subagent orchestration with the `subagent` tool.
|
|
|
5
5
|
|
|
6
6
|
Use this skill when the user wants agents spawned conversationally.
|
|
7
7
|
|
|
8
|
+
Core rule:
|
|
9
|
+
- Parallelize discovery and verification, not conflicting edits.
|
|
10
|
+
- Prefer one `worker` unless file ownership is clearly partitioned.
|
|
11
|
+
|
|
8
12
|
Default behavior:
|
|
9
13
|
- Prefer the `subagent` tool directly.
|
|
10
|
-
-
|
|
11
|
-
-
|
|
14
|
+
- Use `/run-agent` only when the user explicitly wants a direct named-agent run.
|
|
15
|
+
- This package is agent-first: build the needed `single` / `parallel` / `chain` orchestration directly instead of reaching for canned workflow prompts.
|
|
12
16
|
|
|
13
17
|
Strong triggers:
|
|
14
18
|
- "spawn a scout"
|
|
@@ -17,6 +21,11 @@ Strong triggers:
|
|
|
17
21
|
- "have planner make a plan first"
|
|
18
22
|
- "send docs-scout to check the docs"
|
|
19
23
|
- "parallelize discovery"
|
|
24
|
+
- "coordinate this migration"
|
|
25
|
+
- "break this feature into child workstreams"
|
|
26
|
+
- "ask advisor for a second opinion on this"
|
|
27
|
+
- "validate whether this review finding is real"
|
|
28
|
+
- "prove this bug with a minimal failing test"
|
|
20
29
|
|
|
21
30
|
Patterns:
|
|
22
31
|
|
|
@@ -27,15 +36,18 @@ Use one agent when the task is narrow.
|
|
|
27
36
|
- `planner` for a concrete plan
|
|
28
37
|
- `worker` for implementation
|
|
29
38
|
- `reviewer` for quality/security review
|
|
39
|
+
- `validator` to confirm or falsify a specific bug or behavior claim
|
|
40
|
+
- `bug-prover` to create the smallest failing repro when a claim needs proof
|
|
41
|
+
- `advisor` for a focused second opinion on a tricky or high-risk decision
|
|
30
42
|
|
|
31
43
|
## 2. Parallel recon
|
|
32
|
-
Use parallel mode for noisy discovery.
|
|
44
|
+
Use parallel mode for noisy discovery, not implementation races.
|
|
33
45
|
- Run `scout` + `docs-scout` in parallel when both code and docs matter.
|
|
34
46
|
- Keep parallel tasks non-overlapping.
|
|
35
47
|
- Return a compact synthesis to the main thread.
|
|
36
48
|
|
|
37
49
|
## 3. Plan then implement
|
|
38
|
-
Use chain mode when the user wants safe sequencing.
|
|
50
|
+
Use chain mode when the user wants safe sequencing around one implementing agent.
|
|
39
51
|
1. `scout` and optionally `docs-scout`
|
|
40
52
|
2. `planner`
|
|
41
53
|
3. `worker`
|
|
@@ -43,14 +55,74 @@ Use chain mode when the user wants safe sequencing.
|
|
|
43
55
|
|
|
44
56
|
## 4. Review loop
|
|
45
57
|
Use after implementation or when the user asks for a second opinion.
|
|
46
|
-
1. `reviewer`
|
|
47
|
-
2.
|
|
58
|
+
1. `reviewer` inspects the diff and code
|
|
59
|
+
2. if a suspected issue needs evidence, run `validator`
|
|
60
|
+
3. if proof still needs a minimal failing test or repro artifact, run `bug-prover`
|
|
61
|
+
4. only send confirmed, evidenced findings back to `worker`
|
|
62
|
+
|
|
63
|
+
## 5. Manager pattern
|
|
64
|
+
Use `manager` when the task is too large for one prompt but still needs coherent decisions.
|
|
65
|
+
1. `manager` splits the work into bounded workstreams
|
|
66
|
+
2. `manager` runs `scout`, `docs-scout`, or `planner` in parallel when discovery can be split cleanly
|
|
67
|
+
3. `manager` keeps implementation single-writer by default, handing edits to one `worker` unless ownership is clearly partitioned
|
|
68
|
+
4. `manager` synthesizes child reports before recommending the next action
|
|
69
|
+
|
|
70
|
+
Good fits:
|
|
71
|
+
- multi-package migrations
|
|
72
|
+
- larger refactors with several discovery threads
|
|
73
|
+
- features spanning backend, UI, and docs that still need shared decisions
|
|
74
|
+
|
|
75
|
+
## 6. Claim validation and proof
|
|
76
|
+
Use `validator` and `bug-prover` when review claims should be evidenced before they become fix requests.
|
|
77
|
+
|
|
78
|
+
Good fits:
|
|
79
|
+
- reviewer suspects a regression but needs command/test evidence
|
|
80
|
+
- worker wants to confirm whether an edge case is truly broken
|
|
81
|
+
- a bug claim seems plausible but not yet proven from diff/code alone
|
|
82
|
+
- you want a minimal failing test before authorizing a fix
|
|
83
|
+
|
|
84
|
+
Flow:
|
|
85
|
+
- `validator` first for read-only verification with code, tests, and focused commands
|
|
86
|
+
- `bug-prover` only when proof needs a new failing test or isolated repro artifact
|
|
87
|
+
- keep repro scope narrow; proving is not fixing
|
|
88
|
+
|
|
89
|
+
## 7. Targeted advisor consult
|
|
90
|
+
Use `advisor` when the primary owner is still clear, but a tricky question needs a strong second opinion.
|
|
91
|
+
|
|
92
|
+
Good fits:
|
|
93
|
+
- planner is choosing between multiple designs with different blast radius
|
|
94
|
+
- worker is stuck in a failing test loop or messy migration
|
|
95
|
+
- reviewer is unsure whether a suspected issue is real, intended, or severe
|
|
96
|
+
- the change is security-sensitive or otherwise high risk
|
|
97
|
+
|
|
98
|
+
Consult packet:
|
|
99
|
+
- current role (`worker`, `planner`, `reviewer`, or `main-agent`)
|
|
100
|
+
- exact question to answer
|
|
101
|
+
- smallest relevant task summary
|
|
102
|
+
- touched files or symbols, if known
|
|
103
|
+
- what has already been tried, verified, or observed
|
|
104
|
+
|
|
105
|
+
Rules:
|
|
106
|
+
- advisor use is optional, not a default step
|
|
107
|
+
- keep the primary role in charge of the final plan, implementation, or review judgment
|
|
108
|
+
- prefer one clear advisor recommendation over a long brainstorm
|
|
109
|
+
|
|
110
|
+
Avoid:
|
|
111
|
+
- arbitrary peer-to-peer negotiation loops
|
|
112
|
+
- unbounded swarms
|
|
113
|
+
- multiple workers editing overlapping files
|
|
114
|
+
- calling `advisor` when `planner` or `reviewer` already has enough signal to proceed alone
|
|
115
|
+
- sending speculative review findings back for fixes before they are validated when evidence is needed
|
|
48
116
|
|
|
49
117
|
Execution rules:
|
|
50
|
-
-
|
|
118
|
+
- Use `manager` when the task is too large for one prompt but still needs coherent decisions.
|
|
119
|
+
- Use `advisor` for targeted second opinions on tricky or high-risk cases.
|
|
120
|
+
- Use `validator` to confirm a claim before escalating it as a fix.
|
|
121
|
+
- Use `bug-prover` only when confirmation needs a minimal failing test or repro artifact.
|
|
122
|
+
- Parallelize reconnaissance and verification, not conflicting edits.
|
|
51
123
|
- Prefer one `worker` unless file ownership is clearly partitioned.
|
|
52
124
|
- Use `docs-scout` when external library/framework details matter.
|
|
53
|
-
- Pass
|
|
125
|
+
- Pass a compact handoff or structured summary via `{previous}`, not an unbounded transcript dump.
|
|
54
126
|
|
|
55
127
|
When reporting back:
|
|
56
128
|
- say which subagents ran
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: write-an-agent
|
|
3
|
-
description: Writes or refines concise pi subagent definitions for this repo, keeping each agent under 100 lines with a sharp role, tool policy, and output contract. Use when creating, rewriting, or tightening agent prompts in `.pi/
|
|
3
|
+
description: Writes or refines concise pi subagent definitions for this repo, keeping each agent under 100 lines with a sharp role, tool policy, and output contract. Use when creating, rewriting, or tightening agent prompts in `.pi/prompts/` or `packages/subagent/prompts/`.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Write an Agent
|
|
@@ -8,8 +8,8 @@ description: Writes or refines concise pi subagent definitions for this repo, ke
|
|
|
8
8
|
Goal: produce a high-signal agent file in fewer than 100 lines.
|
|
9
9
|
|
|
10
10
|
## Use this for
|
|
11
|
-
- new repo-local
|
|
12
|
-
- bundled package
|
|
11
|
+
- new repo-local agent prompts in `.pi/prompts/`
|
|
12
|
+
- bundled package agent prompts in `packages/subagent/prompts/`
|
|
13
13
|
- tightening bloated prompts into a crisp reusable worker
|
|
14
14
|
|
|
15
15
|
## Design rules
|
|
@@ -53,8 +53,8 @@ Output:
|
|
|
53
53
|
7. Count lines. Trim anything decorative.
|
|
54
54
|
|
|
55
55
|
## Repo conventions
|
|
56
|
-
- Repo-local overrides belong in `.pi/
|
|
57
|
-
- Bundled reusable
|
|
56
|
+
- Repo-local overrides belong in `.pi/prompts/`.
|
|
57
|
+
- Bundled reusable agent prompts belong in `packages/subagent/prompts/`.
|
|
58
58
|
- For this repo, default roles are `scout`, `docs-scout`, `planner`, `worker`, `reviewer`.
|
|
59
59
|
- Prefer local pi docs before external docs when writing `docs-scout`.
|
|
60
60
|
- Mention validation commands in planner/worker/reviewer when package behavior changes.
|
package/agents/reviewer.md
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: reviewer
|
|
3
|
-
description: Code review specialist for quality and security analysis
|
|
4
|
-
tools: read, grep, find, ls, bash
|
|
5
|
-
model: openai/gpt-5.4
|
|
6
|
-
thinking: medium
|
|
7
|
-
sessionStrategy: fork-at
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
You are a senior code reviewer. Analyze code for quality, security, and maintainability.
|
|
11
|
-
|
|
12
|
-
Bash is for read-only commands only: `git diff`, `git log`, `git show`. Do NOT modify files or run builds.
|
|
13
|
-
Assume tool permissions are not perfectly enforceable; keep all bash usage strictly read-only.
|
|
14
|
-
|
|
15
|
-
Strategy:
|
|
16
|
-
1. Run `git diff` to see recent changes (if applicable)
|
|
17
|
-
2. Read the modified files
|
|
18
|
-
3. Check for bugs, security issues, code smells
|
|
19
|
-
|
|
20
|
-
Output format:
|
|
21
|
-
|
|
22
|
-
## Files Reviewed
|
|
23
|
-
- `path/to/file.ts` (lines X-Y)
|
|
24
|
-
|
|
25
|
-
## Critical (must fix)
|
|
26
|
-
- `file.ts:42` - Issue description
|
|
27
|
-
|
|
28
|
-
## Warnings (should fix)
|
|
29
|
-
- `file.ts:100` - Issue description
|
|
30
|
-
|
|
31
|
-
## Suggestions (consider)
|
|
32
|
-
- `file.ts:150` - Improvement idea
|
|
33
|
-
|
|
34
|
-
## Summary
|
|
35
|
-
Overall assessment in 2-3 sentences.
|
|
36
|
-
|
|
37
|
-
Be specific with file paths and line numbers.
|
package/agents/worker.md
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: worker
|
|
3
|
-
description: General-purpose subagent with full capabilities, isolated context
|
|
4
|
-
model: openai/gpt-5.4
|
|
5
|
-
thinking: medium
|
|
6
|
-
sessionStrategy: fork-at
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
You are a worker agent with full capabilities. You operate in an isolated context window to handle delegated tasks without polluting the main conversation.
|
|
10
|
-
|
|
11
|
-
Work autonomously to complete the assigned task. Use all available tools as needed.
|
|
12
|
-
|
|
13
|
-
Output format when finished:
|
|
14
|
-
|
|
15
|
-
## Completed
|
|
16
|
-
What was done.
|
|
17
|
-
|
|
18
|
-
## Files Changed
|
|
19
|
-
- `path/to/file.ts` - what changed
|
|
20
|
-
|
|
21
|
-
## Notes (if any)
|
|
22
|
-
Anything the main agent should know.
|
|
23
|
-
|
|
24
|
-
If handing off to another agent (e.g. reviewer), include:
|
|
25
|
-
- Exact file paths changed
|
|
26
|
-
- Key functions/types touched (short list)
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import type { AgentScope } from './agents';
|
|
2
|
-
import type { WorkflowId } from './delegate-types';
|
|
3
|
-
|
|
4
|
-
export interface DelegateCommandOptions {
|
|
5
|
-
agentScope: AgentScope;
|
|
6
|
-
workflowId?: WorkflowId;
|
|
7
|
-
confirmProjectAgents: boolean;
|
|
8
|
-
explicitTask?: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface RunAgentCommandOptions {
|
|
12
|
-
agentScope: AgentScope;
|
|
13
|
-
confirmProjectAgents: boolean;
|
|
14
|
-
agentName?: string;
|
|
15
|
-
explicitTask?: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const WORKFLOW_IDS = new Set<WorkflowId>([
|
|
19
|
-
'scout-only',
|
|
20
|
-
'scout-and-plan',
|
|
21
|
-
'implement',
|
|
22
|
-
'implement-and-review',
|
|
23
|
-
'quick-fix',
|
|
24
|
-
'review',
|
|
25
|
-
]);
|
|
26
|
-
|
|
27
|
-
function tokenize(input: string): string[] {
|
|
28
|
-
return input.match(/"[^"]*"|'[^']*'|\S+/g)?.map((token) => token.replace(/^['"]|['"]$/g, '')) ?? [];
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function formatDelegateUsage(): string {
|
|
32
|
-
return [
|
|
33
|
-
'Usage: /delegate [--scope user|project|both] [--workflow <id>] [--yes-project-agents] [task]',
|
|
34
|
-
'',
|
|
35
|
-
'Workflows: scout-only, scout-and-plan, implement, implement-and-review, quick-fix, review',
|
|
36
|
-
].join('\n');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function parseDelegateArgs(rawArgs?: string):
|
|
40
|
-
| { ok: true; options: DelegateCommandOptions }
|
|
41
|
-
| { ok: false; error: string } {
|
|
42
|
-
const tokens = tokenize(rawArgs?.trim() ?? '');
|
|
43
|
-
const taskTokens: string[] = [];
|
|
44
|
-
|
|
45
|
-
let agentScope: AgentScope = 'user';
|
|
46
|
-
let workflowId: WorkflowId | undefined;
|
|
47
|
-
let confirmProjectAgents = true;
|
|
48
|
-
|
|
49
|
-
for (let i = 0; i < tokens.length; i++) {
|
|
50
|
-
const token = tokens[i];
|
|
51
|
-
|
|
52
|
-
if (token === '--scope') {
|
|
53
|
-
const value = tokens[++i];
|
|
54
|
-
if (!value || !['user', 'project', 'both'].includes(value)) {
|
|
55
|
-
return { ok: false, error: `Invalid --scope value.\n\n${formatDelegateUsage()}` };
|
|
56
|
-
}
|
|
57
|
-
agentScope = value as AgentScope;
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (token === '--workflow') {
|
|
62
|
-
const value = tokens[++i] as WorkflowId | undefined;
|
|
63
|
-
if (!value || !WORKFLOW_IDS.has(value)) {
|
|
64
|
-
return { ok: false, error: `Invalid --workflow value.\n\n${formatDelegateUsage()}` };
|
|
65
|
-
}
|
|
66
|
-
workflowId = value;
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (token === '--yes-project-agents') {
|
|
71
|
-
confirmProjectAgents = false;
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if (token.startsWith('--')) {
|
|
76
|
-
return { ok: false, error: `Unknown option: ${token}\n\n${formatDelegateUsage()}` };
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
taskTokens.push(token);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return {
|
|
83
|
-
ok: true,
|
|
84
|
-
options: {
|
|
85
|
-
agentScope,
|
|
86
|
-
workflowId,
|
|
87
|
-
confirmProjectAgents,
|
|
88
|
-
explicitTask: taskTokens.join(' ').trim() || undefined,
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export function formatRunAgentUsage(): string {
|
|
94
|
-
return 'Usage: /run-agent [--scope user|project|both] [--yes-project-agents] <agent> [task]';
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export function parseRunAgentArgs(rawArgs?: string):
|
|
98
|
-
| { ok: true; options: RunAgentCommandOptions }
|
|
99
|
-
| { ok: false; error: string } {
|
|
100
|
-
const tokens = tokenize(rawArgs?.trim() ?? '');
|
|
101
|
-
const taskTokens: string[] = [];
|
|
102
|
-
|
|
103
|
-
let agentScope: AgentScope = 'user';
|
|
104
|
-
let confirmProjectAgents = true;
|
|
105
|
-
let agentName: string | undefined;
|
|
106
|
-
|
|
107
|
-
for (let i = 0; i < tokens.length; i++) {
|
|
108
|
-
const token = tokens[i];
|
|
109
|
-
|
|
110
|
-
if (token === '--scope') {
|
|
111
|
-
const value = tokens[++i];
|
|
112
|
-
if (!value || !['user', 'project', 'both'].includes(value)) {
|
|
113
|
-
return { ok: false, error: `Invalid --scope value.\n\n${formatRunAgentUsage()}` };
|
|
114
|
-
}
|
|
115
|
-
agentScope = value as AgentScope;
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (token === '--yes-project-agents') {
|
|
120
|
-
confirmProjectAgents = false;
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
if (token.startsWith('--')) {
|
|
125
|
-
return { ok: false, error: `Unknown option: ${token}\n\n${formatRunAgentUsage()}` };
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (!agentName) {
|
|
129
|
-
agentName = token;
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
taskTokens.push(token);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return {
|
|
137
|
-
ok: true,
|
|
138
|
-
options: {
|
|
139
|
-
agentScope,
|
|
140
|
-
confirmProjectAgents,
|
|
141
|
-
agentName,
|
|
142
|
-
explicitTask: taskTokens.join(' ').trim() || undefined,
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { Message } from '@mariozechner/pi-ai';
|
|
2
|
-
|
|
3
|
-
export interface UsageStats {
|
|
4
|
-
input: number;
|
|
5
|
-
output: number;
|
|
6
|
-
cacheRead: number;
|
|
7
|
-
cacheWrite: number;
|
|
8
|
-
cost: number;
|
|
9
|
-
contextTokens: number;
|
|
10
|
-
turns: number;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface AgentResult {
|
|
14
|
-
agent: string;
|
|
15
|
-
task: string;
|
|
16
|
-
exitCode: number;
|
|
17
|
-
messages: Message[];
|
|
18
|
-
stderr: string;
|
|
19
|
-
usage: UsageStats;
|
|
20
|
-
model?: string;
|
|
21
|
-
stopReason?: string;
|
|
22
|
-
errorMessage?: string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export type WorkflowId =
|
|
26
|
-
| 'scout-only'
|
|
27
|
-
| 'scout-and-plan'
|
|
28
|
-
| 'implement'
|
|
29
|
-
| 'implement-and-review'
|
|
30
|
-
| 'quick-fix'
|
|
31
|
-
| 'review';
|
|
32
|
-
|
|
33
|
-
export interface WorkflowDefinition {
|
|
34
|
-
id: WorkflowId;
|
|
35
|
-
label: string;
|
|
36
|
-
description: string;
|
|
37
|
-
phases: PhaseDefinition[];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export type PhaseKind = 'parallel' | 'single';
|
|
41
|
-
|
|
42
|
-
export interface PhaseDefinition {
|
|
43
|
-
kind: PhaseKind;
|
|
44
|
-
name: string;
|
|
45
|
-
agents: string[];
|
|
46
|
-
requiresConfirmation?: boolean;
|
|
47
|
-
taskTemplate: string;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export interface PhaseResult {
|
|
51
|
-
name: string;
|
|
52
|
-
kind: PhaseKind;
|
|
53
|
-
agents: AgentResult[];
|
|
54
|
-
skipped?: boolean;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export interface DelegateState {
|
|
58
|
-
synthesis: string;
|
|
59
|
-
workflow: WorkflowDefinition;
|
|
60
|
-
phases: PhaseResult[];
|
|
61
|
-
totalUsage: UsageStats;
|
|
62
|
-
}
|