Skip to content

feat(clerk): add SKILL.md for Clerk emulator#57

Open
mvanhorn wants to merge 3 commits intovercel-labs:mainfrom
mvanhorn:feat/clerk-skill
Open

feat(clerk): add SKILL.md for Clerk emulator#57
mvanhorn wants to merge 3 commits intovercel-labs:mainfrom
mvanhorn:feat/clerk-skill

Conversation

@mvanhorn
Copy link
Copy Markdown
Contributor

@mvanhorn mvanhorn commented Apr 8, 2026

Adds agent-consumable documentation for the Clerk emulator package.

Covers all 42 Backend API endpoints across users, email addresses, organizations, memberships, invitations, and sessions. Documents the full OAuth 2.0/OIDC implementation with PKCE support, JWT session token generation, and per-role permission model. Includes Clerk SDK integration (CLERK_API_URL override), adapter-next setup, seed config YAML, and common patterns (user + org creation, OAuth PKCE flow).

Follows the same structure as existing skills (resend, slack, etc.).

This contribution was developed with AI assistance (Claude Code).

Documents all 42 Backend API endpoints, OAuth/OIDC flow,
seed config, session JWT generation, and organization
membership patterns.
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 8, 2026

@mvanhorn is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Comment thread skills/clerk/SKILL.md
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '[{"email_address": "a@example.com", "role": "org:member"}, {"email_address": "b@example.com", "role": "org:admin"}]'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

server actually expects { email_addresses: [...], role }, not a raw array. tested locally.

Suggested change
-d '{"email_addresses": ["a@example.com", "b@example.com"], "role": "org:member"}'

The Clerk Backend API expects { email_addresses: [...], role } for
bulk invitations, not an array of {email_address, role} objects.
Verified locally by @Railly.
@mvanhorn
Copy link
Copy Markdown
Contributor Author

Thanks @Railly - applied your fix in abef6a2 and merged main to refresh the branch (the original CI was three weeks stale on Prettier checks that have since been resolved upstream).

Bulk invitations now show the right payload shape: {"email_addresses": [...], "role"} with a single shared role. If the emulator ends up supporting per-invitation roles later, I can split them out.

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