{ "$schema": "internal://schemas/plugin.lock.v1.json", "pluginId": "gh:jezweb/claude-skills:skills/better-auth", "normalized": { "repo": null, "ref": "refs/tags/v20251128.0", "commit": "24fa4e88b5217028acd3a4228d614d74979d6d8c", "treeHash": "0108f663286dc7412e736f00d9187d1b66db191540fcae3d2103d68858800b75", "generatedAt": "2025-11-28T10:19:03.307825Z", "toolVersion": "publish_plugins.py@0.2.0" }, "origin": { "remote": "git@github.com:zhongweili/42plugin-data.git", "branch": "master", "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" }, "manifest": { "name": "better-auth", "description": "Build authentication systems for TypeScript/Cloudflare Workers with social auth, 2FA, passkeys, organizations, and RBAC. Self-hosted alternative to Clerk/Auth.js. IMPORTANT: Requires Drizzle ORM or Kysely for D1 - no direct D1 adapter. Use when: self-hosting auth on Cloudflare D1, migrating from Clerk, implementing multi-tenant SaaS, or troubleshooting D1 adapter errors, session serialization, OAuth flows.", "version": "1.0.0" }, "content": { "files": [ { "path": "README.md", "sha256": "5ec2bd2b40c398f91b05ade2579ed0c1ac0668bda3abd49c7ff53130d5308125" }, { "path": "SKILL.md", "sha256": "2c6cdcfdb09f17fdca05f47f7edc24c836d8518877bb96954883813bb3a7ec22" }, { "path": "references/cloudflare-worker-drizzle.ts", "sha256": "a4f6724b67cc0ce0569e21c20d5c59129b7d19955461ef1eed21b78173a89fda" }, { "path": "references/cloudflare-worker-kysely.ts", "sha256": "fdbc996a26f3c89f9267de12b189e744e72d30ba2f5547f2047441b06f0439da" }, { "path": "references/database-schema.ts", "sha256": "c0632e5b3fce888bec2a038b3b594bb4b99f7f8f4058ff6584c2a527e6d836a2" }, { "path": "references/react-client-hooks.tsx", "sha256": "017e3891bae23a114b2ad24cd1fa5596dfa4eb1cdb667fd201eaa00a713c3a2c" }, { "path": "references/nextjs/postgres-example.ts", "sha256": "200783bf2a3a892455f93748bca52bb36d9196dff2f1791c0946829e15ea5749" }, { "path": "references/nextjs/README.md", "sha256": "1d2d5290502b0fea9cdcff4e50afe5e7ae407a2ecdb9229b138ee527ae9114c0" }, { "path": "scripts/setup-d1-drizzle.sh", "sha256": "6a8ac2394c55ef59ae5df66229875a791fa7580d577c635ea289cd7eae0f7af5" }, { "path": ".claude-plugin/plugin.json", "sha256": "eb7c8c3da4b78bb758a3bb092adbb63afa47fbd1a2fc058310f4401e03a0177b" }, { "path": "assets/auth-flow-diagram.md", "sha256": "8662944d9d3f49b9e83cb511b9234d51cbefcec45233d610e77784e8fac5f9fc" } ], "dirSha256": "0108f663286dc7412e736f00d9187d1b66db191540fcae3d2103d68858800b75" }, "security": { "scannedAt": null, "scannerVersion": null, "flags": [] } }