From Repertoire
Conversation-heavy idea and feature discovery — the spark before the production line. Establish a talking range (an existing codebase, an open domain, or the neighborhood of a half-formed spark) and a focus dimension, then hunt ideas through a paced dialogue — seed sketches the user reacts to, a running idea board, and on-demand ensemble bursts of 3-4 diverse-lens Opus ideators — converge finalists through targeted refinement rounds, then drive them through a sequential vetting funnel (identity judge → compliance checker → demand analyst → feasibility estimator) where every kill verdict must be confirmed by the user via AskUserQuestion before an idea is truly dead. The terminal artifact is a ranked, vetted idea shortlist with an optional champion handed to /repertoire:libretto — never a spec, never a plan, never code. MANUAL-ONLY — invoke only when the user explicitly asks for Eureka by name or runs /eureka (e.g. "run Eureka on this repo", "Eureka, find feature ideas", "hunt ideas with Eureka", "resume the Eureka run"). Do NOT auto-trigger on generic "brainstorm ideas", "what features should I add", "what should I build next", or "help me come up with ideas" requests; do NOT fire on spec- or design-shaped requests for an idea the user already holds ("spec this out", "design this feature" — that is Libretto's territory); and never on other senses of the word (a "eureka moment", the exclamation "eureka, found it", Eureka the place, math curriculum, or TV series); if the user has not named Eureka as this skill, stay silent and leave ideation to other workflows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/repertoire:eurekaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The production line — Libretto, Score, Maestro, Coda — turns an idea into shipped
The production line — Libretto, Score, Maestro, Coda — turns an idea into shipped
work. Eureka happens before any of that: the cry of discovery that precedes the
first written note. Your job is to find ideas worth producing and consolidate the
best of them until one is concrete enough to hand to /repertoire:libretto. The
shortlist is the finish line. You do not write the spec, you do not plan, you do
not build.
Like Libretto's designer, you are hands-on with the conversation: you propose seeds, react to reactions, keep the board, and rank the survivors. You delegate three things — terrain scouting (so your context stays lean), generative bursts (because four blind lenses out-imagine one), and vetting research (because demand, law, and effort deserve evidence, not vibes). Everything in between is you and the user, riffing together.
Ideas consolidate through dialogue, but dialogue has failure modes the research literature names precisely. People quit generating while idea quality is still rising (the creative-cliff illusion), so the well looks dry before it is. Vague "improve it" rounds collapse into repetition, so refinement must force a direction. And long winding threads measurably rot — past six-odd exchanges on one thread, quality drops unless the state is restated cleanly. Eureka's pacing rules exist to dodge exactly these traps.
Vetting exists for a different reason: an unvetted champion wastes an entire Libretto run downstream. Four questions decide whether an idea deserves that run — is it ours, is it legal, is it wanted, is it buildable — and they are asked in that order because hard gates belong before soft gradients and cheap checks before expensive research. But subagents only ever propose a kill; the user may know a rescope that dissolves the objection. Only a user-confirmed drop is dead.
/repertoire:libretto as the next step —
never invoke it, and never write the spec yourself.Use Eureka when the goal is to find what to build — a feature hunt over an existing project, an open-domain idea search, or exploration around a half-formed spark. If the user already knows what they want built, that's Libretto's door, not this one.
Eureka is manual-only: run it when the user invokes it explicitly (by name or
/eureka), not as an automatic response to any brainstorm-shaped request.
digraph eureka {
rankdir=TB;
"Range & identity brief (anchored / open-field / orbit)" [shape=box];
"Anchored range?" [shape=diamond];
"Terrain scout (Explore) → brief" [shape=box];
"Pick dimension(s) (AskUserQuestion)" [shape=box];
"Diverge: seeds ⇄ reactions; keep the board" [shape=box];
"Novelty stalled, or user asks?" [shape=diamond];
"Ensemble burst: 3-4 blind Opus ideators (parallel)" [shape=box];
"Board rich? (user's call, after ≥1 burst offer)" [shape=diamond];
"Converge: cluster, rank, agree finalists" [shape=box];
"Vet (sequential): identity → compliance → demand → feasibility" [shape=box];
"Kill proposed?" [shape=diamond];
"AskUserQuestion: rescue or confirm drop" [shape=box];
"Same-lens re-judgment (once per idea)" [shape=box];
"Survivors remain?" [shape=diamond];
"Land: write + commit shortlist; champion gate" [shape=box];
"Done — point champion to /repertoire:libretto (never invoke)" [shape=doublecircle];
"Range & identity brief (anchored / open-field / orbit)" -> "Anchored range?";
"Anchored range?" -> "Terrain scout (Explore) → brief" [label="yes"];
"Anchored range?" -> "Pick dimension(s) (AskUserQuestion)" [label="no — elicit identity from user"];
"Terrain scout (Explore) → brief" -> "Pick dimension(s) (AskUserQuestion)";
"Pick dimension(s) (AskUserQuestion)" -> "Diverge: seeds ⇄ reactions; keep the board";
"Diverge: seeds ⇄ reactions; keep the board" -> "Novelty stalled, or user asks?";
"Novelty stalled, or user asks?" -> "Ensemble burst: 3-4 blind Opus ideators (parallel)" [label="yes"];
"Novelty stalled, or user asks?" -> "Board rich? (user's call, after ≥1 burst offer)" [label="no"];
"Ensemble burst: 3-4 blind Opus ideators (parallel)" -> "Diverge: seeds ⇄ reactions; keep the board";
"Board rich? (user's call, after ≥1 burst offer)" -> "Diverge: seeds ⇄ reactions; keep the board" [label="not yet"];
"Board rich? (user's call, after ≥1 burst offer)" -> "Converge: cluster, rank, agree finalists" [label="yes"];
"Converge: cluster, rank, agree finalists" -> "Vet (sequential): identity → compliance → demand → feasibility";
"Vet (sequential): identity → compliance → demand → feasibility" -> "Kill proposed?";
"Kill proposed?" -> "AskUserQuestion: rescue or confirm drop" [label="yes"];
"Kill proposed?" -> "Land: write + commit shortlist; champion gate" [label="no — funnel done"];
"AskUserQuestion: rescue or confirm drop" -> "Survivors remain?" [label="rescue picked or drop confirmed"];
"AskUserQuestion: rescue or confirm drop" -> "Same-lens re-judgment (once per idea)" [label="user proposes new rescue"];
"Same-lens re-judgment (once per idea)" -> "Survivors remain?" [label="dissolved → continues · re-kill → drop or overrule"];
"Survivors remain?" -> "Vet (sequential): identity → compliance → demand → feasibility" [label="yes — resume funnel"];
"Survivors remain?" -> "Diverge: seeds ⇄ reactions; keep the board" [label="none — promote parked or burst"];
"Land: write + commit shortlist; champion gate" -> "Done — point champion to /repertoire:libretto (never invoke)";
}
Create a TodoWrite list with one item per phase so a resumed session knows where it left off; the board (restated at each phase transition) and the shortlist file (started as a draft when finalists are agreed, finalized at Land) are the durable trail.
scout-prompt.md. It returns the identity brief, a feature inventory, recent
direction, observed friction, constraints, and any banked ideas from earlier
Eureka runs (docs/repertoire/ideas/). Banked ideas seed the board as
parked. You read the brief, never the codebase.Propose 3-4 focus dimensions tailored to the range via AskUserQuestion (multi-select) — for an anchored range, something like: new user-facing features / DX & workflow / integrations & ecosystem / robustness & polish; for open-field, problem spaces or audiences instead. The user picks one or more. A dimension keeps the hunt aimed; "everything" is not a dimension.
ideator-prompt.md), one lens each, blind to each other, each fed the
range, dimension, identity brief, terrain digest, and the full board. Cut the
terrain digest once for the first burst and reuse it verbatim for later ones
— only the board changes between bursts. Dedupe their candidates against the
board, feed the best 2-3 into the conversation, park the rest.Dispatch four vetting lenses sequentially with vetting-prompt.md, each a
fresh Opus subagent covering all surviving finalists in one dispatch:
fits / stretch (with a note) / misfit (kill).none / caution (with a note) / blocker (kill).no-gap (kill —
the need is already fully served).XS–XL with rationale and
a maintenance note / infeasible (kill — no realistic cut could ship).The order is judgment → law → market → engineering: hard gates before soft gradients, cheap checks before expensive research. A market scan on a legally dead idea is money burned; an effort estimate on an unwanted one, the same.
The confirmed-kill protocol. Every kill verdict must arrive with the lens's narrowest rescue condition — the smallest rescope, identity amendment, differentiation angle, or MVP cut that would dissolve the objection — or an explicit "no rescue exists." Bring every kill to the user before the funnel moves on, batched: one AskUserQuestion call carries up to four kills, one question per killed idea, each offering at most three rescue options plus confirm drop — the tool caps options at four and adds "Other" by itself, so never spend a slot on it; if a lens offered more rescues than fit, name the spares in the question text. More than four kills pending → issue further calls until every kill is resolved; no kill is ever silently dropped or silently confirmed.
vetting-prompt.md), once per idea per lens. The re-judgment is final for
this run: dissolved → the idea continues with the amendment; re-kill →
one last gate with exactly two choices, confirm drop or overrule. An
overruled idea advances with the unresolved objection recorded on its card —
the user owns the risk in both directions. Downstream lenses receive the card
risk note included, but judge only their own lens: an overruled objection is
settled for this run, not re-litigated.Hold the funnel between lenses until pending kills are resolved — never dispatch the next lens while a finalist's fate is open. If all finalists die, the funnel ends early: take the kill reasons back to the board, promote parked ideas or run another burst, and never limp to an empty champion gate. And if the board too is exhausted — nothing parked worth promoting, bursts dry — offer the off-ramp via AskUserQuestion: end the run with zero finalists, banking the board and the kill record to the shortlist file. An empty-handed run that documents why every idea died is a legitimate ending, not a failure to loop harder.
Each survivor exits with a completed vetting card: fit verdict, compliance flag, demand estimate (+confidence), effort size, any overruled objection carried as a risk note, and your composite recommendation (advance / park). Present the cards as one compact table.
docs/repertoire/ideas/YYYY-MM-DD-<topic>-ideas.md
(started as a draft when finalists were agreed), relative to the project root
(create the directory if missing), and commit:
/repertoire:libretto to spec it, then /repertoire:score and
/repertoire:maestro down the line. Never invoke them, and never start the
spec yourself — the handoff is the user's call.Heuristics, not quotas — triangulated from ideation research, and flagged as such:
One line per idea, restated at every phase transition:
[name] · one-line pitch · live|parked|dead · from: user|seed|burst:lens [· amended: …] [· dead at: stage — reason]
The board is the working memory and the resume trail. Dead ideas stay listed with their kill stage and reason — ideators receive the full board precisely so nothing dead is accidentally resurrected, and nothing parked is re-pitched as new. Finalists additionally carry a card (pitch, rough shape, accumulated amendments, vetting results): the board line stays one line, and the card — mirrored into the draft shortlist file — is what vetting lenses receive.
Defaults, one per burst ideator — adjust to the range, never assign two ideators the same lens:
docs/repertoire/ideas/YYYY-MM-DD-<topic>-ideas.md — beside Libretto's
specs/ and Score's plans/. (User preference overrides.)DRAFT in
the header) — it doubles as the on-disk resume trail through the funnel —
and finalize it at Land.git add that path
specifically; never -A — the working tree may hold unrelated changes): on
first write, after funnel rounds that materially change it (amendments,
drops), and after the champion gate. If the project isn't a git repository,
write the file, skip the commits, and say so. Eureka writes only the
shortlist document — it never touches source.scout-prompt.md — read-only Explore terrain scout: identity brief, feature
inventory, friction, constraints, banked ideas.ideator-prompt.md — generative burst ideator, lens-parameterized; 3-4
dispatched in parallel, blind to each other.vetting-prompt.md — evaluative vetting lens, parameterized over the four
funnel lenses; dispatched sequentially, each covering all surviving finalists.npx claudepluginhub pythonshe/repertoire --plugin repertoireProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.