# Naming Skill — Document Templates

Each phase writes a Markdown file to `{repo}/docs/naming/` following the
template below. Templates exist so that `resume` mode can reliably re-read
state, and so that different agents / sessions produce consistent output.

---

## 01-brief.md

```markdown
# Naming Brief

> Generated by naming skill · Last updated: {date}
> Mode: {greenfield | rebrand} · Entity scope: {product | company | both_same_name}

## Rebrand Audit (rebrand mode only)

**Current name:** {name}
**Triggers confirmed:** {list of 1-4}
**Decision:** {keep | change}
**Rationale:** {one paragraph}

## 1. Product / Entity Summary

{One paragraph: what the thing is, who it serves, current stage}

## 2. Benefit Ladder

| Level | Content |
|-------|---------|
| Feature | {what it does, mechanics} |
| Functional benefit | {problem it solves} |
| Emotional benefit | {how user feels after using it} |
| Ultimate benefit | {identity / aspiration — 1-2 words} |

**Ultimate Concept (creative springboard):** {1-2 words}

## 3. Brand Personality

### Axes (-5 to +5)
| Axis | Position | Notes |
|------|----------|-------|
| Funny ↔ Serious | {±N} | {why} |
| Formal ↔ Casual | {±N} | {why} |
| Respectful ↔ Irreverent | {±N} | {why} |
| Enthusiastic ↔ Matter-of-fact | {±N} | {why} |

### Three to Five Words
{bullet list describing the brand as a person}

### Tone to Avoid
{specific anti-patterns, e.g. salesy / clinical / corporate / try-hard}

## 4. Constraints

| Constraint | Value |
|------------|-------|
| Target markets | {countries / languages} |
| Domain requirement | {.com required / any TLD / tiered preference} |
| Syllable preference | {1 / 2 / 3 / any} |
| Off-limits patterns | {e.g. no "AI" prefix, no "ly" suffix, no founder name} |

## 5. GTM Carryover (if has_gtm_docs)

Reused from `docs/gtm/`:
- Positioning: {one-liner from brand-strategy §5}
- ICP archetypes: {list from market-landscape §1}
- Voice summary: {from messaging-framework §4}
```

---

## 02-namescape.md

```markdown
# Competitive Namescape

> Generated by naming skill · Last updated: {date}

## 1. Competitor Name Inventory

| # | Name | URL | Taxonomy Type | Notes |
|---|------|-----|---------------|-------|
| 1 | {name} | {url} | {type} | {one-line observation} |
| ... | ... | ... | ... | ... |
| 20 | ... | ... | ... | ... |

## 2. Dominant Patterns

### Taxonomy Distribution
{which types appear most often — e.g. "7/20 are portmanteau, 5/20 suggestive"}

### Recurring Affixes and Sounds
{"-ly suffix (4 competitors)", "hard-K onset (5 competitors)", etc.}

### Visual & Semantic Clusters
{competitors that cluster around similar metaphors or fields}

## 3. No-Go Zones

Patterns we will NOT use because they would make us invisible:

1. {pattern} — {why it's saturated}
2. {pattern} — {why}
3. {pattern} — {why}

## 4. White Space

Taxonomy types under-represented in the category (opportunity):
- {type} — {why it's open}
- {type} — {why}
```

---

## 03-candidates.md

```markdown
# Name Candidates

> Generated by naming skill · Last updated: {date}
> Models used: {claude, codex, gemini} · Total candidates: {N}

## Generation Summary

| Model | Candidates produced |
|-------|---------------------|
| Claude | {N} |
| Codex | {N} |
| Gemini | {N} |

All selected models received the same full brief; taxonomy coverage
emerges from model priors, not forced assignment.

After dedupe: {final N}

## By Taxonomy Type

### 1. Descriptive ({N} candidates)

| # | Name | One-line gloss | Source model |
|---|------|----------------|--------------|
| 1 | {name} | {why this name, what it evokes} | {model} |
| ... | ... | ... | ... |

### 2. Suggestive / Evocative ({N} candidates)

...

### 3. Invented / Coined ({N} candidates)

...

{Repeat for each taxonomy type that has candidates}

## Raw Model Outputs (for traceability)

Per-session, timestamped paths under `docs/naming/.raw/`:

- `brief-{TS}.md` — the exact brief sent to external models
- `codex-{TS}.txt` — codex stdout (if codex was selected)
- `gemini-{TS}.txt` — gemini stdout (if gemini was selected)
- Claude batches: inline above
```

---

## 04-evaluation.md

```markdown
# Evaluation

> Generated by naming skill · Last updated: {date}

## Funnel

- Input candidates: {N}
- Gate survivors: {N}
- Scored (top 15): {N}
- Selected for tension test: 10

## Layer 1: Gate Results

### Cuts by gate

| Gate | Cut count | Examples |
|------|-----------|----------|
| Pronounceability | {N} | {3 examples} |
| Spelling-on-hearing | {N} | {examples} |
| Competitor echo | {N} | {examples} |
| Literal description | {N} | {examples} |
| Cross-cultural red flag | {N} | {examples} |
| Core domain unavailable | {N} | {examples} |
| Trademark knockout | {N} | {examples} |
| LLM failure mode auto-penalty | {N} | {examples} |

### Unverified flags

Names kept with `unverified` flags (must appear in 05-decision.md Limitations):

| Name | Unverified field | Reason |
|------|-----------------|--------|
| {name} | trademark / domain / handles / cross-cultural | {why we couldn't verify} |

## Layer 2: Score (top 15)

**Record raw 1–10 ratings AND the weighted totals.** The Phase 6 winner rule
checks raw Strategy and Memorability scores (must be 9 or 10); the weighted
total is only for ranking. Losing the raw values breaks winner auditability.

### Raw scores (1–10 per dimension)

| Rank | Name | Strat | Mem | Sound | Extend | Own | Cross | Vibe |
|------|------|-------|-----|-------|--------|-----|-------|------|
| 1 | {name} | 9 | 9 | 8 | 9 | 8 | 9 | 8 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |

### Weighted totals — formula: **`(raw / 10) × weight`**

The rubric is a 100-point scale. Each weighted dimension = raw score
(1–10) divided by 10, then multiplied by the dimension weight. Example:
raw Strategy = 9 → weighted = (9 / 10) × 25 = **22.5**. Total across all
7 dimensions is capped at 100. Never use `raw × weight` literally —
that produces a 0–1000 scale and breaks cross-run comparison.

| Rank | Name | Strat (×25) | Mem (×20) | Sound (×15) | Extend (×15) | Own (×10) | Cross (×10) | Vibe (×5) | Total |
|------|------|-----------|----------|-----------|-------------|---------|-----------|---------|-------|
| 1 | {name} | 22.5 | 18 | 12 | 13.5 | 8 | 9 | 4 | 87 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |

## Shortlist for Tension Test

User-selected 10 names for Phase 5 (may not be strict top 10 by score —
remarkable beats balanced):

1. {name} — {one-line "why this one"}
2. ...
10. ...

## Rationale Notes

- Why rank ≠ shortlist: {any name that ranked high but was cut for being too safe, or ranked lower but included for tension}
- Balanced-but-invisible cuts: {names that scored well across the board but felt generic}
```

---

## test-kit.md

```markdown
# Tension Test Kit

> Generated by naming skill · {date}
> Instructions for the user to run with 3-10 testers

## Who to invite

- **5-10 testers ideal. 3 is the minimum.**
- Mix of ideal customers (60%) and trusted advisors (40%).
- **Exclude:** co-founders, team members, anyone with internal context.
- Individual 1-on-1s, not focus groups (focus groups push toward consensus = invisible zone).

## Protocol (per tester)

1. Frame: "I'm testing name candidates for a new [product / company]. I'll show you each name cold — no logo, no pitch. I want your first reactions."
2. For each of the 10 names:
   - Say the name out loud.
   - Write it down / show it on screen.
   - Wait 5 seconds silently.
   - Ask the three questions below (in order).
   - Record verbatim if possible.
3. Do NOT explain what the product does until AFTER all 10 names are done.

## Questions (same three, every name)

1. "What does this name make you feel?" (NOT "do you like it")
2. "What kind of company or product do you imagine?"
3. "If you saw this on a billboard, would you remember it tomorrow?"

## Recording Table

Copy this table once per tester:

**Tester: {name or initials} · Role: {ICP / advisor} · Date: {date}**

| # | Name | Feeling (verbatim) | Imagined category | Remember tomorrow? (Y/N) |
|---|------|-------------------|-------------------|-------------------------|
| 1 | {name} | | | |
| 2 | {name} | | | |
| ... | ... | | | |
| 10 | {name} | | | |

## When results are in

Return to this conversation and paste the filled tables. The skill will
interpret them using the rules in SKILL.md Phase 5.

## Day-after memorability check

If possible, message each tester ~24 hours later with:
> "Quick one — of the names I showed you yesterday, which do you remember?"

Record which names are recalled unprompted. This is the strongest signal
in the whole test kit.
```

---

## 05-decision.md

```markdown
# Naming Decision

> Generated by naming skill · Finalized: {date}

## ⚠ Limitations

**Before acting on this decision, verify the following:**

{Auto-generated from state.unverified. Each entry has format:}

- **{Field}: {name}** — {why unverified} → **You need to {explicit action} before {launch event}**

Example:
- **Trademark: Vercel** — USPTO knockout check not run by skill → **You need to hire an IP attorney to run full USPTO + Madrid Protocol clearance before filing.**
- **Tension test: low sample (3 testers)** → **Consider validating with 5+ additional ICP interviews before public launch.**

## The Name

# {WINNER}

**Taxonomy type:** {type}
**Pronunciation:** {/ˈvɜːr.sɛl/ or similar}
**Source model:** {which model in Phase 3 generated this}

## Why This One Won

{2-3 paragraphs: how it beat the other two finalists. Reference score
differences, tension test patterns, strategic fit.}

## Brand Origin Story

{2-3 paragraphs: where the name came from, what it means, how it ties
to ultimate benefit. This is the story told at every pitch, press
interview, and podcast for the next decade.}

## Taglines

Candidates (pick 1-2):
1. {tagline}
2. {tagline}
3. {tagline}

## Domain Strategy

| Domain | Status | Plan |
|--------|--------|------|
| {name}.com | {available / taken / premium} | {register / acquire / substitute} |
| {name}.co | {status} | {plan} |
| {name}.io | {status} | ⚠ long-term uncertainty: UK–Mauritius Chagos transfer (Oct 2024) could eventually trigger ISO 3166-1 BIOT removal |
| {name}.ai | {status} | |
| get{name}.com | {status} | |
| {name}hq.com | {status} | |

## Social Handles

| Platform | Handle | Status |
|----------|--------|--------|
| X | @{name} | {available / taken / variant} |
| LinkedIn | /company/{name} | |
| Instagram | @{name} | |
| TikTok | @{name} | |
| GitHub | /{name} | |

## Trademark Prescreen

| Jurisdiction | Knockout result | Notes |
|--------------|----------------|-------|
| USPTO (US) | {clean / conflict / unverified} | {details} |
| WIPO (Madrid) | {clean / conflict / unverified} | {details} |

**This is a knockout prescreen only, not legal clearance.**
Hire a trademark attorney before filing.

## Finalists Not Chosen

For future reference:

### Runner-up 1: {name}
- Score: {N}
- Tension test: {summary}
- Why not chosen: {one paragraph}

### Runner-up 2: {name}
- Score: {N}
- Tension test: {summary}
- Why not chosen: {one paragraph}

## Decisions You Overrode (from disputes[])

{If disputes is empty, omit this section.}

- Phase {N}, topic: {topic}
  - Agent recommended: {X}
  - You chose: {Y}
  - Rationale: {reason}

---

## Announcement Draft (rebrand mode only)

### Blog Post

**Title:** {Old Name} is now {New Name}

**Body:**

{Draft 3-4 paragraphs following the Vercel "Zeit is now Vercel" template:
1. What's changing (one sentence)
2. Why (one reason — strategic pivot, architecture clarity, or legal)
3. What it means for customers (continuity promise + migration path)
4. What excites you about the new name}

### Customer Email

{Shorter version for direct outreach — 2 paragraphs + signature}

### Social Posts

**X thread** (4 tweets):
1. {hook announcing change}
2. {why}
3. {what's not changing — team, mission, product}
4. {call to action}

**LinkedIn:** {single post, 150 words}

### Transition Period

- **Pre-announce (internal):** {date range} — trademark filed, domains secured, handles claimed, team trained.
- **Announce (day 0):** {date} — blog + email + social.
- **Dual-brand period:** {start} to {end} — use "{New}, formerly {Old}" phrasing everywhere.
- **Full migration:** {date} — drop "formerly" from all public-facing copy.

---

## 30-Day Launch Checklist

- [ ] Register trademark (lawyer engagement)
- [ ] Acquire primary domain + 2 modifiers
- [ ] Claim all social handles
- [ ] Update README.md
- [ ] Update package.json / pyproject.toml / etc.
- [ ] Update app stores (iOS + Android)
- [ ] Update landing page / marketing site
- [ ] Update email signatures + templates
- [ ] 301-redirect old domain (rebrand only)
- [ ] Internal team training + style guide
- [ ] Update investor / advisor materials
- [ ] Press outreach (if applicable)
```
