Brainstorm
Portable, evidence-driven agent development harness for Codex, Claude Code, and generic Agent Skills. Active beta v0.1.2.
npx -y skills add GhostlyGawd/recursive-harness --skill brainstormAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate distinct solutions to ONE problem, then pick. Trigger when the user wants to brainstorm, explore/compare options, name/design/architect something, asks for ideas, OR wants to INVENT, find a breakthrough, or solve from first principles when known options disappoint. Mode 1 (solution arena): parallel agents across orthogonal stances, divergence guard, side-by-side pick. Mode 2 (invention forge): frame to invariants, diverge on invention vectors, recombine, adversarial filter w/ prior-art search, loop to grounded breakthrough. Skipping yields an anchored answer or confident reinvention.
SKILL.md
13.8 KB, as published. Nobody here has run it
Brainstorm — many distinct solutions, then pick
The failure mode this kills: the first plausible answer anchors the user, and
N agents asked the same question converge into false consensus — three pitches
that are one idea in three fonts. The job here is genuine divergence, then a clean
pick. The description is the always-loaded when; this body is the how.
This skill is mode-based. Add modes here as the skill grows — never fork a sibling skill (kernel directive 6).
- Mode 1 · Solution Arena — breadth. Survey the known solution space: N independent agents spread across orthogonal stances, then a clean side-by-side pick. The default for "what are my options / compare approaches / name this."
- Mode 2 · Invention Forge — depth. For when the known options all disappoint and you want something that doesn't exist yet ("invent", "novel", "breakthrough", "first principles"). Heavyweight (multi-agent + web); not the default. Frames the problem to its invariants, then forces the model past its four default failure modes (below) toward a prior-art-grounded breakthrough.
Mode 1 · Solution Arena
0. Scope the problem
- Restate it in one sentence. If it's vague — no success criterion, no real constraints — ask 1–2 clarifying questions FIRST. Diverse solutions to the wrong problem just waste the fan-out.
- Default N = 3 candidates. Honour an explicit count ("give me 5"); cap the arena at 4 (see §4) — beyond that, generate more but shortlist before the pick.
1. Pick the diversity engine — ask the user
Call AskUserQuestion (single-select) offering these three engines. Recommend
Fixed lenses as the default; if the user says "you pick," use it.
- Fixed lenses — each agent gets a distinct stance: Pragmatist (simplest thing that ships) · Contrarian (invert the obvious approach) · Visionary (ideal world, ignore current limits). Add a 4th stance only if N>3.
- Per-problem dynamic angles — YOU read the problem and invent N maximally-different angles tailored to it (e.g. for churn: pricing-lever / onboarding-lever / community-lever). No fixed personas.
- Distinct ideation methods — one technique per agent: first-principles (rebuild from base truths) · analogy (how does another field / nature solve this?) · constraint-removal (what if money / time / compute were free?).
Whatever the engine, the assignments must be orthogonal: if two briefs would push toward the same mechanism, change one BEFORE spawning.
2. Generate — independent and parallel
- Spawn N subagents in one message (parallel
Agentcalls,general-purposetype). Each gets: the scoped problem, ONLY its own lens/angle/method, and the charge: "You are one of N independent attempts. Do NOT hedge toward a safe middle — commit hard to YOUR angle. Your output is data for a picker, not prose for a human." - Agents must not see each other — independence is the entire value. The only deliberate exception is the divergence-guard respawn (§3).
- Require a structured pitch back from each: title (≤6 words) · core idea
(2–4 sentences) · why it's distinct · key risk / tradeoff · first
concrete step. (If you'd rather scale past N≥5 or vet each candidate
adversarially, run generate+guard as a
Workflowreturning these pitches as a schema — then do §4 in the main loop, since a workflow's agents have no channel to prompt the user.)
3. Divergence guard — enforce "truly unique"
- Read the N pitches. A collision is two pitches sharing the same core mechanism, not merely similar wording.
- On collision: keep the stronger one; respawn the other with the colliding pitches quoted and the brief "produce a solution that differs in MECHANISM, not just framing, from the following: <quotes>." Repeat at most once.
- Tell the user when you broke a collision ("agents 2 & 3 both landed on X — regenerated 3"). Silent regeneration hides that divergence nearly failed.
4. Arena — side-by-side pick
- Present with
AskUserQuestion, single-select, one option per candidate. Put each candidate's full pitch in that option'spreviewso the UI renders them side-by-side — that side-by-side layout is the arena. Optionlabel= the candidate title;description= a one-line hook. - Plain OUTCOME language, not the mechanism's jargon (user taste — memory/
user-model.md, evidence 4).
label/description/previewmust name what each candidate does for the user and the one thing it found/changes — never the algorithm behind it. "What sets off what · almost nothing runs on its own", NOT "Reachability / transitive closure"; "Top-to-bottom layers", NOT "Tarjan SCC + longest-path layering". If you can't state an option in one sentence a non-engineer decodes, the pitch isn't finished — an undecodable arena earns "idk what these mean" and the pick stalls (happened 2026-06-19). - Fallback: if previews don't render side-by-side (older client, or >4 candidates after shortlisting), present the pitches as a numbered list and ask which wins. The pick is what matters; the side-by-side layout is a nicety.
- Do not pre-rank or signal a favourite in the option text. The point is an uncontaminated pick. If the user wants your read, give it AFTER they choose.
5. After the pick — offer follow-ups
Call AskUserQuestion (multiSelect) offering all three:
- Synthesize — graft the strongest ideas from the runners-up onto the winner into one merged solution.
- Expand — turn the winner into a concrete plan / implementation steps.
- Re-brainstorm — run a fresh round with new lenses (loop to §1) if none landed.
Return the result: the winner, or the merged / expanded artifact.
Mode 2 · Invention Forge
Use when the known solutions all disappoint and the user wants something that does not exist yet. The lever is not telling the model to "think harder" — weights are frozen (kernel). The lever is a process that routes around the model's four default failure modes:
- Mean-regression — left alone it drifts to the safe middle → forced orthogonal divergence (§1).
- Self-unfalsification — it won't try to kill its own ideas → adversarial gates (§3).
- No prior-art grounding — it cannot certify "this doesn't exist" from confidence → a real web search (§3).
- Single-pass — it stops at first-order ideas → recombine + loop (§2, §4).
Read references/invention-forge.md for the per-vector agent briefs, the pitch
schema, the three gate prompts, and the scorecard format before spawning.
0. Frame to invariants — the highest-leverage, most fallible step
- State the job-to-be-done as an OUTCOME, not the shape of today's solution.
- List the invariants: what ANY solution must satisfy (real constraints, physics, the success criterion). This is what a candidate is judged against.
- List the inherited assumptions: conventions current solutions copy that are NOT actually required. This list is the novelty surface — invention is dropping one. If you can't name any, the problem isn't framed yet.
- Pin the baseline: the boring, obvious, best-known solution. It is the control every candidate must beat — a novel idea that loses to the baseline is theater, not a breakthrough.
- If invariants or the success criterion are vague, ask 1–2 questions FIRST (as in Mode 1 §0). A breakthrough against the wrong criterion is wasted.
1. Diverge on invention vectors — parallel, independent
Spawn one general-purpose agent per vector in one message (reuse Mode 1's
independence rule + its §3 divergence guard — Mode 2's own §3 is the funnel). Each gets the frame and ONLY its
vector. Default the four below; swap one if a vector is dead for this problem.
- Assumption-drop — take the most load-bearing inherited assumption; design as if it were false.
- Cross-domain transfer — find a structurally-isomorphic problem in a distant field (nature, another industry, another scale/era) and transplant its mechanism. Invention is mostly recombination.
- First-principles rebuild — derive only from the invariants; ignore how it's normally done.
- Constraint-to-extreme — push one constraint to 0 or ∞ (free compute, zero latency, one user, infinite scale) and harvest what unlocks.
2. Recombine — cross-pollinate (deliberately breaks Mode 1's rule)
Read all vector pitches and graft their strongest fragments into 2–4 hybrid candidates. Mode 1 forbids candidates seeing each other; here the cross- pollination IS the point — that's why this is a separate mode. Carry the best pure vector pitches forward too; hybrids don't always win.
3. Adversarial filtration funnel — each candidate must clear ALL three gates
Run the gates per candidate (a Workflow pipeline scales this; see references).
- Feasibility kill-test — a FRESH skeptic agent tries to prove it can't work or violates an invariant. Default-refute; the candidate survives only if the refutation fails.
- Prior-art gate — a fresh subagent runs
WebSearch/WebFetch: does it already exist? If yes it is not a breakthrough — drop it, or keep only the genuine delta vs prior art. Be honest in output: this proves "not found", never "doesn't exist". - Dominance gate — does it actually beat the baseline (§0) on the success criterion? If not, cut it. Tell the user the funnel arithmetic ("8 candidates → 3 survived: 2 killed on feasibility, 2 already exist, 1 lost to baseline").
4. Loop if thin
If <2 strong survivors, mutate the survivors and drop the NEXT inherited assumption, then re-run §1–§3 (loop-until-dry, max ~2 extra rounds). Log when you stop and why — silent capping reads as "explored everything" when it didn't.
5. Arena the survivors
Present survivors via Mode 1 §4 (AskUserQuestion, side-by-side, plain OUTCOME
language — not mechanism jargon). Each carries an honest scorecard: novelty
(vs the prior art actually found), feasibility risk, and margin over baseline. The
user picks; then offer the Mode 1 §5 follow-ups (Synthesize / Expand /
Re-brainstorm). Never pre-rank.
Rules
Both modes:
- The user picks — you don't pick for them. No "option 2 is clearly best" in the arena. This is a generator, not a decision skill; the chosen solution is the user's, not a recommendation you then defend.
- If you can't make N orthogonal, propose fewer — distinct mechanisms beat variations on one idea.
Mode 1:
- Independence is the value. Never let candidates converge by sharing context, except the deliberate §3 respawn.
Mode 2:
- Generation stays independent; synthesis is deliberate. Vectors (§1) never see each other — only the recombine step (§2) merges them, on purpose.
- Novelty is earned, never asserted. A candidate is "novel" only after the prior-art gate (§3) fails to find it — and even then say "not found", not "new".
- The baseline is the control. Always carry the boring best-known solution through to the scorecard; a candidate that doesn't beat it is not a breakthrough.