Enhance bmad-brainstorming: goal facet, proven grouping, convergence, icon sidecar

Catalog (brain-methods.csv -> 108 methods):
- Add provenance / good_for / audience columns (additive, backward-compatible)
- Add 8 researched classic methods: How Might We, Job to Be Done, Empathy Map,
  Backcasting, TRIZ Contradiction, Fishbone Diagram, Build on What Works, Scenario Cross

Selector page (brain.py generator):
- "Proven & Professional" lead group (29 named methods, cross-category)
- Super-group ordering (Structured/Creative/Wild/Introspective) replacing alphabetical
- "Great for" goal filter driven by good_for tags
- Per-category "Invent a ... technique" cards reusing the invent flow

Convergence:
- New references/converge.md (diverge -> converge -> finalize); wired into SKILL.md

Maintainability:
- Extract category + technique icons to assets/brain-icons.json; brain.py loads the
  sidecar, with logic and fallbacks staying in code (8 new icons added, full coverage)

Docs:
- Add analysis/ (catalog-analysis.md + method-matrix.csv): the 4-axis review behind these changes

All 52 tests pass.
This commit is contained in:
Brian Madison 2026-06-02 21:19:37 -05:00
parent 49eda560d9
commit 0e4199afc9
8 changed files with 947 additions and 415 deletions

View File

@ -62,12 +62,16 @@ For **Facilitator** and **Creative Partner**. (In **Ideate for me** you pick and
Most sessions arrive with a batch already composed on the page — run it as given (each technique's full text is in the paste; no `list`/`show` needed). Two parts of a paste delegate back to you: Most sessions arrive with a batch already composed on the page — run it as given (each technique's full text is in the paste; no `list`/`show` needed). Two parts of a paste delegate back to you:
- **`invent N`** (Inventive Flow) — invent N brand-new techniques on the fly; announce the order, log each one's name + description, and offer to save a keeper to `{workflow.additional_techniques}` at wrap-up. - **`invent N`** (Inventive Flow) — invent N brand-new techniques on the fly. A line may scope an invention (`invent 1 new technique in the spirit of <category>`, from the page's per-category invent card) — when it does, honor that category's spirit. Announce the order, log each one's name + description, and offer to save a keeper to `{workflow.additional_techniques}` at wrap-up.
- **`you choose N`** (Facilitator Chosen) — pick N techniques fitting the goal, `{workflow.favorite_techniques}` first; confirm exact names with a scoped `python3 {skill-root}/scripts/brain.py --file {workflow.brain_methods} list --category <cat>`. Never pull the library whole into context. - **`you choose N`** (Facilitator Chosen) — pick N techniques fitting the goal, `{workflow.favorite_techniques}` first; confirm exact names with a scoped `python3 {skill-root}/scripts/brain.py --file {workflow.brain_methods} list --category <cat>`. Never pull the library whole into context.
If they didn't use the page, load `references/in-chat-techniques.md` and pick the batch in chat (**34 is the sweet spot**). If they didn't use the page, load `references/in-chat-techniques.md` and pick the batch in chat (**34 is the sweet spot**).
Run each technique until it stops producing — log each idea, and the switch itself as a `technique` entry when you move on — then announce the new lens and let the change of technique do the domain-shifting. When the batch is spent, offer another or go to `## Wrap-Up`. Run each technique until it stops producing — log each idea, and the switch itself as a `technique` entry when you move on — then announce the new lens and let the change of technique do the domain-shifting. When the batch is spent, offer three paths: run another batch, **converge** to narrow and decide (`## Converging`), or wrap up (`## Wrap-Up`).
## Converging
The catalog is all *divergent* — built to generate. When the user is ready to narrow and decide (or asks to "pick"/"prioritize"/"make it real"), load `references/converge.md` and follow it; it ends by handing off to `## Wrap-Up`. Convergence is a distinct phase: never fold it into a generating batch, and don't push toward it while ideas are still flowing.
## Resuming ## Resuming
@ -75,4 +79,4 @@ Picking up an existing session instead of starting fresh: load `references/resum
## Wrap-Up ## Wrap-Up
Load `references/finalize.md`: synthesis, `status: complete`, artifacts. Load `references/finalize.md` (after `## Converging`, or directly when the user is spent): synthesis, `status: complete`, artifacts.

View File

@ -0,0 +1,239 @@
# BMad Brainstorming Catalog — Deep Analysis
> Analysis of the brainstorming library (`assets/brain-methods.csv`) and the selection
> experience (`assets/brain-selector.html`, generated by `scripts/brain.py`). Companion
> data: `method-matrix.csv` (every method tagged on 4 axes).
>
> **Status (implemented, uncommitted for review):** CSV extended with `provenance` /
> `good_for` / `audience` columns; 8 researched `classic` methods added (108 total);
> `brain.py` now renders a "Proven & Professional" lead group, super-group ordering, a
> "Great for" goal filter, and a per-category "Invent a … technique" card; convergence
> shipped as `references/converge.md` (diverge → converge → finalize) and wired into
> `SKILL.md`. Sections below are the rationale.
---
## 1. TL;DR
The catalog is strong, distinctive, and well-built. The opportunities are not "more methods" so much as **navigation and intent**:
1. **The selector sorts categories alphabetically.** There is no ordering/grouping layer, so the well-known professional methods (SCAMPER, Six Hats, Five Whys, etc.) are scattered across four categories and buried below `Absurdist` and `Biomimetic`. Enterprise users meet whimsy before they meet anything they recognize. → **Add a grouping + ordering layer; lead with a "Proven & Professional" group.**
2. **Nothing connects the user's stated goal to technique choice.** The skill asks for the goal up front but then offers an alphabetical wall. The single highest-value addition is a **goal → technique affinity layer** so "I'm adding a feature to a brownfield app" surfaces a different short-list than "planning a sabbatical."
3. **The catalog is 100% divergent (generative).** There is essentially no *convergence* (prioritize / cluster / decide). This is partly a sound principle and partly a real gap — see §5.
4. **Real overlap exists**, but it's mostly "same cognitive move, different costume." Four mechanisms (perspective-shift, constraint, analogy, inversion) account for ~60 of 100 methods; sensory, questioning, systems, and time-shift are comparatively thin.
5. **Descriptions should stay terse** — the brevity is correct. Only two targeted fixes are warranted: the `collaborative` category silently assumes multiple humans, and ~10 "vibe-only" methods lack an output anchor.
6. **Per-category "invent on the fly" is a good idea** — but implement it as a generated synthetic card per section, not 13 near-duplicate CSV rows.
---
## 2. Method — how this was analyzed
Each of the 100 methods was tagged on **four independent axes** (see `method-matrix.csv`). Category alone only captures *aesthetic/mechanism*; these four axes are what expose grouping, overlap, gaps, and the goal-routing opportunity.
| Axis | Values | Answers |
|---|---|---|
| **Provenance** | `classic` · `signature` · `playful` | What goes in the enterprise "proven" group? |
| **Mechanism** (primary + secondary) | inversion · analogy · perspective · constraint · decomposition · time-shift · systems · sensory · questioning · combination · provocation · convergence | Where is the catalog redundant vs thin? |
| **Goal affinity** (multi) | feature · novel · personal · strategy · planning · diagnosis · unstuck | Given the user's goal, what should we recommend? |
| **Audience** | solo · group · either | What breaks in a 1:1 user+LLM session? |
---
## 3. Findings
### 3a. Provenance — the "proven & professional" set exists, but is scattered
The methods an innovation consultant or enterprise facilitator would recognize by name are spread across `structured`, `deep`, `creative`, and `collaborative`. The **canonical core (~22)**:
> SCAMPER · Six Thinking Hats · Mind Mapping · Lotus Blossom · Crazy 8s · Disney Method ·
> Starbursting · Morphological Analysis · Five Whys · Laddering · Causal Loop Mapping ·
> First Principles · Reverse Brainstorming · Assumption Reversal · Worst Possible Idea ·
> Provocation (PO) · Question Storming · Brainwriting/Round Robin · Yes-And · Random Stimulation ·
> Role Playing · Analogical Thinking
A second tier is *recognizable-adjacent* (Concept Blending, Forced Relationships, Decision Tree, Solution Matrix, Failure Analysis/pre-mortem, Devil's Advocate, 1000x Budget). Everything else is `signature` (BMad-original, serious) or `playful` (the delight layer — `wild`, `absurdist`, `theatrical`, much of `quantum`/`cultural`).
**Recommendation — lead with "Proven & Professional."** Three ways to implement (pick in review):
- **Option A — Tag + generated lead section (recommended).** Add a `provenance` column to the CSV. `brain.py` renders a synthetic **"Proven & Professional"** section *first* (pulling all `classic`-tagged methods, cross-category), then the existing categories grouped and ordered (see §7). A method keeps its home category and also appears in the lead group. Pro: zero loss of mechanism categorization; enterprise sees credibility first. Con: those ~22 methods appear twice on the browse page (arguably fine — or filter them out of their home category).
- **Option B — New `classic` category.** Move the ~22 into a single first category. Pro: simplest. Con: destroys the mechanism grouping (SCAMPER is *also* structured; Five Whys is *also* deep), and the category becomes a grab-bag.
- **Option C — Two-level groups only, no provenance tag.** Reorder the 13 categories into super-groups (§7) so "serious" comes first, but don't pull classics out. Pro: cleanest data model. Con: doesn't actually cluster the *named* methods — they stay scattered within their categories.
My pick: **A.** It satisfies "professional methods grouped and shown first" literally, without flattening the taxonomy that makes the rest of the catalog shine.
### 3b. Mechanism — the catalog has four over-served "spines"
Primary-mechanism distribution across the 100:
| Mechanism | ~count | Read |
|---|---|---|
| **perspective-shift** | ~18 | Over-served. Role Playing, Six Hats, Persona, Alien, Ancestor Council, Inner Child, Future Self, Drunk Uncle, Golden Retriever, Infomercial… all "adopt another viewpoint," differentiated only by *who*. |
| **constraint** | ~16 | Over-served. What If, the entire `constraint` category, 1000x, Post-Scarcity, Parallel Universe, Zombie, Quantum Tunneling, Permission Giving… all "add/remove/exaggerate a limit." |
| **analogy / transfer** | ~12 | Healthy. Analogical, Metaphor, Cross-Pollination, Trait Transfer, Nature's Solutions, Fusion Cuisine, Proverb, Random Stimulation. |
| **inversion** | ~11 | Healthy but clustered. Reverse, Assumption Reversal, Worst Idea, Anti-Solution, Failure Analysis, Devil's Advocate, Cursed Genie, Villain's Monologue, Trickster. |
| **combination** | ~9 | Fine. |
| **decomposition** | ~9 | Fine. |
| **systems / emergence** | ~7 | Thin-ish (concentrated in `quantum`/`biomimetic`). |
| **time-shift** | ~6 | Thin. |
| **questioning** | ~5 | Thin. |
| **sensory / intuitive** | ~5 | Thin (all in `introspective_delight`). |
| **convergence** | ~1 | **Effectively absent** (only Superposition Collapse). See §5. |
**Takeaway:** the redundancy is not a defect to delete — the *costume* (a villain's monologue vs. a courtroom vs. "make it worse") is exactly what makes a 30th inversion technique feel fresh to a user. But a curator should know the catalog leans hard on perspective + constraint, and that **convergence is the one genuinely empty cell.** New methods (§6) should target the thin cells, not the spines.
### 3c. Goal affinity — the headline missing capability
`SKILL.md` already opens with *"what are we brainstorming, and what's the goal?"* — but that goal never routes technique selection. Mapping the matrix's `goal_affinity` tags gives a ready recommendation table. This is what powers "AI picks N" intelligently and what an enterprise user wants:
| Goal | Strong default techniques (lead picks **bold**) |
|---|---|
| **Build a feature** (greenfield/brownfield) | **First Principles**, **SCAMPER**, **Morphological Analysis**, Crazy 8s, Solution Matrix, Reverse Brainstorming, One Feature Only, Ship in 60 Minutes, Chaos Engineering, Cursed Genie (edge cases), Persona Journey, *+ new: Job to Be Done, Follow the Anomaly* |
| **Novel concept / new product** | **Concept Blending**, **Cross-Pollination**, **Forced Relationships**, What If, Trait Transfer, Nature's Solutions, Fusion Cuisine, Emerging Tech Collision, Crank the Dial to 11, Quantum Tunneling |
| **Personal / life decision** | **Future Self Interview**, **Values Archaeology**, **Laddering**, Six Hats, Ancestor Council, Proverb Mining, Mythic Frameworks, the `introspective_delight` set, *+ new: Build on What Works* |
| **Strategy / positioning** | **Six Thinking Hats**, **Failure Analysis** (pre-mortem), Field Lines, Ecosystem Thinking, Utopia vs Dystopia, 1000x Budget, Disney Method, Relativity Frame Shift, Infomercial at 3AM, Predator & Prey |
| **Concrete planning** (event/project) | **Mind Mapping**, **Lotus Blossom**, Morphological Analysis, Decision Tree, Six Hats, $0 Mandate, Constraint Roulette, Time Horizon Ladder |
| **Root-cause / diagnosis** | **Five Whys**, **Causal Loop Mapping**, Failure Analysis, Constraint Mapping, Question Storming, Starbursting, Anti-Solution, Alien Anthropologist |
| **Get unstuck / break fixation** | **Random Stimulation**, **Provocation**, **Worst Possible Idea**, Crank the Dial to 11, Constraint Roulette, Three Rounds of Stupid, Drunk History, most of `wild`/`absurdist`/`theatrical` |
**Recommendation:** persist this as machine-readable affinity (a `goals` column on the CSV, sourced from `method-matrix.csv`), then (1) have the skill recommend a batch from the up-front goal, and (2) let the composer page filter/highlight "great for: [your goal]." This is the single change that most improves both enterprise and casual use.
### 3d. Audience — the `collaborative` category quietly assumes a room of people
5 of the 8 `collaborative` methods (Round Robin, Relay Race, Hot Potato, Fold the Paper, Steal & Upgrade) are written for *multiple humans passing artifacts*. In the default 1:1 user+LLM session they don't translate without the coach silently reinterpreting them. This is the one place the catalog can mislead. Options: tag `audience`, and either (a) add a one-clause solo adaptation to each, or (b) have the skill note "this one shines with a group" when picked solo. Low effort, removes the only real footgun.
### 3e. Description anchoring — keep terse, fix ~12 specifically
The deliberate brevity is **right** — the gist + a creative LLM beats over-specification, and it matches the catalog's house style. Do **not** bulk-expand. Two surgical passes only:
1. **Group-dependent `collaborative` methods** (§3d) — add a short solo-mode clause or an audience tag.
2. **~10 "vibe-only" methods** where the *evocation is great but the output is ambiguous*, so different LLM runs would diverge wildly: e.g. **Field Lines**, **Observer Effect**, **Guerrilla Gardening Ideas**, **Emergent Thinking**, **Entanglement Thinking**, **Elemental Forces**. A tiny "…so that ___" outcome clause anchors the deliverable without killing the brevity. Example: *Guerrilla Gardening Ideas* → add "…**so you surface where an unsanctioned, low-visibility pilot could prove the idea before anyone can veto it**."
Everything crisp (Five Whys, SCAMPER, First Principles, Crazy 8s) stays untouched.
---
## 4. Quick wins vs structural changes
| Change | Effort | Impact | Type |
|---|---|---|---|
| Goal→technique affinity (`goals` column + recommendation) | Med | **High** | structural |
| "Proven & Professional" lead group + category ordering | Med | **High** (enterprise) | structural |
| Per-category "invent in the spirit" card (§6) | Low | Med | quick win |
| Convergence mini-set (§5) | LowMed | MedHigh | structural (philosophy) |
| `audience` tag + collaborative fix (§3d) | Low | Med | quick win |
| ~12 description anchors (§3e) | Low | LowMed | quick win |
| New gap-filling methods (§6) | Low | Med | additive |
---
## 5. Divergent vs convergent — the answer, and a recommendation
**What it is.** Divergent = generate (quantity, novelty, breadth). Convergent = evaluate, cluster, prioritize, decide. A complete creative process needs both (cf. the Double Diamond, Osborn-Parnes CPS): diverge wide, *then* converge to a choice.
**Where the catalog stands.** All 100 methods are divergent. `SKILL.md` explicitly enforces divergence ("resist concluding… the urge to organize is the enemy of divergence"), and the only convergent-flavored technique is Quantum → *Superposition Collapse*. Synthesis is deferred entirely to `references/finalize.md` at wrap-up.
**Is that a mistake?** Mostly a *good instinct taken to a defensible extreme.* Separating generation from judgment is the foundational brainstorming rule — premature convergence is the #1 killer of ideas, so a divergence-pure generator is legitimate. But the consequence is that the user has **no technique to pick when they're ready to narrow** — they hit "100 ideas" and the tool's stance is "keep going," with only the wrap-up doing light synthesis. For project/feature/life-decision work especially, people *do* want to land.
**Recommendation — add a small, fenced convergence set, never mixed into the divergent flow.** Keep divergence pure during generation; offer convergence only at wrap-up or on explicit request ("okay, help me narrow"). Concretely: a new `converge` category (4 methods, §6), tagged `mechanism=convergence`, surfaced by `finalize.md` / on demand — not in the default 34 sweet-spot batch. This completes the loop while honoring the separate-generation-from-judgment principle. **This is a philosophy decision for you to confirm** — it's the one recommendation that changes what the skill *is*, not just what's in the library.
---
## 6. Proposed new methods (fill the thin cells)
Targeting the under-served mechanisms (§3b), the empty convergence cell (§5), and the goal gaps (§3c). CSV-style (`category, name, description`) so they can drop straight in:
**Feature/product & enterprise gaps (mechanism: questioning/decomposition):**
- `structured, Job to Be Done, "Ask what the user is really hiring this to do; brainstorm around that underlying job, not the feature you assumed"`
- `structured, Empathy Map, "Map what the user says, thinks, does, and feels around the problem; mine each quadrant for the unmet need hiding there"`
- `deep, Follow the Anomaly, "Start from one surprising number or outlier and ideate only from what would explain it or exploit it"`
**Strengths-based (the missing positive frame — Appreciative Inquiry is a glaring classic-tier omission):**
- `deep, Build on What Works, "Name what's already succeeding and why, then ideate how to amplify and extend it instead of fixing what's broken"`
**Convergence set (new `converge` category — only if §5 is adopted):**
- `converge, Impact Effort Triage, "Plot every idea by impact against effort; harvest the high-impact, low-effort quadrant first and quarantine the rest"`
- `converge, Forced Ranking, "Make the ideas fight: each must beat another to survive to a ranked top-N, no ties allowed"`
- `converge, NUF Test, "Score each idea New, Useful, Feasible 1-10; the totals expose the quiet winners and the dazzling dead-ends"`
- `converge, Affinity Clustering, "Group the raw ideas into themes, name each cluster, then ideate fresh at the theme level"`
(Optional, lower priority: `structured, Storyboarding` for sequenced/experience ideation.)
---
## 7. Category roster & ordering recommendations
**Ordering (replace alphabetical with a deliberate progression):** add a `CATEGORY_ORDER` + `GROUP` map in `brain.py` (mirroring the existing `_HUES` map — derived for the shipped set, alphabetical fallback for custom catalogs). Proposed super-groups, in order:
1. **Proven & Professional** — the `classic` lead section (§3a, Option A)
2. **Structured & Analytical** — structured, deep
3. **Creative & Generative** — creative, biomimetic, cultural, speculative_future, quantum
4. **Wild & Playful** — wild, absurdist, theatrical, constraint
5. **Introspective & Personal** — introspective_delight, collaborative
6. **Decide & Converge** — converge *(if §5 adopted)*
**Roster notes:**
- No category should be deleted. The overlap (§3b) is intentional costume variety.
- `quantum` and `cultural` are the most abstract/uneven — a couple of their members (Field Lines, Observer Effect) are the vaguest in the whole set; anchor per §3e rather than cut.
- `constraint` is excellent and tight — leave as is.
---
## 8. Per-category "invent in the spirit of this category"
You asked whether each category should also offer an on-the-fly invented technique in its own spirit. **Yes — but don't add 13 near-duplicate rows to the CSV.** The composer already has a global **Invent N** stepper, and `brain.py` already generates section markup from the catalog. So:
> Have `brain.py` append **one synthetic card per category section** — a dashed "✨ Invent a *{Category}* technique" card. Selecting it emits a paste directive like `invent 1 (in the spirit of {category})`, reused by the existing Inventive-Flow plumbing in `SKILL.md` (which already handles `invent N` and offering keepers to `additional_techniques`).
Benefits: CSV stays a clean library of *real* techniques; behavior is consistent everywhere; it leverages plumbing that already exists; and it gives the user the "surprise me, but on-theme" affordance per category without library bloat.
---
## 9. Open decisions for BMad (in priority order)
1. **Goal-affinity layer** — adopt the `goals` column + recommendation routing? (Highest impact.)
2. **Proven & Professional grouping** — Option A (tag + generated lead section, recommended), B, or C? (§3a)
3. **Convergence** — add the fenced `converge` set, or stay divergence-pure? (§5 — philosophy decision.)
4. **New methods** — approve the §6 set? Which ones?
5. **Per-category invent card** — approve the generated-card approach? (§8)
6. **Description anchoring** — approve the targeted ~12 (incl. collaborative fix), keep everything else terse? (§3e)
7. **Category ordering / super-groups** — adopt §7?
Once you mark these, the implementation is: extend the CSV schema (`provenance`, `good_for`, `audience` columns — additive, backward-compatible with `brain.py`'s `DictReader`), add the ordering/grouping + synthetic-card logic to `brain.py`, regenerate `brain-selector.html`, update the relevant `SKILL.md` / `references/*` flow, and run `scripts/tests/`.
---
## 10. Revised convergence architecture (per BMad direction)
**Decision locked:** convergence is **not** a CSV category of selectable cards. It's a **reference phase**, mirroring `references/finalize.md`. The catalog stays a pure *divergent* library; convergence lives in `references/converge.md`.
**Flow:** diverge (pick & run techniques) → **converge** (`references/converge.md`, on demand or once divergence is spent) → **finalize** (`references/finalize.md`, last). The coach already does ad-hoc convergence implicitly; this makes it an explicit, repeatable phase, and `converge.md` ends by instructing the coach to load `finalize.md` to synthesize and produce artifacts.
`references/converge.md` contents — a tight set of real, established convergence moves (the coach picks what fits, never dumps a menu):
- **Affinity Clustering (KJ method)** — group the raw ideas into themes, name each cluster, surface the through-line.
- **Dot Voting / Multivoting** — heat-map the favorites; discuss why the hot spots are hot.
- **ImpactEffort Matrix** — plot each idea on impact vs effort; harvest high-impact/low-effort first.
- **NUF Test** — score New, Useful, Feasible (110 each); totals expose quiet winners and dazzling dead-ends.
- **PMI (Plus / Minus / Interesting)** — de Bono's fast evaluator for pressure-testing a single strong candidate.
- *(optional)* **MoSCoW** (Must/Should/Could/Won't) for product scoping; **Nominal Group Technique** when it's genuinely a group.
`SKILL.md` change: at the point where a divergent batch is spent, offer "keep diverging / converge & decide / wrap up" — "converge & decide" loads `converge.md`; wrap-up still goes to `finalize.md`.
## 11. Researched gap-filling additions (real, established methods)
Web-researched (sources below), chosen to fill the **thin mechanism cells** (questioning, diagnosis, time-shift, empathy) — *not* the over-served spines — and all `classic`-tier, so they also strengthen the "Proven & Professional" group. CSV-style, ready to drop in:
| Category | Technique | Gist (house style) | Fills |
|---|---|---|---|
| structured | **How Might We** | "Reframe the problem as a batch of 'How might we…' opportunity questions first, then ideate against the sharpest one" | questioning / problem-framing (design-thinking staple, currently absent) |
| deep | **TRIZ Contradiction** | "Name the core contradiction — what only improves by making something else worse — then brainstorm ways to win both instead of trading off" | engineering/feature (no systematic technical method today) |
| deep | **Fishbone Diagram** | "Branch the problem's spine into cause categories — people, process, tools, environment — and mine each bone for contributing causes" | diagnosis (named classic complementing Five Whys / Causal Loop) |
| structured | **Backcasting** | "Fix the finished future in vivid detail, then work backward step by step to the one move you'd have to make first" | strategy/planning time-shift (serious counterpart to playful future methods) |
| speculative_future | **Scenario Cross** | "Pick two high-impact uncertainties, cross them into four futures, and ideate the move that wins in every one" | strategy (2×2 scenario planning — the serious sibling of the playful speculative set) |
| structured | **Job to Be Done** | "Ask what the user is really hiring this to do, then ideate around that underlying job, not the feature you assumed" | feature/empathy (enterprise staple) |
| structured | **Empathy Map** | "Map what the user says, thinks, does, and feels around the problem; mine each quadrant for the unmet need" | empathy/feature |
| deep | **Build on What Works** | "Name what's already succeeding and why, then ideate how to amplify and extend it instead of fixing what's broken" | strengths-based (Appreciative Inquiry — a glaring classic-tier omission) |
Deliberately **not** added (would deepen an already over-served spine or duplicate): Synectics (≈ analogy/metaphor), SWOT (analysis, not ideation), Rolestorming (≈ Role Playing), Brainwalking/Braindumping (≈ Brainwriting), Pre-mortem (≈ Failure Analysis).
**Sources:** [IxDF — essential ideation techniques](https://ixdf.org/literature/article/introduction-to-the-essential-ideation-techniques-which-are-the-heart-of-design-thinking) · [Quality Magazine — TRIZ](https://www.qualitymag.com/articles/98566-triz-the-backbone-of-innovation-and-problem-solving) · [ASQ — Fishbone/Ishikawa](https://asq.org/quality-resources/fishbone) · [Futures Platform — 2×2 scenario matrix](https://www.futuresplatform.com/blog/2x2-scenario-planning-matrix-guideline) · [NN/g — Dot Voting](https://www.nngroup.com/articles/dot-voting/) · [Quality Gurus — divergent vs convergent](https://www.qualitygurus.com/divergent-vs-convergent-thinking/)

View File

@ -0,0 +1,109 @@
category,technique,provenance,mechanism_primary,mechanism_secondary,goal_affinity,audience
collaborative,Yes And Building,classic,combination,perspective,novel|unstuck|planning,group
collaborative,Brain Writing Round Robin,classic,combination,decomposition,novel|feature,group
collaborative,Random Stimulation,classic,analogy,,unstuck|novel,either
collaborative,Role Playing,classic,perspective,,strategy|personal|feature,either
collaborative,Ideation Relay Race,playful,combination,,unstuck,group
collaborative,Idea Hot Potato,playful,combination,,unstuck,group
collaborative,Steal And Upgrade,signature,combination,analogy,novel|unstuck,group
collaborative,Fold The Paper,playful,combination,,unstuck|novel,group
creative,What If Scenarios,signature,constraint,,novel|strategy|unstuck,either
creative,Analogical Thinking,signature,analogy,,feature|novel|diagnosis,either
creative,First Principles Thinking,classic,decomposition,,feature|novel|diagnosis|strategy,either
creative,Forced Relationships,signature,combination,analogy,novel|unstuck,either
creative,Time Shifting,signature,time-shift,perspective,novel|unstuck,either
creative,Metaphor Mapping,signature,analogy,,novel|diagnosis,either
creative,Cross-Pollination,signature,analogy,,novel|feature|strategy,either
creative,Concept Blending,signature,combination,,novel,either
creative,Reverse Brainstorming,classic,inversion,,diagnosis|feature|unstuck,either
creative,Sensory Exploration,signature,sensory,,novel|unstuck,either
deep,Five Whys,classic,questioning,,diagnosis,either
deep,Provocation Technique,classic,provocation,inversion,unstuck|novel,either
deep,Assumption Reversal,classic,inversion,,novel|diagnosis|strategy,either
deep,Question Storming,classic,questioning,,diagnosis|strategy|unstuck,either
deep,Constraint Mapping,signature,constraint,decomposition,feature|strategy|diagnosis,either
deep,Failure Analysis,signature,inversion,diagnosis,diagnosis|strategy|feature,either
deep,Emergent Thinking,signature,systems,,strategy|novel,either
deep,Causal Loop Mapping,classic,systems,,diagnosis|strategy,either
deep,Morphological Analysis,classic,decomposition,combination,feature|novel|planning,either
deep,Laddering,classic,questioning,decomposition,personal|strategy|diagnosis,either
introspective_delight,Inner Child Conference,signature,perspective,sensory,personal|unstuck,solo
introspective_delight,Shadow Work Mining,signature,sensory,,personal|diagnosis,solo
introspective_delight,Values Archaeology,signature,questioning,,personal|strategy,solo
introspective_delight,Future Self Interview,signature,perspective,time-shift,personal,solo
introspective_delight,Body Wisdom Dialogue,signature,sensory,,personal,solo
introspective_delight,Permission Giving,signature,provocation,constraint,personal|unstuck,solo
introspective_delight,Secret Wish Confession,signature,sensory,,personal,solo
introspective_delight,Mood Weather Report,signature,sensory,,personal|unstuck,solo
structured,SCAMPER Method,classic,combination,decomposition,feature|novel,either
structured,Six Thinking Hats,classic,perspective,,strategy|diagnosis|planning|personal,either
structured,Decision Tree Mapping,signature,decomposition,,planning|strategy|diagnosis,either
structured,Solution Matrix,signature,decomposition,,feature|planning,either
structured,Trait Transfer,signature,analogy,,novel|feature,either
structured,Lotus Blossom,classic,decomposition,,feature|planning|novel,either
structured,Worst Possible Idea,classic,inversion,,unstuck|novel,either
structured,Disney Method,classic,perspective,,feature|strategy|planning,either
structured,Starbursting,classic,questioning,,feature|planning|diagnosis,either
structured,Mind Mapping,classic,decomposition,,planning|novel|feature,either
structured,Crazy 8s,classic,combination,,feature|novel|unstuck,either
theatrical,Time Travel Talk Show,playful,perspective,time-shift,novel|personal,either
theatrical,Alien Anthropologist,playful,perspective,,diagnosis|unstuck|strategy,either
theatrical,Dream Fusion Laboratory,signature,constraint,time-shift,novel|unstuck,either
theatrical,Emotion Orchestra,playful,sensory,perspective,personal|strategy,either
theatrical,Parallel Universe Cafe,playful,constraint,,novel|unstuck,either
theatrical,Persona Journey,signature,perspective,,feature|strategy,either
theatrical,Devil's Advocate Courtroom,signature,inversion,perspective,strategy|diagnosis,group
wild,Chaos Engineering,signature,inversion,constraint,feature|diagnosis|strategy,either
wild,Guerrilla Gardening Ideas,playful,analogy,,strategy|unstuck,either
wild,Pirate Code Brainstorm,playful,combination,analogy,novel|unstuck,either
wild,Zombie Apocalypse Planning,playful,constraint,,feature|strategy|unstuck,either
wild,Drunk History Retelling,playful,perspective,,unstuck|diagnosis,either
wild,Anti-Solution,signature,inversion,,diagnosis|unstuck,either
wild,Elemental Forces,playful,perspective,analogy,novel|unstuck,either
biomimetic,Nature's Solutions,signature,analogy,,feature|novel,either
biomimetic,Ecosystem Thinking,signature,systems,,strategy|diagnosis,either
biomimetic,Evolutionary Pressure,signature,systems,,feature|novel,either
biomimetic,Predator & Prey,signature,perspective,inversion,strategy|feature,either
biomimetic,Metamorphosis Stages,signature,time-shift,decomposition,novel|strategy,either
biomimetic,Swarm Logic,signature,systems,,feature|strategy,either
quantum,Observer Effect,signature,systems,perspective,strategy|diagnosis,either
quantum,Entanglement Thinking,signature,systems,,diagnosis|strategy,either
quantum,Superposition Collapse,signature,convergence,decomposition,strategy|diagnosis,either
quantum,Relativity Frame Shift,signature,perspective,,strategy|novel,either
quantum,Field Lines,signature,systems,,strategy,either
quantum,Quantum Tunneling,signature,constraint,,unstuck|novel,either
cultural,Indigenous Wisdom,signature,perspective,analogy,personal|strategy|novel,either
cultural,Fusion Cuisine,signature,combination,analogy,novel,either
cultural,Ritual Innovation,signature,analogy,,novel|personal,either
cultural,Mythic Frameworks,signature,analogy,perspective,strategy|personal|novel,either
cultural,Proverb Mining,signature,analogy,,personal|strategy,either
cultural,Ancestor Council,signature,perspective,,personal|strategy,either
cultural,Trickster's Gambit,playful,inversion,provocation,unstuck|strategy,either
absurdist,Villain's Monologue,playful,inversion,perspective,diagnosis|strategy|unstuck,either
absurdist,Explain It to a Golden Retriever,playful,perspective,,unstuck|diagnosis|feature,either
absurdist,Infomercial at 3AM,playful,perspective,,strategy|novel,either
absurdist,Drunk Uncle at Thanksgiving,playful,perspective,,unstuck|diagnosis,either
absurdist,Cursed Genie,playful,inversion,,diagnosis|feature,either
absurdist,Three Rounds of Stupid,playful,provocation,,unstuck|novel,either
constraint,Kill the Crown Jewel,signature,constraint,,feature|strategy|unstuck,either
constraint,1000x Budget,signature,constraint,,novel|strategy,either
constraint,Ship in 60 Minutes,signature,constraint,,feature|planning|unstuck,either
constraint,The $0 Mandate,signature,constraint,,planning|strategy|feature,either
constraint,One Feature Only,signature,constraint,,feature|strategy,either
constraint,Crank the Dial to 11,signature,constraint,,novel|unstuck,either
constraint,Constraint Roulette,signature,constraint,,unstuck|feature,either
speculative_future,Time Horizon Ladder,signature,time-shift,,strategy|planning|novel,either
speculative_future,Post-Scarcity Test,signature,constraint,,novel|strategy,either
speculative_future,Utopia vs Dystopia Split-Screen,signature,perspective,inversion,strategy|diagnosis,either
speculative_future,Sci-Fi Artifact From the Future,signature,time-shift,perspective,novel|feature,either
speculative_future,Emerging Tech Collision,signature,combination,,novel|feature|strategy,either
speculative_future,What-If-The-World-Changed Card Flip,signature,constraint,,novel|unstuck,either
speculative_future,Future Anthropologist Dig,signature,time-shift,perspective,strategy|novel,either
structured,How Might We,classic,questioning,,feature|novel|strategy|diagnosis,either
structured,Job to Be Done,classic,perspective,questioning,feature|strategy|novel,either
structured,Empathy Map,classic,perspective,,feature|personal,either
structured,Backcasting,classic,time-shift,,strategy|planning|novel,either
deep,TRIZ Contradiction,classic,inversion,decomposition,feature|novel|diagnosis,either
deep,Fishbone Diagram,classic,decomposition,systems,diagnosis,either
deep,Build on What Works,classic,perspective,systems,personal|strategy,either
speculative_future,Scenario Cross,classic,constraint,systems,strategy|planning,either
1 category technique provenance mechanism_primary mechanism_secondary goal_affinity audience
2 collaborative Yes And Building classic combination perspective novel|unstuck|planning group
3 collaborative Brain Writing Round Robin classic combination decomposition novel|feature group
4 collaborative Random Stimulation classic analogy unstuck|novel either
5 collaborative Role Playing classic perspective strategy|personal|feature either
6 collaborative Ideation Relay Race playful combination unstuck group
7 collaborative Idea Hot Potato playful combination unstuck group
8 collaborative Steal And Upgrade signature combination analogy novel|unstuck group
9 collaborative Fold The Paper playful combination unstuck|novel group
10 creative What If Scenarios signature constraint novel|strategy|unstuck either
11 creative Analogical Thinking signature analogy feature|novel|diagnosis either
12 creative First Principles Thinking classic decomposition feature|novel|diagnosis|strategy either
13 creative Forced Relationships signature combination analogy novel|unstuck either
14 creative Time Shifting signature time-shift perspective novel|unstuck either
15 creative Metaphor Mapping signature analogy novel|diagnosis either
16 creative Cross-Pollination signature analogy novel|feature|strategy either
17 creative Concept Blending signature combination novel either
18 creative Reverse Brainstorming classic inversion diagnosis|feature|unstuck either
19 creative Sensory Exploration signature sensory novel|unstuck either
20 deep Five Whys classic questioning diagnosis either
21 deep Provocation Technique classic provocation inversion unstuck|novel either
22 deep Assumption Reversal classic inversion novel|diagnosis|strategy either
23 deep Question Storming classic questioning diagnosis|strategy|unstuck either
24 deep Constraint Mapping signature constraint decomposition feature|strategy|diagnosis either
25 deep Failure Analysis signature inversion diagnosis diagnosis|strategy|feature either
26 deep Emergent Thinking signature systems strategy|novel either
27 deep Causal Loop Mapping classic systems diagnosis|strategy either
28 deep Morphological Analysis classic decomposition combination feature|novel|planning either
29 deep Laddering classic questioning decomposition personal|strategy|diagnosis either
30 introspective_delight Inner Child Conference signature perspective sensory personal|unstuck solo
31 introspective_delight Shadow Work Mining signature sensory personal|diagnosis solo
32 introspective_delight Values Archaeology signature questioning personal|strategy solo
33 introspective_delight Future Self Interview signature perspective time-shift personal solo
34 introspective_delight Body Wisdom Dialogue signature sensory personal solo
35 introspective_delight Permission Giving signature provocation constraint personal|unstuck solo
36 introspective_delight Secret Wish Confession signature sensory personal solo
37 introspective_delight Mood Weather Report signature sensory personal|unstuck solo
38 structured SCAMPER Method classic combination decomposition feature|novel either
39 structured Six Thinking Hats classic perspective strategy|diagnosis|planning|personal either
40 structured Decision Tree Mapping signature decomposition planning|strategy|diagnosis either
41 structured Solution Matrix signature decomposition feature|planning either
42 structured Trait Transfer signature analogy novel|feature either
43 structured Lotus Blossom classic decomposition feature|planning|novel either
44 structured Worst Possible Idea classic inversion unstuck|novel either
45 structured Disney Method classic perspective feature|strategy|planning either
46 structured Starbursting classic questioning feature|planning|diagnosis either
47 structured Mind Mapping classic decomposition planning|novel|feature either
48 structured Crazy 8s classic combination feature|novel|unstuck either
49 theatrical Time Travel Talk Show playful perspective time-shift novel|personal either
50 theatrical Alien Anthropologist playful perspective diagnosis|unstuck|strategy either
51 theatrical Dream Fusion Laboratory signature constraint time-shift novel|unstuck either
52 theatrical Emotion Orchestra playful sensory perspective personal|strategy either
53 theatrical Parallel Universe Cafe playful constraint novel|unstuck either
54 theatrical Persona Journey signature perspective feature|strategy either
55 theatrical Devil's Advocate Courtroom signature inversion perspective strategy|diagnosis group
56 wild Chaos Engineering signature inversion constraint feature|diagnosis|strategy either
57 wild Guerrilla Gardening Ideas playful analogy strategy|unstuck either
58 wild Pirate Code Brainstorm playful combination analogy novel|unstuck either
59 wild Zombie Apocalypse Planning playful constraint feature|strategy|unstuck either
60 wild Drunk History Retelling playful perspective unstuck|diagnosis either
61 wild Anti-Solution signature inversion diagnosis|unstuck either
62 wild Elemental Forces playful perspective analogy novel|unstuck either
63 biomimetic Nature's Solutions signature analogy feature|novel either
64 biomimetic Ecosystem Thinking signature systems strategy|diagnosis either
65 biomimetic Evolutionary Pressure signature systems feature|novel either
66 biomimetic Predator & Prey signature perspective inversion strategy|feature either
67 biomimetic Metamorphosis Stages signature time-shift decomposition novel|strategy either
68 biomimetic Swarm Logic signature systems feature|strategy either
69 quantum Observer Effect signature systems perspective strategy|diagnosis either
70 quantum Entanglement Thinking signature systems diagnosis|strategy either
71 quantum Superposition Collapse signature convergence decomposition strategy|diagnosis either
72 quantum Relativity Frame Shift signature perspective strategy|novel either
73 quantum Field Lines signature systems strategy either
74 quantum Quantum Tunneling signature constraint unstuck|novel either
75 cultural Indigenous Wisdom signature perspective analogy personal|strategy|novel either
76 cultural Fusion Cuisine signature combination analogy novel either
77 cultural Ritual Innovation signature analogy novel|personal either
78 cultural Mythic Frameworks signature analogy perspective strategy|personal|novel either
79 cultural Proverb Mining signature analogy personal|strategy either
80 cultural Ancestor Council signature perspective personal|strategy either
81 cultural Trickster's Gambit playful inversion provocation unstuck|strategy either
82 absurdist Villain's Monologue playful inversion perspective diagnosis|strategy|unstuck either
83 absurdist Explain It to a Golden Retriever playful perspective unstuck|diagnosis|feature either
84 absurdist Infomercial at 3AM playful perspective strategy|novel either
85 absurdist Drunk Uncle at Thanksgiving playful perspective unstuck|diagnosis either
86 absurdist Cursed Genie playful inversion diagnosis|feature either
87 absurdist Three Rounds of Stupid playful provocation unstuck|novel either
88 constraint Kill the Crown Jewel signature constraint feature|strategy|unstuck either
89 constraint 1000x Budget signature constraint novel|strategy either
90 constraint Ship in 60 Minutes signature constraint feature|planning|unstuck either
91 constraint The $0 Mandate signature constraint planning|strategy|feature either
92 constraint One Feature Only signature constraint feature|strategy either
93 constraint Crank the Dial to 11 signature constraint novel|unstuck either
94 constraint Constraint Roulette signature constraint unstuck|feature either
95 speculative_future Time Horizon Ladder signature time-shift strategy|planning|novel either
96 speculative_future Post-Scarcity Test signature constraint novel|strategy either
97 speculative_future Utopia vs Dystopia Split-Screen signature perspective inversion strategy|diagnosis either
98 speculative_future Sci-Fi Artifact From the Future signature time-shift perspective novel|feature either
99 speculative_future Emerging Tech Collision signature combination novel|feature|strategy either
100 speculative_future What-If-The-World-Changed Card Flip signature constraint novel|unstuck either
101 speculative_future Future Anthropologist Dig signature time-shift perspective strategy|novel either
102 structured How Might We classic questioning feature|novel|strategy|diagnosis either
103 structured Job to Be Done classic perspective questioning feature|strategy|novel either
104 structured Empathy Map classic perspective feature|personal either
105 structured Backcasting classic time-shift strategy|planning|novel either
106 deep TRIZ Contradiction classic inversion decomposition feature|novel|diagnosis either
107 deep Fishbone Diagram classic decomposition systems diagnosis either
108 deep Build on What Works classic perspective systems personal|strategy either
109 speculative_future Scenario Cross classic constraint systems strategy|planning either

View File

@ -0,0 +1,166 @@
{
"categories": {
"creative": {
"hue": "#6d5cf0",
"glyph": "<g stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><line x1=\"22\" y1=\"6.5\" x2=\"22\" y2=\"12.5\"/><line x1=\"22\" y1=\"31.5\" x2=\"22\" y2=\"37.5\"/><line x1=\"6.5\" y1=\"22\" x2=\"12.5\" y2=\"22\"/><line x1=\"31.5\" y1=\"22\" x2=\"37.5\" y2=\"22\"/><line x1=\"11.3\" y1=\"11.3\" x2=\"15.5\" y2=\"15.5\"/><line x1=\"28.5\" y1=\"28.5\" x2=\"32.7\" y2=\"32.7\"/><line x1=\"32.7\" y1=\"11.3\" x2=\"28.5\" y2=\"15.5\"/><line x1=\"15.5\" y1=\"28.5\" x2=\"11.3\" y2=\"32.7\"/></g><circle cx=\"22\" cy=\"22\" r=\"6.6\" fill=\"currentColor\" fill-opacity=\"0.25\"/><circle cx=\"22\" cy=\"22\" r=\"3.6\" fill=\"currentColor\"/>"
},
"deep": {
"hue": "#4658c9",
"glyph": "<g fill=\"none\" stroke=\"currentColor\"><circle cx=\"22\" cy=\"22\" r=\"13\" stroke-width=\"1.5\" stroke-opacity=\"0.4\"/><circle cx=\"22\" cy=\"22\" r=\"9\" stroke-width=\"1.7\" stroke-opacity=\"0.7\"/><circle cx=\"22\" cy=\"22\" r=\"5\" stroke-width=\"1.9\"/></g><circle cx=\"22\" cy=\"22\" r=\"2.4\" fill=\"currentColor\"/>"
},
"structured": {
"hue": "#3b6ea5",
"glyph": "<g fill=\"currentColor\"><rect x=\"11\" y=\"11\" width=\"9.5\" height=\"9.5\" rx=\"2\"/><rect x=\"23.5\" y=\"11\" width=\"9.5\" height=\"9.5\" rx=\"2\" fill-opacity=\"0.25\"/><rect x=\"11\" y=\"23.5\" width=\"9.5\" height=\"9.5\" rx=\"2\" fill-opacity=\"0.25\"/><rect x=\"23.5\" y=\"23.5\" width=\"9.5\" height=\"9.5\" rx=\"2\"/></g>"
},
"quantum": {
"hue": "#2b86d9",
"glyph": "<g stroke=\"currentColor\" stroke-width=\"1.8\" fill=\"none\"><ellipse cx=\"22\" cy=\"22\" rx=\"14.5\" ry=\"6\" transform=\"rotate(28 22 22)\"/><ellipse cx=\"22\" cy=\"22\" rx=\"14.5\" ry=\"6\" transform=\"rotate(-28 22 22)\"/></g><circle cx=\"22\" cy=\"22\" r=\"6.6\" fill=\"currentColor\" fill-opacity=\"0.18\"/><circle cx=\"22\" cy=\"22\" r=\"3.4\" fill=\"currentColor\"/><circle cx=\"33.2\" cy=\"17.4\" r=\"2\" fill=\"currentColor\"/>"
},
"speculative_future": {
"hue": "#0fb5c9",
"glyph": "<g stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"><path d=\"M11 31 L 26.5 15.5\"/><path d=\"M20 14.5 H 28 V 22.5\"/></g><circle cx=\"31\" cy=\"12\" r=\"2.8\" fill=\"currentColor\"/><g stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"><line x1=\"31\" y1=\"6.5\" x2=\"31\" y2=\"8.4\"/><line x1=\"31\" y1=\"15.6\" x2=\"31\" y2=\"17.5\"/><line x1=\"25.5\" y1=\"12\" x2=\"27.4\" y2=\"12\"/><line x1=\"34.6\" y1=\"12\" x2=\"36.5\" y2=\"12\"/></g>"
},
"collaborative": {
"hue": "#15a3a3",
"glyph": "<g stroke=\"currentColor\" stroke-width=\"1.8\"><line x1=\"14\" y1=\"16\" x2=\"30\" y2=\"16\"/><line x1=\"14\" y1=\"16\" x2=\"22\" y2=\"30\"/><line x1=\"30\" y1=\"16\" x2=\"22\" y2=\"30\"/></g><g fill=\"currentColor\" fill-opacity=\"0.22\"><circle cx=\"14\" cy=\"16\" r=\"4.6\"/><circle cx=\"30\" cy=\"16\" r=\"4.6\"/><circle cx=\"22\" cy=\"30\" r=\"4.6\"/></g><g fill=\"currentColor\"><circle cx=\"14\" cy=\"16\" r=\"2.4\"/><circle cx=\"30\" cy=\"16\" r=\"2.4\"/><circle cx=\"22\" cy=\"30\" r=\"2.4\"/></g>"
},
"biomimetic": {
"hue": "#1f9d6b",
"glyph": "<path d=\"M22 7.5 C 31.5 12.5, 31.5 29, 22 36.5 C 12.5 29, 12.5 12.5, 22 7.5 Z\" fill=\"currentColor\" fill-opacity=\"0.22\"/><path d=\"M22 9 V 35.5\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" fill=\"none\"/><g stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M22 16 l5.6 -2.6\"/><path d=\"M22 16 l-5.6 -2.6\"/><path d=\"M22 22 l6.6 -2.6\"/><path d=\"M22 22 l-6.6 -2.6\"/><path d=\"M22 28 l5.6 -2.6\"/><path d=\"M22 28 l-5.6 -2.6\"/></g>"
},
"constraint": {
"hue": "#d9882b",
"glyph": "<g stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"><path d=\"M17 11 H 11 V 17\"/><path d=\"M27 11 H 33 V 17\"/><path d=\"M17 33 H 11 V 27\"/><path d=\"M27 33 H 33 V 27\"/></g><circle cx=\"22\" cy=\"22\" r=\"5\" fill=\"currentColor\" fill-opacity=\"0.25\"/><circle cx=\"22\" cy=\"22\" r=\"2.6\" fill=\"currentColor\"/>"
},
"wild": {
"hue": "#e2562f",
"glyph": "<path d=\"M24.5 6.5 L 12.5 24 H 19.5 L 17.5 37.5 L 31.5 18.5 H 24 L 24.5 6.5 Z\" fill=\"currentColor\"/>"
},
"cultural": {
"hue": "#c75b39",
"glyph": "<circle cx=\"22\" cy=\"22\" r=\"13.5\" fill=\"currentColor\" fill-opacity=\"0.14\"/><g stroke=\"currentColor\" stroke-width=\"1.6\" fill=\"none\"><circle cx=\"22\" cy=\"22\" r=\"13.5\"/><ellipse cx=\"22\" cy=\"22\" rx=\"6\" ry=\"13.5\"/><line x1=\"8.5\" y1=\"22\" x2=\"35.5\" y2=\"22\"/><path d=\"M11 15 H 33\" stroke-opacity=\"0.55\"/><path d=\"M11 29 H 33\" stroke-opacity=\"0.55\"/></g>"
},
"theatrical": {
"hue": "#cf4d6f",
"glyph": "<path d=\"M13 12 H 31 V 22 C 31 30, 27 35, 22 35 C 17 35, 13 30, 13 22 Z\" fill=\"currentColor\" fill-opacity=\"0.18\"/><path d=\"M13 12 H 31 V 22 C 31 30, 27 35, 22 35 C 17 35, 13 30, 13 22 Z\" stroke=\"currentColor\" stroke-width=\"1.8\" fill=\"none\"/><g fill=\"currentColor\"><circle cx=\"18.5\" cy=\"21\" r=\"1.7\"/><circle cx=\"25.5\" cy=\"21\" r=\"1.7\"/></g><path d=\"M18 27 C 20 29.5, 24 29.5, 26 27\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" fill=\"none\"/>"
},
"absurdist": {
"hue": "#e0529c",
"glyph": "<g transform=\"rotate(-12 22 22)\"><circle cx=\"22\" cy=\"22\" r=\"13\" fill=\"currentColor\" fill-opacity=\"0.14\"/><circle cx=\"22\" cy=\"22\" r=\"13\" stroke=\"currentColor\" stroke-width=\"1.6\" fill=\"none\"/><path d=\"M16 19 q 2 -2.4 4 0\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" fill=\"none\"/><circle cx=\"26.5\" cy=\"18.8\" r=\"1.8\" fill=\"currentColor\"/><path d=\"M16.5 26 C 19 30, 25 30, 28 24.5\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" fill=\"none\"/></g>"
},
"introspective_delight": {
"hue": "#b15ad6",
"glyph": "<circle cx=\"22\" cy=\"13.5\" r=\"4\" fill=\"currentColor\"/><path d=\"M10.5 31 C 12.5 23, 31.5 23, 33.5 31 Z\" fill=\"currentColor\" fill-opacity=\"0.22\"/><path d=\"M10.5 31 C 12.5 23, 31.5 23, 33.5 31\" stroke=\"currentColor\" stroke-width=\"1.7\" fill=\"none\"/><path d=\"M13.5 30 C 16 26.5, 20 25.5, 22 25.5 C 24 25.5, 28 26.5, 30.5 30\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-opacity=\"0.6\"/>"
}
},
"techniques": {
"Yes And Building": "<g fill=\"currentColor\"><rect x=\"8\" y=\"27\" width=\"12\" height=\"8\" rx=\"1.5\" fill-opacity=\".8\"/><rect x=\"14\" y=\"19\" width=\"12\" height=\"8\" rx=\"1.5\" fill-opacity=\".5\"/><rect x=\"20\" y=\"11\" width=\"12\" height=\"8\" rx=\"1.5\"/></g>",
"Brain Writing Round Robin": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M31 16 A10 10 0 1 0 32.5 22\"/><path d=\"M31 10 L31.5 16.3 L25 16.5\"/></g>",
"Random Stimulation": "<rect x=\"11\" y=\"11\" width=\"22\" height=\"22\" rx=\"4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><g fill=\"currentColor\"><circle cx=\"17\" cy=\"17\" r=\"1.8\"/><circle cx=\"27\" cy=\"17\" r=\"1.8\"/><circle cx=\"22\" cy=\"22\" r=\"1.8\"/><circle cx=\"17\" cy=\"27\" r=\"1.8\"/><circle cx=\"27\" cy=\"27\" r=\"1.8\"/></g>",
"Role Playing": "<rect x=\"11\" y=\"9\" width=\"22\" height=\"26\" rx=\"3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><circle cx=\"22\" cy=\"19\" r=\"4\" fill=\"currentColor\"/><path d=\"M15.5 30 c2 -4.5 11 -4.5 13 0\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>",
"Ideation Relay Race": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"12\" y1=\"31\" x2=\"27\" y2=\"16\"/><line x1=\"8\" y1=\"22\" x2=\"14\" y2=\"22\" stroke-opacity=\".5\"/><line x1=\"8\" y1=\"27\" x2=\"13\" y2=\"27\" stroke-opacity=\".35\"/></g><circle cx=\"29\" cy=\"14\" r=\"3.4\" fill=\"currentColor\"/>",
"Idea Hot Potato": "<path d=\"M11 31 Q22 8 33 31\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-dasharray=\"2 3.5\" stroke-linecap=\"round\"/><circle cx=\"22\" cy=\"12.5\" r=\"4.2\" fill=\"currentColor\"/>",
"Steal And Upgrade": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 33 V14\"/><path d=\"M13 21 L20 14 L27 21\"/></g><path d=\"M30 27 l1 2.6 2.6 1 -2.6 1 -1 2.6 -1 -2.6 -2.6 -1 2.6 -1 z\" fill=\"currentColor\"/>",
"Fold The Paper": "<path d=\"M13 16 L21 12 V28 L13 32 Z\" fill=\"currentColor\" fill-opacity=\".22\"/><path d=\"M21 12 L29 16 V32 L21 28 Z\" fill=\"currentColor\" fill-opacity=\".45\"/><path d=\"M13 16 L21 12 L29 16 M21 12 V28\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/>",
"What If Scenarios": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 17 a4 4 0 1 1 4 4 v3\"/></g><circle cx=\"22\" cy=\"30\" r=\"1.6\" fill=\"currentColor\"/>",
"Analogical Thinking": "<circle cx=\"15\" cy=\"22\" r=\"6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"25\" y=\"16\" width=\"12\" height=\"12\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M19 20 q2 2 0 4 M23 20 q-2 2 0 4\" stroke=\"currentColor\" stroke-width=\"1.6\" fill=\"none\"/>",
"First Principles Thinking": "<g fill=\"currentColor\"><rect x=\"10\" y=\"28\" width=\"8\" height=\"6\" rx=\"1\"/><rect x=\"18.5\" y=\"28\" width=\"8\" height=\"6\" rx=\"1\"/><rect x=\"27\" y=\"28\" width=\"7\" height=\"6\" rx=\"1\"/></g><path d=\"M22 25 L22 11 M16 17 L22 11 L28 17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>",
"Forced Relationships": "<circle cx=\"12\" cy=\"22\" r=\"3.4\" fill=\"currentColor\"/><circle cx=\"32\" cy=\"22\" r=\"3.4\" fill=\"currentColor\"/><path d=\"M15 22 q7 -9 14 0\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-dasharray=\"1.5 3\"/>",
"Time Shifting": "<circle cx=\"22\" cy=\"22\" r=\"12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M22 15 V22 L27 25\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>",
"Metaphor Mapping": "<rect x=\"10\" y=\"14\" width=\"14\" height=\"14\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><circle cx=\"28\" cy=\"25\" r=\"7\" fill=\"currentColor\" fill-opacity=\".22\"/><circle cx=\"28\" cy=\"25\" r=\"7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/>",
"Cross-Pollination": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 14 H27 a4 4 0 0 1 0 8 H17 a4 4 0 0 0 0 8 H31\"/><path d=\"M28 11 L31.5 14 L28 17 M16 27 L12.5 30 L16 33\"/></g>",
"Concept Blending": "<circle cx=\"18\" cy=\"22\" r=\"8\" fill=\"currentColor\" fill-opacity=\".25\"/><circle cx=\"26\" cy=\"22\" r=\"8\" fill=\"currentColor\" fill-opacity=\".25\"/><g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"18\" cy=\"22\" r=\"8\"/><circle cx=\"26\" cy=\"22\" r=\"8\"/></g>",
"Reverse Brainstorming": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 18 H28 a4 4 0 0 1 0 8 H16\"/><path d=\"M19 15 L13 18 L19 21 M22 23 L16 26 L22 29\"/></g>",
"Sensory Exploration": "<path d=\"M10 22 q12 -10 24 0 q-12 10 -24 0 z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"/><circle cx=\"22\" cy=\"22\" r=\"4\" fill=\"currentColor\"/>",
"Five Whys": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"14\" cy=\"13\" r=\"2.4\"/><circle cx=\"22\" cy=\"22\" r=\"2.4\"/><circle cx=\"30\" cy=\"31\" r=\"2.4\"/><path d=\"M15.6 14.8 L20.4 20.2 M23.6 23.8 L28.4 29.2\"/></g>",
"Provocation Technique": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M24 9 L13 24 H21 L19 35 L31 19 H23 Z\"/></g>",
"Assumption Reversal": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 14 V30\"/><path d=\"M11.5 25 L16 30 L20.5 25\"/><path d=\"M28 30 V14\"/><path d=\"M23.5 19 L28 14 L32.5 19\"/></g>",
"Question Storming": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 16 a3.2 3.2 0 1 1 3.2 3.2 v2\"/><path d=\"M26 13 a3.6 3.6 0 1 1 3.6 3.6 v2.4\"/></g><circle cx=\"17.2\" cy=\"27\" r=\"1.5\" fill=\"currentColor\"/><circle cx=\"29.6\" cy=\"25.6\" r=\"1.6\" fill=\"currentColor\"/>",
"Constraint Mapping": "<path d=\"M11 14 L18 12 L26 14 L33 12 V30 L26 32 L18 30 L11 32 Z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"/><path d=\"M18 12 V30 M26 14 V32\" stroke=\"currentColor\" stroke-width=\"1.6\"/>",
"Failure Analysis": "<circle cx=\"20\" cy=\"20\" r=\"8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><line x1=\"26\" y1=\"26\" x2=\"33\" y2=\"33\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"/><path d=\"M20 16 V21 M20 24 V24\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>",
"Emergent Thinking": "<g fill=\"currentColor\"><circle cx=\"11\" cy=\"31\" r=\"1.6\"/><circle cx=\"17\" cy=\"29\" r=\"1.6\"/><circle cx=\"16\" cy=\"23\" r=\"1.6\"/><circle cx=\"22\" cy=\"24\" r=\"1.8\"/><circle cx=\"23\" cy=\"17\" r=\"1.9\"/><circle cx=\"29\" cy=\"18\" r=\"1.7\"/><circle cx=\"28\" cy=\"12\" r=\"2.1\"/></g>",
"Causal Loop Mapping": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 16 a9 9 0 1 1 -2 12\"/><path d=\"M16 10.5 L16.5 16.5 L10.5 17\"/><path d=\"M30 28.5 L29.5 22.5 L35 22\"/></g>",
"Morphological Analysis": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><rect x=\"11\" y=\"11\" width=\"22\" height=\"22\" rx=\"2\"/><path d=\"M11 18.3 H33 M11 25.6 H33 M18.3 11 V33 M25.6 11 V33\"/></g><rect x=\"18.5\" y=\"18.5\" width=\"7\" height=\"7\" fill=\"currentColor\" fill-opacity=\".4\"/>",
"Laddering": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 9 V35 M28 9 V35 M16 15 H28 M16 22 H28 M16 29 H28\"/></g>",
"Inner Child Conference": "<circle cx=\"22\" cy=\"16\" r=\"6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M22 22 V31\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/><path d=\"M19 34 q3 -3 6 0\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/><g fill=\"currentColor\"><circle cx=\"20\" cy=\"15\" r=\"1\"/><circle cx=\"24\" cy=\"15\" r=\"1\"/></g>",
"Shadow Work Mining": "<circle cx=\"22\" cy=\"22\" r=\"12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M22 10 a12 12 0 0 1 0 24 z\" fill=\"currentColor\" fill-opacity=\".85\"/>",
"Values Archaeology": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M10 16 h24\" stroke-opacity=\".4\"/><path d=\"M10 22 h24\" stroke-opacity=\".6\"/></g><path d=\"M22 24 L16 30 L22 36 L28 30 Z\" fill=\"currentColor\"/>",
"Future Self Interview": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 10 H30 L24 22 L30 34 H14 L20 22 Z\"/></g><path d=\"M18 14 H26\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>",
"Body Wisdom Dialogue": "<path d=\"M22 33 C12 26 9 19 13.5 15 C17 12 21 14 22 17 C23 14 27 12 30.5 15 C35 19 32 26 22 33 Z\" fill=\"currentColor\" fill-opacity=\".22\"/><path d=\"M22 33 C12 26 9 19 13.5 15 C17 12 21 14 22 17 C23 14 27 12 30.5 15 C35 19 32 26 22 33 Z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/>",
"Permission Giving": "<rect x=\"10\" y=\"14\" width=\"24\" height=\"16\" rx=\"2.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M15 23 L19 27 L28 17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>",
"Secret Wish Confession": "<rect x=\"13\" y=\"20\" width=\"18\" height=\"14\" rx=\"2.5\" fill=\"currentColor\" fill-opacity=\".22\"/><rect x=\"13\" y=\"20\" width=\"18\" height=\"14\" rx=\"2.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M16.5 20 v-3 a5.5 5.5 0 0 1 11 0 v3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/>",
"Mood Weather Report": "<circle cx=\"17\" cy=\"17\" r=\"4.5\" fill=\"currentColor\" fill-opacity=\".5\"/><path d=\"M22 30 a5 5 0 0 1 0.5 -10 a6 6 0 0 1 11 2.5 a4 4 0 0 1 -1.5 7.5 z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"/>",
"SCAMPER Method": "<circle cx=\"22\" cy=\"22\" r=\"5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><g stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><path d=\"M22 9 V13.5 M22 30.5 V35 M9 22 H13.5 M30.5 22 H35 M12.8 12.8 L16 16 M28 28 L31.2 31.2 M31.2 12.8 L28 16 M16 28 L12.8 31.2\"/></g>",
"Six Thinking Hats": "<path d=\"M14 26 q8 -5 16 0\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/><path d=\"M17 26 q-6 1 -8 3 q13 4 26 0 q-2 -2 -8 -3\" fill=\"currentColor\" fill-opacity=\".22\"/><path d=\"M17 26 c-1 -8 11 -8 10 0\" fill=\"currentColor\" fill-opacity=\".5\"/>",
"Decision Tree Mapping": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"22\" cy=\"12\" r=\"2.6\"/><circle cx=\"14\" cy=\"32\" r=\"2.6\"/><circle cx=\"30\" cy=\"32\" r=\"2.6\"/><path d=\"M22 14.5 L22 20 M22 20 L14 29.4 M22 20 L30 29.4\"/></g>",
"Solution Matrix": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><rect x=\"11\" y=\"11\" width=\"22\" height=\"22\" rx=\"2\"/><path d=\"M11 22 H33 M22 11 V33\"/></g><path d=\"M24.5 14.5 L26.5 16.5 L30.5 12.5\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>",
"Trait Transfer": "<path d=\"M12 16 l1.6 3.4 3.6 .4 -2.7 2.5 .7 3.6 -3.2 -1.8 -3.2 1.8 .7 -3.6 -2.7 -2.5 3.6 -.4 z\" fill=\"currentColor\"/><rect x=\"25\" y=\"23\" width=\"9\" height=\"9\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M17 22 L25 27\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-dasharray=\"1.5 2.5\"/>",
"Lotus Blossom": "<g fill=\"currentColor\"><circle cx=\"22\" cy=\"22\" r=\"3.4\"/></g><g fill=\"currentColor\" fill-opacity=\".4\"><circle cx=\"22\" cy=\"13\" r=\"2.8\"/><circle cx=\"22\" cy=\"31\" r=\"2.8\"/><circle cx=\"13\" cy=\"22\" r=\"2.8\"/><circle cx=\"31\" cy=\"22\" r=\"2.8\"/><circle cx=\"15.5\" cy=\"15.5\" r=\"2.5\"/><circle cx=\"28.5\" cy=\"15.5\" r=\"2.5\"/><circle cx=\"15.5\" cy=\"28.5\" r=\"2.5\"/><circle cx=\"28.5\" cy=\"28.5\" r=\"2.5\"/></g>",
"Worst Possible Idea": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 11 v10 h-5 l10 12 10 -12 h-5 v-10 z\"/></g>",
"Disney Method": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"14\" cy=\"22\" r=\"4.5\"/><circle cx=\"22\" cy=\"22\" r=\"4.5\"/><circle cx=\"30\" cy=\"22\" r=\"4.5\"/></g>",
"Starbursting": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 8 V15 M22 29 V36 M8 22 H15 M29 22 H36 M12 12 L17 17 M27 27 L32 32 M32 12 L27 17 M12 32 L17 27\"/></g><path d=\"M19.5 19 a3.2 3.2 0 1 1 3 4 v1.2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/>",
"Mind Mapping": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"22\" cy=\"22\" r=\"4\"/><circle cx=\"11\" cy=\"13\" r=\"2.2\"/><circle cx=\"33\" cy=\"13\" r=\"2.2\"/><circle cx=\"10\" cy=\"28\" r=\"2.2\"/><circle cx=\"32\" cy=\"31\" r=\"2.2\"/><path d=\"M19 19.5 L12.5 14.5 M25 19.5 L31.5 14.5 M19 24.5 L11.5 27 M25.5 24 L30.5 29.5\"/></g>",
"Crazy 8s": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\"><rect x=\"9\" y=\"12\" width=\"8\" height=\"9\" rx=\"1.5\"/><rect x=\"18\" y=\"12\" width=\"8\" height=\"9\" rx=\"1.5\"/><rect x=\"27\" y=\"12\" width=\"8\" height=\"9\" rx=\"1.5\"/><rect x=\"9\" y=\"23\" width=\"8\" height=\"9\" rx=\"1.5\"/><rect x=\"18\" y=\"23\" width=\"8\" height=\"9\" rx=\"1.5\"/><rect x=\"27\" y=\"23\" width=\"8\" height=\"9\" rx=\"1.5\"/></g>",
"Time Travel Talk Show": "<rect x=\"18\" y=\"9\" width=\"8\" height=\"15\" rx=\"4\" fill=\"currentColor\" fill-opacity=\".25\"/><rect x=\"18\" y=\"9\" width=\"8\" height=\"15\" rx=\"4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M14 21 a8 8 0 0 0 16 0 M22 29 V34 M17 34 H27\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>",
"Alien Anthropologist": "<ellipse cx=\"22\" cy=\"30\" rx=\"13\" ry=\"4.5\" fill=\"currentColor\" fill-opacity=\".25\"/><path d=\"M22 11 c7 0 10 6 10 11 c0 5 -5 7 -10 7 c-5 0 -10 -2 -10 -7 c0 -5 3 -11 10 -11 z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><g fill=\"currentColor\"><ellipse cx=\"18\" cy=\"22\" rx=\"1.6\" ry=\"2.4\"/><ellipse cx=\"26\" cy=\"22\" rx=\"1.6\" ry=\"2.4\"/></g>",
"Dream Fusion Laboratory": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 9 H26 M19.5 9 V18 L13 30 a2 2 0 0 0 2 3 H29 a2 2 0 0 0 2 -3 L24.5 18 V9\"/></g><path d=\"M16.5 26 H27.5\" stroke=\"currentColor\" stroke-width=\"2\"/><circle cx=\"20\" cy=\"29\" r=\"1.4\" fill=\"currentColor\"/><circle cx=\"25\" cy=\"28\" r=\"1.1\" fill=\"currentColor\"/>",
"Emotion Orchestra": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 30 V15 L31 12 V27\"/><circle cx=\"14\" cy=\"30\" r=\"3\"/><circle cx=\"28\" cy=\"27\" r=\"3\"/></g>",
"Parallel Universe Cafe": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"18\" cy=\"22\" r=\"9\"/><circle cx=\"26\" cy=\"22\" r=\"9\" stroke-dasharray=\"2.5 2.5\"/></g>",
"Persona Journey": "<path d=\"M14 33 q-2 -8 6 -9 q8 -1 6 -8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-dasharray=\"0.1 4\"/><circle cx=\"14\" cy=\"33\" r=\"2.4\" fill=\"currentColor\"/><path d=\"M26 16 l3 -5 3 5 z\" fill=\"currentColor\"/>",
"Devil's Advocate Courtroom": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 10 V32 M14 32 H30\"/><path d=\"M11 16 H33 M11 16 L8 23 H14 Z M33 16 L30 23 H36 Z\"/></g>",
"Chaos Engineering": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 9 L25 18 L34 18 L27 24 L30 33 L22 27 L14 33 L17 24 L10 18 L19 18 Z\"/></g>",
"Guerrilla Gardening Ideas": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 33 V21\"/><path d=\"M22 22 c-7 0 -9 -6 -9 -9 c6 0 9 3 9 9 z\"/><path d=\"M22 24 c6 0 8 -4 8 -7 c-5 0 -8 2 -8 7 z\"/></g>",
"Pirate Code Brainstorm": "<path d=\"M22 10 c-7 0 -11 5 -11 11 c0 4 2 6 4 7 v4 h3 v-2 h2 v2 h4 v-2 h2 v2 h3 v-4 c2 -1 4 -3 4 -7 c0 -6 -4 -11 -11 -11 z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"/><g fill=\"currentColor\"><circle cx=\"17.5\" cy=\"21\" r=\"2.2\"/><circle cx=\"26.5\" cy=\"21\" r=\"2.2\"/></g>",
"Zombie Apocalypse Planning": "<circle cx=\"22\" cy=\"22\" r=\"4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 10 a12 12 0 0 1 6 3.5 M32 16 a12 12 0 0 1 0 12 M28 33.5 a12 12 0 0 1 -12 0 M12 28 a12 12 0 0 1 0 -12 M16 10.5 a12 12 0 0 1 6 -0.5\" stroke-dasharray=\"0.1 5.5\"/></g><g fill=\"currentColor\"><circle cx=\"22\" cy=\"11\" r=\"2\"/><circle cx=\"11\" cy=\"22\" r=\"2\"/><circle cx=\"33\" cy=\"22\" r=\"2\"/></g>",
"Drunk History Retelling": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 12 H31 L25 23 V31 H19 V23 Z\"/><path d=\"M19 31 H25\" /></g><circle cx=\"29\" cy=\"14\" r=\"1.4\" fill=\"currentColor\"/>",
"Anti-Solution": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 18 a8 8 0 1 1 -1 8\"/><path d=\"M14 12 L14 18.5 L20 18\"/></g>",
"Elemental Forces": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 8 L30 22 H14 Z\"/><path d=\"M14 30 L22 36 L30 30\"/><path d=\"M14 26 H30\"/></g>",
"Nature's Solutions": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 32 C12 24 12 20 16 12 M28 32 C32 24 32 20 28 12\"/><path d=\"M16 16 L28 14 M16 22 L28 20 M16 28 L28 26\"/></g>",
"Ecosystem Thinking": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"22\" cy=\"13\" r=\"2.4\"/><circle cx=\"12\" cy=\"27\" r=\"2.4\"/><circle cx=\"32\" cy=\"27\" r=\"2.4\"/><circle cx=\"22\" cy=\"24\" r=\"2.4\"/><path d=\"M22 15.4 V21.6 M14 26 L20 24.5 M30 26 L24 24.5 M13.6 25.2 L30.4 25.2\"/></g>",
"Evolutionary Pressure": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M11 31 H17 M19 31 a6 6 0 0 1 6 -6 M25 25 a5 5 0 0 1 5 -5 M30 20 H33\"/><circle cx=\"11\" cy=\"31\" r=\"2\" fill=\"currentColor\"/><circle cx=\"33\" cy=\"20\" r=\"2.6\" fill=\"currentColor\"/></g>",
"Predator & Prey": "<path d=\"M22 9 L33 14 V23 C33 30 28 34 22 36 C16 34 11 30 11 23 V14 Z\" fill=\"currentColor\" fill-opacity=\".18\"/><path d=\"M22 9 L33 14 V23 C33 30 28 34 22 36 C16 34 11 30 11 23 V14 Z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"/>",
"Metamorphosis Stages": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 12 V32\"/><path d=\"M22 16 C14 12 10 18 14 22 C10 26 14 32 22 28 C30 32 34 26 30 22 C34 18 30 12 22 16\"/></g>",
"Swarm Logic": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 10 L29 14 V22 L22 26 L15 22 V14 Z\"/><path d=\"M15 24 L18 33 M29 24 L26 33 M22 28 V35\" stroke-opacity=\".6\"/></g>",
"Observer Effect": "<path d=\"M9 22 q13 -10 26 0 q-13 10 -26 0 z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"/><circle cx=\"22\" cy=\"22\" r=\"4.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><circle cx=\"22\" cy=\"22\" r=\"1.8\" fill=\"currentColor\"/>",
"Entanglement Thinking": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"15\" cy=\"22\" r=\"6\"/><circle cx=\"29\" cy=\"22\" r=\"6\"/></g><path d=\"M15 22 h14\" stroke=\"currentColor\" stroke-width=\"2\" stroke-dasharray=\"1.5 2.5\"/><g fill=\"currentColor\"><circle cx=\"15\" cy=\"22\" r=\"1.8\"/><circle cx=\"29\" cy=\"22\" r=\"1.8\"/></g>",
"Superposition Collapse": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M11 12 C20 16 24 16 33 12 M11 18 C20 22 24 22 33 18 M11 24 C20 28 24 28 33 24\"/><path d=\"M22 26 V34\"/></g><circle cx=\"22\" cy=\"34\" r=\"2\" fill=\"currentColor\"/>",
"Relativity Frame Shift": "<rect x=\"11\" y=\"11\" width=\"22\" height=\"22\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-opacity=\".4\"/><rect x=\"15\" y=\"15\" width=\"18\" height=\"18\" rx=\"2\" transform=\"rotate(-14 22 22)\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/>",
"Field Lines": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 13 V31 M16 13 C24 18 24 26 16 31 M22 13 C32 18 32 26 22 31\"/></g><circle cx=\"11\" cy=\"22\" r=\"2\" fill=\"currentColor\"/>",
"Quantum Tunneling": "<rect x=\"20\" y=\"9\" width=\"5\" height=\"26\" rx=\"1.5\" fill=\"currentColor\" fill-opacity=\".3\"/><path d=\"M10 22 H34\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"/><path d=\"M28 17 L34 22 L28 27\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>",
"Indigenous Wisdom": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M26 11 C18 16 14 24 13 33 M26 11 C28 18 26 25 20 29\"/><path d=\"M26 11 C24 13 22 14 19 15 M24 16 C22 18 20 19 17 20 M22 21 C20 23 18 24 15 25\"/></g>",
"Fusion Cuisine": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M10 19 a12 7 0 0 0 24 0 Z\"/><path d=\"M22 19 V32 M16 32 H28\"/></g>",
"Ritual Innovation": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 33 V17 a10 10 0 0 1 20 0 V33\"/><path d=\"M12 33 H32 M22 33 V21\"/></g>",
"Mythic Frameworks": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 12 h13 a3 3 0 0 1 3 3 v17 l-3 -2 -3 2 -3 -2 -3 2 V15 a3 3 0 0 0 -3 -3 z\"/><path d=\"M14 12 a3 3 0 0 0 -3 3 h6\"/><path d=\"M20 18 H26 M20 23 H26\"/></g>",
"Proverb Mining": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 14 C17 10 11 11 11 11 V30 s6 -1 11 3 c5 -4 11 -3 11 -3 V11 s-6 -1 -11 3 z\"/><path d=\"M22 14 V31\"/></g>",
"Ancestor Council": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"22\" cy=\"14\" r=\"3.5\"/><circle cx=\"13\" cy=\"19\" r=\"3\"/><circle cx=\"31\" cy=\"19\" r=\"3\"/></g><g fill=\"currentColor\" fill-opacity=\".25\"><path d=\"M16 31 c0 -5 12 -5 12 0 z\"/><path d=\"M8 31 c0 -4 9 -4.5 9 0 z\"/><path d=\"M27 31 c0 -4.5 9 -4 9 0 z\"/></g>",
"Trickster's Gambit": "<rect x=\"11\" y=\"12\" width=\"13\" height=\"18\" rx=\"2\" transform=\"rotate(-10 17.5 21)\" fill=\"currentColor\" fill-opacity=\".2\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"20\" y=\"14\" width=\"13\" height=\"18\" rx=\"2\" transform=\"rotate(10 26.5 23)\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M26.5 19 l1.4 3 1.4 -3 -1.4 -1 z\" fill=\"currentColor\"/>",
"Villain's Monologue": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 20 C16 18 19 18 22 21 C25 18 28 18 32 20 C30 24 26 24 22 21 C18 24 14 24 12 20 Z\"/></g><circle cx=\"22\" cy=\"14\" r=\"2.4\" fill=\"currentColor\"/>",
"Explain It to a Golden Retriever": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 18 C12 12 17 13 18 17 M30 18 C32 12 27 13 26 17\"/><path d=\"M15 19 C13 28 18 33 22 33 C26 33 31 28 29 19 C26 16 18 16 15 19 Z\"/></g><g fill=\"currentColor\"><circle cx=\"19\" cy=\"24\" r=\"1.4\"/><circle cx=\"25\" cy=\"24\" r=\"1.4\"/><circle cx=\"22\" cy=\"28\" r=\"1.6\"/></g>",
"Infomercial at 3AM": "<rect x=\"9\" y=\"14\" width=\"26\" height=\"18\" rx=\"2.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M18 9 L22 14 L26 9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 19 l1 2.6 2.8 .2 -2.1 1.9 .7 2.7 -2.4 -1.5 -2.4 1.5 .7 -2.7 -2.1 -1.9 2.8 -.2 z\" fill=\"currentColor\"/>",
"Drunk Uncle at Thanksgiving": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M11 16 L20 16 L27 11 V29 L20 24 L11 24 Z\"/><path d=\"M30 16 q3 4 0 8 M33 13 q5 7 0 14\"/></g>",
"Cursed Genie": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M10 30 h18 a2 2 0 0 0 2 -2 c0 -5 -6 -5 -8 -8 c5 -1 8 -3 8 -3 c-4 -2 -12 -2 -16 1 c-4 3 -5 9 -4 12 z\"/><path d=\"M30 17 L33 14 M31 21 L35 20\" stroke-opacity=\".6\"/></g>",
"Three Rounds of Stupid": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 30 V20 M9 24 L13 20 L17 24 M22 30 V15 M18 19 L22 15 L26 19 M31 30 V11 M27 15 L31 11 L35 15\"/></g>",
"Kill the Crown Jewel": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M11 28 L13 15 L19 22 L22 12 L25 22 L31 15 L33 28 Z\"/><path d=\"M11 28 H33\"/></g><path d=\"M14 12 L30 32\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"/>",
"1000x Budget": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><ellipse cx=\"22\" cy=\"14\" rx=\"9\" ry=\"3.5\"/><path d=\"M13 14 V22 a9 3.5 0 0 0 18 0 V14\"/><path d=\"M13 22 V30 a9 3.5 0 0 0 18 0 V22\"/></g>",
"Ship in 60 Minutes": "<circle cx=\"22\" cy=\"24\" r=\"11\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M22 24 V17 M22 24 L27 27\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/><path d=\"M18 8 H26 M22 8 V13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>",
"The $0 Mandate": "<circle cx=\"22\" cy=\"22\" r=\"11\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M22 14 V30 M18 18 a4 3 0 0 1 8 0 a4 3 0 0 1 -8 4 a4 3 0 0 0 8 0\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/><path d=\"M14 30 L30 14\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"/>",
"One Feature Only": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"22\" cy=\"22\" r=\"4.5\"/><path d=\"M22 9 V13 M22 31 V35 M9 22 H13 M31 22 H35\" stroke-opacity=\".35\"/></g><circle cx=\"22\" cy=\"22\" r=\"2\" fill=\"currentColor\"/>",
"Crank the Dial to 11": "<path d=\"M11 28 A12 12 0 0 1 33 28\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/><path d=\"M22 28 L31 17\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"/><circle cx=\"22\" cy=\"28\" r=\"2.6\" fill=\"currentColor\"/>",
"Constraint Roulette": "<circle cx=\"22\" cy=\"22\" r=\"12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><circle cx=\"22\" cy=\"22\" r=\"12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-dasharray=\"3 3.7\" stroke-opacity=\".5\"/><circle cx=\"22\" cy=\"22\" r=\"3\" fill=\"currentColor\"/><path d=\"M22 7 L25 12 H19 Z\" fill=\"currentColor\"/>",
"Time Horizon Ladder": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 30 H35\"/><path d=\"M14 30 V24 M22 30 V18 M30 30 V12\"/></g><g fill=\"currentColor\"><circle cx=\"14\" cy=\"24\" r=\"2\"/><circle cx=\"22\" cy=\"18\" r=\"2\"/><circle cx=\"30\" cy=\"12\" r=\"2\"/></g>",
"Post-Scarcity Test": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 22 a4.5 4.5 0 1 1 4.5 4.5 C16 26.5 14 18 11 18 a3.5 3.5 0 0 0 0 7 c4 0 5 -8 11 -8 a4.5 4.5 0 0 1 0 9 c-3 0 -4 -4.5 -7 -4.5\"/></g>",
"Utopia vs Dystopia Split-Screen": "<rect x=\"11\" y=\"11\" width=\"22\" height=\"22\" rx=\"3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M22 11 V33\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M22 11 H33 a0 0 0 0 1 0 0 V33 H22 Z\" fill=\"currentColor\" fill-opacity=\".8\"/>",
"Sci-Fi Artifact From the Future": "<path d=\"M22 9 L33 15 V28 L22 35 L11 28 V15 Z\" fill=\"currentColor\" fill-opacity=\".15\"/><path d=\"M22 9 L33 15 V28 L22 35 L11 28 V15 Z M11 15 L22 21 L33 15 M22 21 V35\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"/>",
"Emerging Tech Collision": "<rect x=\"15\" y=\"15\" width=\"14\" height=\"14\" rx=\"2\" fill=\"currentColor\" fill-opacity=\".22\"/><rect x=\"15\" y=\"15\" width=\"14\" height=\"14\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><g stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M19 15 V10 M25 15 V10 M19 29 V34 M25 29 V34 M15 19 H10 M15 25 H10 M29 19 H34 M29 25 H34\"/></g>",
"What-If-The-World-Changed Card Flip": "<rect x=\"13\" y=\"10\" width=\"18\" height=\"24\" rx=\"2.5\" fill=\"currentColor\" fill-opacity=\".18\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M22 10 V34\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-dasharray=\"2 2.5\"/><path d=\"M27 16 a4 4 0 1 1 4 4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/>",
"Future Anthropologist Dig": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 27 a6 6 0 1 1 0.1 0 z\"/><path d=\"M22 23 a2.5 2.5 0 1 0 0.1 0 M19 30 a5 5 0 0 0 6 0\"/></g><path d=\"M12 16 L17 13 M32 16 L27 13\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-opacity=\".5\"/>",
"How Might We": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M11 13 H33 a2 2 0 0 1 2 2 V27 a2 2 0 0 1 -2 2 H24 L19 34 V29 H11 a2 2 0 0 1 -2 -2 V15 a2 2 0 0 1 2 -2 Z\"/></g><path d=\"M19 19 a3.2 3.2 0 1 1 3.4 3.4 v1.6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/><circle cx=\"22.4\" cy=\"27\" r=\"1.4\" fill=\"currentColor\"/>",
"Job to Be Done": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"16\" width=\"26\" height=\"16\" rx=\"2.5\"/><path d=\"M17 16 v-3 a2 2 0 0 1 2 -2 h6 a2 2 0 0 1 2 2 v3\"/><path d=\"M9 23 H35\"/></g><circle cx=\"22\" cy=\"23\" r=\"1.8\" fill=\"currentColor\"/>",
"Empathy Map": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><rect x=\"11\" y=\"11\" width=\"22\" height=\"22\" rx=\"2\"/><path d=\"M11 22 H33 M22 11 V33\"/></g><path d=\"M22 27 c-2.6 -2.1 -4.2 -3.4 -4.2 -5.2 a2.1 2.1 0 0 1 4.2 -1 a2.1 2.1 0 0 1 4.2 1 c0 1.8 -1.6 3.1 -4.2 5.2 z\" fill=\"currentColor\"/>",
"Backcasting": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M30 11 V33\"/></g><path d=\"M30 13 L20 16.5 L30 20 Z\" fill=\"currentColor\"/><path d=\"M28 27 H14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-dasharray=\"1.5 3\"/><path d=\"M18 23 L14 27 L18 31\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>",
"Scenario Cross": "<g stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M22 9 V35 M9 22 H35\"/></g><g fill=\"currentColor\"><circle cx=\"15\" cy=\"15\" r=\"2\"/><circle cx=\"29\" cy=\"15\" r=\"2\"/><circle cx=\"15\" cy=\"29\" r=\"2\"/><circle cx=\"29\" cy=\"29\" r=\"2\"/></g>",
"TRIZ Contradiction": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 15 H18 M14.5 11.5 L18 15 L14.5 18.5\"/><path d=\"M35 29 H26 M29.5 25.5 L26 29 L29.5 32.5\"/></g><path d=\"M22 17.5 l1.5 3.4 3.7 .3 -2.8 2.4 .9 3.6 -3.3 -1.9 -3.3 1.9 .9 -3.6 -2.8 -2.4 3.7 -.3 z\" fill=\"currentColor\"/>",
"Fishbone Diagram": "<g fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 22 H33\"/><path d=\"M33 22 L36 18.5 M33 22 L36 25.5\"/><path d=\"M14 22 L18 15 M14 22 L18 29 M23 22 L27 15 M23 22 L27 29\"/></g><circle cx=\"9\" cy=\"22\" r=\"1.9\" fill=\"currentColor\"/>",
"Build on What Works": "<g fill=\"currentColor\"><rect x=\"11\" y=\"24\" width=\"6\" height=\"9\" rx=\"1\"/><rect x=\"19\" y=\"19\" width=\"6\" height=\"14\" rx=\"1\"/><rect x=\"27\" y=\"13\" width=\"6\" height=\"20\" rx=\"1\"/></g><path d=\"M11 19 L18 13 L24 16 L33 8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 8 H33 V13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>"
}
}

View File

@ -1,101 +1,109 @@
category,technique_name,description,detail category,technique_name,description,detail,provenance,good_for,audience
collaborative,Yes And Building,"Never negate; each person opens with ""Yes, and..."" and adds to the last idea, stacking a chain of accepted additions", collaborative,Yes And Building,"Never negate; each person opens with ""Yes, and..."" and adds to the last idea, stacking a chain of accepted additions",,classic,novel|unstuck|planning,group
collaborative,Brain Writing Round Robin,"Everyone writes ideas silently, then passes their sheet; you build on whatever lands in front of you, round after round", collaborative,Brain Writing Round Robin,"Everyone writes ideas silently, then passes their sheet; you build on whatever lands in front of you, round after round",,classic,novel|feature,group
collaborative,Random Stimulation,"Pull a random word or image and force a link to the problem: ""how does THIS spark a solution?""", collaborative,Random Stimulation,"Pull a random word or image and force a link to the problem: ""how does THIS spark a solution?""",,classic,unstuck|novel,either
collaborative,Role Playing,"Each person speaks as a different stakeholder, voicing what that role wants, fears, and would demand of the idea", collaborative,Role Playing,"Each person speaks as a different stakeholder, voicing what that role wants, fears, and would demand of the idea",,classic,strategy|personal|feature,either
collaborative,Ideation Relay Race,"30-second turns, no pausing: add one idea, slap it to the next person, keep the baton moving before anyone overthinks", collaborative,Ideation Relay Race,"30-second turns, no pausing: add one idea, slap it to the next person, keep the baton moving before anyone overthinks",,playful,unstuck,group
collaborative,Idea Hot Potato,"One idea gets tossed around the circle; each catcher must mutate it in 10 seconds before passing, no repeats allowed", collaborative,Idea Hot Potato,"One idea gets tossed around the circle; each catcher must mutate it in 10 seconds before passing, no repeats allowed",,playful,unstuck,group
collaborative,Steal And Upgrade,"Pick a neighbor's idea you envy, claim it out loud, then make it visibly better before handing it back improved", collaborative,Steal And Upgrade,"Pick a neighbor's idea you envy, claim it out loud, then make it visibly better before handing it back improved",,signature,novel|unstuck,group
collaborative,Fold The Paper,"Each person adds one line to a hidden drawing or sentence, sees only the previous fragment, then unfold the surreal whole", collaborative,Fold The Paper,"Each person adds one line to a hidden drawing or sentence, sees only the previous fragment, then unfold the surreal whole",,playful,unstuck|novel,group
creative,What If Scenarios,"Detonate one constraint at a time — unlimited budget, opposite is true, problem vanished — and chase what rushes in", creative,What If Scenarios,"Detonate one constraint at a time — unlimited budget, opposite is true, problem vanished — and chase what rushes in",,signature,novel|strategy|unstuck,either
creative,Analogical Thinking,Ask 'this is like what?' and steal the solution pattern from the domain that answers, creative,Analogical Thinking,Ask 'this is like what?' and steal the solution pattern from the domain that answers,,signature,feature|novel|diagnosis,either
creative,First Principles Thinking,"Strip every assumption to bedrock facts, then rebuild the solution from scratch on truth alone", creative,First Principles Thinking,"Strip every assumption to bedrock facts, then rebuild the solution from scratch on truth alone",,classic,feature|novel|diagnosis|strategy,either
creative,Forced Relationships,Grab two unrelated things at random and force a bridge between them until an idea falls out, creative,Forced Relationships,Grab two unrelated things at random and force a bridge between them until an idea falls out,,signature,novel|unstuck,either
creative,Time Shifting,"Solve the problem as a 1900s artisan, then a 2150 colonist — harvest the era-bound constraints and tricks", creative,Time Shifting,"Solve the problem as a 1900s artisan, then a 2150 colonist — harvest the era-bound constraints and tricks",,signature,novel|unstuck,either
creative,Metaphor Mapping,"Declare the problem IS a chosen metaphor, extend the metaphor fully, map each part back to find insights", creative,Metaphor Mapping,"Declare the problem IS a chosen metaphor, extend the metaphor fully, map each part back to find insights",,signature,novel|diagnosis,either
creative,Cross-Pollination,"Ask how a wildly different industry — casinos, ERs, beekeeping — would crack this, then adapt their move", creative,Cross-Pollination,"Ask how a wildly different industry — casinos, ERs, beekeeping — would crack this, then adapt their move",,signature,novel|feature|strategy,either
creative,Concept Blending,"Fuse two concepts into one new hybrid category and name what the merger becomes, not just combines", creative,Concept Blending,"Fuse two concepts into one new hybrid category and name what the merger becomes, not just combines",,signature,novel,either
creative,Reverse Brainstorming,Generate problems instead of solutions — 'how could we make this fail?' — then mine each for its inverse, creative,Reverse Brainstorming,Generate problems instead of solutions — 'how could we make this fail?' — then mine each for its inverse,,classic,diagnosis|feature|unstuck,either
creative,Sensory Exploration,"Interrogate the idea through each sense — its taste, smell, sound, texture — to surface non-analytical angles", creative,Sensory Exploration,"Interrogate the idea through each sense — its taste, smell, sound, texture — to surface non-analytical angles",,signature,novel|unstuck,either
deep,Five Whys,"Ask ""why?"" five times in a chain, each answer feeding the next, until you hit the root cause beneath the symptom", deep,Five Whys,"Ask ""why?"" five times in a chain, each answer feeding the next, until you hit the root cause beneath the symptom",,classic,diagnosis,either
deep,Provocation Technique,"State something deliberately absurd, then mine it: ""how could this be useful?"" Extract the usable principle hiding inside", deep,Provocation Technique,"State something deliberately absurd, then mine it: ""how could this be useful?"" Extract the usable principle hiding inside",,classic,unstuck|novel,either
deep,Assumption Reversal,"List every assumption baked into the problem, flip each to its opposite, then rebuild a solution on the inverted foundation", deep,Assumption Reversal,"List every assumption baked into the problem, flip each to its opposite, then rebuild a solution on the inverted foundation",,classic,novel|diagnosis|strategy,either
deep,Question Storming,"Generate only questions about the problem, zero answers allowed, until the real problem worth solving comes into focus", deep,Question Storming,"Generate only questions about the problem, zero answers allowed, until the real problem worth solving comes into focus",,classic,diagnosis|strategy|unstuck,either
deep,Constraint Mapping,"Map every constraint, sort real from imagined, then attack each: dissolve it, route around it, or turn it into an asset", deep,Constraint Mapping,"Map every constraint, sort real from imagined, then attack each: dissolve it, route around it, or turn it into an asset",,signature,feature|strategy|diagnosis,either
deep,Failure Analysis,"Dissect a relevant failure: what broke, why it broke, what lesson it leaves, and how to apply that wisdom here", deep,Failure Analysis,"Dissect a relevant failure: what broke, why it broke, what lesson it leaves, and how to apply that wisdom here",,signature,diagnosis|strategy|feature,either
deep,Emergent Thinking,Stop forcing a solution; watch what patterns the system keeps producing and name what's trying to emerge on its own, deep,Emergent Thinking,Stop forcing a solution; watch what patterns the system keeps producing and name what's trying to emerge on its own,,signature,strategy|novel,either
deep,Causal Loop Mapping,"Diagram the feedback loops linking causes and effects, find the reinforcing and balancing cycles, and target the leverage point", deep,Causal Loop Mapping,"Diagram the feedback loops linking causes and effects, find the reinforcing and balancing cycles, and target the leverage point",,classic,diagnosis|strategy,either
deep,Morphological Analysis,"List the problem's independent parameters, generate options for each, then combine across them to surface untried configurations", deep,Morphological Analysis,"List the problem's independent parameters, generate options for each, then combine across them to surface untried configurations",,classic,feature|novel|planning,either
deep,Laddering,"Ask 'and what would that give you?' up the chain until you reach the real underlying need, then ideate fresh at that level", deep,Laddering,"Ask 'and what would that give you?' up the chain until you reach the real underlying need, then ideate fresh at that level",,classic,personal|strategy|diagnosis,either
introspective_delight,Inner Child Conference,"Answer as your 7-year-old self: ask naive 'why why why' questions, chase wonder, ban every boring adult thought", introspective_delight,Inner Child Conference,"Answer as your 7-year-old self: ask naive 'why why why' questions, chase wonder, ban every boring adult thought",,signature,personal|unstuck,solo
introspective_delight,Shadow Work Mining,"Name what you're avoiding, resisting, or scared of about this — then dig there for the buried insight", introspective_delight,Shadow Work Mining,"Name what you're avoiding, resisting, or scared of about this — then dig there for the buried insight",,signature,personal|diagnosis,solo
introspective_delight,Values Archaeology,Keep asking 'why do I care?' until you hit bedrock: the non-negotiable value secretly steering the choice, introspective_delight,Values Archaeology,Keep asking 'why do I care?' until you hit bedrock: the non-negotiable value secretly steering the choice,,signature,personal|strategy,solo
introspective_delight,Future Self Interview,Interview your wise 80-year-old self about this problem and write down the advice they give you, introspective_delight,Future Self Interview,Interview your wise 80-year-old self about this problem and write down the advice they give you,,signature,personal,solo
introspective_delight,Body Wisdom Dialogue,"Scan for the tension, flutter, or gut pull each option triggers; let the body's yes/no drive the ideas", introspective_delight,Body Wisdom Dialogue,"Scan for the tension, flutter, or gut pull each option triggers; let the body's yes/no drive the ideas",,signature,personal,solo
introspective_delight,Permission Giving,"Write yourself an explicit permission slip to think the forbidden, impossible thought — then think it out loud", introspective_delight,Permission Giving,"Write yourself an explicit permission slip to think the forbidden, impossible thought — then think it out loud",,signature,personal|unstuck,solo
introspective_delight,Secret Wish Confession,"Whisper the embarrassing thing you secretly want here but won't admit, then build the idea honoring it", introspective_delight,Secret Wish Confession,"Whisper the embarrassing thing you secretly want here but won't admit, then build the idea honoring it",,signature,personal,solo
introspective_delight,Mood Weather Report,"Name the inner weather right now (fog, storm, sun) and let that exact emotional climate generate the ideas", introspective_delight,Mood Weather Report,"Name the inner weather right now (fog, storm, sun) and let that exact emotional climate generate the ideas",,signature,personal|unstuck,solo
structured,SCAMPER Method,"Run your idea through seven lenses: Substitute, Combine, Adapt, Modify, Put-to-other-use, Eliminate, Reverse", structured,SCAMPER Method,"Run your idea through seven lenses: Substitute, Combine, Adapt, Modify, Put-to-other-use, Eliminate, Reverse",,classic,feature|novel,either
structured,Six Thinking Hats,"Examine the problem six ways one at a time: facts, feelings, benefits, risks, new ideas, process", structured,Six Thinking Hats,"Examine the problem six ways one at a time: facts, feelings, benefits, risks, new ideas, process",,classic,strategy|diagnosis|planning|personal,either
structured,Decision Tree Mapping,"Chart every choice point and the paths it forks into, following each branch to its outcome and risk", structured,Decision Tree Mapping,"Chart every choice point and the paths it forks into, following each branch to its outcome and risk",,signature,planning|strategy|diagnosis,either
structured,Solution Matrix,"Grid problem variables against solution approaches, score every cell, hunt the best pairings and empty gaps", structured,Solution Matrix,"Grid problem variables against solution approaches, score every cell, hunt the best pairings and empty gaps",,signature,feature|planning,either
structured,Trait Transfer,"Name what makes an unrelated success work, then graft those winning traits onto your own problem", structured,Trait Transfer,"Name what makes an unrelated success work, then graft those winning traits onto your own problem",,signature,novel|feature,either
structured,Lotus Blossom,"Put the theme at the center of a 3x3 grid, fill the 8 cells around it, then promote each of those to the center of its own new 3x3", structured,Lotus Blossom,"Put the theme at the center of a 3x3 grid, fill the 8 cells around it, then promote each of those to the center of its own new 3x3",,classic,feature|planning|novel,either
structured,Worst Possible Idea,"Deliberately generate the most terrible solutions you can, then flip each into what it teaches you to do right", structured,Worst Possible Idea,"Deliberately generate the most terrible solutions you can, then flip each into what it teaches you to do right",,classic,unstuck|novel,either
structured,Disney Method,"Cycle the idea through three rooms: Dreamer (anything goes), Realist (how we'd build it), Critic (what breaks)", structured,Disney Method,"Cycle the idea through three rooms: Dreamer (anything goes), Realist (how we'd build it), Critic (what breaks)",,classic,feature|strategy|planning,either
structured,Starbursting,"Interrogate the idea with only questions — who, what, where, when, why, how — exhaust each before answering any", structured,Starbursting,"Interrogate the idea with only questions — who, what, where, when, why, how — exhaust each before answering any",,classic,feature|planning|diagnosis,either
structured,Mind Mapping,"Branch the central topic outward, each node spawning children; follow tangents wherever they pull and let the web sprawl", structured,Mind Mapping,"Branch the central topic outward, each node spawning children; follow tangents wherever they pull and let the web sprawl",,classic,planning|novel|feature,either
structured,Crazy 8s,"Eight ideas in eight minutes, one per box, no editing — speed outruns your inner critic", structured,Crazy 8s,"Eight ideas in eight minutes, one per box, no editing — speed outruns your inner critic",,classic,feature|novel|unstuck,either
theatrical,Time Travel Talk Show,"Host a talk show interviewing your past, present, and future selves to mine each era for advice on the problem", theatrical,Time Travel Talk Show,"Host a talk show interviewing your past, present, and future selves to mine each era for advice on the problem",,playful,novel|personal,either
theatrical,Alien Anthropologist,"Become a baffled alien studying the problem and narrate aloud what seems strange, arbitrary, or insane about it", theatrical,Alien Anthropologist,"Become a baffled alien studying the problem and narrate aloud what seems strange, arbitrary, or insane about it",,playful,diagnosis|unstuck|strategy,either
theatrical,Dream Fusion Laboratory,"Voice the impossible fantasy solution first, then reverse-engineer the bridging steps back to reality", theatrical,Dream Fusion Laboratory,"Voice the impossible fantasy solution first, then reverse-engineer the bridging steps back to reality",,signature,novel|unstuck,either
theatrical,Emotion Orchestra,"Run a separate ideation round led by each emotion (rage, joy, fear, hope), then harmonize their conflicting ideas", theatrical,Emotion Orchestra,"Run a separate ideation round led by each emotion (rage, joy, fear, hope), then harmonize their conflicting ideas",,playful,personal|strategy,either
theatrical,Parallel Universe Cafe,"Rewrite one fundamental rule of reality (physics, economics, social norms) and solve the problem under those laws", theatrical,Parallel Universe Cafe,"Rewrite one fundamental rule of reality (physics, economics, social norms) and solve the problem under those laws",,playful,novel|unstuck,either
theatrical,Persona Journey,"Embody an archetype and solve the problem in-character, naming what that persona sees that you normally miss", theatrical,Persona Journey,"Embody an archetype and solve the problem in-character, naming what that persona sees that you normally miss",,signature,feature|strategy,either
theatrical,Devil's Advocate Courtroom,"Stage a trial: prosecute the idea, defend it, then deliver the jury verdict, each role argued fully in character", theatrical,Devil's Advocate Courtroom,"Stage a trial: prosecute the idea, defend it, then deliver the jury verdict, each role argued fully in character",,signature,strategy|diagnosis,group
wild,Chaos Engineering,"Deliberately break your idea every way it could fail, then rebuild only the parts that survive the wreckage", wild,Chaos Engineering,"Deliberately break your idea every way it could fail, then rebuild only the parts that survive the wreckage",,signature,feature|diagnosis|strategy,either
wild,Guerrilla Gardening Ideas,Plant your solution in the least expected place and let it grow underground until it surprises everyone, wild,Guerrilla Gardening Ideas,Plant your solution in the least expected place and let it grow underground until it surprises everyone,,playful,strategy|unstuck,either
wild,Pirate Code Brainstorm,"Steal the best bits from anywhere, remix without asking permission, grab what works and run", wild,Pirate Code Brainstorm,"Steal the best bits from anywhere, remix without asking permission, grab what works and run",,playful,novel|unstuck,either
wild,Zombie Apocalypse Planning,"Society just collapsed — strip your idea to only what survives with no power, no rules, no backup", wild,Zombie Apocalypse Planning,"Society just collapsed — strip your idea to only what survives with no power, no rules, no backup",,playful,feature|strategy|unstuck,either
wild,Drunk History Retelling,"Explain it like you're three drinks in: no filter, no jargon, just the raw stupid-simple truth", wild,Drunk History Retelling,"Explain it like you're three drinks in: no filter, no jargon, just the raw stupid-simple truth",,playful,unstuck|diagnosis,either
wild,Anti-Solution,"Brainstorm how to make the problem spectacularly worse, then invert every sabotage into a fix", wild,Anti-Solution,"Brainstorm how to make the problem spectacularly worse, then invert every sabotage into a fix",,signature,diagnosis|unstuck,either
wild,Elemental Forces,"Let fire, water, earth, and air each sculpt your idea their own brutal way and see what survives", wild,Elemental Forces,"Let fire, water, earth, and air each sculpt your idea their own brutal way and see what survives",,playful,novel|unstuck,either
biomimetic,Nature's Solutions,"Name an organism that already solved your problem, then copy its mechanism into your design", biomimetic,Nature's Solutions,"Name an organism that already solved your problem, then copy its mechanism into your design",,signature,feature|novel,either
biomimetic,Ecosystem Thinking,"Map your problem as an ecosystem: who eats whom, who partners, what decays, what fills the gaps", biomimetic,Ecosystem Thinking,"Map your problem as an ecosystem: who eats whom, who partners, what decays, what fills the gaps",,signature,strategy|diagnosis,either
biomimetic,Evolutionary Pressure,"Spawn many ugly variants, apply a brutal selection rule, breed the survivors, repeat until it adapts", biomimetic,Evolutionary Pressure,"Spawn many ugly variants, apply a brutal selection rule, breed the survivors, repeat until it adapts",,signature,feature|novel,either
biomimetic,Predator & Prey,"Pick a threat to your idea, then design the defense, camouflage, or escape an animal would evolve against it", biomimetic,Predator & Prey,"Pick a threat to your idea, then design the defense, camouflage, or escape an animal would evolve against it",,signature,strategy|feature,either
biomimetic,Metamorphosis Stages,"Force your idea through egg, larva, pupa, adult: a radically different form and purpose at each life stage", biomimetic,Metamorphosis Stages,"Force your idea through egg, larva, pupa, adult: a radically different form and purpose at each life stage",,signature,novel|strategy,either
biomimetic,Swarm Logic,Forbid the master plan: solve it with dumb local rules each agent follows so order emerges from the bottom up, biomimetic,Swarm Logic,Forbid the master plan: solve it with dumb local rules each agent follows so order emerges from the bottom up,,signature,feature|strategy,either
quantum,Observer Effect,"Ask how the act of watching, measuring, or shipping this idea changes the very thing you're trying to capture", quantum,Observer Effect,"Ask how the act of watching, measuring, or shipping this idea changes the very thing you're trying to capture",,signature,strategy|diagnosis,either
quantum,Entanglement Thinking,Pair two distant parts of the problem and insist a change in one instantly flips the other — surface the hidden linkage, quantum,Entanglement Thinking,Pair two distant parts of the problem and insist a change in one instantly flips the other — surface the hidden linkage,,signature,diagnosis|strategy,either
quantum,Superposition Collapse,"Hold all rival solutions alive at once, then name the one constraint that collapses them to a single winner", quantum,Superposition Collapse,"Hold all rival solutions alive at once, then name the one constraint that collapses them to a single winner",,signature,strategy|diagnosis,either
quantum,Relativity Frame Shift,"Re-run the idea from a wildly different observer's reference frame — the slow user, the rival, future-you — and see what warps", quantum,Relativity Frame Shift,"Re-run the idea from a wildly different observer's reference frame — the slow user, the rival, future-you — and see what warps",,signature,strategy|novel,either
quantum,Field Lines,Treat the goal as a charge and map the invisible forces pulling every stakeholder toward or away from it, quantum,Field Lines,Treat the goal as a charge and map the invisible forces pulling every stakeholder toward or away from it,,signature,strategy,either
quantum,Quantum Tunneling,"Assume the idea can pass straight through the 'impossible' barrier instead of over it — what's on the other side, reached cheaply", quantum,Quantum Tunneling,"Assume the idea can pass straight through the 'impossible' barrier instead of over it — what's on the other side, reached cheaply",,signature,unstuck|novel,either
cultural,Indigenous Wisdom,"Ask how an indigenous or traditional knowledge system would approach this — name the culture, channel its ancestral problem-solving", cultural,Indigenous Wisdom,"Ask how an indigenous or traditional knowledge system would approach this — name the culture, channel its ancestral problem-solving",,signature,personal|strategy|novel,either
cultural,Fusion Cuisine,Pick two unrelated cultures and force-blend their approaches; harvest the hybrid that neither alone would invent, cultural,Fusion Cuisine,Pick two unrelated cultures and force-blend their approaches; harvest the hybrid that neither alone would invent,,signature,novel,either
cultural,Ritual Innovation,"Redesign the idea as a ceremony — define the threshold, the gestures, the transformation participants undergo", cultural,Ritual Innovation,"Redesign the idea as a ceremony — define the threshold, the gestures, the transformation participants undergo",,signature,novel|personal,either
cultural,Mythic Frameworks,"Map the problem onto a myth: name the archetypes, find the parallel tale, let its structure dictate the resolution", cultural,Mythic Frameworks,"Map the problem onto a myth: name the archetypes, find the parallel tale, let its structure dictate the resolution",,signature,strategy|personal|novel,either
cultural,Proverb Mining,"Collect proverbs from many cultures on this theme, then build the solution from the one that clashes hardest with your assumptions", cultural,Proverb Mining,"Collect proverbs from many cultures on this theme, then build the solution from the one that clashes hardest with your assumptions",,signature,personal|strategy,either
cultural,Ancestor Council,"Convene three ancestors or elders from different traditions, voice each one's verdict on your idea, reconcile their disagreement", cultural,Ancestor Council,"Convene three ancestors or elders from different traditions, voice each one's verdict on your idea, reconcile their disagreement",,signature,personal|strategy,either
cultural,Trickster's Gambit,"Channel the trickster figure — coyote, Anansi, Loki — and solve it by cheating, inverting, or breaking the sacred rule", cultural,Trickster's Gambit,"Channel the trickster figure — coyote, Anansi, Loki — and solve it by cheating, inverting, or breaking the sacred rule",,playful,unstuck|strategy,either
absurdist,Villain's Monologue,Pitch your problem as an evil mastermind gloating about their scheme; the diabolical plan reveals the real solution, absurdist,Villain's Monologue,Pitch your problem as an evil mastermind gloating about their scheme; the diabolical plan reveals the real solution,,playful,diagnosis|strategy|unstuck,either
absurdist,Explain It to a Golden Retriever,"Re-pitch the idea to an excitable dog who only cares about treats, balls, and naps; keep only what survives", absurdist,Explain It to a Golden Retriever,"Re-pitch the idea to an excitable dog who only cares about treats, balls, and naps; keep only what survives",,playful,unstuck|diagnosis|feature,either
absurdist,Infomercial at 3AM,"Sell your half-baked idea as a desperate late-night infomercial: 'But wait, there's more!' until features fall out", absurdist,Infomercial at 3AM,"Sell your half-baked idea as a desperate late-night infomercial: 'But wait, there's more!' until features fall out",,playful,strategy|novel,either
absurdist,Drunk Uncle at Thanksgiving,"Have your loudest, least-filtered relative rant about the problem; mine the unhinged hot takes for buried truth", absurdist,Drunk Uncle at Thanksgiving,"Have your loudest, least-filtered relative rant about the problem; mine the unhinged hot takes for buried truth",,playful,unstuck|diagnosis,either
absurdist,Cursed Genie,"Make a wish, then let a malicious genie grant it in the most technically-correct disastrous way; patch each loophole", absurdist,Cursed Genie,"Make a wish, then let a malicious genie grant it in the most technically-correct disastrous way; patch each loophole",,playful,diagnosis|feature,either
absurdist,Three Rounds of Stupid,"Round 1 absurd ideas, Round 2 make each MORE absurd, Round 3 find the smallest serious thing hiding in the silliest", absurdist,Three Rounds of Stupid,"Round 1 absurd ideas, Round 2 make each MORE absurd, Round 3 find the smallest serious thing hiding in the silliest",,playful,unstuck|novel,either
constraint,Kill the Crown Jewel,"Delete the single best, most beloved feature — now redesign the whole thing to win without it", constraint,Kill the Crown Jewel,"Delete the single best, most beloved feature — now redesign the whole thing to win without it",,signature,feature|strategy|unstuck,either
constraint,1000x Budget,"Pretend money, time, and people are infinite — design the absurd version, then mine it for ideas you can actually steal", constraint,1000x Budget,"Pretend money, time, and people are infinite — design the absurd version, then mine it for ideas you can actually steal",,signature,novel|strategy,either
constraint,Ship in 60 Minutes,"You launch in one hour with what's already on hand — name what you cut, fake, or borrow to make it real", constraint,Ship in 60 Minutes,"You launch in one hour with what's already on hand — name what you cut, fake, or borrow to make it real",,signature,feature|planning|unstuck,either
constraint,The $0 Mandate,"Achieve the goal spending literally nothing — no tools, hires, or ads; only people, favors, and what you own", constraint,The $0 Mandate,"Achieve the goal spending literally nothing — no tools, hires, or ads; only people, favors, and what you own",,signature,planning|strategy|feature,either
constraint,One Feature Only,"You may keep exactly ONE capability and nothing else — pick it, then make that single thing unbelievably good", constraint,One Feature Only,"You may keep exactly ONE capability and nothing else — pick it, then make that single thing unbelievably good",,signature,feature|strategy,either
constraint,Crank the Dial to 11,"Pick one dimension and exaggerate it to a ludicrous extreme — fastest, biggest, cheapest, weirdest — and see what breaks open", constraint,Crank the Dial to 11,"Pick one dimension and exaggerate it to a ludicrous extreme — fastest, biggest, cheapest, weirdest — and see what breaks open",,signature,novel|unstuck,either
constraint,Constraint Roulette,"Each round draw a brutal random limit (no screens, half the team, one day) and re-solve under it; survivors become real ideas", constraint,Constraint Roulette,"Each round draw a brutal random limit (no screens, half the team, one day) and re-solve under it; survivors become real ideas",,signature,unstuck|feature,either
speculative_future,Time Horizon Ladder,"Solve the idea for 1 year out, then 10, then 100 — note what survives, breaks, or becomes absurd at each rung", speculative_future,Time Horizon Ladder,"Solve the idea for 1 year out, then 10, then 100 — note what survives, breaks, or becomes absurd at each rung",,signature,strategy|planning|novel,either
speculative_future,Post-Scarcity Test,"Assume the core constraint (money, energy, time, attention) is now infinite and free — what does the idea become", speculative_future,Post-Scarcity Test,"Assume the core constraint (money, energy, time, attention) is now infinite and free — what does the idea become",,signature,novel|strategy,either
speculative_future,Utopia vs Dystopia Split-Screen,Write the same future twice: the brochure where it went perfectly and the headline where it went horribly, speculative_future,Utopia vs Dystopia Split-Screen,Write the same future twice: the brochure where it went perfectly and the headline where it went horribly,,signature,strategy|diagnosis,either
speculative_future,Sci-Fi Artifact From the Future,"Describe one physical object, ad, or news clip from the world where this idea already won — reverse-engineer it", speculative_future,Sci-Fi Artifact From the Future,"Describe one physical object, ad, or news clip from the world where this idea already won — reverse-engineer it",,signature,novel|feature,either
speculative_future,Emerging Tech Collision,"Force-marry your idea to a frontier tech (AGI, fusion, neural implants, gene edit) and ask what new thing is born", speculative_future,Emerging Tech Collision,"Force-marry your idea to a frontier tech (AGI, fusion, neural implants, gene edit) and ask what new thing is born",,signature,novel|feature|strategy,either
speculative_future,What-If-The-World-Changed Card Flip,"Draw a wild world-shift (no privacy, half population, 200-yr lifespans) and redesign the idea to fit that world", speculative_future,What-If-The-World-Changed Card Flip,"Draw a wild world-shift (no privacy, half population, 200-yr lifespans) and redesign the idea to fit that world",,signature,novel|unstuck,either
speculative_future,Future Anthropologist Dig,"A scholar in 2200 unearths your idea as a relic — what do they conclude it reveals about us, and what replaced it", speculative_future,Future Anthropologist Dig,"A scholar in 2200 unearths your idea as a relic — what do they conclude it reveals about us, and what replaced it",,signature,strategy|novel,either
structured,How Might We,"Reframe the problem as a batch of 'How might we...' opportunity questions first, then ideate against the sharpest one",,classic,feature|novel|strategy|diagnosis,either
structured,Job to Be Done,"Ask what the user is really hiring this to do, then ideate around that underlying job, not the feature you assumed",,classic,feature|strategy|novel,either
structured,Empathy Map,"Map what the user says, thinks, does, and feels around the problem, then mine each quadrant for the unmet need",,classic,feature|personal,either
structured,Backcasting,"Fix the finished future in vivid detail, then work backward step by step to the one move you'd have to make first",,classic,strategy|planning|novel,either
deep,TRIZ Contradiction,"Name the core contradiction (what only improves by making something else worse), then brainstorm ways to win both instead of trading off",,classic,feature|novel|diagnosis,either
deep,Fishbone Diagram,"Branch the problem's spine into cause categories (people, process, tools, environment) and mine each bone for contributing causes",,classic,diagnosis,either
deep,Build on What Works,"Name what's already succeeding and why, then ideate how to amplify and extend it instead of fixing what's broken",,classic,personal|strategy,either
speculative_future,Scenario Cross,"Pick two high-impact uncertainties, cross them into four futures, and ideate the move that wins in every one",,classic,strategy|planning,either

1 category technique_name description detail provenance good_for audience
2 collaborative Yes And Building Never negate; each person opens with "Yes, and..." and adds to the last idea, stacking a chain of accepted additions classic novel|unstuck|planning group
3 collaborative Brain Writing Round Robin Everyone writes ideas silently, then passes their sheet; you build on whatever lands in front of you, round after round classic novel|feature group
4 collaborative Random Stimulation Pull a random word or image and force a link to the problem: "how does THIS spark a solution?" classic unstuck|novel either
5 collaborative Role Playing Each person speaks as a different stakeholder, voicing what that role wants, fears, and would demand of the idea classic strategy|personal|feature either
6 collaborative Ideation Relay Race 30-second turns, no pausing: add one idea, slap it to the next person, keep the baton moving before anyone overthinks playful unstuck group
7 collaborative Idea Hot Potato One idea gets tossed around the circle; each catcher must mutate it in 10 seconds before passing, no repeats allowed playful unstuck group
8 collaborative Steal And Upgrade Pick a neighbor's idea you envy, claim it out loud, then make it visibly better before handing it back improved signature novel|unstuck group
9 collaborative Fold The Paper Each person adds one line to a hidden drawing or sentence, sees only the previous fragment, then unfold the surreal whole playful unstuck|novel group
10 creative What If Scenarios Detonate one constraint at a time — unlimited budget, opposite is true, problem vanished — and chase what rushes in signature novel|strategy|unstuck either
11 creative Analogical Thinking Ask 'this is like what?' and steal the solution pattern from the domain that answers signature feature|novel|diagnosis either
12 creative First Principles Thinking Strip every assumption to bedrock facts, then rebuild the solution from scratch on truth alone classic feature|novel|diagnosis|strategy either
13 creative Forced Relationships Grab two unrelated things at random and force a bridge between them until an idea falls out signature novel|unstuck either
14 creative Time Shifting Solve the problem as a 1900s artisan, then a 2150 colonist — harvest the era-bound constraints and tricks signature novel|unstuck either
15 creative Metaphor Mapping Declare the problem IS a chosen metaphor, extend the metaphor fully, map each part back to find insights signature novel|diagnosis either
16 creative Cross-Pollination Ask how a wildly different industry — casinos, ERs, beekeeping — would crack this, then adapt their move signature novel|feature|strategy either
17 creative Concept Blending Fuse two concepts into one new hybrid category and name what the merger becomes, not just combines signature novel either
18 creative Reverse Brainstorming Generate problems instead of solutions — 'how could we make this fail?' — then mine each for its inverse classic diagnosis|feature|unstuck either
19 creative Sensory Exploration Interrogate the idea through each sense — its taste, smell, sound, texture — to surface non-analytical angles signature novel|unstuck either
20 deep Five Whys Ask "why?" five times in a chain, each answer feeding the next, until you hit the root cause beneath the symptom classic diagnosis either
21 deep Provocation Technique State something deliberately absurd, then mine it: "how could this be useful?" Extract the usable principle hiding inside classic unstuck|novel either
22 deep Assumption Reversal List every assumption baked into the problem, flip each to its opposite, then rebuild a solution on the inverted foundation classic novel|diagnosis|strategy either
23 deep Question Storming Generate only questions about the problem, zero answers allowed, until the real problem worth solving comes into focus classic diagnosis|strategy|unstuck either
24 deep Constraint Mapping Map every constraint, sort real from imagined, then attack each: dissolve it, route around it, or turn it into an asset signature feature|strategy|diagnosis either
25 deep Failure Analysis Dissect a relevant failure: what broke, why it broke, what lesson it leaves, and how to apply that wisdom here signature diagnosis|strategy|feature either
26 deep Emergent Thinking Stop forcing a solution; watch what patterns the system keeps producing and name what's trying to emerge on its own signature strategy|novel either
27 deep Causal Loop Mapping Diagram the feedback loops linking causes and effects, find the reinforcing and balancing cycles, and target the leverage point classic diagnosis|strategy either
28 deep Morphological Analysis List the problem's independent parameters, generate options for each, then combine across them to surface untried configurations classic feature|novel|planning either
29 deep Laddering Ask 'and what would that give you?' up the chain until you reach the real underlying need, then ideate fresh at that level classic personal|strategy|diagnosis either
30 introspective_delight Inner Child Conference Answer as your 7-year-old self: ask naive 'why why why' questions, chase wonder, ban every boring adult thought signature personal|unstuck solo
31 introspective_delight Shadow Work Mining Name what you're avoiding, resisting, or scared of about this — then dig there for the buried insight signature personal|diagnosis solo
32 introspective_delight Values Archaeology Keep asking 'why do I care?' until you hit bedrock: the non-negotiable value secretly steering the choice signature personal|strategy solo
33 introspective_delight Future Self Interview Interview your wise 80-year-old self about this problem and write down the advice they give you signature personal solo
34 introspective_delight Body Wisdom Dialogue Scan for the tension, flutter, or gut pull each option triggers; let the body's yes/no drive the ideas signature personal solo
35 introspective_delight Permission Giving Write yourself an explicit permission slip to think the forbidden, impossible thought — then think it out loud signature personal|unstuck solo
36 introspective_delight Secret Wish Confession Whisper the embarrassing thing you secretly want here but won't admit, then build the idea honoring it signature personal solo
37 introspective_delight Mood Weather Report Name the inner weather right now (fog, storm, sun) and let that exact emotional climate generate the ideas signature personal|unstuck solo
38 structured SCAMPER Method Run your idea through seven lenses: Substitute, Combine, Adapt, Modify, Put-to-other-use, Eliminate, Reverse classic feature|novel either
39 structured Six Thinking Hats Examine the problem six ways one at a time: facts, feelings, benefits, risks, new ideas, process classic strategy|diagnosis|planning|personal either
40 structured Decision Tree Mapping Chart every choice point and the paths it forks into, following each branch to its outcome and risk signature planning|strategy|diagnosis either
41 structured Solution Matrix Grid problem variables against solution approaches, score every cell, hunt the best pairings and empty gaps signature feature|planning either
42 structured Trait Transfer Name what makes an unrelated success work, then graft those winning traits onto your own problem signature novel|feature either
43 structured Lotus Blossom Put the theme at the center of a 3x3 grid, fill the 8 cells around it, then promote each of those to the center of its own new 3x3 classic feature|planning|novel either
44 structured Worst Possible Idea Deliberately generate the most terrible solutions you can, then flip each into what it teaches you to do right classic unstuck|novel either
45 structured Disney Method Cycle the idea through three rooms: Dreamer (anything goes), Realist (how we'd build it), Critic (what breaks) classic feature|strategy|planning either
46 structured Starbursting Interrogate the idea with only questions — who, what, where, when, why, how — exhaust each before answering any classic feature|planning|diagnosis either
47 structured Mind Mapping Branch the central topic outward, each node spawning children; follow tangents wherever they pull and let the web sprawl classic planning|novel|feature either
48 structured Crazy 8s Eight ideas in eight minutes, one per box, no editing — speed outruns your inner critic classic feature|novel|unstuck either
49 theatrical Time Travel Talk Show Host a talk show interviewing your past, present, and future selves to mine each era for advice on the problem playful novel|personal either
50 theatrical Alien Anthropologist Become a baffled alien studying the problem and narrate aloud what seems strange, arbitrary, or insane about it playful diagnosis|unstuck|strategy either
51 theatrical Dream Fusion Laboratory Voice the impossible fantasy solution first, then reverse-engineer the bridging steps back to reality signature novel|unstuck either
52 theatrical Emotion Orchestra Run a separate ideation round led by each emotion (rage, joy, fear, hope), then harmonize their conflicting ideas playful personal|strategy either
53 theatrical Parallel Universe Cafe Rewrite one fundamental rule of reality (physics, economics, social norms) and solve the problem under those laws playful novel|unstuck either
54 theatrical Persona Journey Embody an archetype and solve the problem in-character, naming what that persona sees that you normally miss signature feature|strategy either
55 theatrical Devil's Advocate Courtroom Stage a trial: prosecute the idea, defend it, then deliver the jury verdict, each role argued fully in character signature strategy|diagnosis group
56 wild Chaos Engineering Deliberately break your idea every way it could fail, then rebuild only the parts that survive the wreckage signature feature|diagnosis|strategy either
57 wild Guerrilla Gardening Ideas Plant your solution in the least expected place and let it grow underground until it surprises everyone playful strategy|unstuck either
58 wild Pirate Code Brainstorm Steal the best bits from anywhere, remix without asking permission, grab what works and run playful novel|unstuck either
59 wild Zombie Apocalypse Planning Society just collapsed — strip your idea to only what survives with no power, no rules, no backup playful feature|strategy|unstuck either
60 wild Drunk History Retelling Explain it like you're three drinks in: no filter, no jargon, just the raw stupid-simple truth playful unstuck|diagnosis either
61 wild Anti-Solution Brainstorm how to make the problem spectacularly worse, then invert every sabotage into a fix signature diagnosis|unstuck either
62 wild Elemental Forces Let fire, water, earth, and air each sculpt your idea their own brutal way and see what survives playful novel|unstuck either
63 biomimetic Nature's Solutions Name an organism that already solved your problem, then copy its mechanism into your design signature feature|novel either
64 biomimetic Ecosystem Thinking Map your problem as an ecosystem: who eats whom, who partners, what decays, what fills the gaps signature strategy|diagnosis either
65 biomimetic Evolutionary Pressure Spawn many ugly variants, apply a brutal selection rule, breed the survivors, repeat until it adapts signature feature|novel either
66 biomimetic Predator & Prey Pick a threat to your idea, then design the defense, camouflage, or escape an animal would evolve against it signature strategy|feature either
67 biomimetic Metamorphosis Stages Force your idea through egg, larva, pupa, adult: a radically different form and purpose at each life stage signature novel|strategy either
68 biomimetic Swarm Logic Forbid the master plan: solve it with dumb local rules each agent follows so order emerges from the bottom up signature feature|strategy either
69 quantum Observer Effect Ask how the act of watching, measuring, or shipping this idea changes the very thing you're trying to capture signature strategy|diagnosis either
70 quantum Entanglement Thinking Pair two distant parts of the problem and insist a change in one instantly flips the other — surface the hidden linkage signature diagnosis|strategy either
71 quantum Superposition Collapse Hold all rival solutions alive at once, then name the one constraint that collapses them to a single winner signature strategy|diagnosis either
72 quantum Relativity Frame Shift Re-run the idea from a wildly different observer's reference frame — the slow user, the rival, future-you — and see what warps signature strategy|novel either
73 quantum Field Lines Treat the goal as a charge and map the invisible forces pulling every stakeholder toward or away from it signature strategy either
74 quantum Quantum Tunneling Assume the idea can pass straight through the 'impossible' barrier instead of over it — what's on the other side, reached cheaply signature unstuck|novel either
75 cultural Indigenous Wisdom Ask how an indigenous or traditional knowledge system would approach this — name the culture, channel its ancestral problem-solving signature personal|strategy|novel either
76 cultural Fusion Cuisine Pick two unrelated cultures and force-blend their approaches; harvest the hybrid that neither alone would invent signature novel either
77 cultural Ritual Innovation Redesign the idea as a ceremony — define the threshold, the gestures, the transformation participants undergo signature novel|personal either
78 cultural Mythic Frameworks Map the problem onto a myth: name the archetypes, find the parallel tale, let its structure dictate the resolution signature strategy|personal|novel either
79 cultural Proverb Mining Collect proverbs from many cultures on this theme, then build the solution from the one that clashes hardest with your assumptions signature personal|strategy either
80 cultural Ancestor Council Convene three ancestors or elders from different traditions, voice each one's verdict on your idea, reconcile their disagreement signature personal|strategy either
81 cultural Trickster's Gambit Channel the trickster figure — coyote, Anansi, Loki — and solve it by cheating, inverting, or breaking the sacred rule playful unstuck|strategy either
82 absurdist Villain's Monologue Pitch your problem as an evil mastermind gloating about their scheme; the diabolical plan reveals the real solution playful diagnosis|strategy|unstuck either
83 absurdist Explain It to a Golden Retriever Re-pitch the idea to an excitable dog who only cares about treats, balls, and naps; keep only what survives playful unstuck|diagnosis|feature either
84 absurdist Infomercial at 3AM Sell your half-baked idea as a desperate late-night infomercial: 'But wait, there's more!' until features fall out playful strategy|novel either
85 absurdist Drunk Uncle at Thanksgiving Have your loudest, least-filtered relative rant about the problem; mine the unhinged hot takes for buried truth playful unstuck|diagnosis either
86 absurdist Cursed Genie Make a wish, then let a malicious genie grant it in the most technically-correct disastrous way; patch each loophole playful diagnosis|feature either
87 absurdist Three Rounds of Stupid Round 1 absurd ideas, Round 2 make each MORE absurd, Round 3 find the smallest serious thing hiding in the silliest playful unstuck|novel either
88 constraint Kill the Crown Jewel Delete the single best, most beloved feature — now redesign the whole thing to win without it signature feature|strategy|unstuck either
89 constraint 1000x Budget Pretend money, time, and people are infinite — design the absurd version, then mine it for ideas you can actually steal signature novel|strategy either
90 constraint Ship in 60 Minutes You launch in one hour with what's already on hand — name what you cut, fake, or borrow to make it real signature feature|planning|unstuck either
91 constraint The $0 Mandate Achieve the goal spending literally nothing — no tools, hires, or ads; only people, favors, and what you own signature planning|strategy|feature either
92 constraint One Feature Only You may keep exactly ONE capability and nothing else — pick it, then make that single thing unbelievably good signature feature|strategy either
93 constraint Crank the Dial to 11 Pick one dimension and exaggerate it to a ludicrous extreme — fastest, biggest, cheapest, weirdest — and see what breaks open signature novel|unstuck either
94 constraint Constraint Roulette Each round draw a brutal random limit (no screens, half the team, one day) and re-solve under it; survivors become real ideas signature unstuck|feature either
95 speculative_future Time Horizon Ladder Solve the idea for 1 year out, then 10, then 100 — note what survives, breaks, or becomes absurd at each rung signature strategy|planning|novel either
96 speculative_future Post-Scarcity Test Assume the core constraint (money, energy, time, attention) is now infinite and free — what does the idea become signature novel|strategy either
97 speculative_future Utopia vs Dystopia Split-Screen Write the same future twice: the brochure where it went perfectly and the headline where it went horribly signature strategy|diagnosis either
98 speculative_future Sci-Fi Artifact From the Future Describe one physical object, ad, or news clip from the world where this idea already won — reverse-engineer it signature novel|feature either
99 speculative_future Emerging Tech Collision Force-marry your idea to a frontier tech (AGI, fusion, neural implants, gene edit) and ask what new thing is born signature novel|feature|strategy either
100 speculative_future What-If-The-World-Changed Card Flip Draw a wild world-shift (no privacy, half population, 200-yr lifespans) and redesign the idea to fit that world signature novel|unstuck either
101 speculative_future Future Anthropologist Dig A scholar in 2200 unearths your idea as a relic — what do they conclude it reveals about us, and what replaced it signature strategy|novel either
102 structured How Might We Reframe the problem as a batch of 'How might we...' opportunity questions first, then ideate against the sharpest one classic feature|novel|strategy|diagnosis either
103 structured Job to Be Done Ask what the user is really hiring this to do, then ideate around that underlying job, not the feature you assumed classic feature|strategy|novel either
104 structured Empathy Map Map what the user says, thinks, does, and feels around the problem, then mine each quadrant for the unmet need classic feature|personal either
105 structured Backcasting Fix the finished future in vivid detail, then work backward step by step to the one move you'd have to make first classic strategy|planning|novel either
106 deep TRIZ Contradiction Name the core contradiction (what only improves by making something else worse), then brainstorm ways to win both instead of trading off classic feature|novel|diagnosis either
107 deep Fishbone Diagram Branch the problem's spine into cause categories (people, process, tools, environment) and mine each bone for contributing causes classic diagnosis either
108 deep Build on What Works Name what's already succeeding and why, then ideate how to amplify and extend it instead of fixing what's broken classic personal|strategy either
109 speculative_future Scenario Cross Pick two high-impact uncertainties, cross them into four futures, and ideate the move that wins in every one classic strategy|planning either

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,24 @@
# Converging: Narrow & Decide
Load this when divergence is spent and the user wants to narrow the field — or asks to "decide," "prioritize," "pick," or "make it real." The whole catalog is *divergent* by design (it generates); this is the deliberate opposite phase, and keeping the two apart is the point. Never run convergence while ideas are still flowing, and never let it leak into a generating batch — premature judgment is what kills good ideas. `{doc_workspace}/.memlog.md` is the canonical record; everything here works from it. Communicate in `{communication_language}`.
**Mode holds.** In **Facilitator** you run the convergence *on the user's verdicts* — you structure and prompt, they judge; never rank for them. In **Creative Partner** you weigh in too, each call logged by author. In **Ideate for me** you converge yourself and show the result, then offer to keep going.
## How to run it
First, reflect the field back: pull the live candidates from the memlog (include the odd and buried ones, not just the recent obvious ones) so there's a concrete set to work on. Then pick **one** convergence move that fits the goal — don't hand the user a menu of methods; choose the one that suits *this* decision and name it. Run it to a result, log the outcome, and stop when a clear short-list or single direction emerges.
Pick by what the decision needs:
- **Affinity Clustering** — when there are many scattered ideas: group them into themes, name each cluster, and surface the through-line. Often the right *first* move, to turn a pile into a handful.
- **ImpactEffort** — when the goal is action: place each candidate on impact vs effort; harvest high-impact / low-effort first, park the rest.
- **NUF Test** — when novelty matters: score each New, Useful, Feasible (110 each); the totals expose the quiet winners and the dazzling-but-doomed.
- **Forced Ranking / Dot Vote** — when you just need a ranked top-N: make the ideas compete, no ties; (a literal dot-vote when it's genuinely a group).
- **PMI (Plus / Minus / Interesting)** — when one strong candidate needs pressure-testing before commitment: list its pluses, minuses, and the merely-interesting, then judge.
- **MoSCoW** — when scoping a build: sort into Must / Should / Could / Won't-this-time.
Log the surviving directions and the reasoning with `python3 {skill-root}/scripts/memlog.py append --type decision --text "<one-line gist>"` (use `--by` in Creative Partner mode). Two or three convergence moves chained is fine (e.g. cluster → score the clusters); more than that is usually over-processing.
## Then finalize
Once a short-list or direction is settled, **load `references/finalize.md`** and run it last — synthesis, `status: complete`, and artifacts build on the decisions you just logged. Convergence narrows; finalize captures and ships. Do not set `status: complete` here — that belongs to finalize.

View File

@ -38,15 +38,22 @@ import sys
from pathlib import Path from pathlib import Path
DEFAULT_FILE = Path(__file__).resolve().parent.parent / "assets" / "brain-methods.csv" DEFAULT_FILE = Path(__file__).resolve().parent.parent / "assets" / "brain-methods.csv"
FIELDS = ("category", "technique_name", "description", "detail") FIELDS = ("category", "technique_name", "description", "detail", "provenance", "good_for", "audience")
# Optional columns beyond the original four — absent in older CSVs and in --extra
# overlays, so always read through .get/setdefault. `provenance` (classic|signature|
# playful) drives the "Proven & Professional" lead group; `good_for` (a |-separated
# list of goal tags) drives the browse page's goal filter; `audience` (solo|group|either)
# is advisory.
OPTIONAL_FIELDS = ("detail", "provenance", "good_for", "audience")
def load(file: Path) -> list[dict]: def load(file: Path) -> list[dict]:
with open(file, newline="", encoding="utf-8") as f: with open(file, newline="", encoding="utf-8") as f:
rows = list(csv.DictReader(f)) rows = list(csv.DictReader(f))
for r in rows: for r in rows:
r.setdefault("detail", "") for k in OPTIONAL_FIELDS:
r["detail"] = (r.get("detail") or "").strip() r.setdefault(k, "")
r[k] = (r.get(k) or "").strip()
return rows return rows
@ -64,6 +71,9 @@ def load_extra(file: Path) -> list[dict]:
"technique_name": str(item.get("technique_name", "")).strip(), "technique_name": str(item.get("technique_name", "")).strip(),
"description": str(item.get("description", "")).strip(), "description": str(item.get("description", "")).strip(),
"detail": str(item.get("detail") or "").strip(), "detail": str(item.get("detail") or "").strip(),
"provenance": str(item.get("provenance") or "").strip(),
"good_for": str(item.get("good_for") or "").strip(),
"audience": str(item.get("audience") or "").strip(),
}) })
return rows return rows
@ -140,145 +150,41 @@ def pretty(cat: str) -> str:
return cat.replace("_", " ").replace("-", " ").title() return cat.replace("_", " ").replace("-", " ").title()
# --- card visuals: a crafted duotone icon + hue per category --------------- # --- card visuals: a crafted duotone icon + hue per category, plus a per-technique icon ---
# Each card shows its category's icon (drawn in `currentColor`, which the CSS sets # The hues and SVG glyphs are *data*, not logic: they live in the icon sidecar
# to the category hue) plus a per-technique accent seeded by the technique name, so # (assets/brain-icons.json) so the catalog's visuals can be edited without touching code.
# every card is unique while staying on-theme. Hues span the wheel so categories # It maps category slug -> {hue, glyph} and technique name -> svg (inner markup, drawn in
# stay distinguishable; an unknown (user-added) category gets a hash-derived hue and # `currentColor` which the CSS sets to the category hue; the shared CHIP frame is added by
# a generic glyph, so custom catalogs still render. # the renderer). Anything missing falls back here — an unknown category gets a hash-derived
# hue + generic glyph, an unknown/not-yet-iconed technique a neutral mark — so custom
# catalogs always render.
_HUES = { ICON_FILE = DEFAULT_FILE.parent / "brain-icons.json"
"creative": "#6d5cf0",
"deep": "#4658c9",
"structured": "#3b6ea5",
"quantum": "#2b86d9",
"speculative_future": "#0fb5c9",
"collaborative": "#15a3a3",
"biomimetic": "#1f9d6b",
"constraint": "#d9882b",
"wild": "#e2562f",
"cultural": "#c75b39",
"theatrical": "#cf4d6f",
"absurdist": "#e0529c",
"introspective_delight": "#b15ad6",
}
CHIP = '<rect x="1.5" y="1.5" width="41" height="41" rx="12" fill="currentColor" fill-opacity="0.12"/>' CHIP = '<rect x="1.5" y="1.5" width="41" height="41" rx="12" fill="currentColor" fill-opacity="0.12"/>'
_GLYPHS = {
# idea starburst
"creative": (
'<g stroke="currentColor" stroke-width="2.4" stroke-linecap="round">'
'<line x1="22" y1="6.5" x2="22" y2="12.5"/><line x1="22" y1="31.5" x2="22" y2="37.5"/>'
'<line x1="6.5" y1="22" x2="12.5" y2="22"/><line x1="31.5" y1="22" x2="37.5" y2="22"/>'
'<line x1="11.3" y1="11.3" x2="15.5" y2="15.5"/><line x1="28.5" y1="28.5" x2="32.7" y2="32.7"/>'
'<line x1="32.7" y1="11.3" x2="28.5" y2="15.5"/><line x1="15.5" y1="28.5" x2="11.3" y2="32.7"/></g>'
'<circle cx="22" cy="22" r="6.6" fill="currentColor" fill-opacity="0.25"/>'
'<circle cx="22" cy="22" r="3.6" fill="currentColor"/>'
),
# nested depth rings
"deep": (
'<g fill="none" stroke="currentColor">'
'<circle cx="22" cy="22" r="13" stroke-width="1.5" stroke-opacity="0.4"/>'
'<circle cx="22" cy="22" r="9" stroke-width="1.7" stroke-opacity="0.7"/>'
'<circle cx="22" cy="22" r="5" stroke-width="1.9"/></g>'
'<circle cx="22" cy="22" r="2.4" fill="currentColor"/>'
),
# 2x2 blocks, diagonal filled
"structured": (
'<g fill="currentColor">'
'<rect x="11" y="11" width="9.5" height="9.5" rx="2"/>'
'<rect x="23.5" y="11" width="9.5" height="9.5" rx="2" fill-opacity="0.25"/>'
'<rect x="11" y="23.5" width="9.5" height="9.5" rx="2" fill-opacity="0.25"/>'
'<rect x="23.5" y="23.5" width="9.5" height="9.5" rx="2"/></g>'
),
# atom
"quantum": (
'<g stroke="currentColor" stroke-width="1.8" fill="none">'
'<ellipse cx="22" cy="22" rx="14.5" ry="6" transform="rotate(28 22 22)"/>'
'<ellipse cx="22" cy="22" rx="14.5" ry="6" transform="rotate(-28 22 22)"/></g>'
'<circle cx="22" cy="22" r="6.6" fill="currentColor" fill-opacity="0.18"/>'
'<circle cx="22" cy="22" r="3.4" fill="currentColor"/>'
'<circle cx="33.2" cy="17.4" r="2" fill="currentColor"/>'
),
# upward arrow to a twinkling star
"speculative_future": (
'<g stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" fill="none">'
'<path d="M11 31 L 26.5 15.5"/><path d="M20 14.5 H 28 V 22.5"/></g>'
'<circle cx="31" cy="12" r="2.8" fill="currentColor"/>'
'<g stroke="currentColor" stroke-width="1.4" stroke-linecap="round">'
'<line x1="31" y1="6.5" x2="31" y2="8.4"/><line x1="31" y1="15.6" x2="31" y2="17.5"/>'
'<line x1="25.5" y1="12" x2="27.4" y2="12"/><line x1="34.6" y1="12" x2="36.5" y2="12"/></g>'
),
# three linked nodes
"collaborative": (
'<g stroke="currentColor" stroke-width="1.8">'
'<line x1="14" y1="16" x2="30" y2="16"/><line x1="14" y1="16" x2="22" y2="30"/>'
'<line x1="30" y1="16" x2="22" y2="30"/></g>'
'<g fill="currentColor" fill-opacity="0.22">'
'<circle cx="14" cy="16" r="4.6"/><circle cx="30" cy="16" r="4.6"/><circle cx="22" cy="30" r="4.6"/></g>'
'<g fill="currentColor">'
'<circle cx="14" cy="16" r="2.4"/><circle cx="30" cy="16" r="2.4"/><circle cx="22" cy="30" r="2.4"/></g>'
),
# leaf
"biomimetic": (
'<path d="M22 7.5 C 31.5 12.5, 31.5 29, 22 36.5 C 12.5 29, 12.5 12.5, 22 7.5 Z" fill="currentColor" fill-opacity="0.22"/>'
'<path d="M22 9 V 35.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" fill="none"/>'
'<g stroke="currentColor" stroke-width="1.5" stroke-linecap="round">'
'<path d="M22 16 l5.6 -2.6"/><path d="M22 16 l-5.6 -2.6"/>'
'<path d="M22 22 l6.6 -2.6"/><path d="M22 22 l-6.6 -2.6"/>'
'<path d="M22 28 l5.6 -2.6"/><path d="M22 28 l-5.6 -2.6"/></g>'
),
# corner brackets framing a point
"constraint": (
'<g stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" fill="none">'
'<path d="M17 11 H 11 V 17"/><path d="M27 11 H 33 V 17"/>'
'<path d="M17 33 H 11 V 27"/><path d="M27 33 H 33 V 27"/></g>'
'<circle cx="22" cy="22" r="5" fill="currentColor" fill-opacity="0.25"/>'
'<circle cx="22" cy="22" r="2.6" fill="currentColor"/>'
),
# lightning bolt
"wild": (
'<path d="M24.5 6.5 L 12.5 24 H 19.5 L 17.5 37.5 L 31.5 18.5 H 24 L 24.5 6.5 Z" fill="currentColor"/>'
),
# globe
"cultural": (
'<circle cx="22" cy="22" r="13.5" fill="currentColor" fill-opacity="0.14"/>'
'<g stroke="currentColor" stroke-width="1.6" fill="none">'
'<circle cx="22" cy="22" r="13.5"/><ellipse cx="22" cy="22" rx="6" ry="13.5"/>'
'<line x1="8.5" y1="22" x2="35.5" y2="22"/>'
'<path d="M11 15 H 33" stroke-opacity="0.55"/><path d="M11 29 H 33" stroke-opacity="0.55"/></g>'
),
# theatre mask
"theatrical": (
'<path d="M13 12 H 31 V 22 C 31 30, 27 35, 22 35 C 17 35, 13 30, 13 22 Z" fill="currentColor" fill-opacity="0.18"/>'
'<path d="M13 12 H 31 V 22 C 31 30, 27 35, 22 35 C 17 35, 13 30, 13 22 Z" stroke="currentColor" stroke-width="1.8" fill="none"/>'
'<g fill="currentColor"><circle cx="18.5" cy="21" r="1.7"/><circle cx="25.5" cy="21" r="1.7"/></g>'
'<path d="M18 27 C 20 29.5, 24 29.5, 26 27" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" fill="none"/>'
),
# off-kilter winking grin
"absurdist": (
'<g transform="rotate(-12 22 22)">'
'<circle cx="22" cy="22" r="13" fill="currentColor" fill-opacity="0.14"/>'
'<circle cx="22" cy="22" r="13" stroke="currentColor" stroke-width="1.6" fill="none"/>'
'<path d="M16 19 q 2 -2.4 4 0" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" fill="none"/>'
'<circle cx="26.5" cy="18.8" r="1.8" fill="currentColor"/>'
'<path d="M16.5 26 C 19 30, 25 30, 28 24.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" fill="none"/></g>'
),
# meditating figure
"introspective_delight": (
'<circle cx="22" cy="13.5" r="4" fill="currentColor"/>'
'<path d="M10.5 31 C 12.5 23, 31.5 23, 33.5 31 Z" fill="currentColor" fill-opacity="0.22"/>'
'<path d="M10.5 31 C 12.5 23, 31.5 23, 33.5 31" stroke="currentColor" stroke-width="1.7" fill="none"/>'
'<path d="M13.5 30 C 16 26.5, 20 25.5, 22 25.5 C 24 25.5, 28 26.5, 30.5 30" stroke="currentColor" stroke-width="1.5" fill="none" stroke-opacity="0.6"/>'
),
}
_FALLBACK_GLYPH = ( _FALLBACK_GLYPH = (
'<circle cx="22" cy="22" r="11" fill="currentColor" fill-opacity="0.16"/>' '<circle cx="22" cy="22" r="11" fill="currentColor" fill-opacity="0.16"/>'
'<circle cx="22" cy="22" r="11" stroke="currentColor" stroke-width="1.6" fill="none"/>' '<circle cx="22" cy="22" r="11" stroke="currentColor" stroke-width="1.6" fill="none"/>'
'<circle cx="22" cy="22" r="3.4" fill="currentColor"/>' '<circle cx="22" cy="22" r="3.4" fill="currentColor"/>'
) )
_FALLBACK_TECH = (
'<rect x="15" y="15" width="14" height="14" rx="2.5" transform="rotate(45 22 22)" '
'fill="none" stroke="currentColor" stroke-width="2"/><circle cx="22" cy="22" r="2.4" fill="currentColor"/>'
)
def _load_icons(file: Path = ICON_FILE) -> tuple[dict, dict]:
"""Read the icon sidecar: (category slug -> {hue, glyph}, technique name -> svg).
A missing or malformed file is non-fatal everything then uses the fallbacks below."""
try:
data = json.loads(file.read_text(encoding="utf-8"))
except (OSError, ValueError):
return {}, {}
return (data.get("categories") or {}), (data.get("techniques") or {})
_CATEGORY_STYLES, _TECH_ICONS = _load_icons()
def _hsl_hex(deg: int, s: float, lt: float) -> str: def _hsl_hex(deg: int, s: float, lt: float) -> str:
@ -289,139 +195,14 @@ def _hsl_hex(deg: int, s: float, lt: float) -> str:
def category_style(cat: str) -> tuple[str, str]: def category_style(cat: str) -> tuple[str, str]:
"""(hue, glyph markup) for a category — crafted for the shipped set, derived for extras.""" """(hue, glyph markup) for a category — from the sidecar for the shipped set, derived for extras."""
if cat in _HUES: style = _CATEGORY_STYLES.get(cat)
return _HUES[cat], _GLYPHS.get(cat, _FALLBACK_GLYPH) if style and style.get("hue"):
return style["hue"], style.get("glyph") or _FALLBACK_GLYPH
deg = int(hashlib.md5(cat.encode("utf-8")).hexdigest(), 16) % 360 deg = int(hashlib.md5(cat.encode("utf-8")).hexdigest(), 16) % 360
return _hsl_hex(deg, 0.58, 0.52), _FALLBACK_GLYPH return _hsl_hex(deg, 0.58, 0.52), _FALLBACK_GLYPH
# A deliberately chosen line-icon depicting each specific technique. Drawn in
# `currentColor` (the category hue), consistent 2px stroke. Shown beside the shared
# category icon on every card. Unknown (custom) techniques fall back to a neutral mark.
_S = '<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">'
_FALLBACK_TECH = (
'<rect x="15" y="15" width="14" height="14" rx="2.5" transform="rotate(45 22 22)" '
'fill="none" stroke="currentColor" stroke-width="2"/><circle cx="22" cy="22" r="2.4" fill="currentColor"/>'
)
_TECH_ICONS = {
# --- collaborative ---
"Yes And Building": '<g fill="currentColor"><rect x="8" y="27" width="12" height="8" rx="1.5" fill-opacity=".8"/><rect x="14" y="19" width="12" height="8" rx="1.5" fill-opacity=".5"/><rect x="20" y="11" width="12" height="8" rx="1.5"/></g>',
"Brain Writing Round Robin": _S + '<path d="M31 16 A10 10 0 1 0 32.5 22"/><path d="M31 10 L31.5 16.3 L25 16.5"/></g>',
"Random Stimulation": '<rect x="11" y="11" width="22" height="22" rx="4" fill="none" stroke="currentColor" stroke-width="2"/><g fill="currentColor"><circle cx="17" cy="17" r="1.8"/><circle cx="27" cy="17" r="1.8"/><circle cx="22" cy="22" r="1.8"/><circle cx="17" cy="27" r="1.8"/><circle cx="27" cy="27" r="1.8"/></g>',
"Role Playing": '<rect x="11" y="9" width="22" height="26" rx="3" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="22" cy="19" r="4" fill="currentColor"/><path d="M15.5 30 c2 -4.5 11 -4.5 13 0" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>',
"Ideation Relay Race": _S + '<line x1="12" y1="31" x2="27" y2="16"/><line x1="8" y1="22" x2="14" y2="22" stroke-opacity=".5"/><line x1="8" y1="27" x2="13" y2="27" stroke-opacity=".35"/></g><circle cx="29" cy="14" r="3.4" fill="currentColor"/>',
"Idea Hot Potato": '<path d="M11 31 Q22 8 33 31" fill="none" stroke="currentColor" stroke-width="2" stroke-dasharray="2 3.5" stroke-linecap="round"/><circle cx="22" cy="12.5" r="4.2" fill="currentColor"/>',
"Steal And Upgrade": _S + '<path d="M20 33 V14"/><path d="M13 21 L20 14 L27 21"/></g><path d="M30 27 l1 2.6 2.6 1 -2.6 1 -1 2.6 -1 -2.6 -2.6 -1 2.6 -1 z" fill="currentColor"/>',
"Fold The Paper": '<path d="M13 16 L21 12 V28 L13 32 Z" fill="currentColor" fill-opacity=".22"/><path d="M21 12 L29 16 V32 L21 28 Z" fill="currentColor" fill-opacity=".45"/><path d="M13 16 L21 12 L29 16 M21 12 V28" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/>',
# --- creative ---
"What If Scenarios": _S + '<path d="M18 17 a4 4 0 1 1 4 4 v3"/></g><circle cx="22" cy="30" r="1.6" fill="currentColor"/>',
"Analogical Thinking": '<circle cx="15" cy="22" r="6" fill="none" stroke="currentColor" stroke-width="2"/><rect x="25" y="16" width="12" height="12" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M19 20 q2 2 0 4 M23 20 q-2 2 0 4" stroke="currentColor" stroke-width="1.6" fill="none"/>',
"First Principles Thinking": '<g fill="currentColor"><rect x="10" y="28" width="8" height="6" rx="1"/><rect x="18.5" y="28" width="8" height="6" rx="1"/><rect x="27" y="28" width="7" height="6" rx="1"/></g><path d="M22 25 L22 11 M16 17 L22 11 L28 17" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',
"Forced Relationships": '<circle cx="12" cy="22" r="3.4" fill="currentColor"/><circle cx="32" cy="22" r="3.4" fill="currentColor"/><path d="M15 22 q7 -9 14 0" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="1.5 3"/>',
"Time Shifting": '<circle cx="22" cy="22" r="12" fill="none" stroke="currentColor" stroke-width="2"/><path d="M22 15 V22 L27 25" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>',
"Metaphor Mapping": '<rect x="10" y="14" width="14" height="14" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="28" cy="25" r="7" fill="currentColor" fill-opacity=".22"/><circle cx="28" cy="25" r="7" fill="none" stroke="currentColor" stroke-width="2"/>',
"Cross-Pollination": _S + '<path d="M13 14 H27 a4 4 0 0 1 0 8 H17 a4 4 0 0 0 0 8 H31"/><path d="M28 11 L31.5 14 L28 17 M16 27 L12.5 30 L16 33"/></g>',
"Concept Blending": '<circle cx="18" cy="22" r="8" fill="currentColor" fill-opacity=".25"/><circle cx="26" cy="22" r="8" fill="currentColor" fill-opacity=".25"/><g fill="none" stroke="currentColor" stroke-width="2"><circle cx="18" cy="22" r="8"/><circle cx="26" cy="22" r="8"/></g>',
"Reverse Brainstorming": _S + '<path d="M13 18 H28 a4 4 0 0 1 0 8 H16"/><path d="M19 15 L13 18 L19 21 M22 23 L16 26 L22 29"/></g>',
"Sensory Exploration": '<path d="M10 22 q12 -10 24 0 q-12 10 -24 0 z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><circle cx="22" cy="22" r="4" fill="currentColor"/>',
# --- deep ---
"Five Whys": _S + '<circle cx="14" cy="13" r="2.4"/><circle cx="22" cy="22" r="2.4"/><circle cx="30" cy="31" r="2.4"/><path d="M15.6 14.8 L20.4 20.2 M23.6 23.8 L28.4 29.2"/></g>',
"Provocation Technique": _S + '<path d="M24 9 L13 24 H21 L19 35 L31 19 H23 Z"/></g>',
"Assumption Reversal": _S + '<path d="M16 14 V30"/><path d="M11.5 25 L16 30 L20.5 25"/><path d="M28 30 V14"/><path d="M23.5 19 L28 14 L32.5 19"/></g>',
"Question Storming": _S + '<path d="M14 16 a3.2 3.2 0 1 1 3.2 3.2 v2"/><path d="M26 13 a3.6 3.6 0 1 1 3.6 3.6 v2.4"/></g><circle cx="17.2" cy="27" r="1.5" fill="currentColor"/><circle cx="29.6" cy="25.6" r="1.6" fill="currentColor"/>',
"Constraint Mapping": '<path d="M11 14 L18 12 L26 14 L33 12 V30 L26 32 L18 30 L11 32 Z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><path d="M18 12 V30 M26 14 V32" stroke="currentColor" stroke-width="1.6"/>',
"Failure Analysis": '<circle cx="20" cy="20" r="8" fill="none" stroke="currentColor" stroke-width="2"/><line x1="26" y1="26" x2="33" y2="33" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><path d="M20 16 V21 M20 24 V24" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>',
"Emergent Thinking": '<g fill="currentColor"><circle cx="11" cy="31" r="1.6"/><circle cx="17" cy="29" r="1.6"/><circle cx="16" cy="23" r="1.6"/><circle cx="22" cy="24" r="1.8"/><circle cx="23" cy="17" r="1.9"/><circle cx="29" cy="18" r="1.7"/><circle cx="28" cy="12" r="2.1"/></g>',
"Causal Loop Mapping": _S + '<path d="M16 16 a9 9 0 1 1 -2 12"/><path d="M16 10.5 L16.5 16.5 L10.5 17"/><path d="M30 28.5 L29.5 22.5 L35 22"/></g>',
"Morphological Analysis": '<g fill="none" stroke="currentColor" stroke-width="1.8"><rect x="11" y="11" width="22" height="22" rx="2"/><path d="M11 18.3 H33 M11 25.6 H33 M18.3 11 V33 M25.6 11 V33"/></g><rect x="18.5" y="18.5" width="7" height="7" fill="currentColor" fill-opacity=".4"/>',
"Laddering": _S + '<path d="M16 9 V35 M28 9 V35 M16 15 H28 M16 22 H28 M16 29 H28"/></g>',
# --- introspective_delight ---
"Inner Child Conference": '<circle cx="22" cy="16" r="6" fill="none" stroke="currentColor" stroke-width="2"/><path d="M22 22 V31" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><path d="M19 34 q3 -3 6 0" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/><g fill="currentColor"><circle cx="20" cy="15" r="1"/><circle cx="24" cy="15" r="1"/></g>',
"Shadow Work Mining": '<circle cx="22" cy="22" r="12" fill="none" stroke="currentColor" stroke-width="2"/><path d="M22 10 a12 12 0 0 1 0 24 z" fill="currentColor" fill-opacity=".85"/>',
"Values Archaeology": '<g fill="none" stroke="currentColor" stroke-width="2"><path d="M10 16 h24" stroke-opacity=".4"/><path d="M10 22 h24" stroke-opacity=".6"/></g><path d="M22 24 L16 30 L22 36 L28 30 Z" fill="currentColor"/>',
"Future Self Interview": _S + '<path d="M14 10 H30 L24 22 L30 34 H14 L20 22 Z"/></g><path d="M18 14 H26" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>',
"Body Wisdom Dialogue": '<path d="M22 33 C12 26 9 19 13.5 15 C17 12 21 14 22 17 C23 14 27 12 30.5 15 C35 19 32 26 22 33 Z" fill="currentColor" fill-opacity=".22"/><path d="M22 33 C12 26 9 19 13.5 15 C17 12 21 14 22 17 C23 14 27 12 30.5 15 C35 19 32 26 22 33 Z" fill="none" stroke="currentColor" stroke-width="2"/>',
"Permission Giving": '<rect x="10" y="14" width="24" height="16" rx="2.5" fill="none" stroke="currentColor" stroke-width="2"/><path d="M15 23 L19 27 L28 17" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>',
"Secret Wish Confession": '<rect x="13" y="20" width="18" height="14" rx="2.5" fill="currentColor" fill-opacity=".22"/><rect x="13" y="20" width="18" height="14" rx="2.5" fill="none" stroke="currentColor" stroke-width="2"/><path d="M16.5 20 v-3 a5.5 5.5 0 0 1 11 0 v3" fill="none" stroke="currentColor" stroke-width="2"/>',
"Mood Weather Report": '<circle cx="17" cy="17" r="4.5" fill="currentColor" fill-opacity=".5"/><path d="M22 30 a5 5 0 0 1 0.5 -10 a6 6 0 0 1 11 2.5 a4 4 0 0 1 -1.5 7.5 z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/>',
# --- structured ---
"SCAMPER Method": '<circle cx="22" cy="22" r="5.5" fill="none" stroke="currentColor" stroke-width="2"/><g stroke="currentColor" stroke-width="2.4" stroke-linecap="round"><path d="M22 9 V13.5 M22 30.5 V35 M9 22 H13.5 M30.5 22 H35 M12.8 12.8 L16 16 M28 28 L31.2 31.2 M31.2 12.8 L28 16 M16 28 L12.8 31.2"/></g>',
"Six Thinking Hats": '<path d="M14 26 q8 -5 16 0" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><path d="M17 26 q-6 1 -8 3 q13 4 26 0 q-2 -2 -8 -3" fill="currentColor" fill-opacity=".22"/><path d="M17 26 c-1 -8 11 -8 10 0" fill="currentColor" fill-opacity=".5"/>',
"Decision Tree Mapping": _S + '<circle cx="22" cy="12" r="2.6"/><circle cx="14" cy="32" r="2.6"/><circle cx="30" cy="32" r="2.6"/><path d="M22 14.5 L22 20 M22 20 L14 29.4 M22 20 L30 29.4"/></g>',
"Solution Matrix": '<g fill="none" stroke="currentColor" stroke-width="1.8"><rect x="11" y="11" width="22" height="22" rx="2"/><path d="M11 22 H33 M22 11 V33"/></g><path d="M24.5 14.5 L26.5 16.5 L30.5 12.5" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/>',
"Trait Transfer": '<path d="M12 16 l1.6 3.4 3.6 .4 -2.7 2.5 .7 3.6 -3.2 -1.8 -3.2 1.8 .7 -3.6 -2.7 -2.5 3.6 -.4 z" fill="currentColor"/><rect x="25" y="23" width="9" height="9" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M17 22 L25 27" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="1.5 2.5"/>',
"Lotus Blossom": '<g fill="currentColor"><circle cx="22" cy="22" r="3.4"/></g><g fill="currentColor" fill-opacity=".4"><circle cx="22" cy="13" r="2.8"/><circle cx="22" cy="31" r="2.8"/><circle cx="13" cy="22" r="2.8"/><circle cx="31" cy="22" r="2.8"/><circle cx="15.5" cy="15.5" r="2.5"/><circle cx="28.5" cy="15.5" r="2.5"/><circle cx="15.5" cy="28.5" r="2.5"/><circle cx="28.5" cy="28.5" r="2.5"/></g>',
"Worst Possible Idea": _S + '<path d="M17 11 v10 h-5 l10 12 10 -12 h-5 v-10 z"/></g>',
"Disney Method": '<g fill="none" stroke="currentColor" stroke-width="2"><circle cx="14" cy="22" r="4.5"/><circle cx="22" cy="22" r="4.5"/><circle cx="30" cy="22" r="4.5"/></g>',
"Starbursting": _S + '<path d="M22 8 V15 M22 29 V36 M8 22 H15 M29 22 H36 M12 12 L17 17 M27 27 L32 32 M32 12 L27 17 M12 32 L17 27"/></g><path d="M19.5 19 a3.2 3.2 0 1 1 3 4 v1.2" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>',
"Mind Mapping": _S + '<circle cx="22" cy="22" r="4"/><circle cx="11" cy="13" r="2.2"/><circle cx="33" cy="13" r="2.2"/><circle cx="10" cy="28" r="2.2"/><circle cx="32" cy="31" r="2.2"/><path d="M19 19.5 L12.5 14.5 M25 19.5 L31.5 14.5 M19 24.5 L11.5 27 M25.5 24 L30.5 29.5"/></g>',
"Crazy 8s": '<g fill="none" stroke="currentColor" stroke-width="1.7"><rect x="9" y="12" width="8" height="9" rx="1.5"/><rect x="18" y="12" width="8" height="9" rx="1.5"/><rect x="27" y="12" width="8" height="9" rx="1.5"/><rect x="9" y="23" width="8" height="9" rx="1.5"/><rect x="18" y="23" width="8" height="9" rx="1.5"/><rect x="27" y="23" width="8" height="9" rx="1.5"/></g>',
# --- theatrical ---
"Time Travel Talk Show": '<rect x="18" y="9" width="8" height="15" rx="4" fill="currentColor" fill-opacity=".25"/><rect x="18" y="9" width="8" height="15" rx="4" fill="none" stroke="currentColor" stroke-width="2"/><path d="M14 21 a8 8 0 0 0 16 0 M22 29 V34 M17 34 H27" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>',
"Alien Anthropologist": '<ellipse cx="22" cy="30" rx="13" ry="4.5" fill="currentColor" fill-opacity=".25"/><path d="M22 11 c7 0 10 6 10 11 c0 5 -5 7 -10 7 c-5 0 -10 -2 -10 -7 c0 -5 3 -11 10 -11 z" fill="none" stroke="currentColor" stroke-width="2"/><g fill="currentColor"><ellipse cx="18" cy="22" rx="1.6" ry="2.4"/><ellipse cx="26" cy="22" rx="1.6" ry="2.4"/></g>',
"Dream Fusion Laboratory": _S + '<path d="M18 9 H26 M19.5 9 V18 L13 30 a2 2 0 0 0 2 3 H29 a2 2 0 0 0 2 -3 L24.5 18 V9"/></g><path d="M16.5 26 H27.5" stroke="currentColor" stroke-width="2"/><circle cx="20" cy="29" r="1.4" fill="currentColor"/><circle cx="25" cy="28" r="1.1" fill="currentColor"/>',
"Emotion Orchestra": _S + '<path d="M17 30 V15 L31 12 V27"/><circle cx="14" cy="30" r="3"/><circle cx="28" cy="27" r="3"/></g>',
"Parallel Universe Cafe": '<g fill="none" stroke="currentColor" stroke-width="2"><circle cx="18" cy="22" r="9"/><circle cx="26" cy="22" r="9" stroke-dasharray="2.5 2.5"/></g>',
"Persona Journey": '<path d="M14 33 q-2 -8 6 -9 q8 -1 6 -8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="0.1 4"/><circle cx="14" cy="33" r="2.4" fill="currentColor"/><path d="M26 16 l3 -5 3 5 z" fill="currentColor"/>',
"Devil's Advocate Courtroom": _S + '<path d="M22 10 V32 M14 32 H30"/><path d="M11 16 H33 M11 16 L8 23 H14 Z M33 16 L30 23 H36 Z"/></g>',
# --- wild ---
"Chaos Engineering": _S + '<path d="M22 9 L25 18 L34 18 L27 24 L30 33 L22 27 L14 33 L17 24 L10 18 L19 18 Z"/></g>',
"Guerrilla Gardening Ideas": _S + '<path d="M22 33 V21"/><path d="M22 22 c-7 0 -9 -6 -9 -9 c6 0 9 3 9 9 z"/><path d="M22 24 c6 0 8 -4 8 -7 c-5 0 -8 2 -8 7 z"/></g>',
"Pirate Code Brainstorm": '<path d="M22 10 c-7 0 -11 5 -11 11 c0 4 2 6 4 7 v4 h3 v-2 h2 v2 h4 v-2 h2 v2 h3 v-4 c2 -1 4 -3 4 -7 c0 -6 -4 -11 -11 -11 z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><g fill="currentColor"><circle cx="17.5" cy="21" r="2.2"/><circle cx="26.5" cy="21" r="2.2"/></g>',
"Zombie Apocalypse Planning": '<circle cx="22" cy="22" r="4" fill="none" stroke="currentColor" stroke-width="2"/><g fill="none" stroke="currentColor" stroke-width="2"><path d="M22 10 a12 12 0 0 1 6 3.5 M32 16 a12 12 0 0 1 0 12 M28 33.5 a12 12 0 0 1 -12 0 M12 28 a12 12 0 0 1 0 -12 M16 10.5 a12 12 0 0 1 6 -0.5" stroke-dasharray="0.1 5.5"/></g><g fill="currentColor"><circle cx="22" cy="11" r="2"/><circle cx="11" cy="22" r="2"/><circle cx="33" cy="22" r="2"/></g>',
"Drunk History Retelling": _S + '<path d="M13 12 H31 L25 23 V31 H19 V23 Z"/><path d="M19 31 H25" /></g><circle cx="29" cy="14" r="1.4" fill="currentColor"/>',
"Anti-Solution": _S + '<path d="M14 18 a8 8 0 1 1 -1 8"/><path d="M14 12 L14 18.5 L20 18"/></g>',
"Elemental Forces": _S + '<path d="M22 8 L30 22 H14 Z"/><path d="M14 30 L22 36 L30 30"/><path d="M14 26 H30"/></g>',
# --- biomimetic ---
"Nature's Solutions": _S + '<path d="M16 32 C12 24 12 20 16 12 M28 32 C32 24 32 20 28 12"/><path d="M16 16 L28 14 M16 22 L28 20 M16 28 L28 26"/></g>',
"Ecosystem Thinking": _S + '<circle cx="22" cy="13" r="2.4"/><circle cx="12" cy="27" r="2.4"/><circle cx="32" cy="27" r="2.4"/><circle cx="22" cy="24" r="2.4"/><path d="M22 15.4 V21.6 M14 26 L20 24.5 M30 26 L24 24.5 M13.6 25.2 L30.4 25.2"/></g>',
"Evolutionary Pressure": _S + '<path d="M11 31 H17 M19 31 a6 6 0 0 1 6 -6 M25 25 a5 5 0 0 1 5 -5 M30 20 H33"/><circle cx="11" cy="31" r="2" fill="currentColor"/><circle cx="33" cy="20" r="2.6" fill="currentColor"/></g>',
"Predator & Prey": '<path d="M22 9 L33 14 V23 C33 30 28 34 22 36 C16 34 11 30 11 23 V14 Z" fill="currentColor" fill-opacity=".18"/><path d="M22 9 L33 14 V23 C33 30 28 34 22 36 C16 34 11 30 11 23 V14 Z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/>',
"Metamorphosis Stages": _S + '<path d="M22 12 V32"/><path d="M22 16 C14 12 10 18 14 22 C10 26 14 32 22 28 C30 32 34 26 30 22 C34 18 30 12 22 16"/></g>',
"Swarm Logic": _S + '<path d="M22 10 L29 14 V22 L22 26 L15 22 V14 Z"/><path d="M15 24 L18 33 M29 24 L26 33 M22 28 V35" stroke-opacity=".6"/></g>',
# --- quantum ---
"Observer Effect": '<path d="M9 22 q13 -10 26 0 q-13 10 -26 0 z" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><circle cx="22" cy="22" r="4.5" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="22" cy="22" r="1.8" fill="currentColor"/>',
"Entanglement Thinking": '<g fill="none" stroke="currentColor" stroke-width="2"><circle cx="15" cy="22" r="6"/><circle cx="29" cy="22" r="6"/></g><path d="M15 22 h14" stroke="currentColor" stroke-width="2" stroke-dasharray="1.5 2.5"/><g fill="currentColor"><circle cx="15" cy="22" r="1.8"/><circle cx="29" cy="22" r="1.8"/></g>',
"Superposition Collapse": _S + '<path d="M11 12 C20 16 24 16 33 12 M11 18 C20 22 24 22 33 18 M11 24 C20 28 24 28 33 24"/><path d="M22 26 V34"/></g><circle cx="22" cy="34" r="2" fill="currentColor"/>',
"Relativity Frame Shift": '<rect x="11" y="11" width="22" height="22" rx="2" fill="none" stroke="currentColor" stroke-width="2" stroke-opacity=".4"/><rect x="15" y="15" width="18" height="18" rx="2" transform="rotate(-14 22 22)" fill="none" stroke="currentColor" stroke-width="2"/>',
"Field Lines": _S + '<path d="M12 13 V31 M16 13 C24 18 24 26 16 31 M22 13 C32 18 32 26 22 31"/></g><circle cx="11" cy="22" r="2" fill="currentColor"/>',
"Quantum Tunneling": '<rect x="20" y="9" width="5" height="26" rx="1.5" fill="currentColor" fill-opacity=".3"/><path d="M10 22 H34" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/><path d="M28 17 L34 22 L28 27" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>',
# --- cultural ---
"Indigenous Wisdom": _S + '<path d="M26 11 C18 16 14 24 13 33 M26 11 C28 18 26 25 20 29"/><path d="M26 11 C24 13 22 14 19 15 M24 16 C22 18 20 19 17 20 M22 21 C20 23 18 24 15 25"/></g>',
"Fusion Cuisine": _S + '<path d="M10 19 a12 7 0 0 0 24 0 Z"/><path d="M22 19 V32 M16 32 H28"/></g>',
"Ritual Innovation": _S + '<path d="M12 33 V17 a10 10 0 0 1 20 0 V33"/><path d="M12 33 H32 M22 33 V21"/></g>',
"Mythic Frameworks": _S + '<path d="M14 12 h13 a3 3 0 0 1 3 3 v17 l-3 -2 -3 2 -3 -2 -3 2 V15 a3 3 0 0 0 -3 -3 z"/><path d="M14 12 a3 3 0 0 0 -3 3 h6"/><path d="M20 18 H26 M20 23 H26"/></g>',
"Proverb Mining": _S + '<path d="M22 14 C17 10 11 11 11 11 V30 s6 -1 11 3 c5 -4 11 -3 11 -3 V11 s-6 -1 -11 3 z"/><path d="M22 14 V31"/></g>',
"Ancestor Council": '<g fill="none" stroke="currentColor" stroke-width="2"><circle cx="22" cy="14" r="3.5"/><circle cx="13" cy="19" r="3"/><circle cx="31" cy="19" r="3"/></g><g fill="currentColor" fill-opacity=".25"><path d="M16 31 c0 -5 12 -5 12 0 z"/><path d="M8 31 c0 -4 9 -4.5 9 0 z"/><path d="M27 31 c0 -4.5 9 -4 9 0 z"/></g>',
"Trickster's Gambit": '<rect x="11" y="12" width="13" height="18" rx="2" transform="rotate(-10 17.5 21)" fill="currentColor" fill-opacity=".2" stroke="currentColor" stroke-width="2"/><rect x="20" y="14" width="13" height="18" rx="2" transform="rotate(10 26.5 23)" fill="none" stroke="currentColor" stroke-width="2"/><path d="M26.5 19 l1.4 3 1.4 -3 -1.4 -1 z" fill="currentColor"/>',
# --- absurdist ---
"Villain's Monologue": _S + '<path d="M12 20 C16 18 19 18 22 21 C25 18 28 18 32 20 C30 24 26 24 22 21 C18 24 14 24 12 20 Z"/></g><circle cx="22" cy="14" r="2.4" fill="currentColor"/>',
"Explain It to a Golden Retriever": _S + '<path d="M14 18 C12 12 17 13 18 17 M30 18 C32 12 27 13 26 17"/><path d="M15 19 C13 28 18 33 22 33 C26 33 31 28 29 19 C26 16 18 16 15 19 Z"/></g><g fill="currentColor"><circle cx="19" cy="24" r="1.4"/><circle cx="25" cy="24" r="1.4"/><circle cx="22" cy="28" r="1.6"/></g>',
"Infomercial at 3AM": '<rect x="9" y="14" width="26" height="18" rx="2.5" fill="none" stroke="currentColor" stroke-width="2"/><path d="M18 9 L22 14 L26 9" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M22 19 l1 2.6 2.8 .2 -2.1 1.9 .7 2.7 -2.4 -1.5 -2.4 1.5 .7 -2.7 -2.1 -1.9 2.8 -.2 z" fill="currentColor"/>',
"Drunk Uncle at Thanksgiving": _S + '<path d="M11 16 L20 16 L27 11 V29 L20 24 L11 24 Z"/><path d="M30 16 q3 4 0 8 M33 13 q5 7 0 14"/></g>',
"Cursed Genie": _S + '<path d="M10 30 h18 a2 2 0 0 0 2 -2 c0 -5 -6 -5 -8 -8 c5 -1 8 -3 8 -3 c-4 -2 -12 -2 -16 1 c-4 3 -5 9 -4 12 z"/><path d="M30 17 L33 14 M31 21 L35 20" stroke-opacity=".6"/></g>',
"Three Rounds of Stupid": _S + '<path d="M13 30 V20 M9 24 L13 20 L17 24 M22 30 V15 M18 19 L22 15 L26 19 M31 30 V11 M27 15 L31 11 L35 15"/></g>',
# --- constraint ---
"Kill the Crown Jewel": _S + '<path d="M11 28 L13 15 L19 22 L22 12 L25 22 L31 15 L33 28 Z"/><path d="M11 28 H33"/></g><path d="M14 12 L30 32" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/>',
"1000x Budget": '<g fill="none" stroke="currentColor" stroke-width="2"><ellipse cx="22" cy="14" rx="9" ry="3.5"/><path d="M13 14 V22 a9 3.5 0 0 0 18 0 V14"/><path d="M13 22 V30 a9 3.5 0 0 0 18 0 V22"/></g>',
"Ship in 60 Minutes": '<circle cx="22" cy="24" r="11" fill="none" stroke="currentColor" stroke-width="2"/><path d="M22 24 V17 M22 24 L27 27" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><path d="M18 8 H26 M22 8 V13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>',
"The $0 Mandate": '<circle cx="22" cy="22" r="11" fill="none" stroke="currentColor" stroke-width="2"/><path d="M22 14 V30 M18 18 a4 3 0 0 1 8 0 a4 3 0 0 1 -8 4 a4 3 0 0 0 8 0" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/><path d="M14 30 L30 14" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/>',
"One Feature Only": _S + '<circle cx="22" cy="22" r="4.5"/><path d="M22 9 V13 M22 31 V35 M9 22 H13 M31 22 H35" stroke-opacity=".35"/></g><circle cx="22" cy="22" r="2" fill="currentColor"/>',
"Crank the Dial to 11": '<path d="M11 28 A12 12 0 0 1 33 28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><path d="M22 28 L31 17" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/><circle cx="22" cy="28" r="2.6" fill="currentColor"/>',
"Constraint Roulette": '<circle cx="22" cy="22" r="12" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="22" cy="22" r="12" fill="none" stroke="currentColor" stroke-width="2" stroke-dasharray="3 3.7" stroke-opacity=".5"/><circle cx="22" cy="22" r="3" fill="currentColor"/><path d="M22 7 L25 12 H19 Z" fill="currentColor"/>',
# --- speculative_future ---
"Time Horizon Ladder": _S + '<path d="M9 30 H35"/><path d="M14 30 V24 M22 30 V18 M30 30 V12"/></g><g fill="currentColor"><circle cx="14" cy="24" r="2"/><circle cx="22" cy="18" r="2"/><circle cx="30" cy="12" r="2"/></g>',
"Post-Scarcity Test": _S + '<path d="M15 22 a4.5 4.5 0 1 1 4.5 4.5 C16 26.5 14 18 11 18 a3.5 3.5 0 0 0 0 7 c4 0 5 -8 11 -8 a4.5 4.5 0 0 1 0 9 c-3 0 -4 -4.5 -7 -4.5"/></g>',
"Utopia vs Dystopia Split-Screen": '<rect x="11" y="11" width="22" height="22" rx="3" fill="none" stroke="currentColor" stroke-width="2"/><path d="M22 11 V33" stroke="currentColor" stroke-width="2"/><path d="M22 11 H33 a0 0 0 0 1 0 0 V33 H22 Z" fill="currentColor" fill-opacity=".8"/>',
"Sci-Fi Artifact From the Future": '<path d="M22 9 L33 15 V28 L22 35 L11 28 V15 Z" fill="currentColor" fill-opacity=".15"/><path d="M22 9 L33 15 V28 L22 35 L11 28 V15 Z M11 15 L22 21 L33 15 M22 21 V35" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/>',
"Emerging Tech Collision": '<rect x="15" y="15" width="14" height="14" rx="2" fill="currentColor" fill-opacity=".22"/><rect x="15" y="15" width="14" height="14" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><g stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M19 15 V10 M25 15 V10 M19 29 V34 M25 29 V34 M15 19 H10 M15 25 H10 M29 19 H34 M29 25 H34"/></g>',
"What-If-The-World-Changed Card Flip": '<rect x="13" y="10" width="18" height="24" rx="2.5" fill="currentColor" fill-opacity=".18" stroke="currentColor" stroke-width="2"/><path d="M22 10 V34" stroke="currentColor" stroke-width="1.6" stroke-dasharray="2 2.5"/><path d="M27 16 a4 4 0 1 1 4 4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>',
"Future Anthropologist Dig": _S + '<path d="M22 27 a6 6 0 1 1 0.1 0 z"/><path d="M22 23 a2.5 2.5 0 1 0 0.1 0 M19 30 a5 5 0 0 0 6 0"/></g><path d="M12 16 L17 13 M32 16 L27 13" stroke="currentColor" stroke-width="1.6" stroke-opacity=".5"/>',
}
def tech_icon(name: str) -> str: def tech_icon(name: str) -> str:
"""The hand-picked line-icon for a specific technique (neutral mark if unknown).""" """The hand-picked line-icon for a specific technique (neutral mark if unknown)."""
return _TECH_ICONS.get(name, _FALLBACK_TECH) return _TECH_ICONS.get(name, _FALLBACK_TECH)
@ -505,6 +286,18 @@ SELECTOR_TEMPLATE = r"""<!DOCTYPE html>
.tech .ico { width:40px; height:40px; flex:none; color:var(--c); } .tech .ico { width:40px; height:40px; flex:none; color:var(--c); }
.tech .n { font-weight:600; display:block; } .tech .n { font-weight:600; display:block; }
.tech .d { color:var(--muted); font-size:13.5px; display:block; margin-top:2px; } .tech .d { color:var(--muted); font-size:13.5px; display:block; margin-top:2px; }
.tech .gf { color:var(--accent-ink); font-size:11px; display:block; margin-top:5px; opacity:.85; }
.grouphdr { margin:30px 0 12px; font-size:12px; text-transform:uppercase; letter-spacing:.14em; font-weight:700; color:var(--c); opacity:.92; border-bottom:1px solid color-mix(in srgb, var(--c) 22%, var(--line)); padding-bottom:7px; }
main > .grouphdr:first-child { margin-top:2px; }
:root[data-theme="dark"] .grouphdr { color:color-mix(in srgb, var(--c) 62%, #fff); }
.goals { display:flex; gap:7px; flex-wrap:wrap; }
.goal { font-size:12px; padding:5px 12px; border-radius:16px; background:var(--control); color:var(--muted); font-weight:600; }
.goal:hover { color:var(--ink); }
.goal.on { background:var(--accent); color:#fff; }
label.tech.invent { border-style:dashed; background:transparent; }
label.tech.invent:hover { border-color:var(--c); }
label.tech.invent .n { color:var(--c); }
label.tech.hidden { display:none; }
footer { text-align:center; color:var(--foot); font-size:12px; padding:24px; } footer { text-align:center; color:var(--foot); font-size:12px; padding:24px; }
</style> </style>
</head> </head>
@ -538,6 +331,7 @@ SELECTOR_TEMPLATE = r"""<!DOCTYPE html>
</div> </div>
</div> </div>
{{GOALBAR}}
<div class="bar"> <div class="bar">
<span class="glabel">Jump to</span> <span class="glabel">Jump to</span>
<div class="chips" id="chips">{{CHIPS}}</div> <div class="chips" id="chips">{{CHIPS}}</div>
@ -555,6 +349,8 @@ SELECTOR_TEMPLATE = r"""<!DOCTYPE html>
var $ = function(id){ return document.getElementById(id); }; var $ = function(id){ return document.getElementById(id); };
var all = Array.prototype.slice; var all = Array.prototype.slice;
var boxes = all.call(document.querySelectorAll('input[type=checkbox]')); var boxes = all.call(document.querySelectorAll('input[type=checkbox]'));
var techBoxes = boxes.filter(function(b){ return b.dataset.name; }); // real technique cards
var inventBoxes = boxes.filter(function(b){ return b.dataset.invent; }); // per-category "invent in the spirit of" cards
var header = document.querySelector('header'); var header = document.querySelector('header');
var sections = all.call(document.querySelectorAll('section')); var sections = all.call(document.querySelectorAll('section'));
var state = { mode: 'Facilitator', rand: 0, inv: 0, ai: 0 }; var state = { mode: 'Facilitator', rand: 0, inv: 0, ai: 0 };
@ -605,20 +401,51 @@ SELECTOR_TEMPLATE = r"""<!DOCTYPE html>
boxes.forEach(function(b){ b.addEventListener('change', update); }); boxes.forEach(function(b){ b.addEventListener('change', update); });
function checked(){ return boxes.filter(function(b){ return b.checked; }); } // A `classic` technique appears twice (lead "Proven & Professional" group + its home
// category), so de-dupe checked picks by name; the lead copy carries data-lead.
function checkedTech(){
var seen = {}, out = [];
techBoxes.forEach(function(b){
if (!b.checked || seen[b.dataset.name]) { return; }
seen[b.dataset.name] = 1;
out.push(b);
});
return out;
}
function checkedInvent(){ return inventBoxes.filter(function(b){ return b.checked; }); }
function update(){ function update(){
$('pickN').textContent = checked().length; $('pickN').textContent = checkedTech().length;
$('randN').textContent = state.rand; $('randN').textContent = state.rand;
$('invN').textContent = state.inv; $('invN').textContent = state.inv;
$('aiN').textContent = state.ai; $('aiN').textContent = state.ai;
var total = checked().length + state.rand + state.inv + state.ai; var total = checkedTech().length + state.rand + state.inv + checkedInvent().length + state.ai;
var t = $('total'); var t = $('total');
t.textContent = 'Total ' + total + ' · 34 is the sweet spot'; t.textContent = 'Total ' + total + ' · 34 is the sweet spot';
t.classList.toggle('warn', total > 5); t.classList.toggle('warn', total > 5);
} }
function randomPool(){ return boxes.filter(function(b){ return !b.checked; }); } // "Great for" goal filter: clicking a goal narrows visible cards to those tagged with it.
var goalBtns = all.call(document.querySelectorAll('.goal'));
function activeGoals(){ return goalBtns.filter(function(b){ return b.classList.contains('on'); }).map(function(b){ return b.dataset.goal; }); }
function applyFilter(){
var act = activeGoals();
all.call(document.querySelectorAll('label.tech')).forEach(function(lab){
var inp = lab.querySelector('input');
if (inp.dataset.invent){ return; } // invent cards aren't goal-tagged — always visible
var good = (inp.dataset.good || '').split('|');
var show = !act.length || act.some(function(g){ return good.indexOf(g) >= 0; });
lab.classList.toggle('hidden', !show);
});
}
goalBtns.forEach(function(b){ b.addEventListener('click', function(){ b.classList.toggle('on'); applyFilter(); }); });
function randomPool(){
var picked = {};
checkedTech().forEach(function(b){ picked[b.dataset.name] = 1; });
// draw from unchecked, non-lead copies, skipping anything already picked
return techBoxes.filter(function(b){ return !b.checked && !b.dataset.lead && !picked[b.dataset.name]; });
}
function sample(arr, n){ function sample(arr, n){
var a = arr.slice(), out = []; var a = arr.slice(), out = [];
@ -627,7 +454,7 @@ SELECTOR_TEMPLATE = r"""<!DOCTYPE html>
} }
function compose(){ function compose(){
var picks = checked().map(function(b){ return { n: b.dataset.name, c: b.dataset.cat, d: b.dataset.desc, r: false }; }); var picks = checkedTech().map(function(b){ return { n: b.dataset.name, c: b.dataset.cat, d: b.dataset.desc, r: false }; });
var rnd = sample(randomPool(), state.rand).map(function(b){ return { n: b.dataset.name, c: b.dataset.cat, d: b.dataset.desc, r: true }; }); var rnd = sample(randomPool(), state.rand).map(function(b){ return { n: b.dataset.name, c: b.dataset.cat, d: b.dataset.desc, r: true }; });
var techs = picks.concat(rnd); var techs = picks.concat(rnd);
var L = ["Let's run my brainstorming session.", "", 'Facilitation mode: ' + state.mode + '.']; var L = ["Let's run my brainstorming session.", "", 'Facilitation mode: ' + state.mode + '.'];
@ -640,6 +467,7 @@ SELECTOR_TEMPLATE = r"""<!DOCTYPE html>
} }
var extra = []; var extra = [];
if (state.inv > 0){ extra.push('invent ' + state.inv + ' brand-new technique' + (state.inv > 1 ? 's' : '') + ' on the fly'); } if (state.inv > 0){ extra.push('invent ' + state.inv + ' brand-new technique' + (state.inv > 1 ? 's' : '') + ' on the fly'); }
checkedInvent().forEach(function(b){ extra.push('invent 1 new technique in the spirit of ' + b.dataset.invent); });
if (state.ai > 0){ extra.push('you choose ' + state.ai + ' more technique' + (state.ai > 1 ? 's' : '') + ' that fit my goal'); } if (state.ai > 0){ extra.push('you choose ' + state.ai + ' more technique' + (state.ai > 1 ? 's' : '') + ' that fit my goal'); }
if (extra.length){ L.push("", 'Then: ' + extra.join('; and ') + '.'); } if (extra.length){ L.push("", 'Then: ' + extra.join('; and ') + '.'); }
if (!techs.length && !extra.length){ if (!techs.length && !extra.length){
@ -692,46 +520,148 @@ SELECTOR_TEMPLATE = r"""<!DOCTYPE html>
""" """
# --- browse-page layout: a "Proven & Professional" lead group, then super-groups ----------
CLASSIC_GROUP = "Proven & Professional"
LEAD_HUE = "#3d4f73" # a dignified slate for the professional lead group
# Super-group order for the shipped categories. Categories not listed (e.g. user-added
# via --extra) render last under "More", alphabetically — so custom catalogs always show.
CATEGORY_GROUPS = (
("Structured & Analytical", ("structured", "deep")),
("Creative & Generative", ("creative", "biomimetic", "cultural", "speculative_future", "quantum")),
("Wild & Playful", ("wild", "absurdist", "theatrical", "constraint")),
("Introspective & Personal", ("introspective_delight", "collaborative")),
)
# Human labels for the `good_for` goal tags; this dict's order is the filter-bar order.
GOAL_LABELS = {
"feature": "Build a feature",
"novel": "Novel concept",
"strategy": "Strategy",
"planning": "Planning",
"diagnosis": "Diagnose",
"personal": "Personal / life",
"unstuck": "Get unstuck",
}
def _good_for_label(good: str) -> str:
parts = [GOAL_LABELS.get(g, g) for g in good.split("|") if g]
return ("Great for: " + " · ".join(parts)) if parts else ""
def _svg(inner: str) -> str:
return f'<svg class="ico" viewBox="0 0 44 44" xmlns="http://www.w3.org/2000/svg">{CHIP}{inner}</svg>'
def _card(r: dict, lead: bool = False) -> str:
"""One technique card. `lead=True` cards live in the cross-cutting professional group;
they carry their own category hue (inline --c) and data-lead so selection can de-dupe."""
name = html.escape(r["technique_name"])
desc = html.escape(r["description"])
hue, glyph = category_style(r["category"])
disp_cat = html.escape(pretty(r["category"]))
good = html.escape(r.get("good_for", ""))
prov = html.escape(r.get("provenance", ""))
style = f' style="--c:{hue}"' if lead else ""
lead_attr = ' data-lead="1"' if lead else ""
gf = _good_for_label(r.get("good_for", ""))
gf_html = f'<span class="gf">{html.escape(gf)}</span>' if gf else ""
return (
f'<label class="tech"{style}><input type="checkbox" '
f'data-name="{name}" data-cat="{disp_cat}" data-desc="{desc}" data-good="{good}" data-prov="{prov}"{lead_attr}>'
f'<span class="ic2">{_svg(glyph)}{_svg(tech_icon(r["technique_name"]))}</span>'
f'<span><span class="n">{name}</span><span class="d">{desc}</span>{gf_html}</span></label>'
)
def _invent_card(disp_cat: str, glyph: str) -> str:
"""A dashed 'invent on the fly, in this category's spirit' card appended to each section."""
return (
f'<label class="tech invent"><input type="checkbox" data-invent="{disp_cat}">'
f'<span class="ic2">{_svg(glyph)}</span>'
f'<span><span class="n">✨ Invent a {disp_cat} technique</span>'
f'<span class="d">Make up a brand-new technique on the fly, in the spirit of {disp_cat}</span></span></label>'
)
def html_doc(rows: list[dict]) -> str: def html_doc(rows: list[dict]) -> str:
"""Render the self-contained 'browse all techniques' selection page from the catalog. """Render the self-contained 'browse all techniques' selection page from the catalog.
Deterministic: categories sorted, techniques in file order so the shipped asset can Deterministic ordering so the shipped asset can be snapshot-tested against the CSV:
be snapshot-tested against the CSV and never silently drifts out of sync. a cross-cutting "Proven & Professional" lead group (every `classic`-tagged row), then
the categories in fixed super-group order, then any unlisted/custom categories under
"More" alphabetically. Techniques render in file order within a category. A `classic`
row appears both in the lead group and its home category; the page de-dupes on select.
""" """
groups: dict[str, list[dict]] = {} groups: dict[str, list[dict]] = {}
for r in rows: for r in rows:
groups.setdefault(r["category"], []).append(r) groups.setdefault(r["category"], []).append(r)
sections, chips = [], []
for cat in sorted(groups): body: list[str] = []
chips: list[str] = []
def add_section(cat: str) -> None:
hue, glyph = category_style(cat) hue, glyph = category_style(cat)
disp = html.escape(pretty(cat)) disp = html.escape(pretty(cat))
cards = [] cards = [_card(r) for r in groups[cat]]
for r in groups[cat]: cards.append(_invent_card(disp, glyph))
name = html.escape(r["technique_name"])
desc = html.escape(r["description"])
cat_icon = (
'<svg class="ico" viewBox="0 0 44 44" xmlns="http://www.w3.org/2000/svg">'
f'{CHIP}{glyph}</svg>'
)
t_icon = (
'<svg class="ico" viewBox="0 0 44 44" xmlns="http://www.w3.org/2000/svg">'
f'{CHIP}{tech_icon(r["technique_name"])}</svg>'
)
cards.append(
'<label class="tech"><input type="checkbox" '
f'data-name="{name}" data-cat="{disp}" data-desc="{desc}">'
f'<span class="ic2">{cat_icon}{t_icon}</span>'
f'<span><span class="n">{name}</span><span class="d">{desc}</span></span></label>'
)
chips.append(f'<button type="button" class="chip" data-cat="{disp}" style="--cc:{hue}">{disp}</button>') chips.append(f'<button type="button" class="chip" data-cat="{disp}" style="--cc:{hue}">{disp}</button>')
sections.append( body.append(
f'<section data-cat="{disp}" style="--c:{hue}"><h2>{disp}<span class="cnt">{len(groups[cat])}</span></h2>' f'<section data-cat="{disp}" style="--c:{hue}"><h2>{disp}<span class="cnt">{len(groups[cat])}</span></h2>'
f'<div class="grid">{"".join(cards)}</div></section>' f'<div class="grid">{"".join(cards)}</div></section>'
) )
# 1) lead group — every classic-tagged technique, cross-category (no invent card here)
classics = [r for r in rows if r.get("provenance", "").lower() == "classic"]
if classics:
disp = html.escape(CLASSIC_GROUP)
lead_cards = "".join(_card(r, lead=True) for r in classics)
chips.append(f'<button type="button" class="chip" data-cat="{disp}" style="--cc:{LEAD_HUE}">{disp}</button>')
body.append(
f'<section data-cat="{disp}" style="--c:{LEAD_HUE}"><h2>{disp}<span class="cnt">{len(classics)}</span></h2>'
f'<div class="grid">{lead_cards}</div></section>'
)
# 2) shipped categories, in super-group order
placed = set()
for group_title, cats in CATEGORY_GROUPS:
present = [c for c in cats if c in groups]
if not present:
continue
hue, _ = category_style(present[0])
body.append(f'<h2 class="grouphdr" style="--c:{hue}">{html.escape(group_title)}</h2>')
for c in present:
add_section(c)
placed.add(c)
# 3) leftover (custom / --extra) categories, alphabetically
leftover = sorted(c for c in groups if c not in placed)
if leftover:
body.append('<h2 class="grouphdr" style="--c:#8a8f9e">More</h2>')
for c in leftover:
add_section(c)
# goal-affinity filter bar — only if the catalog actually carries good_for tags
present_goals: set[str] = set()
for r in rows:
for g in (r.get("good_for", "") or "").split("|"):
if g:
present_goals.add(g)
goalbar = ""
if present_goals:
ordered = [g for g in GOAL_LABELS if g in present_goals] + sorted(present_goals - set(GOAL_LABELS))
gchips = "".join(
f'<button type="button" class="goal" data-goal="{html.escape(g)}">{html.escape(GOAL_LABELS.get(g, g))}</button>'
for g in ordered
)
goalbar = f'<div class="bar"><span class="glabel">Great for</span><div class="goals" id="goals">{gchips}</div></div>'
total = html.escape(f"{len(rows)} techniques across {len(groups)} categories.") total = html.escape(f"{len(rows)} techniques across {len(groups)} categories.")
return ( return (
SELECTOR_TEMPLATE.replace("{{BODY}}", "\n".join(sections)) SELECTOR_TEMPLATE.replace("{{BODY}}", "\n".join(body))
.replace("{{CHIPS}}", "".join(chips)) .replace("{{CHIPS}}", "".join(chips))
.replace("{{GOALBAR}}", goalbar)
.replace("{{TOTAL}}", total) .replace("{{TOTAL}}", total)
) )