prompts / domain-renewals.md
edit FILL IN & copy this prompt →676 words

Prompt: sweep domain expiries and renew what you confirm

Have an agent list every domain on the account that expires within a window — with its auto-renew flag and the price of extending it — check the balance, renew only the ones you confirm, set auto-renew the way you want it, and prove the new expiry dates.

Needs: ird access (MCP server or the ird CLI, logged in; the auto-renew switch is CLI-only) Costs: the renewal fee per domain (credits_prices → domains.renew.per_year × years); listing and pricing are free; credits_prices lists no fee for the auto-renew switch Group: domains & dns

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


Task

Report what expires within WINDOW_DAYS, price the renewals, renew the domains I confirm and set auto-renew per AUTO_RENEW. Nothing is charged before I confirm the list.

FILL IN

WINDOW_DAYS:  90              # report domains expiring within this many days
YEARS:        1               # years to add per renewal (1-10)
AUTO_RENEW:   on              # on | off | leave — applied to every domain I confirm
EXCLUDE:      old-project.ro  # domains I am letting lapse (blank = none)

Non-negotiable rules

  1. Confirm per domain. Show the candidates with per-domain and total price and wait; renew only the names I say back, never one in EXCLUDE.
  2. Balance first. credits_balance must cover the total. If not, say what is missing and propose the subset that fits, ordered by soonest expiry; renew nothing until I choose.
  3. One call per domain, once. renew_domain costs credits. On an error report it verbatim and do not retry — re-read list_domains; if the expiry moved, it went through.
  4. Auto-renew is not a renewal. The switch means "renew automatically before expiry"; it extends nothing today. A domain expiring within days still needs renew_domain now.
  5. Numbers from the account. Prices from credits_prices, dates from list_domains, nothing from memory.

Steps

A. Inventory. list_domains (CLI: ird domains list) → per domain: domain, state, expires_at, expired, auto_renew, period_years, nameservers, transferred_in, ownership_verification_required. Compute days left from today. Show one table sorted by days left, flagging: within WINDOW_DAYS, already expired, auto_renew off, in EXCLUDE, state not active.

B. Verification flag. The CLI's ird domains verify-email <domain> proves control of the registrant email and is "needed for some changes" — the help does not say which, so treating renewal as one of them is an inference, not documented; --adopt adopts the email on a transferred-in domain. If a candidate shows ownership_verification_required: true, tell me, suggest running it first, and if renew_domain then refuses for that reason, say so rather than retrying.

C. Price. credits_prices → domains.renew.per_year × YEARS per candidate; total; credits_balance; balance after. For a domain whose auto_renew is already on, note that it will renew by itself before expiry — renewing it early is still my call. Expired domains: read the renew_domain description and report what it says before pricing them; do not assume an expired name can be renewed.

D. Wait for my confirmation.

E. Renew, one domain at a time, in order of soonest expiry: renew_domain(domain, years=YEARS) (CLI: ird domains renew <domain> --years N). Read the tool's description before the first call; report each result before the next one.

F. Auto-renew. Unless AUTO_RENEW is leave: ird domains auto-renew <domain> on|off for each confirmed domain — CLI-only, there is no MCP tool for it. If no shell is available, list the exact commands for me to run.

G. Verify. list_domains again: expires_at advanced by YEARS for every renewed domain, auto_renew as requested. With the CLI, ird credits ledger --kind charge --limit 30 should show a charge per renewal; credits_balance for the final figure. Domains hosted elsewhere (nameservers not ird's) renew the same way — the registration and the DNS are independent.

Deliverable

One table: domain, old expiry, new expiry, years added, auto-renew before and after, credits charged. Then the balance left, the domains left to lapse (EXCLUDE and unconfirmed) with their dates, and any domain blocked on registrant-email verification.

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