name-clearance
Why this exists (the Patently lesson). A product was named "Patently" and the
domain patently.legal was bought — then we found patently.com: an 8-year-old,
1,500-user AI patent platform run by patent litigators. Identical name, identical
field. The domain was available; the name was a landmine. A free domain proves
nothing. Clear the name, not the domain.
When you activate
- A new product is being named (ideate → scaffold).
- Before any domain purchase — this is a hard gate in the go-live flow.
- A user proposes a brand name ("let's call it X").
- A rename is being considered.
What you produce
For each candidate, a verdict with evidence:
- 🟢 GREEN — no same-field collision, distinctive/arbitrary mark, domain obtainable. Safe to advance to a formal attorney knockout.
- 🟡 YELLOW — clear in-field but flags exist (crowded prefix, famous-brand crowding/SEO, common word, brand in an adjacent industry). Usable with caution + formal TM search.
- 🔴 RED — same/adjacent-industry collision, registered/strong common-law mark, or descriptive-and-taken. Kill it.
Plus a one-line recommendation and, for finalists, the explicit reminder: a paid attorney trademark knockout (USPTO + jurisdiction) before committing a cent.
Core principle — distinctiveness first
Trademark strength runs: fanciful > arbitrary > suggestive > descriptive > generic.
Suggestive/descriptive names (Patently for patents, "IP Radar" for IP) are a double trap —
legally weak and almost always already taken in-field. Bias hard toward coined or
arbitrary names. In a crowded category (legal-tech, fintech, dev-tools) real dictionary
words are mostly taken; a coined word is often the only reliably-clearable option.
But never assume a word is taken — check it. A registered .com is NOT a dead name;
many strong brands don't own their .com. What kills a name is a same-industry collision
or a live trademark, not a parked domain. Keep dictionary words in play through the check;
let the evidence (not a guess) eliminate them. (This skill is phase 4 of the
name-product pipeline — the clearance engine it calls.)
Protocol
Run cheap → expensive, fail fast. Stop at the first RED.
Distinctiveness triage. Place the name on the spectrum. If it's descriptive/suggestive
of the product's own category, flag it immediately — it will be both weak and likely taken.
Same-industry collision (highest weight). Web-search the name against the product's field:
"<name>" <industry> company / "<name>" software startup / "<name>" <category-term>
- Any company or product using the same or a confusingly similar name in the same or an
adjacent industry → 🔴. (Adjacent counts: a trademark agency for an IP tool, film-IP-clearance
for IP-clearance, fintech-decisioning for a risk tool.)
Trademark signal. Search the registries — USPTO TESS (https://tmsearch.uspto.gov),
EUIPO eSearch, and the product's home jurisdiction — in the relevant Nice classes:
9 (software), 42 (SaaS/tech), 45 (legal services), plus any category-specific class.
A live registration or strong common-law use (years of use, scale) → 🔴.
Famous-crowding / SEO. Is the root already owned in public consciousness by a famous
brand, blog, or figure (e.g. "Patently-O" for patent content)? If the product will be
invisible in search behind incumbents → 🟡 (downgrade), even absent a legal conflict.
Domain availability. Run the helper across acceptable TLDs:
bun ${HAMZAISH_ROOT:-$HOME/Claude/Hamzaish}/factory/skills/name-clearance/check-domains.ts <name> com ai legal app io co
.com is ideal; .ai/.app/.legal/.io are acceptable. The WHOIS verdict is a signal —
confirm finalists at a registrar.
Package-registry clearance (npm / PyPI / crates — for anything you'll publish).
A 404 on the exact name means it's unregistered — NOT that you can publish it. Registries
run a similarity / typosquat guard at publish time that rejects names too close to an
existing package. (rotscan, 2026-06-21: the exact name 404'd as "available," then npm publish
returned E403 — too similar to existing 'rot-scan'.) So:
- Search the registry for near-names, not just the exact one — hyphenated/un-hyphenated,
singular/plural, common char-swaps (
npm search <name>, or browse npmjs.com / pypi.org).
- If a close look-alike exists, expect rejection — plan to scope it (
@you/name, npm's own
suggested fix) or pick a more distinctive name up front.
npm publish --dry-run does not run the similarity check; only a real publish does.
Scoping (@you/name) sidesteps it entirely.
Linguistic / social sanity. Unfortunate meanings in other languages, hard to spell/say,
handle availability (X / GitHub / LinkedIn).
Verdict & recommendation. Summarize each candidate as 🟢/🟡/🔴 with the evidence (links).
Recommend the strongest GREEN. For any finalist, state plainly: get a paid attorney
knockout before committing — this skill de-risks, it is not legal advice.
Output format
A compact table: Name | Verdict | Same-field collision | Domain | Note, then a one-paragraph
recommendation. Cite the URLs that drove each verdict.
Notes
- Run on a batch of candidates, not one — most will fail; generate 8–12 to find 1–2 GREENs.
- Re-run the whole protocol after any rename; don't trust a half-check.
- This skill is a required pre-step before the domain-buy stage of
factory/playbooks/ai-native-2026/go-live-provisioning.md.
1---2name: name-clearance3description: Clear a product/brand name BEFORE buying a domain or branding anything. Runs same-industry collision, trademark signal, domain availability, and distinctiveness checks. Returns RED/YELLOW/GREEN verdicts with evidence. Use whenever a new product is being named, a domain is about to be bought, or a user proposes a name.4---56# name-clearance78> **Why this exists (the Patently lesson).** A product was named "Patently" and the9> domain `patently.legal` was bought — *then* we found `patently.com`: an 8-year-old,10> 1,500-user AI **patent** platform run by patent litigators. Identical name, identical11> field. The domain was available; the **name** was a landmine. A free domain proves12> nothing. **Clear the name, not the domain.**1314## When you activate1516- A new product is being named (ideate → scaffold).17- **Before** any domain purchase — this is a hard gate in the go-live flow.18- A user proposes a brand name ("let's call it X").19- A rename is being considered.2021## What you produce2223For each candidate, a verdict with evidence:2425- 🟢 **GREEN** — no same-field collision, distinctive/arbitrary mark, domain obtainable. Safe to advance to a formal attorney knockout.26- 🟡 **YELLOW** — clear in-field but flags exist (crowded prefix, famous-brand crowding/SEO, common word, brand in an adjacent industry). Usable with caution + formal TM search.27- 🔴 **RED** — same/adjacent-industry collision, registered/strong common-law mark, or descriptive-and-taken. Kill it.2829Plus a one-line **recommendation** and, for finalists, the explicit reminder: **a paid attorney trademark knockout (USPTO + jurisdiction) before committing a cent.**3031## Core principle — distinctiveness first3233Trademark strength runs: **fanciful > arbitrary > suggestive > descriptive > generic.**34Suggestive/descriptive names (Patently for patents, "IP Radar" for IP) are a **double trap** —35legally weak *and* almost always already taken in-field. **Bias hard toward coined or36arbitrary names.** In a crowded category (legal-tech, fintech, dev-tools) real dictionary37words are *mostly* taken; a coined word is often the only reliably-clearable option.3839**But never *assume* a word is taken — check it.** A registered `.com` is NOT a dead name;40many strong brands don't own their `.com`. What kills a name is a **same-industry collision**41or a live trademark, not a parked domain. Keep dictionary words in play through the check;42let the evidence (not a guess) eliminate them. (This skill is **phase 4** of the43`name-product` pipeline — the clearance engine it calls.)4445## Protocol4647Run cheap → expensive, fail fast. Stop at the first RED.48491. **Distinctiveness triage.** Place the name on the spectrum. If it's descriptive/suggestive50 *of the product's own category*, flag it immediately — it will be both weak and likely taken.51522. **Same-industry collision (highest weight).** Web-search the name against the product's field:53 - `"<name>" <industry> company` / `"<name>" software startup` / `"<name>" <category-term>`54 - Any company or product using the same or a confusingly similar name in the **same or an55 adjacent industry** → 🔴. (Adjacent counts: a trademark agency for an IP tool, film-IP-clearance56 for IP-clearance, fintech-decisioning for a risk tool.)57583. **Trademark signal.** Search the registries — USPTO TESS (https://tmsearch.uspto.gov),59 EUIPO eSearch, and the product's home jurisdiction — in the relevant Nice classes:60 **9 (software), 42 (SaaS/tech), 45 (legal services)**, plus any category-specific class.61 A live registration *or* strong common-law use (years of use, scale) → 🔴.62634. **Famous-crowding / SEO.** Is the root already owned in public consciousness by a famous64 brand, blog, or figure (e.g. "Patently-O" for patent content)? If the product will be65 invisible in search behind incumbents → 🟡 (downgrade), even absent a legal conflict.66675. **Domain availability.** Run the helper across acceptable TLDs:68 ```69 bun ${HAMZAISH_ROOT:-$HOME/Claude/Hamzaish}/factory/skills/name-clearance/check-domains.ts <name> com ai legal app io co70 ```71 `.com` is ideal; `.ai`/`.app`/`.legal`/`.io` are acceptable. The WHOIS verdict is a signal —72 confirm finalists at a registrar.73746. **Package-registry clearance (npm / PyPI / crates — for anything you'll publish).**75 A 404 on the *exact* name means it's unregistered — **NOT** that you can publish it. Registries76 run a **similarity / typosquat guard at publish time** that rejects names too close to an77 existing package. (rotscan, 2026-06-21: the exact name 404'd as "available," then `npm publish`78 returned `E403 — too similar to existing 'rot-scan'`.) So:79 - Search the registry for **near-names**, not just the exact one — hyphenated/un-hyphenated,80 singular/plural, common char-swaps (`npm search <name>`, or browse npmjs.com / pypi.org).81 - If a close look-alike exists, expect rejection — plan to **scope it** (`@you/name`, npm's own82 suggested fix) or pick a more distinctive name up front.83 - `npm publish --dry-run` does **not** run the similarity check; only a real publish does.84 Scoping (`@you/name`) sidesteps it entirely.85867. **Linguistic / social sanity.** Unfortunate meanings in other languages, hard to spell/say,87 handle availability (X / GitHub / LinkedIn).88898. **Verdict & recommendation.** Summarize each candidate as 🟢/🟡/🔴 with the evidence (links).90 Recommend the strongest GREEN. For any finalist, state plainly: **get a paid attorney91 knockout before committing** — this skill de-risks, it is not legal advice.9293## Output format9495A compact table: `Name | Verdict | Same-field collision | Domain | Note`, then a one-paragraph96recommendation. Cite the URLs that drove each verdict.9798## Notes99100- Run on a *batch* of candidates, not one — most will fail; generate 8–12 to find 1–2 GREENs.101- Re-run the whole protocol after any rename; don't trust a half-check.102- This skill is a **required pre-step before the domain-buy stage** of103 `factory/playbooks/ai-native-2026/go-live-provisioning.md`.