Use when running as a brainstormer that a Brainstorm Steward is managing — redirect every Q-by-Q question to the Steward as a NEED message and block for the ANSWER instead of asking the human directly. Fires when your briefing names a steward.
Installs into .claude/skills of the current project.
Are you the author of Brainstorm Queue Aware?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/thrum-team-brainstorm-queue-aware)
---
name: brainstorm-queue-aware
description: "Use when running as a brainstormer that a Brainstorm Steward is managing — redirect every Q-by-Q question to the Steward as a NEED message and block for the ANSWER instead of asking the human directly. Fires when your briefing names a steward."
---
# Brainstorm: Queue-Aware Mode
## When this fires
You are a brainstormer running the normal `brainstorming` skill, and your
briefing names a `steward: @<name>` (or otherwise tells you a Brainstorm
Steward is managing your slot in a queue of parallel brainstorms). That one
fact is the whole trigger. If no steward was named, ignore this skill
entirely and run `brainstorming` exactly as documented — ask the human
directly, the ordinary way.
Every `@<steward>` placeholder below stands for that same name from your
briefing — substitute the real agent name, not the literal text
`<steward>`.
This is a **thin overlay, not a replacement**. Everything about how you
research, propose options, and converge to a locked design is still owned by
the `brainstorming` skill. The only thing this skill changes is **where a
question goes when you would otherwise have asked the human.**
## The redirect
Wherever `brainstorming` says "ask the user" or "pause for the human's
answer," do this instead:
1. Compose the question exactly as you would have asked the human — one
clear question, plus 2-3 concrete options (A/B/C) so the Steward has
something to decide between, not an open-ended essay prompt.
2. Send it as a `NEED` to your steward, per the NEED/ANSWER convention
(first line `NEED [<topic>]:`; the steward replies with an `ANSWER`):
```bash
thrum send --to @<steward> --stdin <<'EOF'
NEED [<topic>]: <one clear question>
A) <option>
B) <option>
C) <option>
EOF
```
3. Block on `thrum wait` rather than polling or continuing speculatively:
```bash
thrum wait
```
4. When `thrum wait` returns, read the reply from your inbox the normal way.
The Steward answers by replying directly to your NEED message (threaded,
automatic), with a body starting `ANSWER:`. Treat that `ANSWER:` line
exactly as if the human had just said it to you — fold it into the design
and continue the brainstorm from there.
Nothing about the NEED/ANSWER convention is a new subcommand or a structured
payload — it's plain `thrum send` / `thrum reply` / `thrum wait` with a
one-line prose convention on top. Don't invent a schema, a JSON body, or a
`thrum need` command; none exists.
## One question at a time, still
The `brainstorming` skill's Q-by-Q discipline doesn't change: send **one**
NEED, block, get the **one** ANSWER, then decide whether the next question is
needed before sending it. Do not queue up three NEEDs in a row hoping to
save a round trip — the Steward may be juggling several brainstormers at
once, and batching on your end doesn't help it; it just makes your own
inbox harder to reason about when replies come back out of order. Batching
NEEDs across brainstormers so the human sees fewer round trips is the
**Steward's** job, not yours — that's the whole point of putting a Steward
in the loop.
## If the Steward doesn't answer
`thrum wait` blocking indefinitely is normal and expected — the Steward may
be waiting on the human, or working through other brainstormers first. Don't
treat a long wait as a signal to guess.
If the wait genuinely exceeds a reasonable bound for your situation (you've
been blocked far longer than the Steward's other visible turnarounds, or
you have independent reason to think the NEED never arrived):
1. **Re-send the NEED once** — a fresh `thrum send` with the same question,
not a new phrasing, so the Steward isn't left reconciling two versions of
the same ask. Note in the resend that this is a repeat:
```bash
thrum send --to @<steward> --stdin <<'EOF'
NEED [<topic>]: <one clear question> (resend — no answer yet)
A) <option>
B) <option>
C) <option>
EOF
```
2. If that still doesn't produce an ANSWER, **escalate to your `parent`**
(the Steward, or whichever agent your briefing names as parent) with a
plain status message — do not decide the content yourself:
```bash
thrum send --to @<parent> --stdin <<'EOF'
Blocked on NEED [<topic>] — resent once, still no ANSWER. Need a decision
to keep moving; not proceeding on a guess.
EOF
```
Never fill in the owner's decision from your own judgment because the
Steward is slow. A wrong guess here isn't a small correction later — it's a
design-lock built on a decision the owner never actually made.
## Design-lock discipline still belongs to you
The Steward is a **relay**, not a decider. It exists to keep your questions
moving through a queue when the human is juggling several brainstormers —
it is not delegated authority to choose between your options on the owner's
behalf, and an `ANSWER:` it relays is the owner's answer passed through, not
the Steward's own opinion. Nothing about a Steward being in the loop loosens
the standing brainstorm discipline: you still hold the RESOLVED-CHOICES
record for the owner (per the `interactive-brainstorm` role rule / the
standing brainstorm design-lock convention), and every locked decision still
needs to trace back to a real `ANSWER:` line, not to an inference you made
because the Steward's presence made the human feel one step further away.
If an `ANSWER:` is ambiguous or doesn't actually resolve the question you
asked, send a follow-up NEED rather than picking the reading that's
convenient.
## Announce handoffs, so the Steward can keep things moving
When you send finished work to another agent and then sit waiting on them —
for example, a brainstorm or plan sent to a coordinator for dual review —
send the Steward a brief, plain-prose heads-up so it can notice if you stall
and prompt a nudge. This is **not** a new convention; it's the same
unstructured-message style as NEED, just without the `NEED:` prefix (the
Steward isn't being asked to decide anything, only to keep an eye out):
```bash
thrum send --to @<steward> --stdin <<'EOF'
WAITING [<topic>]: sent the brainstorm to @<coordinator> for dual review.
EOF
```
You are **not** expected to poll for a response yourself while in this
state — that's the Steward's job, the same way batching NEEDs is. When the
response you were waiting on actually arrives, send a short close-out so the
Steward's picture of the queue stays current:
```bash
thrum send --to @<steward> --stdin <<'EOF'
UNBLOCKED [<topic>]: review came back, resuming.
EOF
```
Keep both messages short — one line of status, not a narrative. The Steward
reads these the same way it reads a NEED: as a judgment agent scanning its
inbox, not a parser expecting a fixed shape.
## Why this is safe to layer on
Nothing here adds a new delivery mechanism, a new command, or a schema —
every example above is `thrum send --stdin <<'EOF' ... EOF`, `thrum reply`,
or `thrum wait`, exactly as documented in the NEED/ANSWER convention. Using
a **quoted** heredoc delimiter (`<<'EOF'`, never bare `<<EOF`) is
deliberate: an unquoted heredoc runs command substitution on backticks and
`$()` inside your message body before it's ever sent, which can silently
execute something you only meant as text. Always quote the delimiter.