Skip to content
Back to skills

Brainstorm Queue Aware

ASecurity

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.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsgobash

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add thrum-team/thrum-pro --skill brainstorm-queue-aware --agent claude-code

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.

Security grade badge for Brainstorm Queue Aware
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thrum-team-brainstorm-queue-aware-thrum-pro/badge)](https://www.skillsdirectory.com/skills/thrum-team-brainstorm-queue-aware-thrum-pro)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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."
# source: claude-plugin/skills/brainstorm-queue-aware/SKILL.md
---

## 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.

Files in this skill

  • SKILL.md7.3 KB
  • agents/openai.yaml587 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.