Author policies

Standing grants

Pre-approved envelopes that silently satisfy a class of intents. Real attack surface — review the screen weekly.

Some grants are durable. "This agent can always read my Linear issues" shouldn't require a passkey every session. On the approve page, choose Standing instead of Session. The envelope is created with no expiry; only explicit revocation kills it.

When to use a standing grant

  • A read-only triage agent that runs every hour.
  • A long-running notification listener that posts to one Slack channel.
  • A nightly batch job that always touches the same buckets.

When NOT to use one

  • Anything write or delete. Step-up every time is the right friction.
  • One-off operations. Use session approval, let it expire.
  • Anything that touches money. Stripe, refunds, anything billing-adjacent should step-up every call.

Create one

  1. 1
    Trigger step-up

    Run the agent's action. Cedar denies, step-up envelope opens, you get the push.

  2. 2
    Open the approve page

    Tap the deep link. You see agent + action + resource + purpose.

  3. 3
    Choose Standing + scope

    Switch the toggle to Standing. Pick scope:

    • This intent exactly — narrowest. Only the agent + action + resource as-is.
    • This agent + this resource — broader. Any action by this agent on this resource.
    • Custom Cedar fragment — paste a fragment. Lets you write resource.repo in ["app","infra"] for example.
    Approve page with Standing toggle on and scope picker
    Standing grants always require a passkey at create time. Afterward, silent mints.
  4. 4
    Sign with passkey + save

    The passkey signature anchors the grant. Revocation later requires the same org-level admin role; agents can't self-revoke.

Manage them

Standing grants shows every active grant: agent, scope, created-by, created-at, last-used. Click for the full Cedar fragment + recent receipts using it.

Standing grants list with one row per grant + last-used timestamp
Review weekly. Anything older than 90 days with no recent use is worth revoking.

Revoke

Click a grant → Revoke. The push channel notifies all PDPs within 5 seconds — any in-flight UCANs minted under that envelope are rejected on next use. The audit chain records the revocation.

Standing grants are a real attack surface.

Nomos always requires step-up + passkey to create one, but afterward it silently mints UCANs in their scope. Treat the standing-grants page like an AWS IAM role inventory — review the list, kill stale entries.