Overlap audit (fork, 2026-07-25) — not a dedup issue, a staleness issue. superpowers-writing-plans, superpowers-executing-plans, superpowers-dispatching-parallel-agents, superpowers-subagent-driven-development are all correctly distinct techniques from each other (verified by content, not just names) — but all 5 reference a generic Task() tool and "your human partner" phrasing, unadapted from obra's original. They don't reference this harness's actual Agent tool (fork/isolation/model-override semantics) or Workflow tool (pipeline/parallel primitives, agent()/parallel()/pipeline() hooks) — both strictly more capable than what these skills were written against.
Action: adaptation pass on all 4 (+ check superpowers-using-git-worktrees, superpowers-finishing-a-development-branch, superpowers-verification-before-completion, superpowers-using-superpowers, superpowers-writing-skills, superpowers-brainstorming for the same generic-tool-model staleness while in there) to reference the real tool surface. Lower priority than the dedup/index issues — file separately, don't block on it.
Overlap audit (fork, 2026-07-25) — not a dedup issue, a staleness issue. `superpowers-writing-plans`, `superpowers-executing-plans`, `superpowers-dispatching-parallel-agents`, `superpowers-subagent-driven-development` are all correctly distinct techniques from each other (verified by content, not just names) — but all 5 reference a generic `Task()` tool and "your human partner" phrasing, unadapted from obra's original. They don't reference this harness's actual `Agent` tool (fork/isolation/model-override semantics) or `Workflow` tool (pipeline/parallel primitives, agent()/parallel()/pipeline() hooks) — both strictly more capable than what these skills were written against.
Action: adaptation pass on all 4 (+ check `superpowers-using-git-worktrees`, `superpowers-finishing-a-development-branch`, `superpowers-verification-before-completion`, `superpowers-using-superpowers`, `superpowers-writing-skills`, `superpowers-brainstorming` for the same generic-tool-model staleness while in there) to reference the real tool surface. Lower priority than the dedup/index issues — file separately, don't block on it.
This turned out to be a correctness issue, not just staleness: an agent following superpowers-dispatching-parallel-agents literally would call Task(...), which is not in its tool list.
Tool surface.Task tool → the Agent tool with subagent_type, across all six prompt templates (implementer-prompt.md, spec-reviewer-prompt.md, code-quality-reviewer-prompt.md, code-reviewer.md, plan-document-reviewer-prompt.md, spec-document-reviewer-prompt.md) and the Gemini CLI mapping table in superpowers-using-superpowers/references/gemini-tools.md.
The dispatch example gained the three things that actually matter for parallel work, none of which existed in obra's version because his tool did not have them:
Issue every dispatch in one message. Several Agent uses in a single assistant turn run concurrently; one per turn silently serialises them. This is the difference between the skill working and appearing to work.
isolation: "worktree". This skill's whole premise is that the tasks must be independent. A worktree makes that structural instead of a matter of the dispatcher's discipline.
Per-agent model override. Mechanical fan-out does not need the model that planned it.
Workflow is named, with its condition. It expresses phases, per-item verification and fan-in directly via agent() / parallel() / pipeline(). It also spawns many agents and bills accordingly, so it runs only on explicit operator opt-in — a skill that told an agent to reach for it unprompted would be teaching a policy violation, so the constraint is stated alongside the capability.
"your human partner" → "the operator" in five skills. In superpowers-executing-plans this was more than phrasing: the text told the reader to inform their partner that subagents would improve results. On this fleet that is a known fact, not a conversation — Claude Code has the Agent tool, Crush/Pi/OpenCode do not — so it now says which skill to use on which harness.
Done in `62cfe46` — CI run [#40](https://git.d-ma.be/mathias/skills/actions/runs/4860) green.
This turned out to be a correctness issue, not just staleness: an agent following `superpowers-dispatching-parallel-agents` literally would call `Task(...)`, which is not in its tool list.
**Tool surface.** `Task tool` → the `Agent` tool with `subagent_type`, across all six prompt templates (`implementer-prompt.md`, `spec-reviewer-prompt.md`, `code-quality-reviewer-prompt.md`, `code-reviewer.md`, `plan-document-reviewer-prompt.md`, `spec-document-reviewer-prompt.md`) and the Gemini CLI mapping table in `superpowers-using-superpowers/references/gemini-tools.md`.
The dispatch example gained the three things that actually matter for parallel work, none of which existed in obra's version because his tool did not have them:
- **Issue every dispatch in one message.** Several `Agent` uses in a single assistant turn run concurrently; one per turn silently serialises them. This is the difference between the skill working and appearing to work.
- **`isolation: "worktree"`.** This skill's whole premise is that the tasks must be independent. A worktree makes that structural instead of a matter of the dispatcher's discipline.
- **Per-agent `model` override.** Mechanical fan-out does not need the model that planned it.
**`Workflow` is named, with its condition.** It expresses phases, per-item verification and fan-in directly via `agent()` / `parallel()` / `pipeline()`. It also spawns many agents and bills accordingly, so it runs only on explicit operator opt-in — a skill that told an agent to reach for it unprompted would be teaching a policy violation, so the constraint is stated alongside the capability.
**"your human partner" → "the operator"** in five skills. In `superpowers-executing-plans` this was more than phrasing: the text told the reader to *inform their partner* that subagents would improve results. On this fleet that is a known fact, not a conversation — Claude Code has the `Agent` tool, Crush/Pi/OpenCode do not — so it now says which skill to use on which harness.
`grep -rn "Task tool\|human partner" skills/` returns nothing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Overlap audit (fork, 2026-07-25) — not a dedup issue, a staleness issue.
superpowers-writing-plans,superpowers-executing-plans,superpowers-dispatching-parallel-agents,superpowers-subagent-driven-developmentare all correctly distinct techniques from each other (verified by content, not just names) — but all 5 reference a genericTask()tool and "your human partner" phrasing, unadapted from obra's original. They don't reference this harness's actualAgenttool (fork/isolation/model-override semantics) orWorkflowtool (pipeline/parallel primitives, agent()/parallel()/pipeline() hooks) — both strictly more capable than what these skills were written against.Action: adaptation pass on all 4 (+ check
superpowers-using-git-worktrees,superpowers-finishing-a-development-branch,superpowers-verification-before-completion,superpowers-using-superpowers,superpowers-writing-skills,superpowers-brainstormingfor the same generic-tool-model staleness while in there) to reference the real tool surface. Lower priority than the dedup/index issues — file separately, don't block on it.Done in
62cfe46— CI run #40 green.This turned out to be a correctness issue, not just staleness: an agent following
superpowers-dispatching-parallel-agentsliterally would callTask(...), which is not in its tool list.Tool surface.
Task tool→ theAgenttool withsubagent_type, across all six prompt templates (implementer-prompt.md,spec-reviewer-prompt.md,code-quality-reviewer-prompt.md,code-reviewer.md,plan-document-reviewer-prompt.md,spec-document-reviewer-prompt.md) and the Gemini CLI mapping table insuperpowers-using-superpowers/references/gemini-tools.md.The dispatch example gained the three things that actually matter for parallel work, none of which existed in obra's version because his tool did not have them:
Agentuses in a single assistant turn run concurrently; one per turn silently serialises them. This is the difference between the skill working and appearing to work.isolation: "worktree". This skill's whole premise is that the tasks must be independent. A worktree makes that structural instead of a matter of the dispatcher's discipline.modeloverride. Mechanical fan-out does not need the model that planned it.Workflowis named, with its condition. It expresses phases, per-item verification and fan-in directly viaagent()/parallel()/pipeline(). It also spawns many agents and bills accordingly, so it runs only on explicit operator opt-in — a skill that told an agent to reach for it unprompted would be teaching a policy violation, so the constraint is stated alongside the capability."your human partner" → "the operator" in five skills. In
superpowers-executing-plansthis was more than phrasing: the text told the reader to inform their partner that subagents would improve results. On this fleet that is a known fact, not a conversation — Claude Code has theAgenttool, Crush/Pi/OpenCode do not — so it now says which skill to use on which harness.grep -rn "Task tool\|human partner" skills/returns nothing.