# automation > Build reliable cross-system and human-in-the-loop workflows. Installs as an agent skill. `automation` builds the workflow that fires when a customer upgrades, the nightly sync between two SaaS tools, the refund that waits for someone to approve it, and the cron job nobody has checked in six months. It owns the decisions, not the click-path: whether to automate a thing at all, which of four platform tiers to build it on, what triggers it, what order the steps run in, what happens when one fails halfway, who approves the risky one, and how you learn it stopped — across hosted iPaaS (Zapier, Make), self-hosted engines (n8n, Windmill, Activepieces, Kestra), code-first durable execution (Temporal, Inngest, Restate, Step Functions), and plain cron. Two properties shape every technique here: a step may belong to a vendor you cannot deploy to, and a step may be a person — hence you cannot deploy a fix into someone else's system, and you cannot un-send. Where `backend` owns async work inside a system you control, `automation` owns the case where most of the steps belong to vendors you cannot deploy to, cannot unit-test, and cannot roll back. Its flagship move is reconciliation: diffing your local record against the vendor's own authoritative state on a schedule, because an ack is not evidence — a webhook that never arrives leaves no trace in your logs at all. `SKILL.md` is a faceted router: one primary job (of 12, e.g. `reconciliation` ⭐) composes with at most one base surface (of 4: hosted-ipaas, self-hosted-engine, code-first-durable, platform-native) plus an additive `surface-agentic` overlay when a model decides which tool to call or is the trigger itself — read only the one or two references the request needs, never the whole 18-reference pack. The default reader is one person, or a small team, with no second pair of eyes; independence at n=1 comes from the vendor's own state, a clock, or a rule committed to in advance — never a second person who doesn't exist. Claude Code is the reference host; it's plain Agent Skills format (agentskills.io), so it installs on Codex, Cursor, Antigravity, opencode, Grok Build, and Hermes too. ## Install - npm/skills.sh: `npx skills add gabros20/automation-skill` - Clone + installer (per-host targets: claude | codex | cursor | antigravity | opencode | grok | hermes | agents | all): `git clone https://github.com/gabros20/automation-skill && cd automation-skill && ./install.sh codex` - Manual copy: `cp -R skills/automation ~/.claude/skills/automation` ## Docs - [README.md](https://raw.githubusercontent.com/gabros20/automation-skill/main/README.md): overview, install, workflow, and repository map. - [skills/automation/SKILL.md](https://raw.githubusercontent.com/gabros20/automation-skill/main/skills/automation/SKILL.md): runtime router, workflow, artifact contract, and completion rules. - [docs/installation.md](https://raw.githubusercontent.com/gabros20/automation-skill/main/docs/installation.md): installation and verification by client. - [docs/usage.md](https://raw.githubusercontent.com/gabros20/automation-skill/main/docs/usage.md): activation boundary, routes, outputs, and completion. - [docs/recipes.md](https://raw.githubusercontent.com/gabros20/automation-skill/main/docs/recipes.md): representative starting prompts. ## Reference inventory (`skills/automation/references/`) Jobs (12): - `reconciliation.md` ⭐ — **flagship.** reconcile against the vendor's authoritative state, never your own record; cadence and window; ID-set diff before field diff; matched / within-tolerance / exception; alert-first at n=1 - `integration-reliability.md` — Quick Acknowledgment (ack fast, process async); dedup keyed on the business event; the completion-check false positive; per-vendor delivery guarantees - `compensation-and-recovery.md` — compensation is a forward action, not a rollback; hardest-to-revert last; compensation as a human act; resume-vs-restart before any irreversible step - `credentials-and-connections.md` — the credential fleet; silent-expiry traps; scheduled pre-expiry refresh; credential health as its own monitored resource - `approval-and-authority.md` — translating meeting-paced GRC (maker-checker, delegation of authority) into machine-timeout policy; no engine ships a default; the n=1 compensating control - `trigger-design.md` — trigger taxonomy; over-broad conditions; the cron/DST comparison; trigger idempotency across two delivery paths - `sync-semantics.md` — the A→B→A loop; deletes are invisible to incremental sync; `updated_at` is a lie; conflict policy as a decision - `workflow-observability.md` — a workflow that stopped is not a workflow that failed; no engine alerts by default; missing-heartbeat over failure notification - `cost-and-quota.md` — per-task billing; the quota is the vendor's; retry × 429; the workflow circuit breaker - `platform-selection.md` — the four tiers; resume-capability as a selection criterion; licence and liveness; exit cost asked up front - `workflow-testing.md` — what is genuinely untestable and what replaces it — dry run, narrow canary, first-then-bulk gate, fixture replay - `process-capture.md` — capturing the rule at n=1; the control-flow vocabulary worth having; when not to automate; prefer the API Surfaces (4 + 1 additive) and handoff: - `surface-hosted-ipaas.md` (default) · `surface-self-hosted-engine.md` · `surface-code-first-durable.md` · `surface-platform-native.md` - `surface-agentic.md` — additive overlay: spend ceiling, step/iteration limit, wall-clock deadline, kill switch, blast-radius scope for any agentic step - `handoff.md` — what this skill consumes and emits, and the `handoff.yaml` companion's shape ## Optional - [Visual guide](https://automation-skill.vercel.app): the router, the reconciliation flagship, and the full reference map on one page.