Exploring Ideas — Deep Research + Brainstorming
Help the user explore a topic through deep research and/or divergent brainstorming, and capture the result as an exploration artifact — a cited briefing and/or idea-landscape. This skill deliberately does not converge to a spec. Moving toward building anything is always the user's call.
Announce when you start: "I'm using the exploring-ideas skill to explore this with you — no spec, just research and ideas."
Anti-Pattern: "They obviously want me to just build/decide it"
No. The user invoked exploration. Surfacing the option space, the evidence, and the tensions IS the deliverable. Declaring a winner, writing requirements, or starting to code defeats the purpose. If the user later says "ok, let's build the third one," offer the brainstorming handoff — do not silently switch modes.
Three Dials
These are orthogonal — set all three:
- Emphasis (auto-detected) — what kind of work: research-heavy ↔ ideation-heavy ↔ blended.
- Intensity (
--wild 0.1–1.0, default 0.5) — how far past the obvious the ideation pushes.
- Involvement (
--involve low|medium|high, default medium) — how much the skill pauses to include you: checkpoints, steering, and idea-gate co-creation. low is exactly today's behavior. See Involvement & Checkpoints.
Checklist
Create a TodoWrite item per step and complete in order. Steps tagged (medium+) / (high) run only at that involve level or above; all checkpoints auto-skip when headless (see Involvement & Checkpoints).
- Detect emphasis, intensity & involvement — infer research-vs-ideation lean; read
--wild (or a bare number) for intensity, else default 0.5; read --involve (low/medium/high, default medium), else medium. Detect headless/subagent context → if headless, auto-skip any active checkpoints, and if any were skipped log them as a Ran headless line (at --involve low there are none, so nothing is logged — low stays identical to today). Confirm emphasis with ONE question only if genuinely ambiguous.
- Light scoping — 2–4
AskUserQuestion questions to bound the exploration (see below). Keep it light; exploration stays open.
- Plan-preview checkpoint (medium+) — before any agent runs, surface the plan (emphasis + intensity + involve, research facets, queued techniques, rough scope) and invite go / adjust scope / add-drop a facet / change a dial. See interaction-model.md.
- Offer Visual Companion (conditional, own message) — only if visual output (idea-landscape, option/cluster map, mind map, comparison matrix) is likely. See Visual Companion.
- Research loop — Plan → Search → Reflect → Iterate, weighted by emphasis. See Research Engine.
- Post-research checkpoint (high) — surface findings + gaps; invite a redirect before ideation.
- Divergent ideation pass — technique files + quota + iterate-past-obvious, weighted by emphasis & intensity. See Divergent Ideation Engine.
- Idea-landscape review + co-creation (medium+) — surface the N directions (insight-paired); invite react / go-deeper / add-your-own, then re-ideate (drop killed, expand flagged, ideate added, one short refill pass holding the quality gate). No ranking. See interaction-model.md.
- Challenge pass — steelman + strongest counter-argument + "what would disprove this" for each surviving direction/cluster.
- Synthesize the adaptive artifact — using
exploration-artifact-template.md.
- Pre-save artifact review checkpoint (high) — show the assembled exploration doc, accept edits (still an exploration doc, never a spec), then save.
- Auto-save — write to
docs/quirk/explorations/YYYY-MM-DD-<topic>.md with the NOT-a-spec banner.
- Close with optional handoff — recap + a user-initiated offer to carry a direction into
brainstorming → execution (which authors a tech spec when warranted, then plans in context).
Process Flow
digraph exploring {
// Boxes = phases; diamonds = checkpoints. A checkpoint auto-skips below its
// tagged involve level, and whenever the run is headless (the dial gate).
"Detect emphasis,\nintensity & involve" [shape=box];
"Light scoping (2-4 Q)" [shape=box];
"Plan-preview checkpoint\n(medium+)" [shape=diamond];
"Offer Visual Companion\n(own message, conditional)" [shape=box];
"Research loop\n(Plan->Search->Reflect->Iterate)" [shape=box];
"Post-research checkpoint\n(high)" [shape=diamond];
"Divergent ideation pass\n(techniques + quota + iterate-past-obvious)" [shape=box];
"Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" [shape=diamond];
"Challenge pass\n(steelman + counter + disprove)" [shape=box];
"Synthesize adaptive artifact" [shape=box];
"Pre-save artifact review\n(high)" [shape=diamond];
"Auto-save (NOT-a-spec banner)" [shape=box];
"Close: optional user-initiated handoff" [shape=doublecircle];
"Dial gate: checkpoints auto-skip\nbelow tagged level OR when headless" [shape=note];
"Standing steer: redirect anytime;\nhonored at next phase boundary" [shape=note];
"Detect emphasis,\nintensity & involve" -> "Light scoping (2-4 Q)";
"Light scoping (2-4 Q)" -> "Plan-preview checkpoint\n(medium+)";
"Plan-preview checkpoint\n(medium+)" -> "Offer Visual Companion\n(own message, conditional)";
"Offer Visual Companion\n(own message, conditional)" -> "Research loop\n(Plan->Search->Reflect->Iterate)";
"Research loop\n(Plan->Search->Reflect->Iterate)" -> "Post-research checkpoint\n(high)";
"Post-research checkpoint\n(high)" -> "Divergent ideation pass\n(techniques + quota + iterate-past-obvious)";
"Divergent ideation pass\n(techniques + quota + iterate-past-obvious)" -> "Idea-landscape review + co-creation\n(medium+): react/go-deeper/add";
"Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" -> "Challenge pass\n(steelman + counter + disprove)";
"Challenge pass\n(steelman + counter + disprove)" -> "Synthesize adaptive artifact";
"Synthesize adaptive artifact" -> "Pre-save artifact review\n(high)";
"Pre-save artifact review\n(high)" -> "Auto-save (NOT-a-spec banner)";
"Auto-save (NOT-a-spec banner)" -> "Close: optional user-initiated handoff";
// Loops, re-ideation, and rewind — all preserve prior outputs:
"Divergent ideation pass\n(techniques + quota + iterate-past-obvious)" -> "Research loop\n(Plan->Search->Reflect->Iterate)" [label="gaps surfaced by ideation"];
"Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" -> "Divergent ideation pass\n(techniques + quota + iterate-past-obvious)" [label="re-ideate (drop/expand/add)"];
"Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" -> "Research loop\n(Plan->Search->Reflect->Iterate)" [style=dashed, label="rewind: 'research X' (preserve outputs)"];
"Post-research checkpoint\n(high)" -> "Research loop\n(Plan->Search->Reflect->Iterate)" [style=dashed, label="redirect: another round"];
// Convergence at any checkpoint never makes a spec — it routes to the handoff:
"Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" -> "Close: optional user-initiated handoff" [style=dashed, label="convergence -> brainstorming handoff (HARD-GATE)"];
}
The research loop and divergent pass are weighted by emphasis — one may be brief — and feed each other: research grounds ideation; ideation surfaces new gaps to research. Checkpoints (diamonds) only fire at their tagged involve level or above and disappear entirely when the run is headless; between them the standing-steer invite stays open, honored at the next phase boundary.
Emphasis Auto-Detection
| Signals in the request |
Lean |
Effect |
| research, investigate, find, sources, evidence, compare, "what is", "state of" |
Research-heavy |
Deeper research loop (more rounds / deep-research-agent); short ideation pass |
| brainstorm, ideas, "what if", "ways to", "could we", imagine, riff |
Ideation-heavy |
Stronger divergent pass; research loop kept to grounding breadth |
| mixed / unclear |
Blended |
Balanced; ONE quick confirm question only if genuinely ambiguous |
Intensity Dial (--wild)
Orthogonal to emphasis. Default 0.5; user-settable and adjustable mid-session ("dial it up" / "keep it grounded").
| Range |
Label |
Behavior |
| 0.1–0.3 |
Grounded |
Adjacent, low-risk variations; mostly conventional framing; quota ≥3 |
| 0.4–0.6 |
Exploratory (default 0.5) |
Genuine divergence; cross-domain analogies welcome; quota ≥5 |
| 0.7–0.9 |
Bold |
Unconventional, contrarian, risk-tolerant; provocation techniques fire; quota ≥7 |
| 1.0 |
Radical |
No filter — provocative directions that would "unsettle a boardroom"; full technique set; as many as genuinely land |
Intensity modulates idea count/quota, unconventionality, risk tolerance, and which techniques fire.
Invariant — the bar that does NOT move with intensity: every idea must still pass the insight-pairing quality gate, factual claims stay accurate, and the no-spec HARD-GATE holds. High intensity yields wilder grounded ideas, never noise.
Involvement & Checkpoints
--involve (low | medium | high; default medium) controls how much the skill pauses to include you — frequency of touchpoints, never the quality bar. Read interaction-model.md for the full mechanics; the load-bearing summary:
| Level |
Checkpoints |
Co-creation |
| low |
none — today's scoping + handoff only |
none |
| medium (default) |
plan preview + idea-landscape review |
react / go-deeper / add-your-own at the idea gate |
| high |
medium + post-research + pre-save artifact review |
+ per-direction depth prompts |
- Set at invocation (
--involve high; lo/med/hi aliases) or mid-session — "check in less" drops a level, "check in more" raises one; changes apply to all later phases.
- Steering vocabulary (recognized anytime; between-checkpoint input is honored at the next phase boundary): Direction —
go deeper on X / drop Y / add angle Z; Dials — dial it up / keep it grounded (→ --wild), check in more / less (→ --involve); Scope — narrow to … / also explore …. A steer implying an earlier phase rewinds to it, preserving prior outputs and logging a Branch note.
- Checkpoints steer/expand only. Any convergence move ("this one wins, let's build it") routes to the
brainstorming handoff — never an inline spec. HARD-GATE holds at every checkpoint.
- Headless = no checkpoints. When run non-interactively (subagent/pipeline), all active checkpoints auto-skip and behavior equals today's autonomous pipeline; if any checkpoint was skipped, log it as a Ran headless line in the artifact. At
--involve low there are no checkpoints to skip, so nothing is logged — low is byte-for-behavior identical to the pre---involve skill, headless or not.
Light Scoping
AskUserQuestion, recommended-option-first, no "you decide". 2–4 questions, kept light so exploration stays open.
- Research-leaning: depth (quick scan / standard / deep multi-round), recency window, source preferences or exclusions, the curiosity/decision it serves.
- Ideation-leaning: the goal/problem, hard constraints, what "good" looks like, directions already considered (to avoid re-treading).
Capture any "we should also build…" asides into a Deferred / Out-of-scope note rather than absorbing them — this is exploration, not planning.
Research Engine
Plan → Search → Reflect → Iterate. Reuse the existing agent types (do not reinvent):
- Plan — decompose the scoped topic into facets / sub-questions.
- Search (breadth) — dispatch parallel
web-research-agent (haiku) across facets in a SINGLE message.
- Reflect — identify gaps, contradictions, unanswered questions.
- Iterate (depth) — for deep requests, spawn
deep-research-agent (sonnet, depth=2) on the highest-value gaps; loop 1–3 gap-driven rounds. Stop when marginal new information drops off (guard against both premature stop AND runaway).
- Provenance + anti-hallucination — keep a claim→source map; only sourced claims enter the artifact. Mark anything unverifiable explicitly.
Fallbacks: if deep-research-agent is unavailable, substitute two parallel web-research-agent calls. If dispatch was attempted and every agent failed, proceed and mark findings "(offline — unverified)", leaning on the ideation engine; record the gap in the artifact. A dispatch tool under a name other than Agent is still the dispatch tool — a name mismatch is not a failed dispatch and does not license the offline path.
Divergent Ideation Engine
Intensity-aware. Read the relevant technique file(s) from references/techniques/ ONLY when selected (progressive disclosure), run them, then filter through the quality gate.
- Technique toolkit (
references/techniques/*.md) — each follows When to Use → The Method → Example → Why It Works. Select the 1–2 most relevant; Bold/Radical intensities add the disruptive ones.
- Classic:
scamper.md, analogical-transfer.md, first-principles.md, assumption-reversal.md
- Disruptive:
extreme-casing.md, stream-dump.md, deliberately-wrong.md, contrarian-inversion.md, overlooked-value.md, radical-simplification.md, the-avoided-idea.md
- Quota — surface N distinct directions before drilling into any one (N scales with intensity: Grounded ≥3 → Radical "as many as genuinely land").
- Iterate-past-obvious — after the first pass, explicitly push for more unconventional variants and discard clichés (first ideas reflect training-data defaults).
- Insight-pairing (required) — every surviving direction carries a one-line grounded "why this might actually work." A direction with no defensible insight is not a direction.
- Quality gate (explicit REJECT) — before a direction enters the artifact it must clear: clichéd / obvious? → REJECT. Weird with no insight underneath ("random ≠ creative")? → REJECT. A restatement of an existing direction? → REJECT or merge.
- Grounding — seed directions with the research loop's findings so ideas are informed, not free-floating.
Challenge Pass
For each surviving direction / finding cluster: steelman it, then surface the strongest counter-argument and "what would disprove this / why might this fail." Light and constructive — the goal is honesty, not demolition. Resists sycophancy; AI will not volunteer challenge unless structurally prompted. Captured into the artifact's Challenge notes.
The Artifact
Synthesize using exploration-artifact-template.md and auto-save to docs/quirk/explorations/YYYY-MM-DD-<topic>.md. It opens with a NOT-a-spec banner and contains: Framing · What was explored · Findings / Idea landscape (each direction insight-paired, NO winner declared) · Tensions & trade-offs · Challenge notes · Open questions & gaps · Sources. It contains NO "Decisions Locked", requirements, or implementation steps — by gate.
Remind the user to add .quirk/ to .gitignore if they used the Visual Companion (its session screens live under .quirk/exploring-ideas/).
Close: Optional Handoff
End with a short recap, then:
"This is exploration only. If you later want to turn a direction into something buildable, invoke quirk:brainstorming → an execution skill (which authors a tech spec when warranted, then plans in context). Say the word and I'll carry [direction] over."
Never automatic. If the user asks for a plan/spec mid-session, honor them (user instructions outrank the skill) by offering this handoff rather than silently producing a spec inside this skill.
Visual Companion
A browser companion for idea-landscapes, option/cluster maps, mind maps, and comparison matrices — useful when the output is genuinely visual. It runs on the shared Agent Isles bridge (bin/agent_isles.py), the same one the brainstorming skill uses; there is nothing to copy.
Offer it once, in its own message (no other content), only when you anticipate visual output:
"Some of what we explore might land better as a picture — an idea map, a cluster view, a comparison matrix. I can render those in a local browser tab as we go. It's still new and a bit token-intensive. Want to try it? (Requires opening a local URL.)"
If they accept, read visual-companion.md for the full mechanics. Decide per question whether the browser beats the terminal: browser for visual artifacts (maps, matrices, mockups), terminal for text choices and conceptual questions. Screens live under .quirk/exploring-ideas/<session>/.
Key Principles
- Explore, don't converge — the HARD-GATE is the whole point. No spec, no winner, no code.
- Three dials — emphasis (auto), intensity (
--wild), involvement (--involve).
- Involvement moves frequency, not the bar — more checkpoints, never lower standards;
low == today; headless skips them all.
- Hold the insight bar constant — wilder at high intensity, never noisier.
- Research in parallel, never sequentially — same-phase agents ship in one message.
- Insight-pair every direction — the grounded "why" is mandatory.
- Challenge actively — steelman then attack; resist sycophancy.
- Preserve tensions — document where directions conflict; don't resolve them.
- The only onward skill is
brainstorming, and only if the user asks.
1---2name: exploring-ideas3description: Use when the user wants to deeply research a topic OR brainstorm/explore ideas WITHOUT building anything yet — produces a cited briefing or idea-landscape (an exploration doc), never a spec, plan, or implementation. Triggers on "do deep research on X", "research X", "let's brainstorm ideas around X", "explore X", "what are some ideas for X". NOT for "build/implement/add/fix X" — that is the brainstorming skill. Set wildness with `--wild 0.1–1.0`.4---56# Exploring Ideas — Deep Research + Brainstorming78Help the user explore a topic through deep research and/or divergent brainstorming, and capture the result as an **exploration artifact** — a cited briefing and/or idea-landscape. This skill deliberately **does not converge to a spec**. Moving toward building anything is always the user's call.910Announce when you start: **"I'm using the exploring-ideas skill to explore this with you — no spec, just research and ideas."**1112<HARD-GATE>13This skill EXPLORES. It MUST NOT produce a spec, requirements, locked decisions,14acceptance criteria, an implementation plan, or any implementation action. The only15artifact is an exploration document. Moving toward building is ALWAYS user-initiated —16offer the handoff to `brainstorming`, never perform it automatically.17</HARD-GATE>1819## Anti-Pattern: "They obviously want me to just build/decide it"2021No. The user invoked exploration. Surfacing the option space, the evidence, and the tensions IS the deliverable. Declaring a winner, writing requirements, or starting to code defeats the purpose. If the user later says "ok, let's build the third one," offer the `brainstorming` handoff — do not silently switch modes.2223## Three Dials2425These are orthogonal — set all three:2627- **Emphasis** (auto-detected) — *what kind of work*: research-heavy ↔ ideation-heavy ↔ blended.28- **Intensity** (`--wild 0.1–1.0`, default 0.5) — *how far past the obvious the ideation pushes*.29- **Involvement** (`--involve low|medium|high`, default medium) — *how much the skill pauses to include you*: checkpoints, steering, and idea-gate co-creation. `low` is exactly today's behavior. See [Involvement & Checkpoints](#involvement--checkpoints).3031## Checklist3233Create a TodoWrite item per step and complete in order. Steps tagged *(medium+)* / *(high)* run only at that involve level or above; all checkpoints **auto-skip when headless** (see [Involvement & Checkpoints](#involvement--checkpoints)).34351. **Detect emphasis, intensity & involvement** — infer research-vs-ideation lean; read `--wild` (or a bare number) for intensity, else default 0.5; read `--involve` (low/medium/high, default medium), else medium. Detect headless/subagent context → if headless, auto-skip any active checkpoints, and if any were skipped log them as a *Ran headless* line (at `--involve low` there are none, so nothing is logged — low stays identical to today). Confirm emphasis with ONE question only if genuinely ambiguous.362. **Light scoping** — 2–4 `AskUserQuestion` questions to bound the exploration (see below). Keep it light; exploration stays open.373. **Plan-preview checkpoint** *(medium+)* — before any agent runs, surface the plan (emphasis + intensity + involve, research facets, queued techniques, rough scope) and invite *go / adjust scope / add-drop a facet / change a dial*. See [interaction-model.md](references/interaction-model.md).384. **Offer Visual Companion** (conditional, own message) — only if visual output (idea-landscape, option/cluster map, mind map, comparison matrix) is likely. See [Visual Companion](#visual-companion).395. **Research loop** — Plan → Search → Reflect → Iterate, weighted by emphasis. See [Research Engine](#research-engine).406. **Post-research checkpoint** *(high)* — surface findings + gaps; invite a redirect before ideation.417. **Divergent ideation pass** — technique files + quota + iterate-past-obvious, weighted by emphasis & intensity. See [Divergent Ideation Engine](#divergent-ideation-engine).428. **Idea-landscape review + co-creation** *(medium+)* — surface the N directions (insight-paired); invite react / go-deeper / add-your-own, then **re-ideate** (drop killed, expand flagged, ideate added, one short refill pass holding the quality gate). No ranking. See [interaction-model.md](references/interaction-model.md).439. **Challenge pass** — steelman + strongest counter-argument + "what would disprove this" for each surviving direction/cluster.4410. **Synthesize the adaptive artifact** — using `exploration-artifact-template.md`.4511. **Pre-save artifact review checkpoint** *(high)* — show the assembled exploration doc, accept edits (still an exploration doc, never a spec), then save.4612. **Auto-save** — write to `docs/quirk/explorations/YYYY-MM-DD-<topic>.md` with the NOT-a-spec banner.4713. **Close with optional handoff** — recap + a user-initiated offer to carry a direction into `brainstorming` → execution (which authors a tech spec when warranted, then plans in context).4849## Process Flow5051```dot52digraph exploring {53 // Boxes = phases; diamonds = checkpoints. A checkpoint auto-skips below its54 // tagged involve level, and whenever the run is headless (the dial gate).55 "Detect emphasis,\nintensity & involve" [shape=box];56 "Light scoping (2-4 Q)" [shape=box];57 "Plan-preview checkpoint\n(medium+)" [shape=diamond];58 "Offer Visual Companion\n(own message, conditional)" [shape=box];59 "Research loop\n(Plan->Search->Reflect->Iterate)" [shape=box];60 "Post-research checkpoint\n(high)" [shape=diamond];61 "Divergent ideation pass\n(techniques + quota + iterate-past-obvious)" [shape=box];62 "Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" [shape=diamond];63 "Challenge pass\n(steelman + counter + disprove)" [shape=box];64 "Synthesize adaptive artifact" [shape=box];65 "Pre-save artifact review\n(high)" [shape=diamond];66 "Auto-save (NOT-a-spec banner)" [shape=box];67 "Close: optional user-initiated handoff" [shape=doublecircle];6869 "Dial gate: checkpoints auto-skip\nbelow tagged level OR when headless" [shape=note];70 "Standing steer: redirect anytime;\nhonored at next phase boundary" [shape=note];7172 "Detect emphasis,\nintensity & involve" -> "Light scoping (2-4 Q)";73 "Light scoping (2-4 Q)" -> "Plan-preview checkpoint\n(medium+)";74 "Plan-preview checkpoint\n(medium+)" -> "Offer Visual Companion\n(own message, conditional)";75 "Offer Visual Companion\n(own message, conditional)" -> "Research loop\n(Plan->Search->Reflect->Iterate)";76 "Research loop\n(Plan->Search->Reflect->Iterate)" -> "Post-research checkpoint\n(high)";77 "Post-research checkpoint\n(high)" -> "Divergent ideation pass\n(techniques + quota + iterate-past-obvious)";78 "Divergent ideation pass\n(techniques + quota + iterate-past-obvious)" -> "Idea-landscape review + co-creation\n(medium+): react/go-deeper/add";79 "Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" -> "Challenge pass\n(steelman + counter + disprove)";80 "Challenge pass\n(steelman + counter + disprove)" -> "Synthesize adaptive artifact";81 "Synthesize adaptive artifact" -> "Pre-save artifact review\n(high)";82 "Pre-save artifact review\n(high)" -> "Auto-save (NOT-a-spec banner)";83 "Auto-save (NOT-a-spec banner)" -> "Close: optional user-initiated handoff";8485 // Loops, re-ideation, and rewind — all preserve prior outputs:86 "Divergent ideation pass\n(techniques + quota + iterate-past-obvious)" -> "Research loop\n(Plan->Search->Reflect->Iterate)" [label="gaps surfaced by ideation"];87 "Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" -> "Divergent ideation pass\n(techniques + quota + iterate-past-obvious)" [label="re-ideate (drop/expand/add)"];88 "Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" -> "Research loop\n(Plan->Search->Reflect->Iterate)" [style=dashed, label="rewind: 'research X' (preserve outputs)"];89 "Post-research checkpoint\n(high)" -> "Research loop\n(Plan->Search->Reflect->Iterate)" [style=dashed, label="redirect: another round"];9091 // Convergence at any checkpoint never makes a spec — it routes to the handoff:92 "Idea-landscape review + co-creation\n(medium+): react/go-deeper/add" -> "Close: optional user-initiated handoff" [style=dashed, label="convergence -> brainstorming handoff (HARD-GATE)"];93}94```9596The research loop and divergent pass are weighted by emphasis — one may be brief — and feed each other: research grounds ideation; ideation surfaces new gaps to research. Checkpoints (diamonds) only fire at their tagged involve level or above and disappear entirely when the run is headless; between them the standing-steer invite stays open, honored at the next phase boundary.9798## Emphasis Auto-Detection99100| Signals in the request | Lean | Effect |101|---|---|---|102| research, investigate, find, sources, evidence, compare, "what is", "state of" | Research-heavy | Deeper research loop (more rounds / `deep-research-agent`); short ideation pass |103| brainstorm, ideas, "what if", "ways to", "could we", imagine, riff | Ideation-heavy | Stronger divergent pass; research loop kept to grounding breadth |104| mixed / unclear | Blended | Balanced; ONE quick confirm question only if genuinely ambiguous |105106## Intensity Dial (`--wild`)107108Orthogonal to emphasis. Default **0.5**; user-settable and adjustable mid-session ("dial it up" / "keep it grounded").109110| Range | Label | Behavior |111|---|---|---|112| 0.1–0.3 | **Grounded** | Adjacent, low-risk variations; mostly conventional framing; quota ≥3 |113| 0.4–0.6 | **Exploratory** (default 0.5) | Genuine divergence; cross-domain analogies welcome; quota ≥5 |114| 0.7–0.9 | **Bold** | Unconventional, contrarian, risk-tolerant; provocation techniques fire; quota ≥7 |115| 1.0 | **Radical** | No filter — provocative directions that would "unsettle a boardroom"; full technique set; as many as genuinely land |116117Intensity modulates idea count/quota, unconventionality, risk tolerance, and which techniques fire.118119**Invariant — the bar that does NOT move with intensity:** every idea must still pass the insight-pairing quality gate, factual claims stay accurate, and the no-spec HARD-GATE holds. High intensity yields *wilder grounded ideas*, never noise.120121## Involvement & Checkpoints122123`--involve` (low | medium | high; default **medium**) controls *how much the skill pauses to include you* — frequency of touchpoints, never the quality bar. Read [interaction-model.md](references/interaction-model.md) for the full mechanics; the load-bearing summary:124125| Level | Checkpoints | Co-creation |126|---|---|---|127| **low** | none — today's scoping + handoff only | none |128| **medium** *(default)* | plan preview + idea-landscape review | react / go-deeper / add-your-own at the idea gate |129| **high** | medium + post-research + pre-save artifact review | + per-direction depth prompts |130131- **Set at invocation** (`--involve high`; `lo`/`med`/`hi` aliases) or **mid-session** — *"check in less"* drops a level, *"check in more"* raises one; changes apply to all later phases.132- **Steering vocabulary** (recognized anytime; between-checkpoint input is honored at the next phase boundary): **Direction** — `go deeper on X` / `drop Y` / `add angle Z`; **Dials** — `dial it up` / `keep it grounded` (→ `--wild`), `check in more` / `less` (→ `--involve`); **Scope** — `narrow to …` / `also explore …`. A steer implying an earlier phase **rewinds** to it, preserving prior outputs and logging a *Branch* note.133- **Checkpoints steer/expand only.** Any convergence move ("this one wins, let's build it") routes to the `brainstorming` handoff — never an inline spec. HARD-GATE holds at every checkpoint.134- **Headless = no checkpoints.** When run non-interactively (subagent/pipeline), all active checkpoints auto-skip and behavior equals today's autonomous pipeline; if any checkpoint was skipped, log it as a *Ran headless* line in the artifact. At `--involve low` there are no checkpoints to skip, so nothing is logged — `low` is byte-for-behavior identical to the pre-`--involve` skill, headless or not.135136## Light Scoping137138`AskUserQuestion`, recommended-option-first, no "you decide". 2–4 questions, kept light so exploration stays open.139140- **Research-leaning:** depth (quick scan / standard / deep multi-round), recency window, source preferences or exclusions, the curiosity/decision it serves.141- **Ideation-leaning:** the goal/problem, hard constraints, what "good" looks like, directions already considered (to avoid re-treading).142143Capture any "we should also build…" asides into a **Deferred / Out-of-scope** note rather than absorbing them — this is exploration, not planning.144145## Research Engine146147Plan → Search → Reflect → Iterate. Reuse the existing agent types (do not reinvent):1481491. **Plan** — decompose the scoped topic into facets / sub-questions.1502. **Search (breadth)** — dispatch parallel `web-research-agent` (haiku) across facets in a SINGLE message.1513. **Reflect** — identify gaps, contradictions, unanswered questions.1524. **Iterate (depth)** — for deep requests, spawn `deep-research-agent` (sonnet, depth=2) on the highest-value gaps; loop **1–3 gap-driven rounds**. Stop when marginal new information drops off (guard against both premature stop AND runaway).1535. **Provenance + anti-hallucination** — keep a claim→source map; only sourced claims enter the artifact. Mark anything unverifiable explicitly.154155**Fallbacks:** if `deep-research-agent` is unavailable, substitute two parallel `web-research-agent` calls. If dispatch was attempted and every agent failed, proceed and mark findings "(offline — unverified)", leaning on the ideation engine; record the gap in the artifact. A dispatch tool under a name other than `Agent` is still the dispatch tool — a name mismatch is not a failed dispatch and does not license the offline path.156157## Divergent Ideation Engine158159Intensity-aware. Read the relevant technique file(s) from `references/techniques/` ONLY when selected (progressive disclosure), run them, then filter through the quality gate.160161- **Technique toolkit (`references/techniques/*.md`)** — each follows *When to Use → The Method → Example → Why It Works*. Select the 1–2 most relevant; Bold/Radical intensities add the disruptive ones.162 - *Classic:* `scamper.md`, `analogical-transfer.md`, `first-principles.md`, `assumption-reversal.md`163 - *Disruptive:* `extreme-casing.md`, `stream-dump.md`, `deliberately-wrong.md`, `contrarian-inversion.md`, `overlooked-value.md`, `radical-simplification.md`, `the-avoided-idea.md`164- **Quota** — surface **N distinct directions** before drilling into any one (N scales with intensity: Grounded ≥3 → Radical "as many as genuinely land").165- **Iterate-past-obvious** — after the first pass, explicitly push for more unconventional variants and discard clichés (first ideas reflect training-data defaults).166- **Insight-pairing (required)** — every surviving direction carries a one-line grounded **"why this might actually work."** A direction with no defensible insight is not a direction.167- **Quality gate (explicit REJECT)** — before a direction enters the artifact it must clear: *clichéd / obvious? → REJECT. Weird with no insight underneath ("random ≠ creative")? → REJECT. A restatement of an existing direction? → REJECT or merge.*168- **Grounding** — seed directions with the research loop's findings so ideas are informed, not free-floating.169170## Challenge Pass171172For each surviving direction / finding cluster: **steelman** it, then surface the **strongest counter-argument** and **"what would disprove this / why might this fail."** Light and constructive — the goal is honesty, not demolition. Resists sycophancy; AI will not volunteer challenge unless structurally prompted. Captured into the artifact's *Challenge notes*.173174## The Artifact175176Synthesize using `exploration-artifact-template.md` and **auto-save** to `docs/quirk/explorations/YYYY-MM-DD-<topic>.md`. It opens with a NOT-a-spec banner and contains: Framing · What was explored · Findings / Idea landscape (each direction insight-paired, NO winner declared) · Tensions & trade-offs · Challenge notes · Open questions & gaps · Sources. It contains NO "Decisions Locked", requirements, or implementation steps — by gate.177178Remind the user to add `.quirk/` to `.gitignore` if they used the Visual Companion (its session screens live under `.quirk/exploring-ideas/`).179180## Close: Optional Handoff181182End with a short recap, then:183184> "This is exploration only. If you later want to turn a direction into something buildable, invoke `quirk:brainstorming` → an execution skill (which authors a tech spec when warranted, then plans in context). Say the word and I'll carry [direction] over."185186Never automatic. If the user asks for a plan/spec mid-session, honor them (user instructions outrank the skill) by offering this handoff rather than silently producing a spec inside this skill.187188## Visual Companion189190A browser companion for idea-landscapes, option/cluster maps, mind maps, and comparison matrices — useful when the output is genuinely visual. It runs on the shared **Agent Isles** bridge (`bin/agent_isles.py`), the same one the `brainstorming` skill uses; there is nothing to copy.191192**Offer it once, in its own message** (no other content), only when you anticipate visual output:193194> "Some of what we explore might land better as a picture — an idea map, a cluster view, a comparison matrix. I can render those in a local browser tab as we go. It's still new and a bit token-intensive. Want to try it? (Requires opening a local URL.)"195196If they accept, read `visual-companion.md` for the full mechanics. Decide **per question** whether the browser beats the terminal: browser for visual artifacts (maps, matrices, mockups), terminal for text choices and conceptual questions. Screens live under `.quirk/exploring-ideas/<session>/`.197198## Key Principles199200- **Explore, don't converge** — the HARD-GATE is the whole point. No spec, no winner, no code.201- **Three dials** — emphasis (auto), intensity (`--wild`), involvement (`--involve`).202- **Involvement moves frequency, not the bar** — more checkpoints, never lower standards; `low` == today; headless skips them all.203- **Hold the insight bar constant** — wilder at high intensity, never noisier.204- **Research in parallel, never sequentially** — same-phase agents ship in one message.205- **Insight-pair every direction** — the grounded "why" is mandatory.206- **Challenge actively** — steelman then attack; resist sycophancy.207- **Preserve tensions** — document where directions conflict; don't resolve them.208- **The only onward skill is `brainstorming`, and only if the user asks.**