prompts / delegated-domain-management.md
edit FILL IN & copy this prompt →839 words

Prompt: manage domains other ird customers shared with you

Have an agent work on domains that other ird accounts delegated to you — an agency running client domains, a contractor with scoped access — and stay inside the granted scopes and the billing arrangement: it reads every share first, does each client's checklist, and ends with a monthly report of what it did on whose credits.

Needs: ird access (MCP server or the ird CLI, logged in); at least one share accepted in the ird web panel (grants_list non-empty) Costs: whatever the per-client work itself costs, billed per each share's payer (owner / grantee / split); tunnels and servers bill hourly (credits_prices → recurring.tunnel-hourly, recurring.vps-hourly.<tier>), record edits are free; listing is free Group: domains & dns

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


Task

Go through the domains shared with this account, do the work listed per client, and report. Nothing that bills anyone runs before I confirm it, and I am told each time whose credits it bills.

FILL IN

CLIENTS:                                   # one line per shared domain, or "all" = everything in grants_list
  example.ro:   set www A 203.0.113.10; check the tunnel is active
  example.com:  add DMARC TXT; report only
REPORT_MONTH:  2026-09                      # month the report covers
MY_ACCOUNT_LABEL: agency                    # how to name my side in the report

Non-negotiable rules

  1. Scopes are the law. grants_list says which scopes (dns, tunnel, ipfs, vps) each owner granted. Never attempt an action outside a domain's scopes; report it as "not granted" instead.
  2. Say who pays, every time. Before any action that bills — creating a tunnel, a server, attaching a gateway domain — restate the share's payer (owner = their credits, the default; grantee = mine; split = half each) and wait for my yes. On grantee/split also check credits_balance first.
  3. Sensitive domains refuse delegates. If a call answers sensitive-domain-delegate-blocked, stop for that domain and report it; the owner has to act themselves. Don't retry.
  4. Nothing about the share itself happens here. Inviting, accepting and revoking access happen in the ird web panel — grants_list is read-only (CLI: ird grants). Never ask me for the owner's login.
  5. Destroy is irreversible. vps_destroy works on delegated servers and stops the owner's billing; only on my explicit say, one at a time.

Steps

A. Inventory. grants_list (CLI: ird grants) → per domain: owner, scopes, payer, state. Then the four lists, keeping only entries with delegated=true: dns_list_zones (CLI: ird dns list), list_tunnels (ird tunnels list), ipfs_domains (ird ipfs domains ls), vps_list (ird vps list) — the CLI marks them "shared with you". Show one table: domain, owner, scopes, payer, what already exists there.

B. Plan per client. For each CLIENTS line, map the requests to tools and check scope:

Anything outside a scope, or outside the API (accepting shares, registrations, renewals), goes in the report as "needs the owner".

C. Show the plan, wait. One numbered list: client, action, tool call, bills whom (from payer), monthly cost for hourly items (credits_prices rate × 730; tier rate from vps_tiers).

D. Apply approved items only, one at a time, each followed by the read that proves it: dns_get_zone shows the record; list_tunnels shows the tunnel active (or pending-dns — then say what's missing); vps_list shows the server with delegated=true.

E. Monthly report. With the CLI, ird credits ledger --limit 200 --kind charge lists my account's charges; keep REPORT_MONTH's entries. The ledger does not label shares: which entries are a grantee share or my half of a split is inferred — match by resource and date; say so. Charges booked to an owner's account are not in my ledger (inferred, not documented): derive them from the plan (rate × hours since creation) and mark them "estimated, on owner's credits".

Deliverable

Per client: domain, owner, scopes, payer, actions done with the proving read, actions refused (scope, sensitive, or owner-only) and why. Then the REPORT_MONTH table: action, date, resource, billed to (owner / MY_ACCOUNT_LABEL / split), credits (ledger or estimated), and a total per payer.

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