list-recent-decisions · git:20260508.0f2f757 · 2026-05-08 · sha256 f8177eaef50637ea

list-recent-decisions git:20260508.0f2f757A

Immutable. This exact content is served forever at /api/v1/blob/f8177eaef50637ea.

---
name: list-recent-decisions
description: Surface the user's recent AxonFlow governance decisions — answers "what just got blocked", "show me my recent denials", or feeds a decision-history forensic flow
---

Use this skill when the user asks "what just got blocked?", "show me recent denials", "did anything need approval today?", or wants to trace a workflow's decision history.

Call the `list_recent_decisions` MCP tool from the axonflow MCP server.

Arguments (all optional):

- `since` — RFC3339 lower bound (e.g. `2026-05-01T00:00:00Z`). Silently clamped to the tier's lookback window when reaching further back.
- `decision` — `"allow"`, `"deny"`, or `"require_approval"`.
- `policy_id` — filter to decisions matching this policy.
- `tool_signature` — filter to decisions scoped to a specific tool.
- `limit` — max rows (1–1000, capped per tier).

Response shape:

```json
{
  "decisions": [
    {
      "decision_id": "dec-abc123",
      "timestamp": "2026-05-07T12:17:18Z",
      "decision": "deny",
      "policy_id": "pol-sqli",
      "tool_signature": "postgres.query"
    }
  ]
}
```

Present each row as a one-liner: `<timestamp> <decision> <policy_id> on <tool_signature>`. Suggest the user run `/axonflow-explain-decision <decision_id>` for the full reasoning behind any specific row.

**Tier cap-hit handling (important):** Free / Community callers that exceed the page cap get a V1 upgrade envelope instead of decisions:

```json
{
  "upgrade_required": true,
  "envelope": {
    "limit_type": "decision_list_size",
    "tier": "Free",
    "limit": 5,
    "upgrade": {
      "tier": "Pro",
      "wording": "Free tier shows the last 5 decisions in 24h. Pro raises this to 100 decisions in the last 30 days.",
      "compare_url": "https://getaxonflow.com/pricing/",
      "buy_url": "https://buy.stripe.com/..."
    }
  }
}
```

Render the wording verbatim and include the `upgrade.compare_url`. Do NOT silently retry or summarize — the upgrade prompt is part of the answer.