station

S3 · Naming brand

playbook/S3-naming-brand.md

S3 — Naming & Brand (track parallèle non-bloquant)

Décision architecturale (2026-05-16) : S3 n'est PLUS dans le critical path du sprint. Le sprint ship immédiatement sur {sprint_slug}.atelier.com (subdomain pattern à la Polsia). Le naming "vrai" + achat .com + handles + trademarks est un track async qui ne bloque ni S4 ni S5 ni S6. Quand le nom est prêt, on swap DNS et redirect — pas de réécriture de code.

Objectif : finir le track async avec 1 nom validé + 1 .com acheté + 4 handles réservés, avant J30 du sprint (pas avant S4). Le sprint principal continue sans attendre.

Durée

Async sur 1–5 jours en parallèle des autres stations (vs bloquant 1 journée dans la v0). Achat du .com = 5 min quand le finaliste est validé via Telegram review-after.

Subdomain par défaut (le truc qui débloque)

Au démarrage du sprint, on déploie sur {sprint_slug}.atelier.com :

  • sprint_slug = nom de travail issu de l'idea card (ex: prearrival, dunningmath, airlift)
  • Vercel project configuré pour pointer sur ce subdomain par défaut
  • Stripe checkout/products labellés avec le sprint_slug en attendant le rebrand
  • Email sender = hello@{sprint_slug}.atelier.com (Resend domain atelier.com configuré)

Quand le track naming livre, le swap est un one-liner : vercel domains add {final}.com + redirect 301 depuis {slug}.atelier.com{final}.com. Stripe products renommés via 1 PATCH API.

Pré-requis : acheter atelier.com (ou ton root domain) une seule fois, le hosting subdomain est ensuite gratuit.

Inputs

  • Output S2 : positioning gap + unfair angle (1 paragraphe)
  • Output S1 : ICP narrow (pour vérifier la résonance émotionnelle du nom)

Output (livrables verrouillés)

  • runs/{sprint}/03-naming-brand.md — 50 candidats → 5 finalistes → 1 pick
  • runs/{sprint}/assets/ — logo provisoire (Canva via MCP ou en main), palette, captures de dispo
  • Section s3_brand dans startup.json
  • 📱 Gate Telegram : approval Martin sur le pick final + acheter le .com

Critères de verrouillage (TOUS requis)

  1. 25 candidats minimum générés selon les 4 frameworks (cf. ci-dessous).
  2. 5 finalistes shortlistés avec, pour chacun, le résultat de 9 checks indépendants :
    • .com available (priorité 1)
    • .io available (fallback)
    • X (Twitter) handle available
    • Instagram handle available
    • LinkedIn vanity URL available
    • TikTok handle available
    • USPTO trademark search clean
    • EUIPO trademark search clean
    • Google search "[nom] saas" doesn't surface a strong incumbent dans les 3 premiers résultats
  3. 1 finaliste avec tous les 9 checks au vert. Si aucun ne passe les 9, on génère 25 candidats supplémentaires (S3.5) jusqu'à en avoir 1.
  4. Approval Telegram Martin sur le pick. La gate exige : pic du nom + screenshots des 9 checks + 1 phrase de rationale.
  5. Domaine acheté dans les 15 min suivant l'approval. Pas "demain". Maintenant — Namecheap ou Cloudflare Registrar.
  6. 4 handles réservés dans la foulée (X, IG, LI, TikTok) — créés en mode privé/draft.

Contraintes fondateur (filtre obligatoire AVANT génération)

Ces contraintes éliminent des candidats AVANT même de passer aux 4 frameworks. À appliquer comme regex/filtre programmatique :

  • Pas plus d'un 'r' dans le nom complet (count('r') ≤ 1). Source : Martin 2026-05-16, contrainte phonétique/esthétique perso, voir feedback_naming_no_double_r.md.
  • 3–15 caractères (court mais pas cryptique).
  • Prononçable EN + FR sans ambiguïté (test à voix haute).
  • Aucune connotation négative EN/ES/FR/IT/DE (Google Translate auto-check).
  • Pas dur à épeler au téléphone (pas de Q/X/Z en position centrale ambiguë).

Si une nouvelle contrainte fondateur émerge en cours de sprint, l'ajouter ici + dans la memory feedback_* correspondante.

Les 4 frameworks de naming

Framework 1 — Compound (2 mots concrets)

Logique : 2 mots du langage business connus, juxtaposés, qui forment une expression nouvelle mais immédiatement compréhensible. Ex : Stripe (stripe + pay), Mailchimp, Notion, Slack, Shopify, Calendly, ConvertKit. Quand l'utiliser : ICP B2B pro, ton sérieux, vente outbound. Le nom doit s'épeler facilement au téléphone.

Framework 2 — Abstract (mot inventé / hybride)

Logique : mot court (5–8 lettres), pas un mot réel dans aucune langue cible, sonorité douce, .com plus facile à obtenir. Ex : Vercel, Pulumi, Replit, Cuely, Linear, Mercury, Cursor, Arc. Quand l'utiliser : produit qui veut devenir une marque-catégorie ; ICP B2B tech, design-conscious.

Framework 3 — Metaphor (objet du monde réel)

Logique : un objet, un animal, un métier réel qui incarne la promesse du produit. Ex : Atelier (workshop), Foundry, Anchor, Beacon, Compass, Sommelier, Cellarhand. Quand l'utiliser : produit narrativement chargé, story-driven, vente content-marketing.

Framework 4 — Founder-credible

Logique : un nom qui n'a de sens que si tu sais qui est le fondateur. Très puissant en build-in-public. Ex : Buffer (Joel), Basecamp (37signals → DHH), Pieter Levels' RemoteOK / NomadList. Quand l'utiliser : Martin a une marque perso forte ; vente largement par narrative founder.

Process

Étape 1 — Brief de naming (30 min)

Rédiger un brief de naming en 5 lignes : positioning gap (1 ligne), unfair angle (1 ligne), ICP narrow (1 ligne), 3 émotions cibles que le nom doit évoquer (1 ligne), 3 noms qu'on NE veut PAS sonner comme (1 ligne).

Étape 2 — Génération 50 candidats (1h30)

Prompt l'agent avec le brief + les 4 frameworks. Demander 50 candidats répartis (12-13 par framework). Chaque candidat doit avoir :

  • Le nom
  • Le framework utilisé
  • 1 ligne de rationale
  • 1 ligne d'objection auto-générée (le négatif)

Élaguer manuellement : retirer ceux qui rappellent un autre brand (subconscious capture), ceux qui sont durs à épeler, ceux qui ont une connotation négative dans 1 des langues cibles.

Étape 3 — Check dispo des 10 meilleurs (1h30)

Sur les 10 finalistes pré-shortlistés, lancer les 9 checks en batch :

# .com / .io — script de check
for name in NAME1 NAME2 NAME3 ... ; do
  for tld in com io ; do
    whois "${name}.${tld}" | grep -i 'No match\|status: free\|NOT FOUND' && echo "${name}.${tld}: AVAILABLE"
  done
done

# Handles X — script de check via API publique
for name in NAME1 NAME2 ... ; do
  curl -s "https://twitter.com/${name}" | grep -q 'Account suspended\|account doesn.t exist' && echo "x.com/${name}: AVAILABLE"
done

# Instagram — pareil
# LinkedIn vanity URL — manuel via linkedin.com/in/{name}
# TikTok — pareil

Trademark USPTO : https://tmsearch.uspto.gov/ (search exact + similar). Trademark EUIPO : https://euipo.europa.eu/eSearch/

Étape 4 — Shortlist 5 finalistes (30 min)

Garder les 5 candidats qui ont le plus de checks au vert (idéalement 9/9 pour ≥1). Documenter avec screenshots dans runs/{sprint}/assets/dispo/.

Étape 5 — Décision Martin via Telegram gate (15 min)

Message Telegram généré automatiquement par S3 :

🏷 ATELIER S3 — Approval naming nécessaire

Sprint : {sprint_id}
Positioning gap : {1 ligne}

Top 1 — {NAME1}  [9/9 checks ✅]
  Domain .com : libre, prix ~12€/an
  Rationale : {1 phrase}
  
Top 2 — {NAME2}  [8/9 checks]
  ...

Top 3 — ...

Réponds : 1, 2, ou 3

Une fois la réponse reçue : achat .com immédiat + réservation handles + push update startup.json.

Prompt canonique de génération (Opus 4.7 thinking)

Tu es S3 Brand Architect d'Atelier. Voici le brief de naming :

POSITIONING GAP : {s2.positioning_gap}
UNFAIR ANGLE : {s2.unfair_angle}
ICP : {s1.who_for}
ÉMOTIONS CIBLES : {3 émotions}
À NE PAS SONNER COMME : {3 noms}

Tu génères 50 candidats de nom, répartis en 4 frameworks :
- 12-13 Compound (2 mots concrets, ex: Stripe, Mailchimp, ConvertKit)
- 12-13 Abstract (5-8 lettres, mot inventé, ex: Vercel, Linear, Cursor, Arc)
- 12-13 Metaphor (objet réel, ex: Atelier, Foundry, Anchor, Beacon)
- 12-13 Founder-credible (a du sens si on connaît Martin Ohannessian)

Pour chaque candidat :
- name (3-15 char, prononçable EN+FR)
- framework
- rationale (1 phrase)
- objection (1 phrase auto-critique)

Critères absolus :
- Pas de subconscious capture (ne doit pas rappeler un brand existant)
- Pas dur à épeler au téléphone
- Pas de connotation négative en EN/FR/ES/IT/DE
- 6 lettres ou moins pour les Abstract (priorité .com)

Top 10 candidates ranked by your taste at the end + 1 phrase de justification du ranking.

Format : JSON array de 50 + section "Top 10 ranked" Markdown.

Anti-patterns

  • "On garde le nom de travail" (PreArrival, Forge, etc.) → souvent OK pour le sprint, mais checker les 9 dispos AVANT de s'attacher. Beaucoup de noms de travail tombent au check trademark.
  • Domaine .io accepté faute de .com → tolérable mais signal de mauvaise sélection. Si pas de .com, regen.
  • Skipper le trademark check → risque cease-and-desist à 50k MRR. Toujours USPTO + EUIPO.
  • Nom qui décrit la feature, pas la marque ("EmailUpsellPro") → impossible à scaler vers d'autres features. Pense marque-catégorie.
  • Acheter le domaine après le launch → quelqu'un te le rafle. Achète dans les 15 min post-approval.

Lien S4

Le nom validé + l'unfair angle deviennent l'input du copy de landing (S6) et de la première palette/typo du design system (S4). Le brief de naming est lui-même un mini-brief de marque.

Update startup.json (après S3)

{
  "current_station": "S4",
  "s3_brand": {
    "completed_at": "<iso8601>",
    "telegram_gate_approved_at": "<iso8601>",
    "doc": "03-naming-brand.md",
    "candidates": [/* 50 */],
    "finalists": [/* 5 avec 9 checks chacun */],
    "final_name": "...",
    "final_domain": "...com"
  }
}