Skip to content
NamePump
Menu

Doctrine

Toolchain

Registry truth, the batch patterns, and the generators this doctrine is executed with.

Registry truth & batch patterns

Candidate filter#

mcp instant-domain-search (check_domain_availability / search_domains, max 50/call) — fast, but DNS-based and FALSE-POSITIVES (two .coms in 2026-07; and more in a later hunt audit: fabmu/plantvox/mamacandle/quantdog/airmoby/gliboo). Filter only — NEVER buy on MCP data.

.co/.io FALSE-POSITIVES ARE FAR WORSE (2026-07-06 hunt): the MCP flagged flagship.co, searchlight.co, updraft.co, groundswell.io, limelight.io ALL 'available/isRegistered:false' — whois showed ALL FIVE registered (2010-2017). On non-.com TLDs the DNS check is near-useless; RDAP the finalist ALWAYS — ⚠️ CORRECTED 2026-08-27: RDAP now covers .ai/.io/.co too (per-registry map in TOOLS.truth), so STOP using unreliable whois for alt-TLDs (a loose whois grep false-positived every alt-TLD in a rename hunt). BUT the `markets` field DOES return REAL Afternic/Sedo buy-now prices — trust the PRICE, not the availability flag (verified 2026-07-06: searchlight.io $23.9k · tradewind.co $14.1k · clipper.co $29.9k · bellwether.io $120k · drydock.io $4.95k). LESSON RE-PROVEN: great Register-C real words are gone across .com/.co/.io free pools; greatness = pay ($5k-120k) OR a novel compound (ByteDance/SpaceX are novel COMPOUNDS, not dictionary words — that's the only free lane, and its best twists are also mostly taken).

Whois batch pattern#

registry-truth at scale: `for d in a.com b.com …; do whois $d | grep -icE 'No match for domain'; sleep 0.3; done` — ~85 domains in ~2min, no rate-limit issues at 0.3s spacing. Available ⇔ grep hit ≥1.

Bulk pipeline#

LeanDomainSearch (word-pairing availability) · Porkbun/GoDaddy bulk check (wordlists) · ExpiredDomains.net + Spamzilla (expired inventory) · Namelix/AI (ideation only, never clearance).

Availability heuristics#

(~850 + hunts ~2,250 checks): all 4-letter .coms gone; 7-9 letters = the availability sweet spot. BUT those 'open lanes' (second-order roots, 5-letter coinages, odd suffix seams) yield MEDIOCRE names he rejects. For a GREAT free .com the only real lane = the DISTANT-LEAP BLEND (GENERATION_METHODS.distant_leap_blend_PRIMARY).

Truth#

TRUTH = per-registry RDAP for the WHITELISTED TLDs (verified live 2026-08-27; HTTP 404=FREE, 200=TAKEN). This SUPERSEDES whois for .ai/.io/.co — a loose whois grep false-positived EVERY alt-TLD as 'available' in a rename hunt (chime.io/valet.ai/yalla.co all read free, all TAKEN). RDAP MAP: .com→rdap.verisign.com/com/v1 · .net→rdap.verisign.com/net/v1 · .org→rdap.publicinterestregistry.org/rdap · .io + .ai→rdap.identitydigital.services/rdap (⚠️ .io is 'STEALTH RDAP' — NOT listed in the IANA bootstrap data.iana.org/rdap/dns.json; hardcode it) · .co→rdap.registry.co/co (also stealth). Rate-limited (~few hundred/IP/day on Verisign; RFC7480 §5.5 → 429+Retry-After) → back off on 429, never parallelize across IPs. The TOOL that implements this map = `namehunt.py` (see below). whois ONLY as a last-resort fallback, and the reliable TAKEN signal is 'Registry Domain ID' or 'Creation Date' PRESENT — NOT a loose 'no match' grep. ALWAYS verify a finalist before recommending/buying.

Divide and conquer#

For big hunts: 4 parallel agents, each owning distinct naming territories, each whois-verifying, returning ranked top-5s (worked well 2026-07-05; ~700 names covered in ~20 min).

Aftermarket#

Afternic/Sedo buy-now prices come back in the MCP `markets` field (cents). DropCatch/SnapNames for pendingDelete backorders (~$60). ⚠️ PROGRAMMATIC PRICE (verified 2026-08-27): NO free API covers Afternic — the instant-domain-search MCP `markets` scrape stays best coverage; RobotDomainSearch (robotdomainsearch.com/aftermarket-api, free beta, 60rpm) supplements Sedo+Dynadot ONLY; official Afternic/Sedo APIs are partner-gated, not self-serve. SnapNames deletinglist.zip still live+unauth (2026-08-27). CZDS is NOT a drop feed (current-registration zone files, KYC-gated) — don't chase it for drops.

Namehunt#

THE ONE GENERATOR (2026-08-27) = `~/work/neo/naming/tools/namehunt.py`. MERGED greathunt (APEX×DIGITAL holding) + superhunt (consumer service×soul) — they were the SAME pipeline with different wordlists. `python3 namehunt.py --pack {holding|consumer|agency} --tld com,ai --max 2600 [--telegram]`: generates from a swappable REGISTER PACK (the wordlists ARE the IP — edit per hunt), checks availability LIVE across the chosen TLD set via the MULTI-TLD RDAP map (see TOOLS.truth — fixes the whois-false-positive bug + operationalizes the RANKED_TLD_POLICY), backs off on 429, ranks, writes CSV, opt-in Telegram (default silent). ⚠️ GATE 0g/0h: namehunt NETS availability, it does NOT confer distinctiveness — every netted [noun][noun] is guilty-until-proven-distinctive; a HUMAN still curates greatness + runs the COLD-READ probe (0h) + WebSearch collision + tri-civ/FR read BEFORE pitching. greathunt.py + superhunt.py are REMOVED (absorbed as packs). Doctrine of the wordlists (still governs the packs) ↓

Greathunt#

⛔ SUPERSEDED → `namehunt.py` pack=holding (see 'namehunt' above). Kept for the wordlist doctrine only. THE ACTIVITY-FIRST GREATNESS HUNTER (built 2026-07-06): GENERATES candidates from curated ACTIVITY wordlists (the engine thesis — trust · sourcing · bridge · verification · movement-of-value) in the ByteDance formula ([concrete domain word]×[quality/verb he brings]) + evocative single activity-words with suffixes, then checks .com availability LIVE via RDAP (`https://rdap.verisign.com/com/v1/domain/<name>.com` → 404=available, 200=registered; free, no auth, fast — the bulk-check upgrade over whois) and ranks. `~/work/neo/naming/tools/greathunt.py` → ranked CSV in ~/.local/share/greathunt/ + Telegram top-25. ON-DEMAND (not scheduled — it's a generator, same wordlists give same results; expand LEFT/RIGHT/SINGLES lists per hunt to re-net). Enforces GATE 0 (greatness) + 0b (activity-not-location). First run 2026-07-06 hunting a name for the HK Ltd after ~230 hand-checks proved real+free+great .coms need a systematic net, not hand-guessing. RDAP-availability is the canonical bulk-truth check (whois still fine for small batches).

RE-BRANCHED TO THE WINNER FORMULA 2026-07-10 — PERMANENT. The old `[activity]×[quality/verb]` MUSH wordlists (trade/source/factor × clear/true/wise — generic same-field pairs, all taken or meaningless) are DELETED from the script and must NEVER return ('should not happen ever again'). Current wordlists: LEFT = APEX (warm/gravitas/winner nouns — gold/sun/dawn/storm/comet/titan/raven/phoenix… NO lion, NO port) × RIGHT = DIGITAL (one digital-lexicon, verb-able word — forge/node/wire/relay/sync/echo/orbit/flux/pulse/cipher/vault/volt/shell/dock/beacon…), both orders → the ByteDance/MoneyShot grammar (apex × digital, verb-action — see WINNER_NAME_DOCTRINE_2026_07_09). SINGLES/HANDADD gutted; SLEEP 0.11, MAX_CHECKS 5000. The tool NETS the free .coms; a human STILL curates (announcer test + WebSearch collision-check + tri-civ landing + FR-read). Before any future run: swap APEX/DIGITAL lists per the hunt, NEVER revert to activity×quality mush. ⚠️ SLOP RISK (2026-08-27): APEX×PERCUSSION mechanically produces the [noun][noun] shape AI namers converge on (GATE 0g) — the tool NETS availability, it does NOT confer distinctiveness; every netted candidate must pass 0g (disguised-brief divergence + 'would a generator have made this from a one-line brief?') before it is pitched.

Drophunter#

THE AUTOMATED EXPIRED-.COM PIPELINE (built 2026-07-05, replaces his manual expireddomains.net + InstantDataScraper workflow). KEY DISCOVERY: expireddomains.net has NO API ever, but its UPSTREAM data is free — SnapNames serves the full pendingDelete list DIRECT, no auth: `https://www.snapnames.com/file_dl.sn?file=deletinglist.zip` (~500k names daily, tab-separated, with TLD/length/hyphen/number columns pre-computed; regenerates ~02:30 ET). Other free feeds: DropCatch 5-day droplists (SPA, needs browser), WhoisFreaks 10k/day CSV, DomainReborn, EstiBot raw pendingDelete; nuclear option = ICANN CZDS .com zone file (free w/ approval, compute deletions yourself; pyCZDS). THE TOOL: `tools/naming/drophunter.py` — ⚠️ ON-DEMAND now (daily fcron REMOVED 2026-08-27: WORD_EN=0 across 54 straight daily runs — dictionary .coms are pro-backordered before they hit the free drop, and naming is EPISODIC; the Telegram digest now fires ONLY on a real WORD_EN hit + CSVs self-prune to 7; run it during an active hunt) → downloads the list → runs the naming gates AS CODE (.com only, 4-8 letters, alpha-only, vowel-ratio window, English-bigram logprob floor = fluency kill-rule, banned patterns) → tiers WORD / COMPOUND (both-parts-real, the both-parts lane) / COINAGE → ranked CSV in ~/.local/share/drophunter/ + silent Telegram digest. Reality check from run #1: dictionary-word .coms do NOT survive to the free drop (backordered by pros — Tier WORD = 0); the free-drop value is in COMPOUND/COINAGE tiers + as a candidate feed for backorders. Tune BANNED/scoring per hunt in the script header.

Prior art & sources

Prior art#

the original naming guide (2026-05-31): buyer-probe method, house pattern, lock-and-build rule) · ~/work/ecom/context/strategy/2026-05-18-domains-locked.md (richest single naming file: 230-domain audit, sibling-set design, sorgella scar, rejection catalog) · the mobile-app research thesis (the rankability scar, ~850-check availability heuristics) · ~/work/expo/context/logs/brand.md (TLD doctrine origin) · ~/work/hdgefinance/context/research/brand/sku-and-entity-lock-2026-05-18.md (entity-consistency lock)

Science#

Alter & Oppenheimer PNAS (fluency→stock performance) · Klink 2000 (front/back-vowel size-symbolism — the primary source) · Yorkston & Menon JCR (Frish/Frosh sound symbolism) · Brennan et al. J.Consumer Psych 2024 (phonesthemes → meaning in invented names, category-congruent) · DelVecchio 2024 Psych&Marketing (processing fluency) · Lerman 2002 (memorability: plosives, wordplay; portmanteau-mush penalty) · Lexicon/Placek process (volume rule, three-team/disguised-brief, polarization) · Semrush 2026 ghost-citation study (61.7% of AI citations don't name the brand; the AI-nameability ceiling) · Igor 'Building the Perfect Beast' (taxonomy) · A Hundred Monkeys (never focus-group). ⚠️ FOLKLORE (not evidence): 'optimal 2-3 syllables', '6-8 char sweet spot', 'Law of Three Syllables' trace to no peer-reviewed source — the fluency MECHANISM is real, the exact thresholds are blog-calcified folklore.

Skill#

/brand (naming section: swap test, POV filter, naming-candidates.md output)

Mcp#

instant-domain-search (filter) + Bash whois (truth)

Session record#

the 2026-07-03..05 hunt lives in this conversation's learnings — distilled entirely into this file