Skip to content

Model improvised run_in_background despite subagent-driven-development skill instructions #485

@pacaplan

Description

@pacaplan

Summary

Not a bug in superpowers — just a heads-up about something that happened in practice, in case there's anything worth doing to make the skill instructions even clearer.

During a session using subagent-driven-development, the model decided on its own to parallelize independent tasks using run_in_background: true + TaskOutput, even though the skill instructs sequential dispatch and explicitly lists "Dispatch multiple implementation subagents in parallel" as a don't.

This matters because there's a bug in Claude Code's TaskOutput retrieval path that returns ~30KB of raw JSONL transcript fragments instead of the subagent's actual final answer. So not only did the model violate the skill's instructions, it also hit a code path that produced garbage results.

I filed the Claude Code bug separately: anthropics/claude-code#26012

What happened

  1. subagent-driven-development skill was invoked
  2. Model (Opus 4.6) dispatched Task 1 synchronously (correct)
  3. Model saw Tasks 2, 3, and 4 were independent
  4. Model decided to dispatch all three with run_in_background: true (violating skill instructions)
  5. Model retrieved results via TaskOutput — each returned exactly 30,156 chars of truncated JSONL transcript instead of the subagent's final answer
  6. Later tasks (Task 5, spec review) were also dispatched as background agents

The synchronous Task calls in the same session (Task 1, the Explore agent) returned clean final answers correctly. Only the TaskOutput path had the issue.

The skill's existing guardrail

The skill already says not to do this:

Don'ts:

  • Dispatch multiple implementation subagents in parallel (conflicts)

The model ignored this. It's possible that the rationale could be made more explicit — right now it says "(conflicts)" which suggests file-level merge conflicts, but the model may have reasoned "these tasks touch different files, so no conflicts." Adding something about the TaskOutput bug or the general unreliability of background agent retrieval might help, though honestly the Claude Code bug is the root cause and should be fixed there.

Context

  • Claude Code version: 2.1.32
  • Superpowers version: 4.3.0
  • Session: implementing an init command redesign from a plan with 6 tasks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions