Skip to content

docs(ws4): add Verifiable Intent to the interop map, plus two seam notes - #534

Merged
Levaj2000 merged 2 commits into
mainfrom
claude/interop-map-verifiable-intent
Sep 11, 2026
Merged

docs(ws4): add Verifiable Intent to the interop map, plus two seam notes#534
Levaj2000 merged 2 commits into
mainfrom
claude/interop-map-verifiable-intent

Conversation

@Levaj2000

@Levaj2000 Levaj2000 commented Sep 11, 2026

Copy link
Copy Markdown
Owner

Ready for review. AGENTS.md puts standards work in the hand-back list, so this is not self-merged: Jeff opens it for a human pass on the facts and framing.

What this adds

One row, one seam entry, and three notes in docs/strategy/cosai-ws4-interop-map.md, plus the matching CHANGELOG.md entry. Nothing outside those two files.

The row. Mastercard's Verifiable Intent is a layered SD-JWT delegation credential, so it sits at layer 2 next to ODIS. L1 binds the user's device key via the RFC 7800 cnf claim, L2 delegates to the agent with constraints attached, L3 splits the network-facing and merchant-facing views. Described at interface level only: what it emits, what it consumes, where the OCSF boundary falls.

The seam. The VI spec puts any record or audit layer out of scope. So every verification produces a verdict and then nothing durable. That is a seam, not a criticism, and it is the one this project is positioned to fill.

Why the notes are written as questions

The map's own ground rules are Descriptive, not evaluative and Each player owns their own row. So findings about someone else's system cannot go in their row. Both notes are instead addressed to whoever owns the representation involved.

The first asks whether a representation that carries a credential also carries the key that credential is bound to. A hop that records who delegated to whom, without the key, keeps the assertion and drops the proof.

The second asks how an absolute expiry reconciles with a relative one. VI carries exp as an absolute timestamp. A representation carrying a duration needs a defined anchor, and the credential's issued-at and the carrier's observation time differ by the ingestion delay. Two identical grants then expire at different moments depending on when each was seen. That generalises past any one pair, which is why it is phrased for any layer that timestamps an artifact it received rather than the artifact's own claim.

The third records where the terms of a grant live, and cites ocsf#1756. Framed as a seam rather than one player's gap, since it is the field an ODIS passport, a CMF delegation chain and a VI mandate would all serialize into.

Style

Added lines are plain ASCII per CLAUDE.md, so the new row reads 2, Authority grant where the existing rows use an em dash. Decided, not open.

Checks

Docs only, no code paths touched. CI green on dfbf1db. Added lines verified free of non-ASCII. The changelog entry describes what shipped rather than the strategy behind it, per AGENTS.md, and follows the docs-only precedent already in [Unreleased].

🤖 Generated with Claude Code

https://claude.ai/code/session_01XyU3PRkgvMxgimkPBC5726

Mastercard's Verifiable Intent is a layered SD-JWT delegation credential and
a layer-2 occupant, so it gets a row next to ODIS. Interface level only, per
the map's own rules: what it emits, what it consumes, and where the OCSF
boundary falls. The fact that matters here is that its spec rules a record or
audit layer out of scope, so every verification produces a verdict and then
nothing durable. That is added to the seams list.

Two notes are written as questions for the owners of the representations
involved rather than as findings about anyone's row, because the map is
descriptive and each player corrects their own row.

The first asks whether a representation carrying a credential holds the key
that credential is bound to. A hop recording who delegated to whom, without
the key, preserves the assertion and drops the proof.

The second asks how an absolute expiry and a relative one reconcile. VI
carries exp as an absolute timestamp; a representation carrying a duration
needs a defined anchor, and the credential's issued-at and the carrier's
observation time differ by the ingestion delay, so two identical grants can
expire at different moments depending on when they were seen. That one
generalises past any particular pair: any layer timestamping an artifact it
received rather than the artifact's own claim inherits it.

A third note records where the terms of a grant live, framed as a seam rather
than one player's gap, since it is the field an ODIS passport, a CMF
delegation chain and a VI mandate would all serialize into. Cites ocsf#1756.

Added lines are plain ASCII per CLAUDE.md, which means the new row reads
"2, Authority grant" where existing rows use an em dash. Cosmetic and open.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XyU3PRkgvMxgimkPBC5726
@vercel

vercel Bot commented Sep 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ai-identity-landing Ready Ready Preview Sep 11, 2026 3:38pm UTC
dashboard Ready Ready Preview Sep 11, 2026 3:38pm UTC

Records what shipped in the map, not the strategy behind it, per AGENTS.md:
the VI row, the seam for a spec that excludes any record or audit layer, and
the three notes. Follows the docs-only precedent already in Unreleased.

The row stays plain ASCII, so it reads "2, Authority grant" where the
surrounding rows use an em dash. Decided, not left open.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XyU3PRkgvMxgimkPBC5726
@Levaj2000
Levaj2000 marked this pull request as ready for review September 11, 2026 15:40
@Levaj2000
Levaj2000 merged commit 726654a into main Sep 11, 2026
11 checks passed
@Levaj2000
Levaj2000 deleted the claude/interop-map-verifiable-intent branch September 11, 2026 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants