Agent Security Policy · asp/1 · draft
Policy-as-code, in YAML your reviewers can read.
ASP is Aarmos's declarative YAML authoring surface for the signed policy bundle the runtime enforces. It compiles deterministically to the same canonical JSON, signed with the same Ed25519 key — the runtime doesn't change. What changes is your DX: lint, golden-test, sign, and ship policies through your existing GitOps pipeline. Authoring, signing, and enforcement all run on your machines — no Aarmos-hosted control plane is required for policy evaluation or receipt signing.
Author-time only. The signed bundle on-wire is byte-identical to what
scripts/mint-policy.mjs emits. Existing runtimes verify ASP-authored policies without upgrade.The pipeline
# author
$ $EDITOR asp.yaml
# validate offline
$ aarmos lint --strict
# golden-test decisions
$ aarmos test policies/tests
# sign for shipment
$ export AARMOS_POLICY_PRIVATE_KEY=...
$ aarmos policy sign asp.yaml --out policy.signed.jsonExample
version: 1
metadata:
issuer:
name: "Acme Corp Security"
pubKey: "BASE64_RAW_32B_ED25519_PUBKEY"
issuedAt: "2026-07-09T00:00:00Z"
expiresAt: "2027-07-09T00:00:00Z"
allow:
servers: ["https://mcp.internal.acme.io"]
tools: ["github__read_*", "jira__list_*"]
deny:
tools: ["*__delete_*", "shell__*"]
scopes:
github: ["repo:read", "issues:read"]
human_oversight:
require_approval_for: ["write", "admin", "delete", "payment"]
kill_switch:
default: falseCLI
aarmos lint [path]— schema, shadowed rules, dangerous allows.aarmos test [path]— run golden fixtures (given → decision).aarmos policy compile <asp.yaml>— canonical JSON to stdout.aarmos policy sign <asp.yaml>— Ed25519-signed bundle.aarmos policy keygen— new signing keypair.
Full spec
The normative schema, canonicalization rules, and conformance criteria live in Aarmatix/aarmos-asp-spec (CC-BY-4.0). Reference compiler: @aarmos/cli.