Initial skills documentation — 25 categories, all SKILL.md + references + scripts
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
# Domain Availability Research
|
||||
|
||||
**When to use:** Before registering a domain — research which names are available, check WHOIS/DNS, generate creative alternatives, and compare pricing.
|
||||
|
||||
---
|
||||
|
||||
## Workflow: 3-Prong Validation
|
||||
|
||||
Do NOT rely on a single check. The registry WHOIS database can lag or return stale data. Always run all three checks:
|
||||
|
||||
### Check 1 — VeriSign WHOIS (authoritative for .com/.net/.edu)
|
||||
|
||||
```bash
|
||||
whois <domain> 2>&1 | grep "No match for domain"
|
||||
```
|
||||
|
||||
- **Available:** `No match for domain "EXAMPLE.COM"` — domain is not registered
|
||||
- **Taken:** Returns registry domain ID, creation date, expiry, name servers
|
||||
- **Rate note:** On fresh installs, `apt-get install -y whois` first
|
||||
- **Limitation:** Only covers .com, .net, .edu domains at the VeriSign registry level. For other TLDs (.io, .org, .co, .app, etc.), use a registrar's check endpoint or DNS lookup instead.
|
||||
|
||||
### Check 2 — DNS NXDOMAIN verification
|
||||
|
||||
```bash
|
||||
nslookup <domain> 2>&1 | grep "NXDOMAIN"
|
||||
```
|
||||
|
||||
- **Available:** Returns `NXDOMAIN` — no DNS records exist
|
||||
- **Taken:** Returns one or more IP addresses
|
||||
- Works for ANY TLD, not just .com
|
||||
- A DNS lookup returning `NXDOMAIN` but WHOIS showing "No match" confirms availability from two angles
|
||||
|
||||
### Check 3 — HTTP redirect/resolve check
|
||||
|
||||
```bash
|
||||
curl -sk -o /dev/null -w '%{http_code} %{redirect_url}' https://<domain> 2>&1
|
||||
```
|
||||
|
||||
- Sometimes a domain is registered but parked (HTTP 200/302 lander page) — means it's taken but possibly for sale
|
||||
- NXDOMAIN from Check 2 + timeout/slow from Check 3 = definitely available
|
||||
- A fast 200/302 response means someone owns it or a registrar has a landing page up
|
||||
|
||||
### Important: DNS vs WHOIS discrepancies
|
||||
|
||||
A domain can show "No match" in WHOIS yet resolve in DNS. This happens with:
|
||||
- Very recent registrations (WHOIS database hasn't propagated yet — up to 24h lag)
|
||||
- Domain was just registered but the WHOIS caching layer hasn't refreshed
|
||||
- **Resolution:** If WHOIS says "No match" but DNS resolves, the domain was likely registered within the last few hours. Mark as "likely taken — verify again in 24h."
|
||||
|
||||
---
|
||||
|
||||
## Generating Creative Domain Names
|
||||
|
||||
### Formula patterns
|
||||
|
||||
| Pattern | Example | Why It Works |
|
||||
|---------|---------|-------------|
|
||||
| `{theme}{keyword}.com` | `sharkfantasy.com` | Direct, brandable |
|
||||
| `{theme}ff.com` | `sharkattackff.com` | "FF" = fantasy football shorthand |
|
||||
| `{theme}draft.com` | `jawsdraft.com` | Highlights the draft mechanic |
|
||||
| `{theme}league.com` | `chumleague.com` | Wordplay: chum = shark bait |
|
||||
| `{theme}szn.com` | `jawsszn.com` | Sports seasons slang (SZN) |
|
||||
| `{wordplay}league.com` | `toothyleague.com` | Fun, playful, memorable |
|
||||
| `{compound}league.com` | `finomenalleague.com` | "Fin" + phenomenal |
|
||||
| `{anatomy}picks.com` | `dorsalpicks.com` | Shark anatomy + draft picks |
|
||||
| `{slang}league.com` | `sharkattackseason.com` | "Season" = sports league |
|
||||
| `{chum-themed}{keyword}.com` | `chumdraft.com`, `predapick.com` | Short, wordplay, edgy |
|
||||
|
||||
### Criteria for good names
|
||||
- ≤15 characters ideal (fits URLs, social handles, easy to type)
|
||||
- No hyphens if possible (people forget them, look spammy)
|
||||
- Avoid numbers unless part of brand (e.g., Web3 names with 3)
|
||||
- Easy to spell after hearing it once (the "radio test")
|
||||
- Avoid trademarked terms (e.g., "Feeding Frenzy" — EA owns it)
|
||||
- Avoid names that sound like existing products or confuse the brand
|
||||
|
||||
---
|
||||
|
||||
## Registrar Pricing Reference (as of Jul 2026)
|
||||
|
||||
| Registrar | .com (1yr) | Notes |
|
||||
|-----------|-----------|-------|
|
||||
| **Cloudflare** | **$10.46** | At-cost, no markup — best value. Registration/renewal/transfer all same price. |
|
||||
| Namecheap | ~$10–$14 | Often has first-year promos, reliable API |
|
||||
| Porkbun | ~$10–$12 | Good mid-tier, simple interface |
|
||||
| GoDaddy | ~$12–$18 | Renewals higher; good for premium/auction domains |
|
||||
| HugeDomains | Premium | Marketplace for already-registered domains, often $1K+ |
|
||||
|
||||
**Best practice:** Use Cloudflare Registrar for new registrations if the site will use Cloudflare DNS anyway. If another registrar, transfer to Cloudflare later.
|
||||
|
||||
### Premium/aftermarket domains
|
||||
- `fantasyfrenzy.com` → HugeDomains (likely $1K+)
|
||||
- `apexshark.com` → GoDaddy Auctions ($2,500 or $834/mo lease-to-own)
|
||||
- Before pursuing a premium domain, check if an available creative alternative exists first (usually does at $10.46)
|
||||
|
||||
---
|
||||
|
||||
## Venue-Specific Domain Availability Checks
|
||||
|
||||
### Cloudflare Registrar API (requires token with Registrar Admin permission)
|
||||
|
||||
```bash
|
||||
ACCT_ID=$(curl -s "https://api.cloudflare.com/client/v4/accounts" \
|
||||
-H "Authorization: Bearer $TOKEN" | python3 -c "import sys,json;print(json.load(sys.stdin).get('result',[{}])[0].get('id',''))")
|
||||
|
||||
curl -s "https://api.cloudflare.com/client/v4/accounts/$ACCT_ID/registrar/domains/example.com/check" \
|
||||
-H "Authorization: Bearer $TOKEN"
|
||||
```
|
||||
|
||||
Returns: `available`, `can_register`, `premium`, `supported_tld`, `fees.registration_fee`, `fees.renewal_fee`, `fees.transfer_fee`.
|
||||
|
||||
**Pitfalls:**
|
||||
- This is GET, not POST. POST returns "Page not found"
|
||||
- Domain name goes in URL path, not as query param or request body
|
||||
- Requires `Account → Registrar → Admin` permission token (standard DNS-only token won't work)
|
||||
- See `cloudflare-dns-and-domains` umbrella skill for full token setup
|
||||
|
||||
---
|
||||
|
||||
## Deliverable Format
|
||||
|
||||
After researching, compile a ranked report with:
|
||||
|
||||
1. **SECTION A: Initial List** — the domains the user asked about, each with status + note
|
||||
2. **SECTION B: Creative Alternatives** — original ideas generated by the research, checked for availability
|
||||
3. **SECTION C: Top Recommendations** — 3-5 ranked picks with rationale
|
||||
4. **SECTION D: Strategy** — which to register now vs. consider vs. skip
|
||||
5. **Pricing** — Cloudflare at-cost as baseline ($10.46/.com), note premiums
|
||||
|
||||
### Rating scale
|
||||
- ⭐⭐⭐⭐⭐ = Short (≤12 chars), brandable, descriptive, no issues
|
||||
- ⭐⭐⭐⭐ = Good option, slightly longer or less obvious
|
||||
- ⭐⭐⭐ = Decent but long or less catchy
|
||||
- ⭐⭐ = Functional but not ideal
|
||||
- ⭐ = Skip (taken, premium, confusing)
|
||||
|
||||
---
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- **WHOIS not installed** — on minimal Linux installs, `whois` may not be present. Run `apt-get install -y whois` first.
|
||||
- **WHOIS rate limits** — VeriSign applies rate limiting at high query volumes (exact threshold undocumented). If queries start failing with connection errors, space them out or use DNS as a lighter alternative. For 20+ domains, batch with a loop + 0.5s delay.
|
||||
- **Premium domain price shock** — a "taken" domain at a marketplace like GoDaddy or HugeDomains can cost $500-$5,000+. Always check creative alternatives first at $10.46.
|
||||
- **"No match" with DNS resolution** — domain was likely registered in the last few hours. Cross-check again in 24h.
|
||||
- **New TLDs (.app, .dev, .io, etc.)** — WHOIS check via VeriSign only covers .com/.net/.edu. For other TLDs, use DNS NXDOMAIN + Cloudflare check API + registrar's own lookup. Many new TLDs require HSTS preloading (.app, .dev) which can cause redirect issues with http-only test pages.
|
||||
Reference in New Issue
Block a user