Status: Pre-release draft for RFC · Canonical URI · Raw Markdown

Scope Grammar Specification (SGS)

Draft 0.9 — Request for Comment A canonical grammar for declaring AI agent authorization scopes, shared by VCAP and PTP.

--- Authors: Rob Monster, WellSpr.ing · Claude Opus 4.7, Anthropic Status: Draft 0.9, open for comment Date: April 17, 2026 Canonical URL: https://wellspr.ing/protocols/sgs Sibling protocols: Vaulted Covenanted Agent Protocol (VCAP) at https://wellspr.ing/protocols/vcap; Presence Token Protocol (PTP) at https://wellspr.ing/protocols/ptp Comment channel: https://wellspr.ing/protocols/sgs/rfc

---

What this is

A short specification defining the canonical grammar used to declare what an AI agent is authorized to do. The grammar is referenced by two sibling protocols: the Vaulted Covenanted Agent Protocol uses it in the canonical_scopes field of agent attestations to declare the bounds of an agent's authorization, and the Presence Token Protocol uses it in the scope field of presence tokens to request specific operational grants within those bounds.

The grammar is deliberately simple. It has four components separated by colons, each drawn from a controlled vocabulary with versioning and an extension process. The match semantics are literal string matching with wildcard rules. An adversary cannot argue their way into a scope; either the requested scope string matches a declared scope string (possibly via wildcards) or it does not. The protocol-level decision is machine-checkable.

The grammar

A scope string has the form:

`` {action}:{recipient-category}:{geography}:{purpose-category} `

All four components are required. None may be empty. Each component is drawn from the canonical vocabulary defined in Section 3 of this document, extended through the process defined in Section 4. Wildcards are permitted per the rules in Section 5.

The canonical vocabulary

The four components draw from the following vocabularies. Each vocabulary is versioned (the version of this document is the version of the vocabulary) and extensible through the process in Section 4.

Action verbs

The action verb declares what kind of operation the agent will perform on the recipient.

Recipient categories

The recipient category declares what kind of entity is being contacted.

Geography

Geography declares the geographic bounds within which the action is authorized. The grammar supports standard identifiers in descending specificity.

Geography components are validated against a published canonical list maintained alongside this specification. Unknown geography strings are rejected.

Purpose categories

Purpose category declares the high-level purpose under which the action is undertaken.

Extending the vocabulary

The vocabulary is extensible. New components may be proposed through the following process:

1. Proposal — a new vocabulary entry is proposed via the SGS RFC channel at https://wellspr.ing/protocols/sgs/rfc. The proposal includes: the proposed identifier, which component vocabulary it extends, a precise semantic definition, example use cases, and any safeguards or restrictions that should apply.

2. Review — proposals are reviewed for collision with existing entries, clarity of semantics, and necessity. Reviews are public. A proposal that overlaps substantially with an existing entry is declined in favor of the existing entry.

3. Provisional adoption — accepted proposals are added to the vocabulary with a provisional status in the next minor version of this specification. Provisional entries may be used in attestations but are flagged as subject to refinement.

4. Stabilization — after a review period (default: 6 months), provisional entries are promoted to stable status in the next version.

5. Deprecation — entries may be deprecated if they are found to be ambiguous, dangerous, or superseded. Deprecated entries remain valid in existing attestations but cannot be used in new ones after the deprecation date.

Vouching institutions and agent operators are free to use private vocabulary extensions prefixed with their own identifier (for example, message:wellspring-private:poughkeepsie-ny:civic-introduction). Private extensions do not go through the public review process but are not interoperable across institutions.

Match semantics and wildcards

Scope matching is used in two places: when a VCAP attestation declares authorization, and when a PTP token requests authorization. The matching rules are:

Literal match

A requested scope matches a declared scope if every component is string-identical. message:merchants:poughkeepsie-ny:civic-outreach matches message:merchants:poughkeepsie-ny:civic-outreach exactly and nothing else.

Wildcard match

Declared scopes may use the wildcard in any component to indicate "any value from the vocabulary for this component." Requested scopes may not use wildcards — a request must be for a specific scope.

Wildcard restrictions

Some components may not be wildcarded at all, and some combinations of wildcards are restricted:

Case sensitivity and normalization

All scope strings are lowercased and trimmed before matching. Unicode normalization follows NFC. Whitespace is not permitted in any component; identifiers use hyphens for word separation.

Scope categorization by stakes

Scopes are categorized by stakes level for downstream policy purposes:

The stakes categorization is normative and is used by PTP to set token lifetime defaults, audit requirements, and additional-safeguard triggers.

Open questions in Draft 0.9

Appendix A: Reference vocabulary tables

(Appendix contains the full canonical list of action verbs, recipient categories, geographies, and purpose categories as of the current version. In practice this would be a separate machine-readable JSON file; reproduced here for completeness.)

Machine-readable form at: https://wellspr.ing/protocols/sgs/vocabulary-v0.9.json

Appendix B: Individuals as recipients

Scopes with individuals as the recipient category require special care. Individuals are typically not represented by a vouching institution in the way that faith-orgs or merchants are, and they are more vulnerable to unsolicited contact than institutional recipients. When an agent requests authorization to contact individuals:

1. The VCAP attestation must include a reasoning attestation explaining why individual-recipient contact is necessary for the agent's purpose. 2. The PTP token must carry a shorter default lifetime (default: 4 hours, not 24). 3. The receiving individual must have a way to decline future contact that is honored by both VCAP and PTP (the absence-default and "stop on request" commitments must be architectural, not merely stated). 4. The vouching institution should require an additional layer of WellKeeper review for individuals` scopes, and the institution's revocation policy should specifically address individual-complaint-triggered revocation.

These requirements are normative.

Co-authored attribution

This specification was developed by Rob Monster, operating as founder and principal architect of WellSpr.ing, in extended dialogue with Claude Opus 4.7, developed by Anthropic. Offered freely as a public good. No license required. Peace to this work.