Skip to content

brainstorming: v6.0.0 platform-neutral bootstrap reframe makes Claude Code use AskUserQuestion (regression vs 5.1.0) #1773

@obra

Description

@obra
  • I searched existing issues and this is not a duplicate

Environment (required)

Field Value
Superpowers version 6.0.0 (also checked against the v5.1.0 tag)
Harness (Claude Code, Cursor, etc.) Claude Code
Harness version 2.1.178
Your model + version Claude Opus 4.8 (claude-opus-4-8[1m])
All plugins installed superpowers (6.0.0, local working tree), episodic-memory, linear, context7, claude-in-chrome, superpowers-chrome, superpowers-lab, superpowers-developing-for-claude-code, plugin-dev, github-triage, primeradiant-ops
OS + shell macOS (Darwin 25.2.0), zsh

Who filed this: Authored by Claude (Opus 4.8) running in Claude Code, in a working session with Jesse Vincent (@obra), the project's author/maintainer. Grounded in a real git-history investigation of this repo (not reasoned from documentation).

Is this a Superpowers issue or a platform issue?

Superpowers issue — the regression is in Superpowers' own bootstrap content (skills/using-superpowers/SKILL.md), so the "reproduce without Superpowers" check is N/A.

What happened?

On 6.0.0, the brainstorming skill on Claude Code now reaches for the native AskUserQuestion tool to ask clarifying questions / present option sets. On 5.1.0 it asked in plain conversational text, one question at a time, as the skill intends.

Root cause

The brainstorming SKILL.md is effectively unchanged between v5.1.0 and v6.0.0 (the only diff is visual-companion timing). The behavior change comes from the v6.0.0 "platform-neutral" reframe of the Platform Adaptation section in skills/using-superpowers/SKILL.md:

- Skills use Claude Code tool names. Non-CC platforms: see references/copilot-tools.md ...
+ Skills speak in actions ("dispatch a subagent", "create a todo", "read a file")
+ rather than naming any one runtime's tools. For per-platform tool equivalents ...
+ see [claude-code-tools.md], [codex-tools.md] ...
  • 5.1.0: "skills use Claude Code tool names" anchored the model to read brainstorming's prose literally — "Present options conversationally" (SKILL.md:78), "Use the terminal for … A/B/C/D text options" (SKILL.md:154). No tool is named there, so it asked in text.
  • 6.0.0: "skills speak in actions … map them to your native tools" reframes every skill verb as a mappable action. "Ask clarifying questions / present multiple-choice options" now resolves to Claude Code's native interaction tool, AskUserQuestion. The skill's own "Prefer multiple choice questions when possible" (SKILL.md:71) and "Multiple choice preferred" (SKILL.md:136) make AskUserQuestion the obvious mapping target — overriding the explicit "present conversationally / use the terminal" intent.

Two corroborating points:

  1. No explicit prohibition ever existed. A pickaxe over full history shows the literal string AskUserQuestion appears nowhere in 5.1.0 except RELEASE-NOTES.md. The protection on ≤5.1.0 was structural (skills written in literal CC tool names + prose, bootstrap said "use them as written"), and the v6 reframe dissolved it.
  2. The v6 authors mapped these exact phrases to AskUserQuestion for Kimi — deliberately. The new .kimi-plugin/plugin.json skillInstructions say: "When a Superpowers skill says to ask the user, ask clarifying questions, ask one question at a time, present multiple-choice options, use the terminal for a question … call … AskUserQuestion." On Claude Code the same routing now happens implicitly and unintentionally through the genericized bootstrap, with nothing countering it. docs/porting-to-a-new-harness.md (new in v6) never discusses the "ask the user" case, so this was an unconsidered side effect of the platform-neutral work.

Steps to reproduce

  1. Install Superpowers 6.0.0 on Claude Code.
  2. Start a fresh session and send a build/design request (e.g. "Let's make a React todo list") so brainstorming auto-triggers.
  3. Observe the clarifying-question phase.

Expected behavior

Clarifying questions presented as plain conversational text, one at a time, in the terminal — matching the skill's "present conversationally" / "use the terminal for text options" intent (the 5.1.0 behavior).

Actual behavior

The model invokes the native AskUserQuestion structured-choice tool instead of asking conversationally.

Related prior issues (searched, not duplicates)

These all requested the opposite — adopting AskUserQuestion in brainstorming — and are closed: #388, #114, #745 (closed COMPLETED), #1197 (closed NOT_PLANNED). None describe the v6.0.0 regression where the tool gets used unintentionally as a side effect of the platform-neutral bootstrap. If the project's settled position is "brainstorming asks conversationally, not via AskUserQuestion," this issue tracks restoring that on 6.x.

Possible fix directions (for discussion, not yet implemented)

  • Add an explicit Claude-Code-scoped guardrail in skills/using-superpowers/references/claude-code-tools.md: asking the user is not a tool action — present questions/options as plain conversational text, one at a time; do not use AskUserQuestion. (Keeps it CC-specific; harnesses like Kimi still opt in.)
  • Or an explicit "present as text, not a structured-choice tool" line in skills/brainstorming/SKILL.md near the "multiple choice preferred" guidance.

Open question for the maintainer: scope the suppression to Claude Code only, or suppress AskUserQuestion during brainstorming on every harness except those that explicitly opt in (as Kimi does)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions