[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698RBSS8GPB4R68H0DS0B7B":3,"skill-same:01M698RBSS8GPB4R68H0DS0B7B":56},{"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":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":37,"ownerHtmlUrl":38,"ownerBlogUrl":39,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M698RBSS8GPB4R68H0DS0B7B","convex-migrate",null,"Migrate schema + backfill data on a deployed Convex app using @convex-dev\u002Fmigrations.","openclaw\u002Fclawhub","openclaw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F252820863?v=4","01M698P3FSAZ6B4R928ZF19KPT","01M698PDMKEC6E49395505BD05",9555,"MIT","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-migrate\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26],"convex migrate","convex","migrate","dev","data","schema","migrations","app","backfill","2026-11-10 10:12:30",false,"---\nname: convex-migrate\ndescription: \"Migrate schema + backfill data on a deployed Convex app using @convex-dev\u002Fmigrations.\"\n---\n\n\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Fmigrate.json — do not edit by hand. -->\n\n# Migrate the schema \u002F data on a live app\n\nChange a deployed schema without breaking existing data: stage the schema change, install @convex-dev\u002Fmigrations, write a backfill that makes old rows valid, run it, and verify before tightening the validator.\n\n## Workflow\n\n1. Make the new field optional first (so deploy doesn't reject existing rows).\n2. Install @convex-dev\u002Fmigrations; write a migration that backfills\u002Ftransforms existing rows.\n3. Run the migration; verify all rows are valid.\n4. Tighten the validator (make the field required) once the backfill is complete.\n\n## Rules\n\n- Never tighten a validator before the backfill completes — it rejects existing rows and breaks the live app.\n- Add new fields as optional first, migrate, then require.\n- Verify row counts before and after.\n","\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Fmigrate.json — do not edit by hand. -->\n\n# Migrate the schema \u002F data on a live app\n\nChange a deployed schema without breaking existing data: stage the schema change, install @convex-dev\u002Fmigrations, write a backfill that makes old rows valid, run it, and verify before tightening the validator.\n\n## Workflow\n\n1. Make the new field optional first (so deploy doesn't reject existing rows).\n2. Install @convex-dev\u002Fmigrations; write a migration that backfills\u002Ftransforms existing rows.\n3. Run the migration; verify all rows are valid.\n4. Tighten the validator (make the field required) once the backfill is complete.\n\n## Rules\n\n- Never tighten a validator before the backfill completes — it rejects existing rows and breaks the live app.\n- Add new fields as optional first, migrate, then require.\n- Verify row counts before and after.\n",{"name":5,"description":7},"main","fd6beef619775fe02dd2548b0658bf88b46d7740",".agents\u002Fskills\u002Fconvex-migrate",1493,"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-14 02:59:05",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add openclaw\u002Fclawhub --skill convex-migrate",{"tool":48,"command":49},"bunx","bunx skills add openclaw\u002Fclawhub --skill convex-migrate",{"tool":51,"command":52},"pnpm","pnpm dlx skills add openclaw\u002Fclawhub --skill convex-migrate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-migrate\u002FSKILL.md",true,[],[57,80,109,124,145,172],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":27},"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",[],[64,19,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],"convex advisor","advisor","perf","deployment","code","report","read","evidence","cost","root-cause","event","with","insights","root","fixes","limits",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":91,"publishedAt":27},"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",[86],{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[92,19,93,94,95,21,96,97,98,99,100,101,102,25,103,104,105,106,107,108],"convex add","add","component","auth","search","user","catalog","backend","publishing","hosting","back","trigger","billing","for","Existing","capability","when",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":27},"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",[],[116,19,117,118,119,120,121,25,122,123,105],"convex acquire domain","acquire","domain","find","buy","bind","it","action",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":27},"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",[],[131,132,133,22,134,119,135,72,136,137,138,139,140,141,105,142,143,144,108],"controlling costs","cost optimization","Optimization","dashboards","use","ingest","patterns","query","columns","axiom","values","reduce","track","unused",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":157,"publishedAt":27},"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",[151,154],{"categoryNo":152,"categoryName":153,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":155,"categoryName":156,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000011","运维与部署",[158,159,160,161,162,163,164,165,166,167,168,169,135,99,100,170,171,108],"clawhub production release","clawhub","release","Production","frontend","cli","workflow","deploy","run","npm","verify","outcome","releases","changes",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":27},"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",[],[179,159,180,181,182,183,184,185,186,187,188,189,135,71,190,191,192,193,194,108],"clawhub pr maintainer","pr","github","pull requests","github issues","issues","pull","ui","ci","decisions","context","proof","close","requests","labels","author"]