Skip to content

Name the enforcement side Passport Guard, lead with authority, rename the package - #21

Open
phyxan wants to merge 2 commits into
mainfrom
naming/passport-guard
Open

phyxan wants to merge 2 commits into
mainfrom
naming/passport-guard

Conversation

@phyxan

@phyxan phyxan commented Oct 8, 2026

Copy link
Copy Markdown
Member

Stacked on #20 (same README and CHANGELOG files); merge that first and this diff shrinks to one commit.

Why

The README and spec opened with "verifiable, business-issued identity and authority". The IETF Web Bot Auth working group is standardising agent identity on the web over HTTP Message Signatures, with Cloudflare, Google, Visa and Mastercard built on it, and its charter leaves "what a bot may do" explicitly out of scope. So identity is somebody else's, and authority, the half this project actually defines, had no clear name for its enforcement side. "Agent passport" has also become a generic phrase (Trulioo, APort, ScopeBlind all use it).

What changes

  • Positioning. README and spec §1 now lead with: a passport is a business's signed statement of what its agents may commit; Passport Guard enforces it inside the business's own agents; receipts prove it. Caller identity is named as a separate question that composes with a passport. The "trust and authority layer on top of MCP and A2A" line is gone; the W3C VC line is gone.
  • Package name. @cubitrek/agent-passport replaces @cubitrek/agent-passport-verifier (47 occurrences, including the /node subpath and the release workflow comment). Neither name has been published, so nothing breaks. npm pack --dry-run reports @cubitrek/agent-passport@0.1.2. The bare agent-passport npm name belongs to someone else.
  • Not to be confused with. A new README section names Trulioo's Digital Agent Passport, APort's Open Agent Passport, @scopeblind/passport with protect-mcp, Web Bot Auth, and the site-side agents.txt and agent-permissions.json, each described from its own page with a link, and says in one line how a passport differs. Plus one FAQ entry pointing at it.
  • Relationship table. Caller identity over HTTP is its own row (Web Bot Auth); this spec's row reads "authority, audit, escalation".
  • agent-passport guard --help and the package README name Passport Guard; package keywords gain passport-guard, spend-limits, human-in-the-loop, mcp-proxy, receipts.

No code paths change. 138 tests, the execution-boundary harness and the end-to-end scenario are green.

Follow-ups that need Faizan's approval of exact copy (not in this PR)

  • GitHub About text and topics for this repository (current text still says "identity").
  • The /agent-passport page and blog post on cubitrek.com, and tools/cubitrek-profiles/data.py in growth-agent, which carries the canonical About copy.

🤖 Generated with Claude Code

Cubitrek IT and others added 2 commits October 8, 2026 15:07
…oes back

Under MCP 2026-07-28 a server may answer tools/call with resultType
"input_required" instead of acting; the client retries the same call under a
new id. The guard took that answer for a success: it committed the reserved
amount and marked any approval as used, then did both again on the retry.

Now an input_required reply releases the hold with the reason
execution.input-required, leaves the approval unspent, and the retry is
decided on its own. Refusals carry resultType "complete" when the request
named a protocol revision in _meta, so a 2026-07-28 client gets the shape it
expects and an older client sees no change.

Three tests, each shown to fail without the fix: the ledger ends with one
released and one committed reservation and the daily headroom proves it; an
approval survives the ask and is spent by the retry; a refusal carries
resultType only for a client that announced the revision.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… the package

The README opened with "verifiable, business-issued identity and authority".
Identity for agents on the web is being standardised elsewhere (IETF Web Bot
Auth, over HTTP Message Signatures) and its charter leaves authority out of
scope, so the passport is now described as what it is: a business's signed
statement of what its agents may commit, with Passport Guard enforcing that
statement inside the business's own agents and receipts proving it.

The package becomes @cubitrek/agent-passport. It carries the verifier, the
signer, the guard, the Claude Code hook and the approvals tooling, so a name
that said only "verifier" misdescribed it; it has not been published under
either name. The /node subpath moves with it.

"Agent passport" is a generic phrase with at least three other users, so the
README now says which of them this is not, from their own pages.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.

1 participant