From brain-os
Renders ≥4 ASCII decision-tree architectures for multi-component system-design topics. Collapses 2-3 user turns vs sequential Q&A. Use when ≥3 architectural decisions exist; fall back to /grill for single decisions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/brain-os:grill-fastThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Vault path:** Read from `${CLAUDE_PLUGIN_ROOT}/brain-os.config.md`
Vault path: Read from ${CLAUDE_PLUGIN_ROOT}/brain-os.config.md
Skip the linear Q1→Q2→...→Qn march. Pre-grill internally, partition decisions into ARCH (branches the architecture) vs PARAM (single value pick), render ≥4 candidate architectures as side-by-side ASCII trees — at least 3 spanning the real design space plus a mandatory 4th tree challenging the shared framing axis — with key deltas highlighted, batch PARAM picks in one block, ask user to pick a tree (or hybrid). Locks in 2-3 user turns.
Use when topic is multi-component design with ≥3 ARCH decisions. Fall back to /grill when topic is a single decision, policy choice, or pure exploration with no candidate to draw — the ≥4-tree rule does NOT force four trees onto trivially small design spaces.
RESOLVER.md + relevant zone READMEs + prior grills/research. Same as /grill. If the topic references GitHub issues, run gh issue view N on each FIRST — confirm it is still open and read its latest comments for prior decisions. The SessionStart open-tasks cache is stale; grilling an already-closed issue contaminates every downstream pick./grill instead.◄── callouts where trees differ, then a **Pros** / **Cons** block immediately under the diagram (3-5 concrete bullets each side — build cost, what it actually proves, what it misses, key failure mode). The reader scans each tree top-down without cross-referencing tables. Stack trees vertically with ═══ separators (side-by-side horizontal layout doesn't fit ≥4 trees at terminal width). Inline pros/cons is REQUIRED, not optional — a tree without it forces the reader to scroll-and-cross-reference, which defeats the "decide on the spot" goal./grill with a fresh question batch around the new framing.AskUserQuestion (default mode). After the file is written, present the trees as side-by-side preview options via the AskUserQuestion tool — vertical option list on the left, monospace preview pane on the right showing the focused option's content. Each option has:
label: tree letter + ARCH summary, e.g. "C: Live outcome shadow" (the recommended tree gets (Recommended) suffix per tool convention; when the recommendation is a hybrid, mark the strongest single tree as (Recommended — pair with X for hybrid) and rely on the auto-Other field for hybrid input or custom direction like "park as backlog").description: 1-line tradeoff summary.preview: compact ASCII tree (≤20 lines: data flow + key cost/risk annotations). Compact ≠ different — same logical structure as the file's full diagram, just trimmed for the preview pane.
Question header ≤12 chars derived from topic. Recommended tree is option 1. Null-option rule: whenever "don't do this / drop it" is a live outcome (topic could legitimately be dropped, deferred, or was previously deprioritized), include it as an explicit option — never offer only sub-variants. An option set of sub-variants presupposes the action is settled and makes the question leading; a user in flow clicks the sensible sub-variant, and that click cannot bear the weight of reversing a prior considered decision. Skip this step ONLY when user has pre-stated their pick before the skill ran, or when running in a non-interactive context (e.g. /loop). After user picks, update file frontmatter (status: pass for A/B/C; status: working for D triggering re-grill; status: deferred for none/Other-deferred) and append the outcome log row. If trees > 4, present the top 4 in AskUserQuestion (recommended + 3 highest-value alternatives); the file retains all.Save to {vault}/daily/grill-sessions/YYYY-MM-DD-<topic-slug>.md. Same path as /grill. Frontmatter tags: [grill-fast, mode-b] to distinguish.
Required sections: # Frame, # The candidate architectures (the ASCII — ≥4 trees including the axis-challenger; each tree's diagram MUST be immediately followed by an inline **Pros** / **Cons** block per step 5), # Key deltas, # Cross-tree comparison, # Parameter picks, # Recommended pick, # Failure mode call-outs, # Status gate. The shared framing axis the 4th tree challenges MUST be named explicitly in the # Frame or above the ASCII so the reader can audit the framing assumption.
/grill rather than fabricating axis-aligned trees just to satisfy the count.Do not force a multi-tree render when the design space is genuinely 1-dimensional. The skill failure mode is "all the trees look the same" — when that happens with the axis-aligned set, the apparent sameness IS the shared framing axis: lean into the 4th tree to expose it. When it happens because the topic itself has no real design space, abort to /grill.
The first 3 trees converge fast precisely because they share framing — that speed is exactly what makes Mode B 2-3 turns instead of 17. But shared framing becomes the weakness when the framing itself is wrong: Mode B will lock 2-3 turns deep on an axis nobody questioned. The mandatory 4th tree is the antidote.
How to identify the shared framing axis. After drafting trees A/B/C, ask: what assumption do all three silently agree on? The axis is the dimension trees A/B/C don't disagree on, even though they vary on others (NK threshold, strategy count, etc.). Common axes: schema shape ("schema-driven dispatch"), where entities live ("entities live in tables"), pipeline topology ("pipeline is a DAG"), control-flow direction ("top-down classification"), who decides X ("deterministic dispatch, never LLM judgment"). If you can't name the shared axis after 30 seconds, render A/B/C side-by-side and look for the row that's missing from the delta table — the dimension nobody varied on.
How to render the 4th tree. Negate the axis. Examples:
The axis-challenger may be intentionally weak / impractical / strawman — that's the point. The strawman exception applies ONLY to the 4th tree; trees A/B/C must remain defensible per Step 3.
Canonical example — the 2026-05-04 airtable replay. Trees A/B/C in daily/grill-sessions/2026-05-04-airtable-mode-b-replay.md (strict / permissive / wide) all silently shared the assumption entities live in tables. Had the ≥4-tree rule been in force, the mandatory 4th would have asked "what if entities don't live in tables?" — a text-extraction architecture that scans singleLineText fields inside records for entity references regardless of schema shape. That 4th tree would have surfaced the framing assumption explicitly. The assumption broke when 8 children of #237 had already shipped on a denormalized Payments base where Payer Name / Payee Name were singleLineText strings — exactly the case the 4th tree would have flagged before any code shipped.
Fallback when the user picks the axis-challenger. Rare but real. The shared axis just got rejected, so the original A/B/C design space is moot. Re-grill the framing before locking: drop back to /grill with a fresh question batch around the new framing, then re-enter /grill-fast with the new axis to render a fresh A/B/C/D set. Do NOT lock on the axis-challenger as-is — it was scored against the old framing and may have been deliberately weak.
/grill-fast <topic>
Follow skill-spec.md § 11. Append to {vault}/daily/skill-outcomes/grill-fast.log:
{date} | grill-fast | grill-fast | ~/work/brain-os-plugin | daily/grill-sessions/{date}-{slug}.md | commit:{hash} | {result} | args="{topic}" turns_to_lock=N pick=A|B|C|D|hybrid|none
result: pass if user picks a tree (or hybrid) and grill closes ≤3 user turns; partial if: user requests Q-by-Q follow-up after seeing trees (Mode B incomplete, Mode A patched on top), OR user picks the axis-challenger 4th tree and re-grill of the framing is required before locking, OR user explicitly defers the session to backlog (pick=none, status: deferred in file frontmatter); fail if aborted to /grill or trees rejected wholesaleturns_to_lock: count user turns from skill invocation to lock (success metric — target ≤3)pick: which tree user selected — A, B, C, D (axis-challenger), hybrid, or nonedeferred_to: optional — issue URL when pick=none and user defers to a backlog issue (e.g. deferred_to=https://github.com/.../issues/267)npx claudepluginhub sonthanh/brain-os-pluginExplores trade-offs in design and architecture decisions as a thinking partner, helping users understand options and make informed choices without recommending solutions.
Triggers Tree of Thoughts exploration for architectural decisions with multiple valid approaches. Generates 3 alternatives, evaluates via scoring matrix, recommends, and generates ADRs.
Structures architecture decisions with options table (pro/con/complexity), choice, risks, and next steps. Use for technology choices, design decisions, system design questions.