Arness Spark Naming
Guide a product from nameless concept to validated brand name through a structured 4-step methodology, driven by the arn-spark-brand-strategist agent. Produces a naming brief (naming-brief.md) in the vision directory and a naming report (naming-report.md) in the reports directory.
Prerequisites
- Read the project's CLAUDE.md for the
## Arnesssection. - Extract Vision directory and Reports directory paths. If no
## Arnesssection exists or Arness Spark fields are missing, inform the user: "Arness Spark is not configured for this project yet. Run/arn-brainstormingto get started — it will set everything up automatically." Do not proceed without it. - Create directories if they do not exist.
Step 0: Context Gathering
Product context
Check for <vision-dir>/product-concept.md:
If found: Read and extract: vision statement, value proposition, target audience, product pillars, competitive landscape. Summarize the extracted context to the user: "Found your product concept. I'll use this as the foundation for naming."
If not found:
Ask (using AskUserQuestion):
"No product concept found. How should I learn about your product?"
- Describe your product — Provide a description in the next message
- Point me to a file — Specify a file path containing product information
- Explore current project — I'll read README, package.json, and code to infer what the product does
If option 3: invoke arn-spark-brand-strategist in brand-dna mode with instructions to explore the project and summarize the product context.
Target market
Ask (using AskUserQuestion):
"What is the primary target market? This determines trademark databases and languages for linguistic screening."
- United States — USPTO trademark search, English + Spanish linguistic check
- European Union — EUIPO trademark search, English + French + German + Spanish + Italian
- United Kingdom — IPO trademark search, English linguistic check
- Global / Multiple regions — WIPO + major national databases, all major languages
Existing naming brief
Check for <vision-dir>/naming-brief.md:
If found:
Ask (using AskUserQuestion):
"A naming brief already exists. How would you like to proceed?"
- Resume from where I left off — Continue from the first incomplete section
- Start fresh — Preserve existing as naming-brief-previous.md and begin new
If resume: read the brief, detect which sections contain "-- Pending --" or are missing, and resume from the first incomplete step.
Step 1: Strategic Foundation (Brand DNA)
Invoke the arn-spark-brand-strategist agent in brand-dna mode via the Task tool, passing the model from .arness/agent-models/spark.md as the model parameter (see plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md "Dispatch convention" for fallback). Context:
- Product context (from product-concept.md or user input)
- Competitive landscape (from product concept, or agent will research via WebSearch)
- Target market
The agent returns: brand personality profile, audience vocabulary, competitor name landscape, 1-2 recommended naming categories with rationale.
Present the Brand DNA analysis to the user.
Ask (using AskUserQuestion):
"Proceed with the recommended naming categories?"
- Yes, proceed with [recommended categories] (Recommended) — Use the strategist's recommendation (substitute actual category names from the Brand DNA analysis)
- Choose different categories — Select naming categories manually
If option 2:
Ask (using AskUserQuestion, multiSelect: true):
"Select naming categories to explore (select all that apply):"
- Descriptive — Names that describe what the product does (PayPal, Dropbox)
- Evocative — Names that suggest a feeling or metaphor (Slack, Nike)
- Invented / Abstract — Completely new words (Spotify, Google)
- Lexical — Wordplay, puns, alliteration (Pinterest, Netflix)
Then prompt (free-text): "Any existing name ideas, words you love, or words you hate? These will seed the creative sprint. Type 'none' or 'skip' to continue without seeds."
Write initial <vision-dir>/naming-brief.md using the creative brief template:
Read ${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-naming/references/creative-brief-template.md
Populate: Context and Brand DNA sections. Mark remaining sections as "-- Pending --".
Step 2: Creative Sprint (The Big List)
Four generation rounds via arn-spark-brand-strategist in generation mode.
Round 1 — Seed harvest: Invoke agent with user's existing ideas and preferences as seeds. If no seeds, skip to Round 2.
Round 2 — Category sprints: Invoke agent once per selected category, requesting 50-80 candidates each. Pass the brand DNA context and dead directions. Present candidates to user after each category sprint for early feedback.
Round 3 — Mashup round: Invoke agent with all Round 1-2 candidates. Cross-pollinate fragments across categories. Target: 30-50 mashup candidates.
Round 4 — User collaboration checkpoint: Present the complete candidate list organized by category. This is a free-text conversation loop: the user marks favorites (star), flags directions to kill, and may suggest additional directions. Iterate until the user signals satisfaction.
Target: 200+ total candidates across all rounds.
Update naming-brief.md with Creative Sprint Results section (generation stats, candidates by category, starred favorites, dead directions).
Step 3: Qualitative Filter (Six Senses)
Load the scoring methodology:
Read ${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-naming/references/naming-methodology.md
Invoke the arn-spark-brand-strategist agent in scoring mode via the Task tool, passing the model from .arness/agent-models/spark.md as the model parameter (see plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md "Dispatch convention" for fallback). Context: full candidate list, user-starred favorites, dead directions.
Pass 1: Agent filters 200+ candidates to 30-40 by removing obvious duds (unpronounceable, too long, too similar, offensive, dead directions). User-starred names always survive Pass 1.
Pass 2: Agent scores each surviving candidate on the Six Senses (1-5 each):
- Appearance — visual punch, letter count
- Sound — euphony, Phone Test
- Meaning — associations, connotations
- Memorability — stickiness, alliteration
- Function — verbability, typability, handle-fit
- Scalability — expansion headroom
Present the scored table sorted by total score (6-30).
Prompt (free-text): "Select 5-8 finalists for due diligence. You can pick from the top of the table, or choose names you like regardless of score."
Update naming-brief.md with Qualitative Filter Results section.
Step 4: Cold Shower (Due Diligence)
4a — Domain Availability
Load the WHOIS/RDAP server reference:
Read ${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-naming/references/whois-server-map.md
How it works: Both scripts use RDAP (the modern IETF standard) as the primary lookup method, with port-43 WHOIS and system whois as built-in fallbacks. The fallback chain per domain is: RDAP → port-43 WHOIS → system whois → manual URL. The scripts handle this automatically — no manual fallback logic needed.
Environment detection (priority order):
- Check Python: run
python3 --version. If available, use${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-naming/scripts/whois-check.py. - Check Node.js: run
node --version. If available, use${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-naming/scripts/whois-check.js. - Neither available: skip automated checking. Present manual fallback URLs (
https://www.whois.com/whois/[domain]) for each domain.
Note: System whois is NOT required — both scripts have it as a built-in last-resort fallback (gracefully skipped on Windows wh