@loneexile/omp-superpowers 6.4.2-omp.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pi/extensions/superpowers.ts +123 -0
- package/CHANGELOG.md +28 -0
- package/LICENSE +21 -0
- package/README.md +187 -0
- package/agents/sdd-escalation-implementer.md +18 -0
- package/agents/sdd-final-reviewer.md +23 -0
- package/agents/sdd-implementer.md +23 -0
- package/agents/sdd-rereviewer.md +69 -0
- package/agents/sdd-reviewer.md +83 -0
- package/package.json +40 -0
- package/skills/brainstorming/SKILL.md +285 -0
- package/skills/brainstorming/scripts/frame-template.html +213 -0
- package/skills/brainstorming/scripts/helper.js +167 -0
- package/skills/brainstorming/scripts/server.cjs +723 -0
- package/skills/brainstorming/scripts/start-server.sh +209 -0
- package/skills/brainstorming/scripts/stop-server.sh +120 -0
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/brainstorming/visual-companion.md +299 -0
- package/skills/diagnosing-superpowers/SKILL.md +120 -0
- package/skills/diagnosing-superpowers/prompts/analyst-common.md +38 -0
- package/skills/diagnosing-superpowers/prompts/cost-and-time.md +28 -0
- package/skills/diagnosing-superpowers/prompts/plan-adherence.md +29 -0
- package/skills/diagnosing-superpowers/prompts/quality-evidence.md +26 -0
- package/skills/diagnosing-superpowers/prompts/repeated-work.md +30 -0
- package/skills/diagnosing-superpowers/prompts/request-conflicts.md +20 -0
- package/skills/diagnosing-superpowers/prompts/scrub-audit.md +33 -0
- package/skills/diagnosing-superpowers/prompts/scrub.md +29 -0
- package/skills/diagnosing-superpowers/prompts/similar-session.md +38 -0
- package/skills/diagnosing-superpowers/prompts/skill-timeline.md +30 -0
- package/skills/diagnosing-superpowers/prompts/stumbles.md +28 -0
- package/skills/diagnosing-superpowers/references/context-safety.md +22 -0
- package/skills/diagnosing-superpowers/references/github-issues.md +47 -0
- package/skills/diagnosing-superpowers/references/redaction-policy.md +34 -0
- package/skills/diagnosing-superpowers/references/session-discovery.md +31 -0
- package/skills/diagnosing-superpowers/templates/bundle-README.md +77 -0
- package/skills/diagnosing-superpowers/templates/case.md +64 -0
- package/skills/diagnosing-superpowers/templates/issue.md +51 -0
- package/skills/diagnosing-superpowers/templates/report.md +82 -0
- package/skills/dispatching-parallel-agents/SKILL.md +167 -0
- package/skills/executing-plans/SKILL.md +373 -0
- package/skills/executing-plans/scripts/task-done +52 -0
- package/skills/executing-plans/scripts/task-start +28 -0
- package/skills/finishing-a-development-branch/SKILL.md +225 -0
- package/skills/receiving-code-review/SKILL.md +205 -0
- package/skills/requesting-code-review/SKILL.md +95 -0
- package/skills/requesting-code-review/code-reviewer.md +198 -0
- package/skills/subagent-driven-development/SKILL.md +681 -0
- package/skills/subagent-driven-development/implementer-prompt.md +157 -0
- package/skills/subagent-driven-development/re-review-prompt.md +110 -0
- package/skills/subagent-driven-development/scripts/review-package +53 -0
- package/skills/subagent-driven-development/scripts/sdd-workspace +82 -0
- package/skills/subagent-driven-development/scripts/task-brief +43 -0
- package/skills/subagent-driven-development/task-reviewer-prompt.md +205 -0
- package/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/systematic-debugging/SKILL.md +283 -0
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/find-polluter.sh +72 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/test-driven-development/SKILL.md +330 -0
- package/skills/test-driven-development/writing-good-tests.md +198 -0
- package/skills/using-git-worktrees/SKILL.md +194 -0
- package/skills/using-superpowers/SKILL.md +65 -0
- package/skills/using-superpowers/references/antigravity-tools.md +23 -0
- package/skills/using-superpowers/references/claude-code-tools.md +29 -0
- package/skills/using-superpowers/references/codex-tools.md +108 -0
- package/skills/using-superpowers/references/gemini-tools.md +63 -0
- package/skills/using-superpowers/references/hermes-tools.md +56 -0
- package/skills/using-superpowers/references/muse-tools.md +35 -0
- package/skills/using-superpowers/references/pi-tools.md +41 -0
- package/skills/verification-before-completion/SKILL.md +120 -0
- package/skills/writing-plans/SKILL.md +204 -0
- package/skills/writing-skills/SKILL.md +681 -0
- package/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/writing-skills/persuasion-principles.md +187 -0
- package/skills/writing-skills/render-graphs.js +169 -0
- package/skills/writing-skills/testing-skills-with-subagents.md +384 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Superpowers session diagnosis bundle
|
|
2
|
+
|
|
3
|
+
Session: <session-id>
|
|
4
|
+
Harness: <name> <version> (<provenance label>) Superpowers: <version> (<sha or "not a checkout">; <provenance label>)
|
|
5
|
+
Redaction level: skeleton | evidence | full
|
|
6
|
+
Built: <ISO timestamp>
|
|
7
|
+
|
|
8
|
+
Qualify header version fields as historical evidence, unverified snapshot,
|
|
9
|
+
current observation, or unknown. `environment.json` carries the same
|
|
10
|
+
provenance distinctions for every environment field and its supporting
|
|
11
|
+
location.
|
|
12
|
+
|
|
13
|
+
## What this is
|
|
14
|
+
|
|
15
|
+
A scrubbed record of a coding-agent session that had superpowers installed
|
|
16
|
+
and went wrong. It lets an agent or person who was not present decide
|
|
17
|
+
whether superpowers contributed and, if so, what to change. The report
|
|
18
|
+
inside states what happened with `path:line` evidence. By design it
|
|
19
|
+
contains no diagnosis of superpowers and no proposed fix; that is the
|
|
20
|
+
reader's job.
|
|
21
|
+
|
|
22
|
+
## Files
|
|
23
|
+
|
|
24
|
+
- `report.md` — the diagnosis report (problem statement, verdict,
|
|
25
|
+
environment, sessions, timeline, findings, involvement, coverage notes).
|
|
26
|
+
- `case.md` — the case file the analysts worked from.
|
|
27
|
+
- `environment.json` — machine-readable copy of the environment section.
|
|
28
|
+
- `timeline.md` — the per-turn timeline.
|
|
29
|
+
- `findings/<dimension>.md` — raw analyst findings per dimension.
|
|
30
|
+
- `transcripts/<session-id>.md` — condensed per-turn rendering of each
|
|
31
|
+
examined session (never the raw JSONL). Tool-result bodies by level:
|
|
32
|
+
|
|
33
|
+
| Level | Tool-result bodies |
|
|
34
|
+
|---|---|
|
|
35
|
+
| skeleton | intentionally limited; replaced by `[tool result: <tool>, <bytes> bytes, exit <code>]` |
|
|
36
|
+
| evidence | kept for cited events, including the commands and results needed to support findings |
|
|
37
|
+
| full | all kept |
|
|
38
|
+
- `scrub-log.md` — every placeholder used and its category (never the
|
|
39
|
+
original value).
|
|
40
|
+
|
|
41
|
+
## How to read it
|
|
42
|
+
|
|
43
|
+
Start with `report.md` §1–2, then §7 (involvement) and the evidence lines
|
|
44
|
+
it cites, then the matching turns in `transcripts/`. `path:line` references
|
|
45
|
+
point at the original files on the reporter's machine; the same line
|
|
46
|
+
numbers are preserved in the condensed transcripts as `[L<n>]` markers.
|
|
47
|
+
|
|
48
|
+
## Redaction
|
|
49
|
+
|
|
50
|
+
Placeholders look like `<EMAIL-1>`, `<PERSON-2>`, `<SECRET-3>`, `<HOST-4>`,
|
|
51
|
+
`<REPO-5>`, `<ORG-6>`, `<PROPRIETARY-7>`; home paths are rewritten to `~/…`. The same placeholder
|
|
52
|
+
always refers to the same original value within this bundle.
|
|
53
|
+
|
|
54
|
+
## Producer instructions
|
|
55
|
+
|
|
56
|
+
Completed bundles replace these instructions with actual results.
|
|
57
|
+
|
|
58
|
+
After scrubbing, check every material exported finding using only this bundle:
|
|
59
|
+
resolve its citation to an included transcript/source marker, read the cited
|
|
60
|
+
command/result or quotation, and verify that it supports the claim. Path and
|
|
61
|
+
line existence alone are insufficient. Record specific limitations when the
|
|
62
|
+
redaction level or necessary withholding removes support.
|
|
63
|
+
|
|
64
|
+
Reconcile report, case, environment, findings, README and any local issue
|
|
65
|
+
draft. Refresh scrub-log counts against final files excluding the log itself.
|
|
66
|
+
Remove stale export statements; distinguish bundle preparation from archive
|
|
67
|
+
delivery. Retain a mapping from historical anchors to included evidence.
|
|
68
|
+
|
|
69
|
+
Record the independent privacy audit separately from evidence usefulness:
|
|
70
|
+
- Privacy audit: CLEAN or unresolved misses.
|
|
71
|
+
- Evidence support: supported or limited, with affected findings and reasons.
|
|
72
|
+
|
|
73
|
+
If content changes after checking, repeat the affected checks. Present the
|
|
74
|
+
final log, file list and both outcomes for the existing archive approval.
|
|
75
|
+
Archive the reviewed files and verify the delivered archive matches them.
|
|
76
|
+
Record archive delivery outside the reviewed bundle rather than changing its
|
|
77
|
+
contents after approval. Scrubbing is not exhaustive privacy certification.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Case: <session-id>
|
|
2
|
+
|
|
3
|
+
Workspace: ~/.superpowers/diagnosing-superpowers/<session-id>/
|
|
4
|
+
Created: <ISO timestamp>
|
|
5
|
+
|
|
6
|
+
## Problem statement (agreed with your human partner)
|
|
7
|
+
|
|
8
|
+
<One paragraph. Names the session(s), the turn range if known, what was
|
|
9
|
+
expected, what happened, and the observable that matters: wall-clock,
|
|
10
|
+
tokens, repeated actions, a specific unexpected action.>
|
|
11
|
+
|
|
12
|
+
Goal is a superpowers bug report: yes | no
|
|
13
|
+
|
|
14
|
+
## Sessions
|
|
15
|
+
|
|
16
|
+
| Role | Session id | Absolute path | Lines | Bytes | Longest line (bytes) | First prompt (first 120 chars) | First timestamp |
|
|
17
|
+
|---|---|---|---|---|---|---|---|
|
|
18
|
+
| main | | | | | | | |
|
|
19
|
+
| subagent | | | | | | | |
|
|
20
|
+
|
|
21
|
+
Rejected candidates: <id — path — why rejected>, or "none".
|
|
22
|
+
|
|
23
|
+
Session still running at read time: yes | no (mtime <ISO>, lines <N>)
|
|
24
|
+
|
|
25
|
+
## Environment
|
|
26
|
+
|
|
27
|
+
- OS: <name and version>
|
|
28
|
+
- Harness: <name> <version>
|
|
29
|
+
- Models seen: <model id — where (main / subagent id)>
|
|
30
|
+
- Superpowers install root: <path>; version <x.y.z>; git sha <sha or "not a checkout">
|
|
31
|
+
- Skill files read or injected during the session:
|
|
32
|
+
|
|
33
|
+
| Skill / source path | sha1 or unavailable | Provenance | Supporting location |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
|
|
36
|
+
Label environment and skill observations as historical evidence, unverified
|
|
37
|
+
snapshot, current observation, or unknown. Check supplied provenance notes,
|
|
38
|
+
archives and captured skill bodies before declaring historical information
|
|
39
|
+
unavailable. Missing original paths do not erase retained copies. Current
|
|
40
|
+
versions/mtimes do not establish historical versions; one captured skill body
|
|
41
|
+
does not authenticate an entire installation.
|
|
42
|
+
|
|
43
|
+
- Other plugins / extensions / MCP servers configured: <list, or "none found">
|
|
44
|
+
- Instruction files present (paths only): <list>
|
|
45
|
+
|
|
46
|
+
## Context-safety rules for every reader of these files
|
|
47
|
+
|
|
48
|
+
- Follow `references/context-safety.md` before reading any file listed here.
|
|
49
|
+
- In a subagent transcript, "user" is the parent agent.
|
|
50
|
+
|
|
51
|
+
## Discovered sources and record meanings
|
|
52
|
+
|
|
53
|
+
- Sources consulted: <absolute path, tool, help, or documentation source>
|
|
54
|
+
- Extraction commands or queries: <bounded commands or tool queries used for each source>
|
|
55
|
+
- Target identity evidence: <session id, working directory, timestamps, matching content, and supporting record locations>
|
|
56
|
+
- Associated sessions: <session id, relationship, and supporting record locations, or "none found">
|
|
57
|
+
- Human messages: <record shape and evidence for its meaning>
|
|
58
|
+
- Injected messages and parent dispatches: <record shape and evidence for its meaning>
|
|
59
|
+
- Assistant messages: <record shape and evidence for its meaning>
|
|
60
|
+
- Tool calls and results: <record shapes, how they match, and evidence for those meanings>
|
|
61
|
+
- Usage counters: <fields, incremental or cumulative semantics, units, and evidence, or "unavailable">
|
|
62
|
+
- Timing: <fields, units, event boundaries, and evidence, or "unavailable">
|
|
63
|
+
- Other relevant records: <models, versions, compactions, or other meanings and evidence>
|
|
64
|
+
- Unresolved information: <missing, inaccessible, ambiguous, or absent information, or "none">
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
Title: <skill or symptom>: <one-line observable> (<harness>)
|
|
2
|
+
|
|
3
|
+
- [x] I searched existing issues and this is not a duplicate (searched: <query terms>; closest: <#n title, or "none">)
|
|
4
|
+
|
|
5
|
+
## Environment (required)
|
|
6
|
+
|
|
7
|
+
| Field | Value | Provenance / supporting evidence |
|
|
8
|
+
|-------|-------|-------------------------------|
|
|
9
|
+
| Superpowers version | <version> (<sha or "not a checkout">) | <historical evidence / unverified snapshot / current observation / unknown>; <location> |
|
|
10
|
+
| Harness (Claude Code, Cursor, etc.) | <harness> | <label>; <location> |
|
|
11
|
+
| Harness version | <version> | <label>; <location> |
|
|
12
|
+
| Your model + version | <model ids seen> | <label>; <location> |
|
|
13
|
+
| All plugins installed | <list> | <label>; <location> |
|
|
14
|
+
| OS + shell | <os version>, <shell> | <label>; <location> |
|
|
15
|
+
|
|
16
|
+
## Is this a Superpowers issue or a platform issue?
|
|
17
|
+
|
|
18
|
+
- [ ] I confirmed this issue does not occur without Superpowers installed
|
|
19
|
+
|
|
20
|
+
The reporter has not tried reproducing without superpowers. Evidence for
|
|
21
|
+
involvement is below; it does not establish cause.
|
|
22
|
+
|
|
23
|
+
## What happened?
|
|
24
|
+
|
|
25
|
+
<Problem statement, then the triage verdict, with `path:line` citations
|
|
26
|
+
rewritten as `transcript line <n>`.>
|
|
27
|
+
|
|
28
|
+
## Steps to reproduce
|
|
29
|
+
|
|
30
|
+
1. <first human prompt, scrubbed>
|
|
31
|
+
2. <the turns leading to the problem, one line each>
|
|
32
|
+
3. <the observable>
|
|
33
|
+
|
|
34
|
+
## Expected behavior
|
|
35
|
+
|
|
36
|
+
<from the problem statement>
|
|
37
|
+
|
|
38
|
+
## Actual behavior
|
|
39
|
+
|
|
40
|
+
<from the triage verdict>
|
|
41
|
+
|
|
42
|
+
## Debug log or conversation transcript
|
|
43
|
+
|
|
44
|
+
Session id(s): <ids>. Delivered local archive: <path, redaction level <level>
|
|
45
|
+
| none built>. Attached bundle: <no claim; attach only after approval>.
|
|
46
|
+
Superpowers involvement per the diagnosis report: <possible | likely>, with
|
|
47
|
+
evidence at <transcript lines>. This report does not propose a fix.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
Filed with the `diagnosing-superpowers` skill. Model, harness, harness
|
|
51
|
+
version, and installed plugins are listed above.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Session diagnosis: <session-id>
|
|
2
|
+
|
|
3
|
+
Report path: ~/.superpowers/diagnosing-superpowers/<session-id>/report.md
|
|
4
|
+
Written: <ISO timestamp>
|
|
5
|
+
|
|
6
|
+
## 1. Problem statement (REQUIRED)
|
|
7
|
+
|
|
8
|
+
<Copied from the case file.>
|
|
9
|
+
|
|
10
|
+
## 2. Triage verdict (REQUIRED)
|
|
11
|
+
|
|
12
|
+
<What the evidence shows happened around the reported problem. Prose, with
|
|
13
|
+
`path:line` after every claim. State confidence: high / medium / low, and
|
|
14
|
+
what would raise it. No statement about what superpowers should do.>
|
|
15
|
+
|
|
16
|
+
## 3. Environment (REQUIRED)
|
|
17
|
+
|
|
18
|
+
- OS:
|
|
19
|
+
- Harness and version:
|
|
20
|
+
- Models seen:
|
|
21
|
+
- Superpowers install root / version / git sha:
|
|
22
|
+
- Skill files read or injected (sha1 table from the case file):
|
|
23
|
+
- Other plugins, extensions, MCP servers:
|
|
24
|
+
- Instruction files present (paths only):
|
|
25
|
+
|
|
26
|
+
Label every environment field and skill observation as historical evidence,
|
|
27
|
+
unverified snapshot, current observation, or unknown, and record its
|
|
28
|
+
supporting evidence location.
|
|
29
|
+
|
|
30
|
+
## 4. Sessions examined (REQUIRED)
|
|
31
|
+
|
|
32
|
+
| Role | Session id | Absolute path | Lines | Bytes |
|
|
33
|
+
|---|---|---|---|---|
|
|
34
|
+
|
|
35
|
+
Rejected candidates: <id — path — why>, or "none".
|
|
36
|
+
|
|
37
|
+
## 5. Timeline (REQUIRED)
|
|
38
|
+
|
|
39
|
+
One row per human-typed prompt. Events column lists skills invoked,
|
|
40
|
+
subagents dispatched, compaction, errors, resumes, aborts.
|
|
41
|
+
|
|
42
|
+
| Turn | Line | Time | Request (one line) | Events |
|
|
43
|
+
|---|---|---|---|---|
|
|
44
|
+
|
|
45
|
+
## 6. Findings (REQUIRED, one subsection per dimension)
|
|
46
|
+
|
|
47
|
+
Each finding:
|
|
48
|
+
```
|
|
49
|
+
- finding: <one sentence>
|
|
50
|
+
evidence: <path:line> — "<short quote>"
|
|
51
|
+
turns: <first>–<last>
|
|
52
|
+
confidence: high | medium | low
|
|
53
|
+
```
|
|
54
|
+
A dimension with nothing to report says `none found — checked: <what was checked>`.
|
|
55
|
+
|
|
56
|
+
### 6.1 Skill timeline
|
|
57
|
+
### 6.2 Plan adherence
|
|
58
|
+
### 6.3 Repeated work
|
|
59
|
+
### 6.4 Stumbles
|
|
60
|
+
### 6.5 Quality evidence
|
|
61
|
+
### 6.6 Request conflicts
|
|
62
|
+
### 6.7 Cost and time
|
|
63
|
+
### 6.8 Other plugins and skills used
|
|
64
|
+
|
|
65
|
+
## 7. Superpowers involvement (REQUIRED)
|
|
66
|
+
|
|
67
|
+
not indicated | possible | likely
|
|
68
|
+
|
|
69
|
+
Evidence lines: <path:line list>. This section states involvement only. It
|
|
70
|
+
does not name a defect and does not propose a change.
|
|
71
|
+
|
|
72
|
+
## 8. Coverage notes (REQUIRED)
|
|
73
|
+
|
|
74
|
+
- Not read: <ranges, files, and why>
|
|
75
|
+
- Harness features unavailable: <list or none>
|
|
76
|
+
- Session was in progress at read time: yes/no
|
|
77
|
+
- For your human partner to double-check: <list or none>
|
|
78
|
+
|
|
79
|
+
## 9. Similar sessions (only when requested)
|
|
80
|
+
|
|
81
|
+
| Session id | Path | Date | Harness | Matched | Did not match |
|
|
82
|
+
|---|---|---|---|---|---|
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dispatching-parallel-agents
|
|
3
|
+
description: Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dispatching Parallel Agents
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
You delegate tasks to specialized agents with isolated context. By precisely crafting their instructions and context, you ensure they stay focused and succeed at their task. They should never inherit your session's context or history — you construct exactly what they need. This also preserves your own context for coordination work.
|
|
11
|
+
|
|
12
|
+
When you have multiple unrelated failures (different test files, different subsystems, different bugs), investigating them sequentially wastes time. Each investigation is independent and can happen in parallel.
|
|
13
|
+
|
|
14
|
+
**Core principle:** Dispatch one agent per independent problem domain. Let them work concurrently.
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
```dot
|
|
19
|
+
digraph when_to_use {
|
|
20
|
+
"Multiple failures?" [shape=diamond];
|
|
21
|
+
"Are they independent?" [shape=diamond];
|
|
22
|
+
"Single agent investigates all" [shape=box];
|
|
23
|
+
"One agent per problem domain" [shape=box];
|
|
24
|
+
"Can they work in parallel?" [shape=diamond];
|
|
25
|
+
"Sequential agents" [shape=box];
|
|
26
|
+
"Parallel dispatch" [shape=box];
|
|
27
|
+
|
|
28
|
+
"Multiple failures?" -> "Are they independent?" [label="yes"];
|
|
29
|
+
"Are they independent?" -> "Single agent investigates all" [label="no - related"];
|
|
30
|
+
"Are they independent?" -> "Can they work in parallel?" [label="yes"];
|
|
31
|
+
"Can they work in parallel?" -> "Parallel dispatch" [label="yes"];
|
|
32
|
+
"Can they work in parallel?" -> "Sequential agents" [label="no - shared state"];
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Use when:**
|
|
37
|
+
- 3+ test files failing with different root causes
|
|
38
|
+
- Multiple subsystems broken independently
|
|
39
|
+
- Each problem can be understood without context from others
|
|
40
|
+
- No shared state between investigations
|
|
41
|
+
|
|
42
|
+
**Don't use when:**
|
|
43
|
+
- Failures are related (fix one might fix others)
|
|
44
|
+
- Need to understand full system state
|
|
45
|
+
- Agents would interfere with each other
|
|
46
|
+
|
|
47
|
+
## The Pattern
|
|
48
|
+
|
|
49
|
+
### 1. Identify Independent Domains
|
|
50
|
+
|
|
51
|
+
Group failures by what's broken:
|
|
52
|
+
- File A tests: Tool approval flow
|
|
53
|
+
- File B tests: Batch completion behavior
|
|
54
|
+
- File C tests: Abort functionality
|
|
55
|
+
|
|
56
|
+
Each domain is independent - fixing tool approval doesn't affect abort tests.
|
|
57
|
+
|
|
58
|
+
### 2. Create Focused Agent Tasks
|
|
59
|
+
|
|
60
|
+
Each agent gets:
|
|
61
|
+
- **Specific scope:** One test file or subsystem
|
|
62
|
+
- **Clear goal:** Make these tests pass
|
|
63
|
+
- **Constraints:** Don't change other code
|
|
64
|
+
- **Expected output:** Summary of what you found and fixed
|
|
65
|
+
|
|
66
|
+
### 3. Dispatch in Parallel
|
|
67
|
+
|
|
68
|
+
Issue all three subagent dispatches in the same response — they run in parallel:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
Subagent (general-purpose): "Fix agent-tool-abort.test.ts failures"
|
|
72
|
+
Subagent (general-purpose): "Fix batch-completion-behavior.test.ts failures"
|
|
73
|
+
Subagent (general-purpose): "Fix tool-approval-race-conditions.test.ts failures"
|
|
74
|
+
# All three run concurrently.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Multiple dispatch calls in one response = parallel execution. One per response = sequential.
|
|
78
|
+
|
|
79
|
+
### 4. Review and Integrate
|
|
80
|
+
|
|
81
|
+
When agents return:
|
|
82
|
+
- Read each summary
|
|
83
|
+
- Verify fixes don't conflict
|
|
84
|
+
- Run full test suite
|
|
85
|
+
- Integrate all changes
|
|
86
|
+
|
|
87
|
+
## Agent Prompt Structure
|
|
88
|
+
|
|
89
|
+
Good agent prompts are:
|
|
90
|
+
1. **Focused** - One clear problem domain
|
|
91
|
+
2. **Self-contained** - All context needed to understand the problem
|
|
92
|
+
3. **Specific about output** - What should the agent return?
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
Fix the 3 failing tests in src/agents/agent-tool-abort.test.ts:
|
|
96
|
+
|
|
97
|
+
1. "should abort tool with partial output capture" - expects 'interrupted at' in message
|
|
98
|
+
2. "should handle mixed completed and aborted tools" - fast tool aborted instead of completed
|
|
99
|
+
3. "should properly track pendingToolCount" - expects 3 results but gets 0
|
|
100
|
+
|
|
101
|
+
These are timing/race condition issues. Your task:
|
|
102
|
+
|
|
103
|
+
1. Read the test file and understand what each test verifies
|
|
104
|
+
2. Identify root cause - timing issues or actual bugs?
|
|
105
|
+
3. Fix by:
|
|
106
|
+
- Replacing arbitrary timeouts with event-based waiting
|
|
107
|
+
- Fixing bugs in abort implementation if found
|
|
108
|
+
- Adjusting test expectations if testing changed behavior
|
|
109
|
+
|
|
110
|
+
Do NOT just increase timeouts - find the real issue.
|
|
111
|
+
|
|
112
|
+
Return: Summary of what you found and what you fixed.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Common Mistakes
|
|
116
|
+
|
|
117
|
+
**❌ Too broad:** "Fix all the tests" - agent gets lost
|
|
118
|
+
**✅ Specific:** "Fix agent-tool-abort.test.ts" - focused scope
|
|
119
|
+
|
|
120
|
+
**❌ No context:** "Fix the race condition" - agent doesn't know where
|
|
121
|
+
**✅ Context:** Paste the error messages and test names
|
|
122
|
+
|
|
123
|
+
**❌ No constraints:** Agent might refactor everything
|
|
124
|
+
**✅ Constraints:** "Do NOT change production code" or "Fix tests only"
|
|
125
|
+
|
|
126
|
+
**❌ Vague output:** "Fix it" - you don't know what changed
|
|
127
|
+
**✅ Specific:** "Return summary of root cause and changes"
|
|
128
|
+
|
|
129
|
+
## When NOT to Use
|
|
130
|
+
|
|
131
|
+
**Related failures:** Fixing one might fix others - investigate together first
|
|
132
|
+
**Need full context:** Understanding requires seeing entire system
|
|
133
|
+
**Exploratory debugging:** You don't know what's broken yet
|
|
134
|
+
**Shared state:** Agents would interfere (editing same files, using same resources)
|
|
135
|
+
|
|
136
|
+
## Real Example from Session
|
|
137
|
+
|
|
138
|
+
**Scenario:** 6 test failures across 3 files after major refactoring
|
|
139
|
+
|
|
140
|
+
**Failures:**
|
|
141
|
+
- agent-tool-abort.test.ts: 3 failures (timing issues)
|
|
142
|
+
- batch-completion-behavior.test.ts: 2 failures (tools not executing)
|
|
143
|
+
- tool-approval-race-conditions.test.ts: 1 failure (execution count = 0)
|
|
144
|
+
|
|
145
|
+
**Decision:** Independent domains - abort logic separate from batch completion separate from race conditions
|
|
146
|
+
|
|
147
|
+
**Dispatch:**
|
|
148
|
+
```
|
|
149
|
+
Agent 1 → Fix agent-tool-abort.test.ts
|
|
150
|
+
Agent 2 → Fix batch-completion-behavior.test.ts
|
|
151
|
+
Agent 3 → Fix tool-approval-race-conditions.test.ts
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Results:**
|
|
155
|
+
- Agent 1: Replaced timeouts with event-based waiting
|
|
156
|
+
- Agent 2: Fixed event structure bug (threadId in wrong place)
|
|
157
|
+
- Agent 3: Added wait for async tool execution to complete
|
|
158
|
+
|
|
159
|
+
**Integration:** All fixes independent, no conflicts, full suite green
|
|
160
|
+
|
|
161
|
+
## Verification
|
|
162
|
+
|
|
163
|
+
After agents return:
|
|
164
|
+
1. **Review each summary** - Understand what changed
|
|
165
|
+
2. **Check for conflicts** - Did agents edit same code?
|
|
166
|
+
3. **Run full suite** - Verify all fixes work together
|
|
167
|
+
4. **Spot check** - Agents can make systematic errors
|