Show consequences, not capability jargon
Review the destination, message, amount, channel, and public effect instead of asking a person to reason about a reusable credential.
Foundable Research · Interactive evaluator
Explore how a consumer AI deputy can bind approval to one action, reject changed or expired authority, and prevent later replay.
Published July 23, 2026 · Version 1.1 · Last substantive update August 5, 2026
Synthetic browser-local simulation · No sign-in · Nothing sends, saves, or spends
Purpose-bound action evaluator
All values use the reserved .test domain. State lives only in this page until refresh.
Review the exact consequence
Exact grant binding
Choose an execution attempt
Ready to evaluate
Approval alone is not enough. The current attempt must still match at the boundary.This browser-local evaluator calls no account, API, provider, database, or credential. It demonstrates the decision model; it does not establish formal correctness or production security outcomes.
Method and scope
The evaluator is a browser-local state machine. It compares three grant states with four execution attempts and returns a stable decision code, explanation, and consume-or-retain outcome. The same pure decision function powers the visible evaluator and the test vectors published inline below.
The six published vectors cover no grant, an exact active grant, replay, changed content, a different tool, and expiry. They test only this educational model; they do not exercise a Foundable server, provider, account, credential, or external effect.
{
"title": "Purpose-Bound Action Grants evaluator test vectors",
"version": "1.1",
"publishedAt": "2026-07-23T00:00:00.000Z",
"modifiedAt": "2026-08-05T00:00:00.000Z",
"scope": "Deterministic vectors for the browser-local educational evaluator; not a production security test or compliance artifact.",
"vectors": [
{
"id": "missing-grant",
"grantState": "unapproved",
"attempt": "exact",
"expected": {
"verdict": "denied",
"code": "approval_required",
"title": "Denied before any external effect",
"detail": "No purpose-bound grant exists for this action.",
"consumesGrant": false
}
},
{
"id": "exact-active-grant",
"grantState": "active",
"attempt": "exact",
"expected": {
"verdict": "allowed",
"code": "exact_grant_consumed",
"title": "Allowed exactly once",
"detail": "The action matches the approved snapshot. The grant is atomically consumed before the simulated effect.",
"consumesGrant": true
}
},
{
"id": "replayed-grant",
"grantState": "consumed",
"attempt": "exact",
"expected": {
"verdict": "denied",
"code": "grant_already_consumed",
"title": "Replay denied",
"detail": "The single-use grant was already consumed. A later attempt needs fresh authority.",
"consumesGrant": false
}
},
{
"id": "changed-payload",
"grantState": "active",
"attempt": "changed",
"expected": {
"verdict": "denied",
"code": "approval_content_changed",
"title": "Changed content needs fresh review",
"detail": "The recipient and subject no longer match the action snapshot that was approved.",
"consumesGrant": false
}
},
{
"id": "different-tool",
"grantState": "active",
"attempt": "wrong_tool",
"expected": {
"verdict": "denied",
"code": "grant_scope_mismatch",
"title": "Different tool denied",
"detail": "Authority for Gmail send_email cannot be reused for drive.create_file.",
"consumesGrant": false
}
},
{
"id": "expired-grant",
"grantState": "active",
"attempt": "expired",
"expected": {
"verdict": "denied",
"code": "grant_expired",
"title": "Expired authority denied",
"detail": "The grant's short approval window ended before the external boundary.",
"consumesGrant": false
}
}
]
}Interaction-design principles
Review the destination, message, amount, channel, and public effect instead of asking a person to reason about a reusable credential.
If material content, destination, tool, or caller changes, the earlier approval no longer applies.
Authority for one action should not become a reusable grant for every later action the same credential could perform.
A pause, expiry, scope reduction, stale claim, or unavailable safety read should stop the effect rather than inherit earlier authority.
Primary references
These sources inform the evaluator's design. Citing them does not establish compliance, independent validation, or production correctness.
Guidance on showing exact consequences, invalidating changed transaction data, enforcing a final server-side gate, limiting lifetime, and preventing replay.
Read the OWASP guidanceA standards-track format for carrying fine-grained authorization details. It informs scope vocabulary; this evaluator does not implement the RFC.
Read RFC 9396Standards-track replay and sender-constraint guidance, including short proof lifetimes and the explicit limitation that DPoP does not bind a request body.
Read RFC 9449Evidence boundary
The page mirrors implemented design constraints with synthetic data. It is not formal verification, an independent user study, a penetration test, or proof that every production path is free of defects. It connects to no account, provider, credential, database, or Foundable API.
v1.1 · August 5, 2026: Added named authorship and maintenance, explicit method and limitations, primary references, machine-readable test vectors, and this public correction record. The evaluator's decisions did not change.