Context
The two AI planning documents use five different risk scales between them. Actions (0098), approval, AI exposure and the gen validation pass all need a single scale, so that one rule can decide, for example, whether an agent can call an action without a human. MCP tools carry their own annotation hints, which clients use to warn users. The SDLC plan has a separate scale for how risky a code change is, which must not be confused with this one.Decision
-
Every action declares one risk level:
-
Effects are tags, separate from the level:
financial,security,pii,external-communicationandirreversible. Policies, approvals and evidence can filter on them. A new tag is added by amending this ADR. -
MCP tool hints are derived, never hand-written. When an action is exposed as a tool, gen sets
readOnlyHint(L0–L1),destructiveHint(L4, or theirreversibletag),idempotentHint(the action declares idempotency) andopenWorldHint(theexternal-communicationtag). - The level and the tags are the only risk inputs to approval and AI exposure rules. Other scales in source documents are not used.
- Code-change risk is a different scale, named “change risk”, R0 to R3, defined in 0120. The two scales never share a letter or a name.
Consequences
- One vocabulary across actions, policies, approvals, MCP clients and evidence.
- Choosing a level is a reviewable line on every action. A wrong level is a security finding.
- An MCP client’s warning can never disagree with the server’s own level, because both come from one declaration.
Enforcement
Planned: the gen validation pass rejects an action without a level, a destructive orirreversible action marked below L4,
and a hand-written MCP hint. Nothing checks this today.