Environment (required)
| Field |
Value |
| Superpowers version |
6.2.0 (version the mechanism was confirmed on this session). Upgraded to 6.3.0 immediately after; based on the diff the root cause looks unaddressed there too, but that's inference — not independently re-reproduced on 6.3.0. |
| Harness (Claude Code, Cursor, etc.) |
Claude Code |
| Harness version |
2.1.226 |
| Your model + version |
Claude Sonnet 5 (claude-sonnet-5) — this is the model that ran the investigation and reproduced the general mechanism below. The original operational observation that prompted this (an SDD run appearing to hang) was made by the user in an earlier, separate session not captured in a transcript I have access to. |
| All plugins installed |
chrome-devtools-mcp, code-simplifier, commit-commands, dart-lsp@michelsciortino-marketplace, figma, firebase, gopls-lsp, lua-lsp, skill-creator, superpowers, swift-lsp, typescript-lsp |
| OS + shell |
macOS (Darwin 25.5.0), zsh |
Is this a Superpowers issue or a platform issue?
Deliberately unchecked, not overlooked: the underlying mechanism — giving an Agent call a name: (no TeamCreate involved) switches it into teammate mode, where completion arrives as a content-free idle_notification instead of an automatic report — is pure Claude Code platform behavior. It reproduces with zero Superpowers involvement (see the transcript below, which is an unrelated research-dispatch agent, not SDD). So the mechanism is not a Superpowers bug.
What I think is a Superpowers-actionable gap: subagent-driven-development's fix loop requires resuming the same implementer across rounds 1-3, which in practice means dispatching it with name: — and the skill's text never accounts for the platform behavior that choice triggers. The fix belongs in the skill's instructions (tell the orchestrator to expect and solicit the report), not in the platform.
What happened?
subagent-driven-development's "Dispatch the implementer" step says: "Record the implementer's agent identity from the dispatch result — fix-loop rounds 1-3 resume this agent." Making an agent resumable this way means dispatching it with name: set. In Claude Code, naming an Agent call — independent of TeamCreate — switches it into teammate mode: its completion is delivered as a content-free idle_notification, not the automatic final-text report a plain anonymous background Agent gets. It only reports anything once it explicitly calls SendMessage. The skill's "Handle the report" section ("Implementer subagents report one of four statuses. Handle each appropriately") is written as if the report just arrives — there's no instruction telling the orchestrator that a named/resumable implementer requires soliciting it explicitly.
v6.3.0's new "Waiting on dispatched subagents" section ("chase any that finished without reporting") is a reasonable general mitigation, but it's reactive polling advice — it doesn't name why this happens for SDD specifically, so a reader has no way to know the trigger is the resume requirement itself.
Steps to reproduce
- (Directly reproduced this session, not SDD-specific) Call the
Agent tool with name: set and run_in_background: true, with no TeamCreate anywhere in the session. Wait for it to finish its assigned work.
- Observe that the caller receives an
idle_notification teammate-message carrying no content — not the automatic full-report delivery a plain unnamed background Agent call produces on completion.
- Nothing further arrives until the caller explicitly
SendMessages the agent asking it to report.
- (SDD-specific path, source-derived from
SKILL.md, not independently re-run in a logged session) Run subagent-driven-development on a plan where a task's review fails, triggering a fix-loop round. Per the skill's own instructions, the implementer is dispatched in a way that allows it to be resumed by identity for rounds 1-3 — which in practice means naming it. The same idle/silent-completion behavior in steps 2-3 should apply to that implementer.
Expected behavior
Either: the skill explicitly tells the orchestrator that a named/resumable implementer will not report automatically and to solicit it via SendMessage right after dispatch — or the resume requirement is satisfied some other way that doesn't trigger teammate mode at all.
Actual behavior
The implementer (or, in the directly-reproduced general case, any named Agent) finishes its work and goes idle. Nothing is delivered to the orchestrator automatically. Following the skill's text as written, an orchestrator has no reason to expect this and simply waits — which is what "hangs."
Debug log or conversation transcript
Directly reproduced this session (unrelated research-dispatch agent, not SDD — demonstrating the general platform mechanism):
Another Claude session sent a message:
<teammate-message teammate_id="teams-terminal-research" color="blue">
{"type":"idle_notification","from":"teams-terminal-research","timestamp":"2026-08-13T04:13:19.525Z","idleReason":"available"}
</teammate-message>
No content, despite the agent having already completed its assigned task — confirmed only by explicitly sending it a follow-up SendMessage asking for its findings, which then produced the real report.
SDD-specific citation (not an independent repro — the exact line in the currently-installed SKILL.md that creates the requirement):
- Record the implementer's agent identity from the dispatch result —
fix-loop rounds 1-3 resume this agent.
Environment (required)
claude-sonnet-5) — this is the model that ran the investigation and reproduced the general mechanism below. The original operational observation that prompted this (an SDD run appearing to hang) was made by the user in an earlier, separate session not captured in a transcript I have access to.Is this a Superpowers issue or a platform issue?
Deliberately unchecked, not overlooked: the underlying mechanism — giving an
Agentcall aname:(noTeamCreateinvolved) switches it into teammate mode, where completion arrives as a content-freeidle_notificationinstead of an automatic report — is pure Claude Code platform behavior. It reproduces with zero Superpowers involvement (see the transcript below, which is an unrelated research-dispatch agent, not SDD). So the mechanism is not a Superpowers bug.What I think is a Superpowers-actionable gap:
subagent-driven-development's fix loop requires resuming the same implementer across rounds 1-3, which in practice means dispatching it withname:— and the skill's text never accounts for the platform behavior that choice triggers. The fix belongs in the skill's instructions (tell the orchestrator to expect and solicit the report), not in the platform.What happened?
subagent-driven-development's "Dispatch the implementer" step says: "Record the implementer's agent identity from the dispatch result — fix-loop rounds 1-3 resume this agent." Making an agent resumable this way means dispatching it withname:set. In Claude Code, naming anAgentcall — independent ofTeamCreate— switches it into teammate mode: its completion is delivered as a content-freeidle_notification, not the automatic final-text report a plain anonymous backgroundAgentgets. It only reports anything once it explicitly callsSendMessage. The skill's "Handle the report" section ("Implementer subagents report one of four statuses. Handle each appropriately") is written as if the report just arrives — there's no instruction telling the orchestrator that a named/resumable implementer requires soliciting it explicitly.v6.3.0's new "Waiting on dispatched subagents" section ("chase any that finished without reporting") is a reasonable general mitigation, but it's reactive polling advice — it doesn't name why this happens for SDD specifically, so a reader has no way to know the trigger is the resume requirement itself.
Steps to reproduce
Agenttool withname:set andrun_in_background: true, with noTeamCreateanywhere in the session. Wait for it to finish its assigned work.idle_notificationteammate-message carrying no content — not the automatic full-report delivery a plain unnamed backgroundAgentcall produces on completion.SendMessages the agent asking it to report.SKILL.md, not independently re-run in a logged session) Runsubagent-driven-developmenton a plan where a task's review fails, triggering a fix-loop round. Per the skill's own instructions, the implementer is dispatched in a way that allows it to be resumed by identity for rounds 1-3 — which in practice means naming it. The same idle/silent-completion behavior in steps 2-3 should apply to that implementer.Expected behavior
Either: the skill explicitly tells the orchestrator that a named/resumable implementer will not report automatically and to solicit it via
SendMessageright after dispatch — or the resume requirement is satisfied some other way that doesn't trigger teammate mode at all.Actual behavior
The implementer (or, in the directly-reproduced general case, any named
Agent) finishes its work and goes idle. Nothing is delivered to the orchestrator automatically. Following the skill's text as written, an orchestrator has no reason to expect this and simply waits — which is what "hangs."Debug log or conversation transcript
Directly reproduced this session (unrelated research-dispatch agent, not SDD — demonstrating the general platform mechanism):
No content, despite the agent having already completed its assigned task — confirmed only by explicitly sending it a follow-up
SendMessageasking for its findings, which then produced the real report.SDD-specific citation (not an independent repro — the exact line in the currently-installed
SKILL.mdthat creates the requirement):