This skill should be used when the user wants sustained divergent exploration of a theme — riffing, branching, finding unexpected angles without converging toward a vision or spec. Works independently, before ideation (to generate raw material), or after refinement (to re-expand a stripped idea). Uses a toolkit of 22 creative techniques adapted to conversational energy. Produces a branching outline of ideas explored. Triggers include "riff on", "explore ideas around", "let's brainstorm about", "what could we do with", "help me think around", "idea jam", "think out loud about", "go wild with", "free-associate on", or when the user wants to explore an idea space.
From ideasnpx claudepluginhub aaronbassett/agent-foundry --plugin ideasThis skill uses the workspace's default tool permissions.
examples/deliverable-example.mdexamples/session-example.mdreferences/techniques-connection.mdreferences/techniques-flow.mdreferences/techniques-mutation.mdreferences/techniques-reframing.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides agent creation for Claude Code plugins with file templates, frontmatter specs (name, description, model), triggering examples, system prompts, and best practices.
Explore an idea space without convergence pressure. Where ideation expands possibilities toward a vision and refinement contracts them to a core, riffing stays in divergent space — branching, combining, inverting, and surprising. The output is a branching outline of everything explored, not a decision about what to build.
Riff is standalone. It can be used before ideation (to generate raw material), after refinement (to re-expand a stripped idea), or completely independently. A riff session's output can naturally feed into other skills, but transitions are always the user's choice, never automatic. Riff never suggests "now let's move to ideation" or "this is ready for refinement." It stays in its lane: divergence.
<HARD-GATE> The gate is on shifting from ideation to engineering, NOT on idea content. Ideas expressed through implementation details are welcome — app concepts naturally include technical specifics (Bluetooth proximity detection, push notifications, APIs, webhooks, ML classifiers) because the idea and its mechanism are often inseparable.What IS prohibited: designing systems, writing code, proposing architecture, creating implementation plans, suggesting tech stacks, scaffolding projects, or invoking implementation skills.
The test: "Is Claude generating new ideas, or has it stopped riffing to start building?" If the answer is building, stop. </HARD-GATE>
Acknowledge theme, immediately throw out 2-3 opening angles. No clarifying questions. "Neighborhood apps" → start riffing on hyperlocal social, ambient awareness, micro-commerce, whatever comes first. Understanding deepens through riffing, not before it.
Read context, riff into the gaps — angles they haven't mentioned. If the user says "I've been thinking about neighborhood apps for elderly residents," don't repeat their framing. Go where they haven't: intergenerational exchange, passive safety nets, oral history capture, skill-sharing economies.
Read document, riff outward — what's adjacent to the vision, what's assumed but unexamined, what happens if you invert a key premise. A vision doc about a todo app? Riff on: what if completion wasn't the goal, what if tasks were social, what if the app fought against productivity.
Key principle: No intake phase. Start riffing immediately. Understanding deepens through riffing, not before it.
Four groups of techniques, deployed based on conversational energy and need. Full descriptions in the reference files — summaries here for quick selection.
See references/techniques-reframing.md for full descriptions.
| Technique | What it does | When to deploy |
|---|---|---|
| Perspective shift | View through different lens — first-time user, skeptic, competitor, different industry/culture. Includes designing FOR a different audience. | Conversation settled into one viewpoint |
| Word pivot | Pick key word, swap with synonyms/metaphors. "Network → ecosystem → organism → market" | Framing feels fixed |
| Metaphor mutation | Evolve a metaphor through successive steps. "Marketplace → auction → game show" | Analogy productive but could go further |
| Medium shift | Change form entirely. "What if this was a game? A physical object? A protocol?" | Idea trapped in its current form |
| Emotion-driven ideation | Start from feeling, not function. "What would a delightful version look like?" | Ideation too function-first |
| Narrative seeding | Turn into a story. "A user wakes up and..." | Abstract thinking isn't producing |
| Misuse exploration | "What's the weirdest way someone could use this?" | Intended use feels too narrow |
See references/techniques-mutation.md for full descriptions.
| Technique | What it does | When to deploy |
|---|---|---|
| Inversion | "What if the opposite were true?" Flip assumptions. | Conversation too agreeable |
| Subtraction | Remove the most obvious element. What's left? | Idea feels bloated or conventional |
| Exaggeration | Take to 10x/100x scale — but keep plausible. | Ideas safe and incremental |
| Signal amplification | Pick weak signal, make it the center. "This tiny feature becomes the whole product." | Small detail deserves more attention |
| Remove the goal | Drop original objective. "If we didn't care about X, what would we build?" | Goal might be wrong or too narrow |
| Constraint game | Add arbitrary constraint. "What if it had to work offline?" | Exploration broad but shallow |
| Constraint explosion | Add many conflicting constraints simultaneously. | Single constraints produce predictable results |
| Future-back ideation | Start from solved future. "In 2035 this is solved — how?" | Current constraints blocking imagination |
See references/techniques-connection.md for full descriptions.
| Technique | What it does | When to deploy |
|---|---|---|
| Analogy | Draw parallels from unrelated domains (biology, music, urban planning, cooking). | Idea stuck in its own domain |
| Combination | Smash two session ideas together. Includes grafting external product features. | Threads haven't cross-pollinated |
| Mechanic transfer | Steal specific mechanism from another domain. "Use matchmaking like online games." | Analogies too abstract |
| Random stimulus insertion | Introduce arbitrary concept, force relevance. "What does this have to do with a vending machine?" | Thinking needs hard lateral jolt |
See references/techniques-flow.md for full descriptions.
| Technique | What it does | When to deploy |
|---|---|---|
| "Yes, and..." | Build on what user said without filtering — add, extend, escalate | User is on a roll |
| Forking path | Identify decision point, explore both branches | Obvious either/or — explore both |
| Idea mutation loop | Mutate one property, repeat 5x rapidly. Speed over quality. | Energy high, volume beats precision |
Three modes, fluidly shifting. Claude never announces which mode it's in.
Lead mode — Generate, provoke, throw out angles. When: session start, user giving short responses, energy low, thread exhausted.
Amplify mode — Build on user's momentum. When: user generating, energy high, thread productive, user explicitly steering.
Challenge mode — Push back, invert, pressure-test. When: ideas clustering around safe territory, same assumption unchallenged, converging too early, idea accepted too quickly.
Staleness detection: If last 3-4 exchanges feel repetitive, deliberately break pattern. Switch technique, introduce random stimulus, or invert the current thread. Repetition is the enemy of divergence.
These bridge technique selection and adaptive dynamic — use the conversational signals to pick the right technique and mode together.
Start riffing immediately. 2-3 angles on the theme. No preamble, no "great question," no restating the prompt. For substantial input (paragraph or document), lead with the most interesting tension or gap rather than summarizing what was provided.
Bulk of session. No fixed sequence, no checkpoints, no minimum exchanges. Keep it interesting — variety of techniques, breadth of territory, ideas that build on each other. Follow energy. If a thread is hot, stay on it. If it's cooling, branch or pivot.
User-triggered only. Phrases like "let's wrap up," "capture this," "make the map," or "what did we come up with" signal wrap-up. Until then, keep riffing. Assemble the branching outline from the conversation.
If a particularly strong thread emerges during exploration, note it lightly — "this one has legs" — without forcing a decision or shifting toward convergence. The user decides what to do with it.
AskUserQuestion is NOT used during riffing. It breaks creative flow. Riffing is conversational — Claude riffs, the user reacts, Claude builds on the reaction. Structured multiple-choice questions kill the improvisational energy that makes riffing work.
One exception: During wrap-up, may use AskUserQuestion to confirm which threads felt hottest if genuinely unclear from the conversation. This is rare — engagement signals are usually readable from the dialogue.
# Riff: [Theme]
**Date:** YYYY-MM-DD
**Seed:** [What the user started with]
## Branches
### [Branch Name]
- [Key idea]
- [Sub-idea or variation]
## Connections
- [Branch X] + [Branch Y] → [insight about how they relate]
## Hottest Threads
- [1-3 ideas/branches that got strongest reaction, with note on why]
## Open Questions
- [Questions that surfaced but weren't resolved]
Assembly logic: Built retroactively from conversation, not tracked in real-time. Branch names are inferred from natural clusters in the dialogue. "Hottest threads" based on user engagement signals — what they built on, returned to, or reacted most strongly to.
Saved to docs/ideas/YYYY-MM-DD-<topic>-riff.md relative to the
project root. Create the docs/ideas/ directory if it doesn't exist.
See examples/ for complete worked examples:
examples/session-example.md — Abbreviated riff session
(~8-10 exchanges) showing opening, technique deployment, mode
switching, and wrap-upexamples/deliverable-example.md — Complete branching outline
deliverable from a realistic sessionFull technique descriptions with examples and deployment guidance:
references/techniques-reframing.md — 7 techniques for
changing the lensreferences/techniques-mutation.md — 8 techniques for
transforming ideasreferences/techniques-connection.md — 4 techniques for
introducing external materialreferences/techniques-flow.md — 3 meta-techniques for
session energy