Skip to content

docs: note auth.md decision (right shape, wait for adoption) - #38

Closed
utsengar wants to merge 1 commit into
mainfrom
note-auth-md-decision
Closed

docs: note auth.md decision (right shape, wait for adoption)#38
utsengar wants to merge 1 commit into
mainfrom
note-auth-md-decision

Conversation

@utsengar

Copy link
Copy Markdown
Owner

Summary

  • Captures the reasoning behind not migrating htmlbin's auth to WorkOS's auth.md agent-verified flow yet.
  • The spec is the right shape: every attestation is an ID-JAG (audience-scoped JWT) with iss + sub claims, where sub is "an opaque user identifier" stable per-human across sessions — the same role github_user_id plays today. One human running N agent sessions still resolves to one account, abuse moat preserved.
  • The blocker is adoption: as of 2026-05-27, no major agent runtime (Anthropic, OpenAI, Cursor, Replit Agent) has shipped issuer-side ID-JAG issuance with a public JWKS. Without an issuer, there's nothing to verify, so an /auth.md + /agent/auth endpoint would advertise a flow no agent can complete.
  • Trip-wire TODO(auth.md) in src/github-oauth.ts references the CLAUDE.md note. When an issuer ships, the migration is small: keep users, add (iss, sub) columns alongside github_user_id, accept either as identity, keep GitHub OAuth as fallback.

What this PR is

  • 2 files, 27 lines, no runtime change.
  • CLAUDE.md gets a new paragraph under the Auth model section.
  • src/github-oauth.ts gets a TODO comment in the top-of-file rationale block.

Watch list (so we know when to revisit)

  • Anthropic changelog: search for "ID-JAG," "agent attestation," "auth.md"
  • OpenAI agent SDK announcements
  • Cursor / Cline / Replit Agent release notes
  • WorkOS auth.md repo for an "adopters" list

🤖 Generated with Claude Code

Captures the reasoning behind not migrating to WorkOS's auth.md
agent-verified flow yet. The spec is the right shape — (iss, sub) is
stable per-human across sessions, same role github_user_id plays
today — but no major agent runtime has shipped issuer-side ID-JAG
issuance, so there'd be nothing to verify against. Trip-wire TODO
points future-us at the migration when an issuer ships.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🚀 Cloudflare preview

URL: https://0ab7c06d-htmlbin.utkarsh2012.workers.dev

Built from commit 22e90adab70428eda4575e7b293d7f8344380222.

Note: bindings (D1, KV, AI) are shared with production.
Avoid destructive PR tests on real data.

@utsengar utsengar closed this Aug 22, 2026
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