The MAPL skill · Claude Code and Codex

Write MAPL in plain English.

Install the MACAW plugin and use the /mapl skill. Say what your agents may do, and it writes the policy.

You say

It draws the call

agent ──▶ tool:oms/place_order
          notional 1.5m · corporate_bond · IG
            │
  company:acme ─▶ bu:markets ─▶ team:credit-desk
            │
  notional ≤ 2m ✓   IG corporate ✓   > 1m ⏳
            │
  role:desk-head approves ─▶ runs ─▶ signed record
team:credit-deskextends bu:markets
{
  "policy_id": "team:credit-desk",
  "extends": "bu:markets",
  "resources": ["tool:oms/place_order"],
  "attestations": [
    "desk_head_approved::{params.notional > 1000000}"
  ],
  "constraints": {
    "parameters": {
      "tool:oms/place_order": {
        "asset_class": ["corporate_bond"],
        "rating": ["investment_grade"],
        "notional": { "type": "number", "min": 0, "max": 2000000 }
      }
    },
    "attestations": {
      "desk_head_approved": {
        "approval_criteria": "role:desk-head",
        "timeout": 300,
        "one_time": true
      }
    }
  }
}

Install it.

The skill ships in the MACAW plugins. It works without an account.

Claude Code

/plugin marketplace add macawsecurity/macaw-plugin
/plugin install macaw-cc@macaw

Then say what you want:

/macaw-cc:mapl only release managers can deploy to prod, and only after tests pass

Codex

codex plugin marketplace add macawsecurity/macaw-plugin
codex plugin add macaw-cx@macaw

Then ask Codex to use the mapl skill, and say what you want in plain words.

Read exactly what it does.

The skill is one SKILL.md and the public MAPL spec. Nothing is hidden.

Tested with Claude (Sonnet, Haiku, Opus), Codex (Terra, Luna, Sol) and Qwen3 8B. Any agent that loads skills can use it.

Back to MAPL