Skip to content

fix(ce-brainstorm): enforce Interaction Rules in universal flow#669

Merged
tmchow merged 1 commit intomainfrom
tmchow/brainstorm-askuserquestion
Apr 24, 2026
Merged

fix(ce-brainstorm): enforce Interaction Rules in universal flow#669
tmchow merged 1 commit intomainfrom
tmchow/brainstorm-askuserquestion

Conversation

@tmchow
Copy link
Copy Markdown
Collaborator

@tmchow tmchow commented Apr 24, 2026

Summary

ce-brainstorm's universal (non-software) flow was silently dropping the parent skill's Interaction Rules. Phase 0.1b said "do not follow the software brainstorming phases below," which was ambiguous about whether the Core Principles and Interaction Rules (which sit above the phases) still applied. Combined with "facilitate the brainstorm naturally" inside universal-brainstorming.md, this let the agent skip the blocking question tool (AskUserQuestion) and stack multiple questions per turn during universal brainstorms.

The fix binds one Interaction Rule set to both flows, tightens the rules where the loopholes were, and adds a concrete test for when prose is justified over the blocking tool.

What changed

  • Phase 0.1b now reads: "Skip Phases 0.2-4 below; Core Principles and Interaction Rules above still apply unchanged."
  • Rule 1 (one question per turn) closes the "several unrelated questions" loophole. Sub-questions that feel related still count as stacking.
  • Rule 4 becomes a default-to-tool rule. The free-text fallback (e.g., "Other" in Claude Code) means options scaffold the answer rather than confine it, so the default holds for opening and elicitation, not only narrowing.
  • New Rule 5 defines the prose exceptions and a runtime test: drop to prose only when the answer is inherently narrative, when the question is diagnostic or introspective and presented options would leak priors, or when you cannot write 3-4 genuinely distinct, plausibly-correct options without padding. If you're straining to fill option slots, the question is open.
  • universal-brainstorming.md drops the biasing "facilitate naturally" phrase and adds an ## Asking questions section that restates the discipline at the point of effect.

Why not a separate rule set for the universal flow

Conversational tone is a content property; it does not require conversational prose as the question mechanism. The free-text escape valve in AskUserQuestion lets one discipline cover both flows without forcing the universal agent into a picklist feel. A separate, softer rule set for universal brainstorms was exactly what let this bug happen in the first place.


Compound Engineering
Claude Code

Phase 0.1b routed non-software brainstorms to universal-brainstorming.md
with "do not follow the phases below," which was ambiguous about whether
the parent skill's Interaction Rules still applied. Combined with the
"facilitate naturally" framing in the reference file, this let the agent
drop the blocking question tool and stack multiple questions in one turn
during universal brainstorms.

- Clarify Phase 0.1b: skip Phases 0.2-4 but keep Core Principles and
  Interaction Rules in force.
- Tighten Rule 1 to forbid stacked sub-questions even when related.
- Rework Rule 4 into a default-to-tool rule and add Rule 5 with the
  narrow prose exceptions (narrative / diagnostic-introspective /
  can't-write-4-distinct-options). The free-text fallback in the
  blocking tools means options scaffold without confining.
- Update universal-brainstorming.md intro and add an "Asking questions"
  section that restates the directive at the point of effect and calls
  out the specific elicitation questions that got misrouted to prose.
@tmchow tmchow merged commit 494313e into main Apr 24, 2026
2 checks passed
This was referenced Apr 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant