drobins25/craft/creative-spark

Claude Code and agent skill by drobins25/craft

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

This skill should be used when the user asks to "brainstorm", "explore options", "get creative", "what if we...", or selects "Let's get creative" during story or cycle creation. NOT for a bare vague feature idea where generating options would mean inventing the premise first - that routes to /craft:riff (riff first, options after). Generates 3-4 creative options with trade-offs, visual direction for UI stories, and wireframes.

Install

npx vskill@latest install drobins25/craft/creative-spark

SKILL.md

Creative Spark Skill

You are entering the Creative Phase - the ideation engine of the Craft harness. Your job is to generate options that inspire, not to make decisions.

When This Activates

  • User is starting a new story or feature
  • User says "let's brainstorm", "what if", "options for"
  • User needs design direction
  • User asked for options and needs fresh perspectives

Orchestrator Context

The orchestrator may pass enriched args. Parse labeled fields if present:

  • STORY: story name — provides story identity
  • PROJECT_TYPE: web/cli/library — tailor options to project type
  • EXISTING_PATTERNS: key patterns in the codebase — build on what exists

Fallback: Args are primarily conversational context. All phases work without labeled fields.

Existing Visual Direction Check

Before generating options, read the story file (if one exists). If the story already has a populated ## Visual Direction section (e.g., from design-vibe), ask the user before proceeding:

Use AskUserQuestion:

question: "This story already has visual direction ([vibe name]). How should creative exploration work?"
header: "Visual"
options:
- label: "Build on it"
description: "Explore functional and interaction options within the existing visual direction"
- label: "Replace it"
description: "Start fresh — generate new visual directions too"

If "Build on it": Use the existing visual direction as a constraint. Your options explore functional approaches, interaction patterns, and technical angles — not competing visual directions. Reference the existing vibe/feel/tokens so options stay aligned. Do NOT overwrite Visual Direction or Wireframe sections.

If "Replace it": Generate full options with new visual directions and wireframes per the output format templates. The chosen option's visual direction will replace what's there.

If the story has NO visual direction (sections are empty or placeholder comments), generate visual direction as part of each option per the output format templates. No prompt needed.

Content Direction Awareness

Before generating options, check if the story has a `## Content Direction` section. If it does:

  • Read it fully. Content Direction specifies the WHAT — display content, narrative arc, copy direction, data shape, priority/hierarchy.
  • Treat it as a constraint, not a suggestion. Your options explore the HOW (visual direction, interaction patterns, layout) while respecting the WHAT.
  • Reference it in your options. When an option's layout or flow is informed by Content Direction, say so: "The content direction specifies [X], so this layout prioritizes..."
  • Don't re-decide content. If Content Direction says "hero section shows streak count and today's plan," don't generate an option that replaces that with a motivational quote. Explore how to PRESENT the streak count and plan.

If no Content Direction exists, proceed normally — you may need to make content assumptions as part of your creative options.

Your Creative Process

1. Understand the Context

Before generating ideas, gather:

  • What problem are we solving?
  • Who is the user?
  • What constraints exist?
  • What's the current state?
  • Does the story already have visual direction? (Read the file first)
  • Does the story have a ## Content Direction section? If yes, read it and use it as constraints for option generation. Content Direction tells you WHAT goes in the feature — your options should explore HOW it looks and feels, not re-decide the content.
1.5 Creative Driver (Optional)

After gathering context, offer the user a choice of creative lens. Each option brings a different agent's perspective to enrich the brief before option generation. Agents are interrogators - they enrich the brief, they don't replace option generation. The multi-stance tension framework stays intact; agent input makes each stance sharper.

Use AskUserQuestion:

question: "Who should drive the creative direction?"
header: "Driver"
options:
- label: "Standard (Recommended)"
description: "Analyze the story and generate options directly."
- label: "Muse"
description: "Start from why anyone will care - find the emotional job before exploring how to build it."
- label: "Alchemist"
description: "Find the physical metaphor first - what does this weigh, how does it move, what does it feel like to touch?"
- label: "Full Workshop"
description: "Muse finds the feeling. Alchemist finds the physics. Options where both speak the same language."

If Standard: Skip to Step 2 (Reframe). No agent invocation. This is the current behavior, unchanged.

If Muse, Alchemist, or Full Workshop: Proceed to the Agent Interrogation step below before Step 2.

1.6 Agent Interrogation

This step runs only when the user selected Muse, Alchemist, or Full Workshop. The agents enrich the creative brief - they do NOT generate options. Creative-spark still generates all options in Step 3.

Before invoking any agent, write a continuation breadcrumb:

bash
cat > "${CRAFT_PROJECT_ROOT:-.}/.craft/.continuation" << CRUMB
ACTION: Continue creative-spark - agent interrogation complete, proceed to Step 2 (Reframe and Find the Tension) with enriched brief
SKILL: craft:creative-spark
ARGS: Continue from agent interrogation - brief enriched, generate options
WRITTEN_BY: creative-spark
TIMESTAMP: $(date -u +%Y-%m-%dT%H:%M:%S)
CRUMB

Muse Invocation:

Task tool:
subagent_type: "craft:muse"
description: "Interrogate: emotional job"
prompt: |
## Brief
You are interrogating a story BEFORE creative options are generated.
Your job: find the emotional job underneath the feature request.
Do NOT generate options or wireframes. Return a structured briefing only.
## Story Context
[Include: story name, spark/description, Content Direction section if present,
design tokens summary if present]
## Return Format
**Stated Problem:** [what the story literally asks for]
**Underlying Emotional Job:** [what the user actually needs to FEEL]
**Mechanic That Carries Feeling:** [what interaction creates the emotional resonance]
**Identity Attachment:** [will users extend self into this feature? why/why not]
**Word-of-Mouth Test:** [would someone describe this to a friend? what would they say?]
## Constraints for Option Generation
- Prioritize: [emotional dimension to emphasize]
- Avoid: [emotional traps to sidestep]
- The feeling this needs to produce: [one sentence]
## Rules
- Return the briefing only. Do not generate options.
- Do not do additional file research beyond what's provided.
- Be direct and opinionated. Name what you see.

Alchemist Invocation:

Task tool:
subagent_type: "craft:alchemist"
description: "Interrogate: interaction physics"
prompt: |
## Brief
You are interrogating a story BEFORE creative options are generated.
Your job: find the physical metaphor and interaction vocabulary for this feature.
Do NOT generate options or wireframes. Return a structured briefing only.
## Story Context
[Include: story name, spark/description, Content Direction section if present,
design tokens summary if present]
## Return Format
**Physical Metaphor:** [what does this feature weigh? what real-world object does it behave like?]
**Entry Physics:** [how does this appear? slide/emerge/bloom/snap]
**Resting Behavior:** [static/breathing/ambient pulse/reactive]
**Exit Physics:** [how does this leave? collapse/fade/swipe/dissolve]
**Easing Personality:** [ease-out = responsive, spring = alive, linear = mechanical]
**Compositor Constraint:** [transform+opacity only for 60fps, or layout changes acceptable?]
**Reduced Motion Alternative:** [how to adapt for vestibular safety]
## Constraints for Option Generation
- Prioritize: [interaction dimension to emphasize]
- Avoid: [performance landmines or physics that contradicts the feature's personality]
- Cross-domain inspiration: [what physical system from the real world does this mirror?]
## Rules
- Return the briefing only. Do not generate options.
- Do not do additional file research beyond what's provided.
- Be direct and opinionated. Name what you see.

Full Workshop: Invoke both Muse and Alchemist via parallel Task calls. Combine both briefings into one enriched brief for Step 2.

After agent(s) return:

  1. Clean up the breadcrumb: rm -f "${CRAFT_PROJECT_ROOT:-.}/.craft/.continuation"
  2. Show the user the take before it disappears into the brief. Quote 2-3 verbatim lines of the muse briefing in the message body, prefixed "Muse's take: ..." - pull the vivid lines (the Underlying Emotional Job and the Mechanic That Carries Feeling), not boilerplate. In Full Workshop, the alchemist briefing gets the identical treatment, prefixed "Alchemist's take: ..." (quote the Physical Metaphor / easing personality lines) - both briefings surfaced when both return. This is prose only - it adds no AskUserQuestion and no confirmation beat; the user reads it and the flow moves on. The user invoked these agents; this is the one moment they hear them speak.
  3. Store the agent briefing(s) as ENRICHED_BRIEF - this feeds into Step 2
  4. Proceed immediately to Step 2
2. Reframe and Find the Tension

If an enriched brief exists from Step 1.6 (agent interrogation), use it as input here. The brief is additive - it enriches these questions, it doesn't replace them. The existing framework (Design POV, Core Tension, Physics) stays intact.

  • Muse briefing present: Use the "Underlying Emotional Job" as your starting answer to "What is this feature ACTUALLY about?" below. Use "Mechanic That Carries Feeling" to inform "What would make this remarkable?" The muse has already named the deeper job - build on it rather than starting from scratch.
  • Alchemist briefing present: Use the "Physical Metaphor" and motion vocabulary as your starting answer to "What does this weigh?" below. The alchemist has already named the entry/resting/exit physics - incorporate those into your Physics line rather than inventing from zero.
  • Both present (Full Workshop): Muse's emotional job seeds "ACTUALLY about", alchemist's physics seeds "What does this weigh?", both inform "remarkable" and the cross-domain pattern selection for Option C.
  • No briefing (Standard path): These questions work exactly as before. No change.

Before jumping to layouts and wireframes, spend a moment as a design director:

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
68
Repository forks
7
7-day trend score
21

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/drobins25/craft/creative-spark/badge)](https://verified-skill.com/skills/drobins25/craft/creative-spark)

Something wrong with this skill or its page? Tell us.