[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698R1JF0JSFWM0XX0QGY0DT":3,"skill-same:01M698R1JF0JSFWM0XX0QGY0DT":62},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":43,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M698R1JF0JSFWM0XX0QGY0DT","convex-domains",null,"Point a domain you already own at your Convex app (DNS records, custom-domain attach, auth-origin rebind).","openclaw\u002Fclawhub","openclaw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F252820863?v=4","01M698P3FSAZ6B4R928ZF19KPT","01M698PDMKEC6E49395505BD05",9554,"MIT","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-domains\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],"convex domains","convex","domains","auth","dns","attach","domain","origin","app","records","dns records","you","at","custom","point","2026-11-10 10:12:30",false,"---\nname: convex-domains\ndescription: \"Point a domain you already own at your Convex app (DNS records, custom-domain attach, auth-origin rebind).\"\n---\n\n\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Fdomains.json — do not edit by hand. -->\n\n# Set up a custom domain with your own provider\n\nWalk the user's own registrar through pointing their domain at the Convex app: identify the target (hosting or deployment URL), create the DNS records, attach the custom domain, and rebind the auth origin if the app uses auth.\n\n## Workflow\n\n1. Identify the target: the published site host (for `*.convex.app` static hosting) or the deployment's HTTP actions URL.\n2. Detect an ALREADY-AUTHENTICATED DNS CLI for the user's provider and OFFER to create the records automatically: Cloudflare → `flarectl dns create` (note: `wrangler` itself doesn't manage DNS records) or the CF API via their token env; Route53 → `aws route53 change-resource-record-sets`; Google Cloud DNS → `gcloud dns record-sets create`; DigitalOcean → `doctl compute domain records create`; Vercel DNS → `vercel dns add`. Check auth read-only first (`flarectl user info` \u002F `aws sts get-caller-identity` \u002F `doctl account get`); show the exact commands and get a yes before running.\n3. If no authed CLI (or the user declines), tell the user exactly which records to create at THEIR registrar: the CNAME (or A\u002FALIAS at the apex) plus the TXT verification record — with concrete host\u002Fvalue strings, not placeholders.\n4. Attach the domain as a Convex custom domain (dashboard or CLI) and wait for verification; note DNS propagation can take minutes to hours. Verify records landed with `dig +short`.\n5. If the app uses auth (passkeys\u002FOAuth), rebind the auth origin (SITE_URL \u002F RP_ID \u002F ORIGIN env vars) to the new domain and re-deploy\u002Fre-publish.\n6. Verify: the domain serves the app over HTTPS, including the apex → www redirect if configured.\n\n## Rules\n\n- Never ask for or handle registrar credentials. A CLI already authenticated on the user's machine is fine — the credential stays in the tool; never install a CLI or run its login\u002Fauth flow for this, and never echo tokens.\n- DNS changes on a live domain are user-visible: show the exact commands and confirm before running them; verify afterwards with dig.\n- Always include the TXT verification record, not just the CNAME.\n- Rebinding the domain changes the auth origin — re-publish after, or sign-in breaks.\n","\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Fdomains.json — do not edit by hand. -->\n\n# Set up a custom domain with your own provider\n\nWalk the user's own registrar through pointing their domain at the Convex app: identify the target (hosting or deployment URL), create the DNS records, attach the custom domain, and rebind the auth origin if the app uses auth.\n\n## Workflow\n\n1. Identify the target: the published site host (for `*.convex.app` static hosting) or the deployment's HTTP actions URL.\n2. Detect an ALREADY-AUTHENTICATED DNS CLI for the user's provider and OFFER to create the records automatically: Cloudflare → `flarectl dns create` (note: `wrangler` itself doesn't manage DNS records) or the CF API via their token env; Route53 → `aws route53 change-resource-record-sets`; Google Cloud DNS → `gcloud dns record-sets create`; DigitalOcean → `doctl compute domain records create`; Vercel DNS → `vercel dns add`. Check auth read-only first (`flarectl user info` \u002F `aws sts get-caller-identity` \u002F `doctl account get`); show the exact commands and get a yes before running.\n3. If no authed CLI (or the user declines), tell the user exactly which records to create at THEIR registrar: the CNAME (or A\u002FALIAS at the apex) plus the TXT verification record — with concrete host\u002Fvalue strings, not placeholders.\n4. Attach the domain as a Convex custom domain (dashboard or CLI) and wait for verification; note DNS propagation can take minutes to hours. Verify records landed with `dig +short`.\n5. If the app uses auth (passkeys\u002FOAuth), rebind the auth origin (SITE_URL \u002F RP_ID \u002F ORIGIN env vars) to the new domain and re-deploy\u002Fre-publish.\n6. Verify: the domain serves the app over HTTPS, including the apex → www redirect if configured.\n\n## Rules\n\n- Never ask for or handle registrar credentials. A CLI already authenticated on the user's machine is fine — the credential stays in the tool; never install a CLI or run its login\u002Fauth flow for this, and never echo tokens.\n- DNS changes on a live domain are user-visible: show the exact commands and confirm before running them; verify afterwards with dig.\n- Always include the TXT verification record, not just the CNAME.\n- Rebinding the domain changes the auth origin — re-publish after, or sign-in breaks.\n",{"name":5,"description":7},"main","fd6beef619775fe02dd2548b0658bf88b46d7740",".agents\u002Fskills\u002Fconvex-domains",1494,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub","https:\u002F\u002Fclawhub.ai","https:\u002F\u002Fgithub.com\u002Fopenclaw","https:\u002F\u002Fopenclaw.ai","Your personal, open source AI assistant.","2026-11-13 01:06:10",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add openclaw\u002Fclawhub --skill convex-domains",{"tool":54,"command":55},"bunx","bunx skills add openclaw\u002Fclawhub --skill convex-domains",{"tool":57,"command":58},"pnpm","pnpm dlx skills add openclaw\u002Fclawhub --skill convex-domains","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-domains\u002FSKILL.md",true,[],[63,86,115,129,151,178],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":33},"01M698QE868QCJ1HN5H03NAKCZ","convex-advisor","Read the Convex deployment's 72h insights (read limits, OCC contention), root-cause each event in code, report evidence-backed perf\u002Fcost findings with fixes.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-advisor\u002FSKILL.md",[],[70,19,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85],"convex advisor","advisor","perf","deployment","code","report","read","evidence","cost","root-cause","event","with","insights","root","fixes","limits",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":97,"publishedAt":33},"01M698QD01M039DZ8WCRE8J6WY","convex-add","Add a capability to the CURRENT Convex app — consults the served Convex capability catalog for always-current procedures (billing, crons, auth, agent, search, …); falls back to built-in hosting or @convex-dev component search. TRIGGER when the user runs \u002Fadd, or asks to add hosting\u002Fpublishing or any backend capability to an existing Convex app.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-add\u002FSKILL.md",[92],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[98,19,99,100,21,101,102,103,104,105,106,107,108,26,109,110,111,112,113,114],"convex add","add","component","dev","search","user","catalog","backend","publishing","hosting","back","trigger","billing","for","Existing","capability","when",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":33},"01M698QBS5JVY310XM3RGFZCK4","convex-acquire-domain","Find and buy a domain for the current Convex app through Convex, then bind it (labs; spend action).","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-acquire-domain\u002FSKILL.md",[],[122,19,123,24,124,125,126,26,127,128,111],"convex acquire domain","acquire","find","buy","bind","it","action",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":33},"01M698Q9P74GJAVDMCP33QBBWX","controlling-costs","Analyzes Axiom query patterns to find unused data, then builds dashboards and monitors for cost optimization. Use when asked to reduce Axiom costs, find unused columns or field values, identify data waste, or track ingest spend.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontrolling-costs\u002FSKILL.md",[],[136,137,138,139,140,124,141,78,142,143,144,145,146,147,111,148,149,150,114],"controlling costs","cost optimization","Optimization","data","dashboards","use","ingest","patterns","query","columns","axiom","values","reduce","track","unused",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":163,"publishedAt":33},"01M698Q868XZ7WJ92AKABGJVTY","clawhub-production-release","Run and verify ClawHub production deploys and stable ClawHub CLI npm releases. Use when deploying backend or frontend changes to clawhub.ai, dispatching the Deploy workflow, publishing a stable CLI tag, checking release prerequisites, or proving the exact production SHA and workflow outcome.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fclawhub-production-release\u002FSKILL.md",[157,160],{"categoryNo":158,"categoryName":159,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":161,"categoryName":162,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000011","运维与部署",[164,165,166,167,168,169,170,171,172,173,174,175,141,105,106,176,177,114],"clawhub production release","clawhub","release","Production","frontend","cli","workflow","deploy","run","npm","verify","outcome","releases","changes",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":33},"01M698Q70G4HPSFV27J0YBNAYS","clawhub-pr-maintainer","Use when reviewing, triaging, validating, or discussing ClawHub GitHub issues or pull requests, including author context, CI, UI proof, evidence, labels, close decisions, and maintainer handoff.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fclawhub-pr-maintainer\u002FSKILL.md",[],[185,165,186,187,188,189,190,191,192,193,194,195,141,77,196,197,198,199,200,114],"clawhub pr maintainer","pr","github","pull requests","github issues","issues","pull","ui","ci","decisions","context","proof","close","requests","labels","author"]