subagent-driven-development: in an unattended run, a step that needs a human at the screen should move to the next available tool, not be dropped

Author: abat-kekCreated Sep 30, 2026Updated Sep 30, 2026
  • I searched existing issues and this has not been proposed before (adjacent: #1664, closed in favour of the end-to-end testing direction in #374; this is narrower — what a controller rules about an existing manual step in a plan)

What problem does this solve?

In an unattended run, a plan step "local visual check" (a drag gesture in the browser) was ruled optional under Rulings, not stalls, and the implementer skipped it ("nobody is watching"). The task reviewer insisted. The controller then ran the check itself in the harness's built-in browser and found two real defects that no unit test and no code review had seen: a broken row layout (probably already shipped) and lost pointer capture when dragging upwards (the gesture hangs). In a later run the same approach found a clipped time field.

Tool pitfalls on the way: with scaled mobile emulation, mouse drags arrived at half coordinates (event logging at document level separated tool error from app error); screenshots repeatedly showed a stale state while DOM queries (innerText, getBoundingClientRect) showed the truth; and a dev server stopped through the preview tool left an orphaned process on Windows that locked a file and made a later npm ci fail with EPERM.

Proposed solution

In Rulings, not stalls: a step that assumes a person at the screen is not dropped in an unattended run; it moves to the next available tool (a built-in or automated browser, event logging, synthetic pointer events). Only what truly needs a physical device goes onto a checklist for the human. Evidence comes from DOM queries rather than screenshots, and processes started for the check are verified stopped afterwards.

What alternatives did you consider?

Leaving it for the human later: the run then reports done with the one check that would have found the defects missing. Waiting for the broader end-to-end story (#374): that covers designed tests; this is about not ruling away an existing step.

Is this appropriate for core Superpowers?

Yes — any UI-bearing plan executed unattended.

Environment (required)

Field Value
Superpowers version observed on 6.3.0; the gap is still present on dev as of 2026-10-01
Harness (Claude Code, Cursor, etc.) Claude Code (desktop app, Code tab)
Harness version 2.1.272
Your model + version Claude Opus 5.5 (claude-opus-5-5)
All plugins installed superpowers, task-observer, claude-mem, context7, plus private skill plugins unrelated to this area
OS + shell Windows 11, Git Bash

Context

Principle: "no human present" is a reason to change the checking tool, not to drop the check — the steps only a human "sees" find the defects automated gates let through.