Working across many sites
The person says: “Add Events to the main menu on all ten venue sites. If it looks wrong, take it back.”
One batch reaches every site; each call on each site is its own call and its own ledger row, and the batch itself is metered as operations times sites (the fan-out). Held in change sets, the change is reversible site by site.
The loop
Section titled “The loop”Empress:whoami— the sites, and whether “all” means every site in the workspace.Empress:changeset_create— withsites(slugs, or “all”) and the person’s sentence astitle: one set per site, returned by slug.Empress:site_call— the batch:sites,calls(each{tool, args}), andchangesetas the map of slug to that site’s set. Read the per-site sentences; a site that refused says why.Empress:changeset_promote— once the person agreed, withchangesetsas the same map of slug to set andconfirm: true: every set goes live in one call, each on its own; one that stops is named and never stops the others.Empress:version_revert— when the person says take it back: each site’s set,toas the promote’snextnames it,confirm: true.Empress:site_status— withoutsite: every site at once.
Judgment
Section titled “Judgment”- Read before writing everywhere.
Empress:content_querywithsites: "all"finds what each site has today; a menu that differs per site is not “the same menu”. - Count the cost first. A batch is calls times sites operations; say the number to the person when it is large.
- Partial success is normal. Promote the sites that worked, report the rest with their sentences, and fix those separately.
- Live writes outside a set have no undo. Use the sets for anything the person may want back.