Follow-up: adapt superpowers-* planning/execution cluster to this harness's actual Agent/Workflow tools #17

Closed
opened 2026-07-25 20:47:08 +00:00 by mathias · 1 comment
Owner

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.
mathias added the risk/lowsize/mtype/docs labels 2026-08-27 05:25:45 +00:00
Author
Owner

Done in 62cfe46 — CI run #40 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.

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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mathias/skills#17