SCOPE REGISTRY6 entriesadditive since v0.1last change 2026-08-19editor: Flashy Group

The scope registry

A scope’s meaning is fixed at registration and never redefined. A narrowing change requires a new scope, not an edit — because a verifier written against last year’s registry has to keep giving the same answer. Registration is by pull request against this page.

ScopeMeaning, fixedRequiresStatus
proposal.draftCompose a proposal. Commits the organization to nothing.Registered
payment.executeMove funds within the grant’s spend limit.lim.spend_maxRegistered
identity.delegateMint a child grant. Attenuation checked at issue time.parent grantRegistered
data.readRead a named resource. The pattern travels in the grant.res patternRegistered
contract.signBind the organization. No grant in production carries this.cnf.contract_authority + human co-signatureReserved
x-*Vendor namespace. Never verified across a boundary.Non-portable

The key registry

Every kid this issuer has ever used, active or retired, with the date it left service. A verifier holding a cached JWKS can tell from this page whether a key it still trusts has been retired — which is the check nobody builds and everybody needs after an incident.

kidalgIn serviceState
flshy-01RS256since 2026-08-19 · no scheduled retirementActive
no key has been retiredNo history

One key has ever been in service. There is no rotation history because there has been no rotation, and there is no automated schedule — both are on the gap list.

Governance

Anyone may propose a scope. The editor accepts it if it is additive, if its meaning cannot be expressed by composing existing scopes, and if a refusal is representable — a scope with no denial state is a label, not a permission. Rejected proposals stay on the page with the reason.

The one we have not issued

contract.sign is registered and reserved, and no grant in production carries it. Agents propose; a named human signs. If that changes it will change on this page first, dated, before any agent holds it.