---
title: "anlyon-governed-actions"
description: "The Agent Skill for defining Anlyon actions: credentials bound to their hosts, declared impact, read-backs, approval policies, impact limits, OpenAPI import and packs."
---

`anlyon-governed-actions` teaches your coding agent to turn a direct API call into an action your agent invokes by name, and to govern it: what it changes is declared and counted against a limit, a person approves it when a policy says so, and the receipt says whether the provider confirmed it.

## What it teaches

- **Which route fits:** an integration you switch on in the console, an OpenAPI import, or an action written by hand.
- **Writing an action:** `urlTemplate`, `headers`, `bodyTemplate`, a tight `inputSchema`, and the placeholders `{{input.x}}`, `{{secret:NAME}}` and `{{connection:<integration>}}`.
- **Governing it:** `impact` (money, resource mutations, or a unit you name), `verify` read-backs that grade receipts `confirmed`, and `governed: true` when there is nothing to read back.
- **Approvals:** `requiresApproval`, and policies with a CEL `condition`, N-of-M approvers, and `decidedBy: 'team' | 'end_user'`.
- **Impact limits:** per day, month or in total, for the environment or for each end user.
- **The boundaries it keeps:** definitions come from an operator key in a setup script, never from the agent's process; credentials come from environment variables; it never ungates an action or lowers a declaration to make a call pass.

## When it loads

When the agent writes or reviews `actions.create` or `actions.declare`, an action's template or input schema, a secret or connection placeholder, an approval policy, an impact limit, an OpenAPI import or a pack install.

## What's inside

| File | Holds |
| --- | --- |
| [`SKILL.md`](https://docs.anlyon.com/skills/anlyon-governed-actions/SKILL.md) | The rules, a full governed action, a policy and limits, and how to check the result |
| [`references/action-fields.md`](https://docs.anlyon.com/skills/anlyon-governed-actions/references/action-fields.md) | Every field, placeholder and schema keyword, adapters, versions, scopes |
| [`references/policies-and-limits.md`](https://docs.anlyon.com/skills/anlyon-governed-actions/references/policies-and-limits.md) | Policy and limit fields, the rules that always hold, examples |
| [`references/openapi-and-packs.md`](https://docs.anlyon.com/skills/anlyon-governed-actions/references/openapi-and-packs.md) | OpenAPI import with suggestions and read-backs, packs from the console, CLI and SDK |
| [`LICENSE`](https://docs.anlyon.com/skills/anlyon-governed-actions/LICENSE) | MIT |

Download: [anlyon-governed-actions.zip](https://docs.anlyon.com/skills/anlyon-governed-actions.zip).

## Install

```bash
npx skills add https://docs.anlyon.com --skill anlyon-governed-actions
```

## Try it

> Replace the direct Stripe refund call in `billing/refund.ts` with an Anlyon action. Refunds over $100 need two approvers, and the agent may refund at most $500 a day.

> Import our internal API from `openapi.yaml` as Anlyon actions. Show me the suggestions before creating anything.

> Our `send-email` action grades every receipt `acknowledged`. Add a read-back so it grades `confirmed`.
