prompts / brand-protection-domains.md
edit FILL IN & copy this prompt →800 words

Prompt: register brand-protection variants of your .ro domain

Have an agent turn a brand name into look-alike .ro candidates — typos, plurals, hyphenations, diacritics-stripped spellings and the second-level .ro forms (com.ro and friends, where the availability check accepts them) — check them in bulk, price the shortlist, register only the ones you confirm, park each on ird DNS pointing at the main site, and leave auto-renew on.

Needs: ird access (MCP server or the ird CLI, logged in); the main site's zone on ird DNS; whatever serves the main site able to answer for extra hostnames Costs: the registration fee per variant (credits_prices → domains.register.per_year × years); bulk checks a negligible per-check fee (jobs.domain-availability-bulk); each zone a tiny hourly fee (recurring.dns-zone-hourly) Group: domains & dns

Paste everything below the line into a fresh conversation. Fill in the FILL IN block first.


Task

Find the .ro look-alikes of BRAND worth owning, register the ones I confirm, and point every one at MAIN_DOMAIN. Nothing is charged until I confirm the exact list, years and total.

FILL IN

BRAND:        example            # the brand as people type it, no TLD
MAIN_DOMAIN:  example.ro         # the real site; its zone must be on ird DNS
MAIN_IP:      203.0.113.10       # IPv4 the main site answers on (an apex cannot be a CNAME)
POINT_WWW:    cname              # cname = www.<variant> CNAME MAIN_DOMAIN. | a = A MAIN_IP
KINDS:        typo, plural, hyphen, diacritics, sld   # sld = com.ro, org.ro, info.ro …; add "prefix" for my-/the-
MAX_DOMAINS:  10                 # never register more than this many
YEARS:        1                  # 1-10

Non-negotiable rules

  1. Confirm the exact list. Show the shortlist with per-domain and total price, then register only the names I say back — never more than MAX_DOMAINS.
  2. Balance first. credits_balance must cover the total; if not, say what is missing and propose a smaller set. Don't register a partial list unless I pick it.
  3. One call per name, once. register_domain blocks until the registry answers, charges immediately and refunds only on failure. On an error report it verbatim, do not retry that name, and ask before continuing with the rest.
  4. .ro only. ird registers .ro. List look-alikes under other TLDs for my information only.
  5. DNS does not redirect. Records send visitors to MAIN_IP; the server there must recognise each variant hostname (alias + 301 + certificate). If MAIN_DOMAIN is on the ird IPFS gateway, each variant must be attached with ipfs_domain_add — read its description — or it won't be served.

Steps

A. Generate. From BRAND, per KINDS: typo (adjacent-key substitution, dropped letter, doubled letter, swapped neighbours), plural (Romanian -uri/-e/-i, English -s), hyphen (a hyphen at each word boundary; the hyphen removed if BRAND has one), diacritics (ă/â→a, î→i, ș→s, ț→t, plus the typed forms sh, tz), sld (BRAND.com.ro, .org.ro, .info.ro, .nom.ro, .nt.ro, .tm.ro, .firm.ro, .store.ro, .www.ro, .arts.ro, .rec.ro — whether ird registers a given second-level form is for step B to answer, promise nothing), prefix (my, the, www). Dedupe, drop MAIN_DOMAIN, rank: one-keystroke typos and plurals first, sld next, cosmetic forms last.

B. Check. bulk_check_domains(domains=[...]) (CLI: ird jobs check-bulk --file names.txt) — up to 100 per call, blocks until done; split larger lists. A name the check rejects (unsupported form, bad syntax) is dropped, not retried. Table: name, kind, available / taken / rejected, rank. For taken names that look like squats, ird domains info <name> --whois (CLI-only, small domains.info fee) shows the holder.

C. Price. credits_prices → domains.register.per_year × YEARS per name; shortlist the best available up to MAX_DOMAINS; total; credits_balance; balance after.

D. Wait for my confirmation.

E. Register, one at a time, in my order: register_domain(domain, years=YEARS, use_our_dns=true, auto_renew=true) (CLI: ird domains register <name> --years N --auto-renew). Report each result before the next call.

F. Point. Per registered variant: dns_get_zone(variant) — leave any apex SOA/NS records already there. Then dns_set_record(domain=variant, name="<variant>.", type="A", data={address: MAIN_IP}) and, per POINT_WWW, dns_set_record(domain=variant, name="www.<variant>.", type="CNAME", data={name: "MAIN_DOMAIN."}) or the same A (CLI: ird dns set <variant> @ A MAIN_IP, ird dns set <variant> www CNAME MAIN_DOMAIN). No AAAA unless MAIN_DOMAIN has one. If MAIN_DOMAIN is on the IPFS gateway, use ipfs_domain_add(domain=<variant>, ipns_name=…) instead — it writes the records itself.

G. Verify. list_domains: each variant active, auto_renew true, expiry a YEARS away — if any came back false, ird domains auto-renew <variant> on (CLI-only). dig +short A <variant> @<ns> and dig +short CNAME www.<variant> @<ns> against the zone's nameservers. curl -sI http://<variant>/ should answer a redirect to MAIN_DOMAIN once the server side is set; if not, list what it still needs.

Deliverable

One table: variant, kind, availability, registered, expiry, auto-renew, records set, dig result. Then credits spent and balance left, the taken look-alikes with holder info, and the hostnames the main server (or gateway) still has to accept.

static mirror of HEAD · about · clone: git clone https://ird.cod-sursa.ro/prompts.git