@melihmucuk/pi-crew 1.0.15 → 1.0.17
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/README.md +8 -8
- package/agents/code-reviewer.md +32 -102
- package/agents/oracle.md +23 -29
- package/agents/planner.md +35 -116
- package/agents/quality-reviewer.md +39 -124
- package/agents/scout.md +21 -38
- package/agents/worker.md +27 -72
- package/extension/agent-catalog.ts +369 -0
- package/extension/agent-config-fields.ts +359 -0
- package/extension/agent-discovery.ts +49 -717
- package/extension/bootstrap-session.ts +2 -2
- package/extension/index.ts +5 -3
- package/extension/integration/crew-tool-actions.ts +306 -0
- package/extension/integration/crew-tool-executor.ts +109 -0
- package/extension/integration/register-renderers.ts +2 -2
- package/extension/integration/register-tools.ts +11 -3
- package/extension/integration/tool-presentation.ts +3 -23
- package/extension/integration/tools/crew-abort.ts +14 -84
- package/extension/integration/tools/crew-done.ts +7 -26
- package/extension/integration/tools/crew-list.ts +5 -61
- package/extension/integration/tools/crew-respond.ts +8 -29
- package/extension/integration/tools/crew-spawn.ts +16 -57
- package/extension/message-delivery-policy.ts +22 -0
- package/extension/runtime/crew-runtime.ts +60 -223
- package/extension/runtime/overflow-recovery.ts +1 -1
- package/extension/runtime/{delivery-coordinator.ts → owner-session-coordinator.ts} +44 -37
- package/extension/runtime/subagent-lifecycle.ts +203 -0
- package/extension/runtime/subagent-registry.ts +50 -6
- package/extension/runtime/subagent-transitions.ts +100 -0
- package/extension/status-widget.ts +2 -2
- package/extension/subagent-messages.ts +9 -17
- package/package.json +13 -11
- package/prompts/pi-crew-plan.md +34 -137
- package/prompts/pi-crew-review.md +36 -112
- package/skills/pi-crew/REFERENCE.md +82 -0
- package/skills/pi-crew/SKILL.md +33 -104
- package/extension/integration/tools/tool-deps.ts +0 -16
- package/extension/integration.ts +0 -13
- package/extension/runtime/subagent-state.ts +0 -59
package/prompts/pi-crew-plan.md
CHANGED
|
@@ -1,166 +1,63 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Orchestrate scouts and planner to produce an implementation plan.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Planning Orchestration
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Additional instructions: `$ARGUMENTS`
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
You are a planning orchestrator, not a scout, planner, or implementer. Resolve the task and scope, gather only minimal task-specific context, delegate discovery to scouts when available, pass cleaned findings to the planner, and manage the planner lifecycle. Do not perform deep investigation, write the plan yourself, or modify files.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Task and Context
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
Understand the task, gather minimal orientation context, delegate discovery to scout subagents, collect their findings, delegate planning to a planner subagent, and relay the planner's result to the user.
|
|
13
|
+
Use additional instructions when provided; otherwise use the current conversation task. If the task or scope is decision-critical unclear or conflicting, ask the user before proceeding.
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
Do not write the plan yourself.
|
|
18
|
-
Do not modify files.
|
|
15
|
+
Build compact shared context for subagents. Include only information that helps this planning task beyond the selected subagent’s obvious role:
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
- user intent and expected outcome;
|
|
18
|
+
- user-provided references, plus a concise summary after reading them when practical;
|
|
19
|
+
- task-specific decisions, constraints, and assumptions not already covered by repo guidance;
|
|
20
|
+
- non-default scope boundaries, when needed;
|
|
21
|
+
- minimal orientation already gathered, only when it clarifies where to look;
|
|
22
|
+
- exact errors/output or verification context, when relevant.
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
Do not copy full reference contents. Do not include project root/cwd, generic repo conventions, default scope, edit permissions, output format, or role boilerplate. Subagents run in the same repo cwd and can inspect repo guidance themselves.
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
- otherwise the current conversation context
|
|
26
|
+
If the user provides a plan, spec, issue, doc, design, URL, or file as the source of intent, read it when practical and summarize the relevant intent instead of merely passing the path.
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
Gather only enough orientation to assign scout scopes or brief the planner: targeted searches, likely entry points, and small config or structure checks when they materially affect delegation. Do not read full implementation files, trace call chains, or analyze implementations. Do not read README/AGENTS just to repeat generic repo guidance.
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
## Scouts
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
Call `crew_list` and check for `scout`. If unavailable, continue to planner with minimal context and note the missing scout coverage.
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
If available, spawn up to 4 scouts for distinct, non-overlapping focus areas. Keep each task narrow and include only task-specific context, the investigation focus, requested facts, and relevant paths or entry points. Do not restate scout role boilerplate, default read-only behavior, output format, or generic command restrictions.
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
- project root
|
|
37
|
-
- additional instructions or constraints
|
|
38
|
-
- relevant user-provided references as paths or URLs plus why they matter
|
|
39
|
-
- explicit scope boundary:
|
|
40
|
-
- what the task requires (in scope)
|
|
41
|
-
- what the task does not require (out of scope)
|
|
42
|
-
- scope assumptions, if any
|
|
43
|
-
- minimal orientation context already gathered
|
|
44
|
-
- relevant language, framework, dependencies, and conventions when known
|
|
36
|
+
Wait for scout results without polling or fabrication. If a scout fails or returns no useful findings, retry or reformulate once. If it still fails, record the gap and continue.
|
|
45
37
|
|
|
46
|
-
Do not
|
|
47
|
-
Do not assume subagents can access this conversation context unless you pass it along.
|
|
38
|
+
Before planner handoff, perform only mechanical cleanup: remove duplicates, irrelevant generic notes, and out-of-scope findings; organize by area; preserve facts, paths, interfaces, constraints, conflicts, and discovery gaps. Do not add new inferences, risks, or recommendations.
|
|
48
39
|
|
|
49
|
-
##
|
|
40
|
+
## Planner
|
|
50
41
|
|
|
51
|
-
|
|
42
|
+
Call `crew_list` and check for `planner`. If unavailable, tell the user and stop; do not write the plan yourself.
|
|
52
43
|
|
|
53
|
-
|
|
44
|
+
Spawn the planner with compact shared context, cleaned scout findings, and gaps. Keep the handoff focused on intent, decisions, constraints, facts, paths, relationships, and unresolved questions. Do not restate planner role boilerplate, output format, edit permissions, or obvious next steps.
|
|
54
45
|
|
|
55
|
-
|
|
56
|
-
- key config files to identify language, framework, and dependencies
|
|
57
|
-
- README or AGENTS.md if present
|
|
46
|
+
Do not rewrite planner output that is already visible as a steering message.
|
|
58
47
|
|
|
59
|
-
|
|
48
|
+
Lifecycle:
|
|
60
49
|
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
Stop once you can assign specific scout scopes, and stop earlier if you already have enough.
|
|
66
|
-
Do not trace call chains, analyze implementations, or read full files.
|
|
67
|
-
|
|
68
|
-
## Scope Extraction
|
|
69
|
-
|
|
70
|
-
Before assigning any scout tasks, extract the scope boundary from the user's task.
|
|
71
|
-
|
|
72
|
-
Pass this scope boundary explicitly to every scout and to the planner. This gives subagents an explicit contract to check against, rather than having them infer scope from the task description alone.
|
|
73
|
-
|
|
74
|
-
## Scout Execution
|
|
75
|
-
|
|
76
|
-
Call `crew_list` first and verify `scout` is available. If `scout` is unavailable, tell the user and stop.
|
|
77
|
-
|
|
78
|
-
Spawn scouts in parallel using this rule: one focused area means 1 scout; 2-4 independent areas means 1 scout per area; more than 4 areas means choose the 4 highest-risk areas. Each scout must have a distinct, non-overlapping focus.
|
|
79
|
-
|
|
80
|
-
After spawning scouts, send one brief status message to the user that scouts have been started and you are waiting for results.
|
|
81
|
-
|
|
82
|
-
Each scout task should include the shared context plus:
|
|
83
|
-
|
|
84
|
-
- explicit investigation scope
|
|
85
|
-
- the specific information to return
|
|
86
|
-
- explicit read-only instruction
|
|
87
|
-
- explicit bash restriction: do not run build, test, install, format, codegen, server start, or any command that writes files or mutates state
|
|
88
|
-
|
|
89
|
-
Keep scout scopes narrow and non-overlapping. A scout that is asked to "investigate the auth system" will explore broadly. A scout that is asked to "find how login tokens are generated and which function validates them" will stay focused. Prefer the latter.
|
|
90
|
-
|
|
91
|
-
## Scout Waiting and Recovery
|
|
92
|
-
|
|
93
|
-
Wait for all spawned scouts to return.
|
|
94
|
-
Do not synthesize partial findings.
|
|
95
|
-
Do not fabricate scout results.
|
|
96
|
-
Do not poll repeatedly while waiting; results arrive asynchronously.
|
|
97
|
-
|
|
98
|
-
If a scout fails or times out, retry the same task once.
|
|
99
|
-
If a scout returns without useful findings, reformulate the task and spawn a replacement scout.
|
|
100
|
-
If a retried or replacement scout still fails or returns without useful findings, proceed with the findings you have and note the gap for the planner.
|
|
101
|
-
|
|
102
|
-
## Planner Execution
|
|
103
|
-
|
|
104
|
-
Call `crew_list` first and verify `planner` is available. If `planner` is unavailable, tell the user and stop.
|
|
105
|
-
|
|
106
|
-
Before spawning the planner, perform only mechanical cleanup. Do not add new inferences, risk analysis, or recommendations.
|
|
107
|
-
|
|
108
|
-
- remove duplicate scout findings
|
|
109
|
-
- drop irrelevant generic observations
|
|
110
|
-
- drop findings outside the scope boundary except short `Out-of-scope risk/constraint` items that may affect the plan
|
|
111
|
-
- organize findings by area
|
|
112
|
-
- preserve specific facts, constraints, paths, interfaces, and conflicts
|
|
113
|
-
- watch for diminishing returns: if later findings repeat or add no new specifics, you have enough—proceed to the planner rather than processing further
|
|
114
|
-
|
|
115
|
-
Spawn the planner with the shared context plus:
|
|
116
|
-
|
|
117
|
-
- processed scout findings
|
|
118
|
-
- any discovery gaps
|
|
119
|
-
|
|
120
|
-
The planner is interactive. It may return:
|
|
121
|
-
|
|
122
|
-
- Blocking Questions
|
|
123
|
-
- Implementation Plan
|
|
124
|
-
- No plan needed
|
|
125
|
-
|
|
126
|
-
## Relay
|
|
127
|
-
|
|
128
|
-
Do not rewrite subagent output that is already visible as a steering message.
|
|
129
|
-
|
|
130
|
-
If the planner returns blocking questions:
|
|
131
|
-
- ask the user to answer them
|
|
132
|
-
- if the user's answer expands scope, close the planner with `crew_done` and restart the workflow with the expanded scope
|
|
133
|
-
- if the user's answer narrows scope, relay the response with `crew_respond`
|
|
134
|
-
- otherwise relay the user's response with `crew_respond`
|
|
135
|
-
- wait for the next planner response
|
|
136
|
-
|
|
137
|
-
If the planner returns an implementation plan:
|
|
138
|
-
- tell the user the plan is ready and ask for approval or feedback
|
|
139
|
-
- relay any feedback with `crew_respond`
|
|
140
|
-
- wait for the updated planner response
|
|
141
|
-
|
|
142
|
-
If the planner returns no plan needed:
|
|
143
|
-
- close the planner with `crew_done`
|
|
144
|
-
- briefly tell the user no plan is needed and that the task can be implemented directly
|
|
145
|
-
|
|
146
|
-
If the user cancels planning:
|
|
147
|
-
- close the planner with `crew_done`
|
|
148
|
-
- stop
|
|
149
|
-
|
|
150
|
-
If the user approves the plan:
|
|
151
|
-
- close the planner with `crew_done`
|
|
152
|
-
- confirm that the plan is finalized and stop
|
|
153
|
-
|
|
154
|
-
## Language
|
|
155
|
-
|
|
156
|
-
Respond to the user in the same language as the user's request.
|
|
50
|
+
- **Blocking Questions**: ask the user to answer; relay the answer with `crew_respond`. If the answer changes scope significantly, close with `crew_done` and restart with the new scope.
|
|
51
|
+
- **Implementation Plan**: ask for approval or feedback; relay feedback with `crew_respond`; on approval, close with `crew_done` and confirm finalized.
|
|
52
|
+
- **No plan needed**: close with `crew_done` and briefly confirm direct implementation is appropriate.
|
|
53
|
+
- **Cancel**: close with `crew_done` and stop.
|
|
157
54
|
|
|
158
55
|
## Rules
|
|
159
56
|
|
|
57
|
+
- Reply in the user's language.
|
|
160
58
|
- Do not modify files.
|
|
161
|
-
- Do not
|
|
162
|
-
-
|
|
163
|
-
- Never answer planner questions on behalf of the user.
|
|
59
|
+
- Do not perform independent scouting, planning, or implementation.
|
|
60
|
+
- Never answer planner questions for the user.
|
|
164
61
|
- Never fabricate subagent results.
|
|
165
|
-
-
|
|
166
|
-
- Do not expand scope beyond
|
|
62
|
+
- Do not poll for subagent completion.
|
|
63
|
+
- Do not expand scope beyond the user's task.
|
|
@@ -1,150 +1,74 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Orchestrate parallel code and quality reviews with reviewer subagents.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Parallel Review
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Additional instructions: `$ARGUMENTS`
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
You are a review orchestrator, not a reviewer. Resolve the review scope, gather only enough task-specific context to brief subagents, spawn reviewers, then filter and merge their results. Do not perform an independent review or inspect raw diffs except for minimal scope clarification or spot-checking ambiguous findings.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Scope
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
Determine review scope with minimal context gathering, prepare a short neutral brief, spawn the reviewer subagents, wait for their results, and merge them into one final report.
|
|
13
|
+
Use the user's scope when provided. Otherwise rely on each reviewer’s default scope. If “latest” or “recent” is requested, review the last 5 commits unless a count is given.
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
Do not perform a broad second review or re-investigate the whole repository. Your job is orchestration, filtering, and merging. If a reviewer finding is ambiguous, high-impact, or appears out of scope, you may do a minimal spot-check to clarify whether it is concrete enough to include.
|
|
15
|
+
Gather minimal review context: why the changes were made, expected behavior/outcome, feature or bug intent, notable fixes since any prior review, verification already run, and user instructions that are specific to this review.
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
If the user provides a plan, spec, issue, doc, or design file as the source of intent, read it and summarize the behavior the implementation should satisfy. This is allowed context gathering, not independent code review.
|
|
20
18
|
|
|
21
|
-
-
|
|
22
|
-
- Otherwise, default scope includes:
|
|
23
|
-
- recent commits
|
|
24
|
-
- staged changes
|
|
25
|
-
- unstaged changes
|
|
26
|
-
- untracked files
|
|
19
|
+
Keep the brief focused on task-specific intent and outcome, not repository mechanics or reviewer boilerplate. Do not paste full changed-file, staged/unstaged, untracked, branch, cwd, or project-constraint inventories for default reviews; reviewers run in the same repo cwd and can inspect Git state and repo guidance themselves. Include file paths or entry points only when they define scope, identify an intent source, prevent ambiguity, or highlight non-obvious areas.
|
|
27
20
|
|
|
28
|
-
##
|
|
21
|
+
## Subagents
|
|
29
22
|
|
|
30
|
-
|
|
23
|
+
Call `crew_list` first and check for `code-reviewer` and `quality-reviewer`. Spawn available reviewers in parallel. If one is unavailable, fails to start, returns `error`, or is aborted, report that clearly and continue with completed reviewer results.
|
|
31
24
|
|
|
32
|
-
|
|
25
|
+
Send each reviewer a compact, task-specific brief. Include only information that helps this specific review beyond the selected reviewer’s obvious role:
|
|
26
|
+
- user-provided intent source, e.g. plan/spec/doc path, plus a concise summary after reading it;
|
|
27
|
+
- why the changes were made and what outcome is expected;
|
|
28
|
+
- notable prior-review fixes and verification already run, when known;
|
|
29
|
+
- non-default scope, commit range, file paths, or entry-point hints only when they define or clarify scope;
|
|
30
|
+
- additional user instructions that are specific to this review.
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
- current branch
|
|
36
|
-
- `git status --short`
|
|
37
|
-
- `git log --oneline --decorate -n 5`
|
|
38
|
-
- `git diff --stat --cached`
|
|
39
|
-
- `git diff --stat`
|
|
40
|
-
- untracked file list
|
|
32
|
+
If you include a Goal, make it specific to the change intent, not the reviewer role or default scope. Prefer omitting Goal when Context/Intent already states the task clearly.
|
|
41
33
|
|
|
42
|
-
For
|
|
34
|
+
For default reviews, do not include a Scope section or mention uncommitted/current repo changes in the subagent brief unless needed to disambiguate scope. If you need to state task-specific emphasis, use `Review focus:` instead of `Scope:`.
|
|
43
35
|
|
|
44
|
-
|
|
45
|
-
- otherwise use the widest reachable history range
|
|
36
|
+
Do not echo the raw user instruction if it is already represented in the intent summary; quote it only when exact wording matters.
|
|
46
37
|
|
|
47
|
-
|
|
38
|
+
Do not restate reviewer-role boilerplate implied by the selected reviewer, such as telling `code-reviewer` to find actionable bugs or telling `quality-reviewer` to review maintainability. Do not include default scope, generic non-goals, acceptance criteria, output format, edit permissions, or severity rules unless the user explicitly overrides them.
|
|
48
39
|
|
|
49
|
-
|
|
50
|
-
- `git diff --name-only <range>`
|
|
40
|
+
Do not poll. Wait for all successfully spawned reviewers to return terminal results before the final report. Never fabricate subagent output.
|
|
51
41
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
- Do not read full files before spawning subagents.
|
|
55
|
-
- Do not dump raw diffs into the prompt.
|
|
56
|
-
- Do not inspect every changed file manually.
|
|
57
|
-
- Use full diffs or targeted reads only when file names and diff stats are insufficient to produce a short neutral summary.
|
|
58
|
-
- Keep the brief short and descriptive, not analytical.
|
|
59
|
-
- Watch for diminishing returns: if you have enough to define scope and write the brief, stop gathering context. More git commands or file reads at this stage add noise, not clarity.
|
|
60
|
-
|
|
61
|
-
## Subagent Preparation
|
|
62
|
-
|
|
63
|
-
Call `crew_list` first and verify that both are available:
|
|
64
|
-
|
|
65
|
-
- `code-reviewer`
|
|
66
|
-
- `quality-reviewer`
|
|
67
|
-
|
|
68
|
-
Prepare one short brief for both reviewers including:
|
|
69
|
-
|
|
70
|
-
- repo root
|
|
71
|
-
- resolved review scope
|
|
72
|
-
- commit range if any
|
|
73
|
-
- staged / unstaged / untracked status
|
|
74
|
-
- changed files
|
|
75
|
-
- short summary per file or file group
|
|
76
|
-
- additional user instructions
|
|
77
|
-
- **explicit scope boundary**: what is being reviewed (in scope) and what is not being reviewed (out of scope). For example: "Only the auth module changes are in scope. The unrelated CSS refactor in the same PR is out of scope for this review."
|
|
78
|
-
- **explicit default override**: reviewers must review only the resolved scope in the brief and ignore their own default scope rules if they differ.
|
|
79
|
-
|
|
80
|
-
## Execution
|
|
81
|
-
|
|
82
|
-
Spawn `code-reviewer` and `quality-reviewer` in parallel.
|
|
83
|
-
|
|
84
|
-
If one reviewer is unavailable or fails to start, report that clearly and continue with the reviewer that is available.
|
|
85
|
-
If a successfully spawned reviewer later returns `error` or `aborted`, report that clearly in the final summary and complete the report using only the reviewer results that completed successfully.
|
|
86
|
-
|
|
87
|
-
Do not produce a final report until all successfully spawned reviewers have returned a terminal result (`done`, `error`, or `aborted`).
|
|
88
|
-
Do not poll or repeatedly check active subagents while waiting; results will be delivered asynchronously.
|
|
42
|
+
## Acceptance Gate
|
|
89
43
|
|
|
90
|
-
|
|
44
|
+
Before forwarding a finding, keep only evidence-backed, actionable findings with realistic trigger or concrete maintenance impact. Keep valid Minor findings. Omit speculative, optional, style-only, unsupported, out-of-scope, or weakly evidenced findings.
|
|
91
45
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
Include a finding only if:
|
|
95
|
-
- it is actionable now
|
|
96
|
-
- it describes a realistic scenario for this project
|
|
97
|
-
- it includes a concrete trigger or maintenance impact
|
|
98
|
-
- it includes evidence or a clear rationale from the reviewer
|
|
99
|
-
- its severity matches the described likelihood and impact
|
|
100
|
-
|
|
101
|
-
Exclude findings that are:
|
|
102
|
-
- speculative or theory-driven (no realistic trigger)
|
|
103
|
-
- based on broken invariants or unsupported usage
|
|
104
|
-
- style preferences or optional refactors without concrete bug risk
|
|
105
|
-
- vague suggestions without concrete trigger, impact, or evidence
|
|
106
|
-
|
|
107
|
-
Do not exclude a legitimate Minor finding that has a concrete trigger and realistic near-term impact. Minor findings with evidence pass the gate; Minor findings without evidence do not.
|
|
108
|
-
|
|
109
|
-
If a finding clearly fails the gate, omit it rather than forwarding reviewer noise to the user. Prefer omission for weak or optional findings, but do not discard a potentially important finding solely because the reviewer wrote it imperfectly. The merged report should be shorter and more impactful than the raw reviewer outputs, not a concatenation of them.
|
|
46
|
+
You may do a minimal spot-check only when a finding is ambiguous, high-impact, or possibly out of scope. Do not turn the spot-check into a second review.
|
|
110
47
|
|
|
111
48
|
## Merge
|
|
112
49
|
|
|
113
|
-
|
|
50
|
+
Reply in the user's language. Apply the gate before merging.
|
|
114
51
|
|
|
115
|
-
|
|
52
|
+
Sections:
|
|
116
53
|
|
|
117
54
|
### Consensus Findings
|
|
118
|
-
|
|
119
|
-
Merge only findings that are clearly the same issue reported by both reviewers.
|
|
55
|
+
Issues clearly reported by both reviewers.
|
|
120
56
|
|
|
121
57
|
### Code Review Findings
|
|
122
|
-
|
|
123
|
-
Include findings reported only by `code-reviewer`.
|
|
58
|
+
Accepted findings only from `code-reviewer`.
|
|
124
59
|
|
|
125
60
|
### Quality Review Findings
|
|
126
|
-
|
|
127
|
-
Include findings reported only by `quality-reviewer`.
|
|
61
|
+
Accepted findings only from `quality-reviewer`.
|
|
128
62
|
|
|
129
63
|
### Final Summary
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
- review
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
- code review findings count
|
|
137
|
-
- quality review findings count
|
|
138
|
-
- overall assessment
|
|
64
|
+
- Review scope
|
|
65
|
+
- Reviewers run and any failures
|
|
66
|
+
- Consensus findings count
|
|
67
|
+
- Code review findings count
|
|
68
|
+
- Quality review findings count
|
|
69
|
+
- Overall assessment
|
|
139
70
|
|
|
140
71
|
Rules:
|
|
141
|
-
|
|
142
72
|
- Do not repeat overlapping findings.
|
|
143
|
-
- Do not invent reviewer output, evidence, or counts.
|
|
144
73
|
- Do not present a single-reviewer finding as consensus.
|
|
145
|
-
-
|
|
146
|
-
- If both reviewers report no issues, say so explicitly.
|
|
147
|
-
- If one reviewer failed or was unavailable, say so explicitly.
|
|
148
|
-
- Review only. Do not make code changes.
|
|
149
|
-
- Do not perform independent review beyond minimal scope and validity checks on reviewer findings. Only orchestrate reviewers and merge their reported results.
|
|
150
|
-
- Never fabricate subagent results. Wait for all successfully spawned reviewers to return.
|
|
74
|
+
- If both reviewers report no accepted findings, say so clearly.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Pi Crew Reference
|
|
2
|
+
|
|
3
|
+
## Delegation Checklist
|
|
4
|
+
|
|
5
|
+
Before `crew_spawn`, ensure the brief is self-contained but not mechanically templated. Include only information that helps this specific subagent do this specific task:
|
|
6
|
+
|
|
7
|
+
- Intent, expected outcome, and relevant user decisions.
|
|
8
|
+
- User-provided references, plus a concise summary after reading them when practical.
|
|
9
|
+
- File paths, symbols, entry points, commands, errors, or logs only when they genuinely clarify the task.
|
|
10
|
+
- Non-default scope, constraints, assumptions, or verification context only when they matter.
|
|
11
|
+
- Gaps or unresolved questions the subagent should account for.
|
|
12
|
+
|
|
13
|
+
Do not restate boilerplate implied by the selected subagent’s role, name, or description. Avoid repeating default scope, edit permissions, output format, generic repo guidance, cwd/branch details, or mechanical Git state the subagent can inspect itself.
|
|
14
|
+
|
|
15
|
+
Do not rely on hidden active-session context. If the subagent needs a decision, conclusion, user intent, or prior result that is not discoverable from files/tools, include it.
|
|
16
|
+
|
|
17
|
+
## Good Brief
|
|
18
|
+
|
|
19
|
+
```md
|
|
20
|
+
Intent / context:
|
|
21
|
+
Password reset emails should expire after 30 minutes. Users report that old reset links still work several hours later.
|
|
22
|
+
|
|
23
|
+
Relevant inputs / entry points:
|
|
24
|
+
- The password reset request handler.
|
|
25
|
+
- The token validation path used by the reset form.
|
|
26
|
+
- Any configuration or database fields that store token expiry.
|
|
27
|
+
|
|
28
|
+
Constraints / decisions:
|
|
29
|
+
- Preserve the existing email template and reset URL format.
|
|
30
|
+
- Do not change login or account creation behavior.
|
|
31
|
+
|
|
32
|
+
Deliverable:
|
|
33
|
+
Identify the likely root cause and the smallest safe fix direction.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Bad Briefs
|
|
37
|
+
|
|
38
|
+
```md
|
|
39
|
+
Fix this.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```md
|
|
43
|
+
Investigate the bug we discussed.
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```md
|
|
47
|
+
Implement the plan.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```md
|
|
51
|
+
Goal: Review the current uncommitted changes for actionable bugs.
|
|
52
|
+
Scope: Current repo changes, staged/unstaged/untracked files.
|
|
53
|
+
Non-goals: Do not modify files.
|
|
54
|
+
Expected output: Findings with severity and fix direction.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
These depend on hidden conversation state, restate subagent boilerplate, or carry mechanical repository state instead of task-specific intent.
|
|
58
|
+
|
|
59
|
+
## Parallel Delegation
|
|
60
|
+
|
|
61
|
+
Use parallel subagents only when tasks are independent:
|
|
62
|
+
|
|
63
|
+
- Good: one reviewer checks correctness while another checks maintainability.
|
|
64
|
+
- Good: scouts inspect separate modules with non-overlapping files.
|
|
65
|
+
- Bad: two workers edit the same file or feature area simultaneously.
|
|
66
|
+
|
|
67
|
+
If ownership overlaps, serialize the work.
|
|
68
|
+
|
|
69
|
+
## Failure and Conflict Handling
|
|
70
|
+
|
|
71
|
+
- If a subagent errors or aborts, report that status clearly and continue only if remaining results are sufficient.
|
|
72
|
+
- If a result misses the task-specific deliverable, ask a focused follow-up or spawn a new subagent with a corrected brief.
|
|
73
|
+
- If results conflict, do not average them or pick silently. State the conflict, compare evidence, and resolve only with available facts or a targeted follow-up.
|
|
74
|
+
- If a task becomes obsolete, abort the relevant active subagent.
|
|
75
|
+
|
|
76
|
+
## Tool Notes
|
|
77
|
+
|
|
78
|
+
- `crew_list`: discovery before a new spawn decision or requested status snapshot; never completion polling.
|
|
79
|
+
- `crew_spawn`: self-contained delegation; ownership transfers after spawn.
|
|
80
|
+
- `crew_respond`: send a follow-up to a waiting interactive subagent; fire-and-forget.
|
|
81
|
+
- `crew_done`: close a waiting interactive subagent when complete.
|
|
82
|
+
- `crew_abort`: abort active owned subagents only when obsolete, wrong, or cancelled.
|
package/skills/pi-crew/SKILL.md
CHANGED
|
@@ -1,129 +1,58 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pi-crew
|
|
3
|
-
description: "MUST be read before using any pi-crew tool: crew_list, crew_spawn, crew_respond, crew_done, or crew_abort. Use for
|
|
3
|
+
description: "MUST be read before using any pi-crew tool: crew_list, crew_spawn, crew_respond, crew_done, or crew_abort. Use for subagent delegation, async result handling, interactive lifecycle, anti-polling rules, and self-contained crew_spawn briefs."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Pi Crew
|
|
7
7
|
|
|
8
|
-
Use this skill
|
|
8
|
+
Use this skill to coordinate subagents safely. Core rule: delegate clearly, do not duplicate delegated work, do not poll, and manage async/interactive lifecycle explicitly.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
See [REFERENCE.md](REFERENCE.md) for examples and detailed handling patterns.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
2. Choose from the discovered subagents by their current names, descriptions, capabilities, and `interactive` flag. Do not assume any fixed subagent names exist.
|
|
14
|
-
3. Spawn only when delegation creates clear value: parallel independent work, focused investigation, review, planning, or implementation that can be handled independently by a subagent.
|
|
15
|
-
4. Do not spawn for tiny tasks, unclear tasks, or work whose required context cannot be summarized safely.
|
|
16
|
-
5. Do not do the delegated work yourself before spawning or after spawning. Before spawning, gather only the minimum context needed to delegate; you may read enough files or output to create a self-contained task, but do not complete the investigation, review, implementation, or solution yourself. After spawning, ownership transfers to the subagent.
|
|
17
|
-
6. Results arrive asynchronously as steering messages at any time. As the orchestrator, do not keep calling `crew_list` to check completion, and do not invent or predict subagent results.
|
|
12
|
+
## Protocol
|
|
18
13
|
|
|
19
|
-
|
|
14
|
+
- Call `crew_list` before each new spawn decision. Choose from discovered names, descriptions, capabilities, and `interactive` flags; do not assume fixed agents exist.
|
|
15
|
+
- Spawn only when delegation adds clear value: independent parallel work, focused investigation, review, planning, implementation, or verification.
|
|
16
|
+
- Do not spawn for tiny tasks, unclear tasks, or work whose required context cannot be summarized safely.
|
|
17
|
+
- Before spawning, gather only the minimum context needed to brief the subagent. Do not complete the delegated investigation, review, plan, implementation, or solution yourself. After spawning, ownership transfers to the subagent.
|
|
18
|
+
- Subagents cannot see your conversation, files read, commands run, decisions, or conclusions unless you include them in the task.
|
|
19
|
+
- Parallel spawns must be independent and non-overlapping. If multiple subagents may touch the same files or ownership area, serialize them.
|
|
20
|
+
- Results arrive asynchronously as steering messages. Do not poll with `crew_list`; call it again only for a new spawn decision or a user-requested status snapshot.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
## Spawn Brief
|
|
22
23
|
|
|
23
|
-
-
|
|
24
|
-
- relevant files, symbols, commands, errors, or entry points
|
|
25
|
-
- constraints and non-goals
|
|
26
|
-
- expected output format
|
|
27
|
-
- acceptance criteria
|
|
28
|
-
- verification command, if known
|
|
29
|
-
|
|
30
|
-
Do not fully investigate, implement, review, or solve the delegated task before spawning. That duplicates the subagent's work and creates conflicting conclusions.
|
|
31
|
-
|
|
32
|
-
The subagent cannot access your active session. It cannot see user messages, decisions already made, files you discovered, commands you ran, or conclusions you reached unless you include the necessary information in the task.
|
|
33
|
-
|
|
34
|
-
## `crew_spawn` task template
|
|
35
|
-
|
|
36
|
-
Write the task as a self-contained brief. The subagent cannot see your current conversation or active session state unless you include the needed context.
|
|
37
|
-
|
|
38
|
-
```md
|
|
39
|
-
Goal:
|
|
40
|
-
|
|
41
|
-
Context:
|
|
42
|
-
|
|
43
|
-
Relevant files / entry points:
|
|
44
|
-
|
|
45
|
-
Constraints:
|
|
46
|
-
|
|
47
|
-
Non-goals:
|
|
48
|
-
|
|
49
|
-
Acceptance criteria:
|
|
50
|
-
|
|
51
|
-
Expected output:
|
|
52
|
-
|
|
53
|
-
Verification:
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Omit sections only when they are genuinely irrelevant.
|
|
57
|
-
|
|
58
|
-
## Good delegation rules
|
|
59
|
-
|
|
60
|
-
- Include absolute or repo-relative file paths when known.
|
|
61
|
-
- If the finding is a file, reference it by path instead of copying the file contents into the task.
|
|
62
|
-
- Include exact error messages or command output when they matter.
|
|
63
|
-
- State whether the subagent may edit files or should only report findings.
|
|
64
|
-
- State whether the task is exploratory, implementation, review, or verification.
|
|
65
|
-
- For parallel spawns, make tasks independent and non-overlapping.
|
|
66
|
-
- If multiple subagents may touch the same files, serialize the work instead of spawning in parallel.
|
|
67
|
-
|
|
68
|
-
## Bad patterns
|
|
69
|
-
|
|
70
|
-
Avoid tasks like:
|
|
24
|
+
Send a self-contained task, but do not fill a template mechanically. Use only sections that add task-specific value, for example:
|
|
71
25
|
|
|
72
26
|
```md
|
|
73
|
-
|
|
27
|
+
Intent / context:
|
|
28
|
+
Relevant inputs / entry points:
|
|
29
|
+
Constraints / decisions:
|
|
30
|
+
Deliverable / expected outcome:
|
|
31
|
+
Verification / checks:
|
|
74
32
|
```
|
|
75
33
|
|
|
76
|
-
|
|
77
|
-
Investigate the bug we discussed.
|
|
78
|
-
```
|
|
34
|
+
Omit sections that would only restate the selected subagent’s role, default scope, edit permissions, output format, or obvious next steps.
|
|
79
35
|
|
|
80
|
-
|
|
81
|
-
Implement the plan.
|
|
82
|
-
```
|
|
36
|
+
Include only information that helps this specific subagent do this specific task: intent, expected outcome, relevant decisions, exact errors/output, unusual constraints, and file paths or entry points that genuinely clarify the task. Use short Markdown sections and bullets when they improve scanability, especially for multi-part intent, constraints, observations, requirements, or acceptance criteria; avoid dense paragraphs.
|
|
83
37
|
|
|
84
|
-
|
|
38
|
+
Do not restate boilerplate implied by the selected subagent’s role, name, or description. Avoid repeating default scope, output format, edit permissions, or repo guidance. Subagents run in the same cwd as the orchestrator, so do not include mechanical Git state they can inspect themselves, such as full changed-file lists, staged/unstaged/untracked inventories, branch/cwd details, or generic project constraints, unless those details define a non-default scope or prevent ambiguity.
|
|
85
39
|
|
|
86
|
-
Prefer
|
|
40
|
+
If the user points to a plan, spec, issue, design, or doc as task intent, read it when practical and summarize the relevant intent instead of merely passing the path. Prefer explaining why the work matters and what outcome is expected over restating repository state.
|
|
87
41
|
|
|
88
|
-
|
|
89
|
-
Goal: Investigate why `crew_done` emits duplicate result messages.
|
|
90
|
-
Context: Closing an interactive subagent should dispose the session without sending another result.
|
|
91
|
-
Relevant files: `extension/runtime/crew-runtime.ts`, `extension/integration/tools/crew-done.ts`, `AGENTS.md`.
|
|
92
|
-
Constraints: Do not change tool schemas. Do not edit unrelated lifecycle behavior.
|
|
93
|
-
Expected output: Root cause, minimal fix proposal, and verification command. Do not edit files.
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Async result handling
|
|
42
|
+
## Result Handling
|
|
97
43
|
|
|
44
|
+
- Wait for subagent results before using them. Never invent or predict results.
|
|
45
|
+
- Evaluate each result against the task acceptance criteria.
|
|
46
|
+
- If results conflict, are incomplete, or miss criteria, state that clearly and use a follow-up or new spawn only when needed.
|
|
98
47
|
- After spawning, continue only with unrelated work or end the turn.
|
|
99
|
-
- The subagent runs asynchronously and may answer at any time via a `crew-result` steering message.
|
|
100
|
-
- Wait for the `crew-result` steering message before using the result.
|
|
101
|
-
- If more subagents are still running, wait for each relevant result before combining conclusions.
|
|
102
|
-
- Evaluate results against the task acceptance criteria before using them.
|
|
103
|
-
- If results conflict, are incomplete, or miss acceptance criteria, state that explicitly and use a follow-up or new spawn only when needed.
|
|
104
|
-
- Do not repeatedly call `crew_list` as an orchestrator. Call it again only for a user-requested status snapshot or to discover subagents for a new spawn decision.
|
|
105
|
-
|
|
106
|
-
## Interactive subagents
|
|
107
|
-
|
|
108
|
-
Interactive subagents stay alive after responding.
|
|
109
|
-
|
|
110
|
-
- Use `crew_respond` to send a follow-up to a waiting interactive subagent.
|
|
111
|
-
- `crew_respond` is fire-and-forget: the next response arrives asynchronously as a steering message.
|
|
112
|
-
- Do not poll after `crew_respond`.
|
|
113
|
-
- Use `crew_done` when the interaction is complete.
|
|
114
|
-
- Do not call `crew_done` if you still need another answer from that subagent.
|
|
115
|
-
|
|
116
|
-
## Tool safety quick rules
|
|
117
48
|
|
|
118
|
-
|
|
119
|
-
- `crew_spawn`: do send a self-contained task with constraints, non-goals, expected output, and acceptance criteria; do not rely on hidden active-session context.
|
|
120
|
-
- `crew_respond`: do use only for a waiting interactive subagent when another answer is needed; do not poll afterward.
|
|
121
|
-
- `crew_done`: do use only when a waiting interactive subagent interaction is complete; do not call it if another answer is needed.
|
|
122
|
-
- `crew_abort`: do use only for active subagents owned by your active session when the task is obsolete, wrong, or cancelled; do not abort unrelated work.
|
|
49
|
+
## Interactive Subagents
|
|
123
50
|
|
|
124
|
-
|
|
51
|
+
- Use `crew_respond` only for a waiting interactive subagent when another answer is needed.
|
|
52
|
+
- `crew_respond` is fire-and-forget; wait for the next steering result and do not poll.
|
|
53
|
+
- Use `crew_done` only when a waiting interactive subagent is complete.
|
|
54
|
+
- Do not call `crew_done` if you still need another answer.
|
|
125
55
|
|
|
126
|
-
|
|
56
|
+
## Abort
|
|
127
57
|
|
|
128
|
-
|
|
129
|
-
- Abort all owned subagents only when the user requests cancellation or your plan has changed so all delegated work is invalid.
|
|
58
|
+
Use `crew_abort` only for active subagents owned by this session when the task is obsolete, wrong, or cancelled.
|