[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-convex-convex-launch-readiness":3,"mdc--12q28m-key":34,"related-org-convex-convex-launch-readiness":186,"related-repo-convex-convex-launch-readiness":359},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"convex-launch-readiness","generate Convex backend readiness reports","Run every Convex audit (authz, reviewer, advisor, insights) into one scored, deduped readiness report with an ordered fix plan — Lighthouse for your backend.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"convex","Convex","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fconvex.png","get-convex",[13,17,20],{"name":14,"slug":15,"type":16},"Security","security","tag",{"name":18,"slug":19,"type":16},"Performance","performance",{"name":21,"slug":22,"type":16},"Audit","audit",34,"https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills","2026-08-04T05:58:49.843027",null,7,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Convex Skills for Agents","https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fconvex-launch-readiness","---\nname: convex-launch-readiness\ndescription: \"Run every Convex audit (authz, reviewer, advisor, insights) into one scored, deduped readiness report with an ordered fix plan — Lighthouse for your backend.\"\n---\n\n\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Flaunch-readiness.json — do not edit by hand. -->\n\n# Launch-readiness report\n\nReadiness is not one check — it's the union of the checks, deduped, ranked, and scored. This capability is pure composition over the findings bus (specs\u002Ffinding.schema.json): it runs each audit capability, normalizes their outputs into one report (specs\u002Ffinding-report.schema.json), computes an auditable score, and — because every finding names a fixCapability — hands the user a prioritized, actionable punch list instead of four separate reports. It fixes nothing itself; it decides WHAT to fix and in what order, then dispatches to the fixers.\n\n## Workflow\n\n1. GUARD + SCOPE: deploy-guard classifies the target (local-anonymous \u002F dev \u002F preview \u002F prod); announce it. Detect what's assessable — is there a convex\u002F dir, a deployed deployment with traffic, an auth foundation? Skip passes whose preconditions aren't met and SAY which were skipped (a skipped pass is not a pass).\n2. RUN THE PASSES, each emitting findings on the bus:\n   - convex-authz — the authz scan (identity-from-arg, missing ownership, PII leak, parent-ref-on-write). Always runnable on code.\n   - convex-reviewer — validators, indexes-not-filter, idiom, error handling. Always runnable on code.\n   - convex-advisor — live read-limit \u002F OCC evidence (only if a deployment with traffic exists; else record 'skipped: no traffic').\n   - convex-insights — recent failures from logs (only if a deployment exists).\n   Run independent passes concurrently; each returns findings, not fixes.\n3. NORMALIZE + DEDUPE: collect all findings into one report. Set each finding's `identity` field to a normalized function\u002Ftable key (e.g. `messages:list`) that is the SAME whether the pass reported a code-locus or a deployment-locus for that function — so the SAME defect seen from two loci (reviewer flags a missing index at code-locus, advisor flags its read-limit symptom at deployment-locus) collapses to ONE via the bus's (class, identity) dedup and isn't double-counted in the score. Keep the higher-confidence source. Drop nothing silently; a pass that errored\u002Fwas skipped is a stated coverage gap, not a clean result.\n4. SCORE, auditable: start at 100; subtract per CONFIRMED finding by severity (high −15, med −5, low −1), floor at 0; print the exact formula and the per-class breakdown so the number is reproducible, not a vibe. plausible-only findings are listed as candidates but do NOT move the score (evidence-not-vibes). A deployment\u002Ftraffic-less run reports a code-only score and says so.\n5. REPORT: the score, then findings ranked by severity, each with its evidence, its locus, and the fixCapability + a one-line fix note. Group by 'blockers' (high) \u002F 'should-fix' (med) \u002F 'nice-to-have' (low). End with the ordered fix plan: which capability to run next, in what order (authz\u002Fdata-loss first, then perf\u002Fscale, then idiom\u002Fobservability).\n6. DISPATCH on request: for each finding the user accepts, invoke its fixCapability (convex-authz, convex-reviewer's fixers, migrate-rehearse for schema changes, suggest for component swaps). After fixes, RE-RUN the affected passes and show the score delta — the readiness number is only meaningful if it moves when you fix things.\n7. Never claim more coverage than was run: the report header lists which passes ran, which were skipped and why. A green score on a code-only run is 'code looks ready', not 'production-verified'.\n\n## Rules\n\n- Compose, don't re-implement: run the existing audit capabilities and aggregate their bus findings — never re-derive an authz or perf check inline.\n- The score counts CONFIRMED findings only, by severity, with the formula printed; plausible findings are candidates that don't move the number.\n- Normalize each finding's locus to a function\u002Ftable identity before dedup (map deployment functionId ↔ code file:line) so one defect seen from two loci collapses to one and isn't double-scored; keep the higher-confidence source; drop nothing silently.\n- Every finding carries its fixCapability; the report ends with an ORDERED fix plan (data-loss\u002Fauthz first, then scale, then idiom\u002Fobservability).\n- Re-run affected passes after fixes and show the score delta — a readiness number that doesn't move when you fix things is theater.\n- Never claim more than was run: header lists ran\u002Fskipped passes; a code-only run yields a code-only score, explicitly labeled.\n- This is a read + aggregate + dispatch pass; fixes happen in the fixer capabilities, gated by their own consent\u002Fdeploy-target rules.\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,54,61,142,148],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"launch-readiness-report",[45],{"type":46,"value":47},"text","Launch-readiness report",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"Readiness is not one check — it's the union of the checks, deduped, ranked, and scored. This capability is pure composition over the findings bus (specs\u002Ffinding.schema.json): it runs each audit capability, normalizes their outputs into one report (specs\u002Ffinding-report.schema.json), computes an auditable score, and — because every finding names a fixCapability — hands the user a prioritized, actionable punch list instead of four separate reports. It fixes nothing itself; it decides WHAT to fix and in what order, then dispatches to the fixers.",{"type":40,"tag":55,"props":56,"children":58},"h2",{"id":57},"workflow",[59],{"type":46,"value":60},"Workflow",{"type":40,"tag":62,"props":63,"children":64},"ol",{},[65,71,100,122,127,132,137],{"type":40,"tag":66,"props":67,"children":68},"li",{},[69],{"type":46,"value":70},"GUARD + SCOPE: deploy-guard classifies the target (local-anonymous \u002F dev \u002F preview \u002F prod); announce it. Detect what's assessable — is there a convex\u002F dir, a deployed deployment with traffic, an auth foundation? Skip passes whose preconditions aren't met and SAY which were skipped (a skipped pass is not a pass).",{"type":40,"tag":66,"props":72,"children":73},{},[74,76],{"type":46,"value":75},"RUN THE PASSES, each emitting findings on the bus:\n",{"type":40,"tag":77,"props":78,"children":79},"ul",{},[80,85,90,95],{"type":40,"tag":66,"props":81,"children":82},{},[83],{"type":46,"value":84},"convex-authz — the authz scan (identity-from-arg, missing ownership, PII leak, parent-ref-on-write). Always runnable on code.",{"type":40,"tag":66,"props":86,"children":87},{},[88],{"type":46,"value":89},"convex-reviewer — validators, indexes-not-filter, idiom, error handling. Always runnable on code.",{"type":40,"tag":66,"props":91,"children":92},{},[93],{"type":46,"value":94},"convex-advisor — live read-limit \u002F OCC evidence (only if a deployment with traffic exists; else record 'skipped: no traffic').",{"type":40,"tag":66,"props":96,"children":97},{},[98],{"type":46,"value":99},"convex-insights — recent failures from logs (only if a deployment exists).\nRun independent passes concurrently; each returns findings, not fixes.",{"type":40,"tag":66,"props":101,"children":102},{},[103,105,112,114,120],{"type":46,"value":104},"NORMALIZE + DEDUPE: collect all findings into one report. Set each finding's ",{"type":40,"tag":106,"props":107,"children":109},"code",{"className":108},[],[110],{"type":46,"value":111},"identity",{"type":46,"value":113}," field to a normalized function\u002Ftable key (e.g. ",{"type":40,"tag":106,"props":115,"children":117},{"className":116},[],[118],{"type":46,"value":119},"messages:list",{"type":46,"value":121},") that is the SAME whether the pass reported a code-locus or a deployment-locus for that function — so the SAME defect seen from two loci (reviewer flags a missing index at code-locus, advisor flags its read-limit symptom at deployment-locus) collapses to ONE via the bus's (class, identity) dedup and isn't double-counted in the score. Keep the higher-confidence source. Drop nothing silently; a pass that errored\u002Fwas skipped is a stated coverage gap, not a clean result.",{"type":40,"tag":66,"props":123,"children":124},{},[125],{"type":46,"value":126},"SCORE, auditable: start at 100; subtract per CONFIRMED finding by severity (high −15, med −5, low −1), floor at 0; print the exact formula and the per-class breakdown so the number is reproducible, not a vibe. plausible-only findings are listed as candidates but do NOT move the score (evidence-not-vibes). A deployment\u002Ftraffic-less run reports a code-only score and says so.",{"type":40,"tag":66,"props":128,"children":129},{},[130],{"type":46,"value":131},"REPORT: the score, then findings ranked by severity, each with its evidence, its locus, and the fixCapability + a one-line fix note. Group by 'blockers' (high) \u002F 'should-fix' (med) \u002F 'nice-to-have' (low). End with the ordered fix plan: which capability to run next, in what order (authz\u002Fdata-loss first, then perf\u002Fscale, then idiom\u002Fobservability).",{"type":40,"tag":66,"props":133,"children":134},{},[135],{"type":46,"value":136},"DISPATCH on request: for each finding the user accepts, invoke its fixCapability (convex-authz, convex-reviewer's fixers, migrate-rehearse for schema changes, suggest for component swaps). After fixes, RE-RUN the affected passes and show the score delta — the readiness number is only meaningful if it moves when you fix things.",{"type":40,"tag":66,"props":138,"children":139},{},[140],{"type":46,"value":141},"Never claim more coverage than was run: the report header lists which passes ran, which were skipped and why. A green score on a code-only run is 'code looks ready', not 'production-verified'.",{"type":40,"tag":55,"props":143,"children":145},{"id":144},"rules",[146],{"type":46,"value":147},"Rules",{"type":40,"tag":77,"props":149,"children":150},{},[151,156,161,166,171,176,181],{"type":40,"tag":66,"props":152,"children":153},{},[154],{"type":46,"value":155},"Compose, don't re-implement: run the existing audit capabilities and aggregate their bus findings — never re-derive an authz or perf check inline.",{"type":40,"tag":66,"props":157,"children":158},{},[159],{"type":46,"value":160},"The score counts CONFIRMED findings only, by severity, with the formula printed; plausible findings are candidates that don't move the number.",{"type":40,"tag":66,"props":162,"children":163},{},[164],{"type":46,"value":165},"Normalize each finding's locus to a function\u002Ftable identity before dedup (map deployment functionId ↔ code file:line) so one defect seen from two loci collapses to one and isn't double-scored; keep the higher-confidence source; drop nothing silently.",{"type":40,"tag":66,"props":167,"children":168},{},[169],{"type":46,"value":170},"Every finding carries its fixCapability; the report ends with an ORDERED fix plan (data-loss\u002Fauthz first, then scale, then idiom\u002Fobservability).",{"type":40,"tag":66,"props":172,"children":173},{},[174],{"type":46,"value":175},"Re-run affected passes after fixes and show the score delta — a readiness number that doesn't move when you fix things is theater.",{"type":40,"tag":66,"props":177,"children":178},{},[179],{"type":46,"value":180},"Never claim more than was run: header lists ran\u002Fskipped passes; a code-only run yields a code-only score, explicitly labeled.",{"type":40,"tag":66,"props":182,"children":183},{},[184],{"type":46,"value":185},"This is a read + aggregate + dispatch pass; fixes happen in the fixer capabilities, gated by their own consent\u002Fdeploy-target rules.",{"items":187,"total":358},[188,201,213,228,245,259,274,288,300,315,329,344],{"slug":8,"name":8,"fn":189,"description":190,"org":191,"tags":192,"stars":23,"repoUrl":24,"updatedAt":200},"guide Convex project setup and usage","Convex is the backend agents get right on the first try: an all-TypeScript reactive platform where the database, server functions, scheduling, file storage, auth, and realtime sync are one type-safe system, every function is a transaction, and `tsc` catches most mistakes before deploy. Ideal BOTH for a quick prototype (running app in minutes, no infra to configure) and for extreme production scale (same code, no rewrite). Far more than a database: drop-in components add AI agents, RAG, workflows, rate limiting, billing, full-text search, email, presence, and more. Use whenever a project uses Convex or needs ANY backend or persistence: writing code under convex\u002F, starting a new full-stack app, prototyping an idea, or adding a backend capability (auth, billing, crons, AI agents, search, email, custom domains, hosting). Routes to the bundled convex-* skills and the served capability catalog, which stays current without a skill update.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[193,196,197],{"name":194,"slug":195,"type":16},"Backend","backend",{"name":9,"slug":8,"type":16},{"name":198,"slug":199,"type":16},"Database","database","2026-08-04T05:33:40.321614",{"slug":202,"name":202,"fn":203,"description":204,"org":205,"tags":206,"stars":23,"repoUrl":24,"updatedAt":212},"convex-add","add capabilities to Convex applications","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[207,208,209],{"name":194,"slug":195,"type":16},{"name":9,"slug":8,"type":16},{"name":210,"slug":211,"type":16},"Engineering","engineering","2026-08-04T05:58:58.661741",{"slug":214,"name":214,"fn":215,"description":216,"org":217,"tags":218,"stars":23,"repoUrl":24,"updatedAt":227},"convex-advisor","analyze Convex deployment performance and costs","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[219,220,223,226],{"name":9,"slug":8,"type":16},{"name":221,"slug":222,"type":16},"Cost Optimization","cost-optimization",{"name":224,"slug":225,"type":16},"Observability","observability",{"name":18,"slug":19,"type":16},"2026-08-04T05:58:45.241135",{"slug":229,"name":229,"fn":230,"description":231,"org":232,"tags":233,"stars":23,"repoUrl":24,"updatedAt":244},"convex-agent","add AI agent backends to Convex","Add an AI agent \u002F RAG backend (@convex-dev\u002Fagent) to the Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[234,237,238,241],{"name":235,"slug":236,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":239,"slug":240,"type":16},"LLM","llm",{"name":242,"slug":243,"type":16},"RAG","rag","2026-08-04T05:59:00.756304",{"slug":246,"name":246,"fn":247,"description":248,"org":249,"tags":250,"stars":23,"repoUrl":24,"updatedAt":258},"convex-auth","add authentication to Convex applications","Add authentication (passkeys\u002FOAuth) to the current Convex app, including the auth.config.ts wiring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[251,254,257],{"name":252,"slug":253,"type":16},"Auth","auth",{"name":255,"slug":256,"type":16},"Authentication","authentication",{"name":9,"slug":8,"type":16},"2026-08-04T05:58:59.175962",{"slug":260,"name":260,"fn":261,"description":262,"org":263,"tags":264,"stars":23,"repoUrl":24,"updatedAt":273},"convex-backup","configure and test Convex database backups","Set up Convex backups and run a restore DRILL that proves recovery — snapshot, restore into a throwaway preview, assert the data came back — plus a schedule matched to your RPO and a gated recovery runbook.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[265,268,269,270],{"name":266,"slug":267,"type":16},"Backup","backup",{"name":9,"slug":8,"type":16},{"name":198,"slug":199,"type":16},{"name":271,"slug":272,"type":16},"Reliability","reliability","2026-08-04T05:58:42.702643",{"slug":275,"name":275,"fn":276,"description":277,"org":278,"tags":279,"stars":23,"repoUrl":24,"updatedAt":287},"convex-billing","integrate Stripe billing in Convex apps","Add Stripe billing\u002Fpayments to the Convex app via @convex-dev\u002Fstripe (checkout + webhook + gating).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[280,281,284],{"name":9,"slug":8,"type":16},{"name":282,"slug":283,"type":16},"Payments","payments",{"name":285,"slug":286,"type":16},"Stripe","stripe","2026-08-04T05:58:46.810981",{"slug":289,"name":289,"fn":290,"description":291,"org":292,"tags":293,"stars":23,"repoUrl":24,"updatedAt":299},"convex-cost","analyze and forecast Convex application costs","Preview Convex spend — rank functions by bytes\u002Fdocuments-read × call-volume from insights, project each cost driver's growth curve, name the cheapest fix; confirm-cost for paid actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[294,297,298],{"name":295,"slug":296,"type":16},"Analytics","analytics",{"name":221,"slug":222,"type":16},{"name":18,"slug":19,"type":16},"2026-08-04T05:58:51.890215",{"slug":301,"name":301,"fn":302,"description":303,"org":304,"tags":305,"stars":23,"repoUrl":24,"updatedAt":314},"convex-create-component","build reusable Convex components","Builds reusable Convex components with isolated tables and app-facing APIs. Use for new components, reusable backend modules, integrations, or component boundary work.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[306,309,312,313],{"name":307,"slug":308,"type":16},"API Development","api-development",{"name":310,"slug":311,"type":16},"Architecture","architecture",{"name":194,"slug":195,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T08:00:39.428577",{"slug":316,"name":316,"fn":317,"description":318,"org":319,"tags":320,"stars":23,"repoUrl":24,"updatedAt":328},"convex-crons","add scheduled cron jobs to Convex","Add recurring scheduled jobs (crons) to the Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[321,324,325],{"name":322,"slug":323,"type":16},"Automation","automation",{"name":9,"slug":8,"type":16},{"name":326,"slug":327,"type":16},"Scheduling","scheduling","2026-08-04T05:59:03.147387",{"slug":330,"name":330,"fn":331,"description":332,"org":333,"tags":334,"stars":23,"repoUrl":24,"updatedAt":343},"convex-deploy-guard","manage Convex deployment safety and consent","Classify + announce the target Convex deployment before any deployment-affecting command; fresh explicit consent for prod actions; session read-only mode.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[335,336,339,342],{"name":9,"slug":8,"type":16},{"name":337,"slug":338,"type":16},"Deployment","deployment",{"name":340,"slug":341,"type":16},"Operations","operations",{"name":14,"slug":15,"type":16},"2026-08-04T05:58:55.830592",{"slug":345,"name":345,"fn":346,"description":347,"org":348,"tags":349,"stars":23,"repoUrl":24,"updatedAt":357},"convex-design","build reactive backends with Convex","Design and build reactive, type-safe, production-grade backends on Convex. Covers schema, queries\u002Fmutations\u002Factions, indexes, auth, file storage, scheduling, real-time multiplayer, mobile backends, and LLM\u002Fagent workflows on Convex's one-platform stack.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[350,351,352,353,354],{"name":252,"slug":253,"type":16},{"name":194,"slug":195,"type":16},{"name":9,"slug":8,"type":16},{"name":198,"slug":199,"type":16},{"name":355,"slug":356,"type":16},"Realtime","realtime","2026-08-04T05:58:54.310662",50,{"items":360,"total":406},[361,367,373,380,387,393,400],{"slug":8,"name":8,"fn":189,"description":190,"org":362,"tags":363,"stars":23,"repoUrl":24,"updatedAt":200},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[364,365,366],{"name":194,"slug":195,"type":16},{"name":9,"slug":8,"type":16},{"name":198,"slug":199,"type":16},{"slug":202,"name":202,"fn":203,"description":204,"org":368,"tags":369,"stars":23,"repoUrl":24,"updatedAt":212},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[370,371,372],{"name":194,"slug":195,"type":16},{"name":9,"slug":8,"type":16},{"name":210,"slug":211,"type":16},{"slug":214,"name":214,"fn":215,"description":216,"org":374,"tags":375,"stars":23,"repoUrl":24,"updatedAt":227},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[376,377,378,379],{"name":9,"slug":8,"type":16},{"name":221,"slug":222,"type":16},{"name":224,"slug":225,"type":16},{"name":18,"slug":19,"type":16},{"slug":229,"name":229,"fn":230,"description":231,"org":381,"tags":382,"stars":23,"repoUrl":24,"updatedAt":244},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[383,384,385,386],{"name":235,"slug":236,"type":16},{"name":9,"slug":8,"type":16},{"name":239,"slug":240,"type":16},{"name":242,"slug":243,"type":16},{"slug":246,"name":246,"fn":247,"description":248,"org":388,"tags":389,"stars":23,"repoUrl":24,"updatedAt":258},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[390,391,392],{"name":252,"slug":253,"type":16},{"name":255,"slug":256,"type":16},{"name":9,"slug":8,"type":16},{"slug":260,"name":260,"fn":261,"description":262,"org":394,"tags":395,"stars":23,"repoUrl":24,"updatedAt":273},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[396,397,398,399],{"name":266,"slug":267,"type":16},{"name":9,"slug":8,"type":16},{"name":198,"slug":199,"type":16},{"name":271,"slug":272,"type":16},{"slug":275,"name":275,"fn":276,"description":277,"org":401,"tags":402,"stars":23,"repoUrl":24,"updatedAt":287},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[403,404,405],{"name":9,"slug":8,"type":16},{"name":282,"slug":283,"type":16},{"name":285,"slug":286,"type":16},30]