[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-convex-convex-optimize":3,"mdc--uhpwxt-key":35,"related-org-convex-convex-optimize":168,"related-repo-convex-convex-optimize":339},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"convex-optimize","audit and optimize Convex applications","Audit and optimize an existing Convex app: security, scale, upgrades, observability.",{"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,23],{"name":14,"slug":15,"type":16},"Security","security","tag",{"name":18,"slug":19,"type":16},"Observability","observability",{"name":21,"slug":22,"type":16},"Performance","performance",{"name":9,"slug":8,"type":16},34,"https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills","2026-08-04T05:59:04.166359",null,7,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"Convex Skills for Agents","https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fconvex-optimize","---\nname: convex-optimize\ndescription: \"Audit and optimize an existing Convex app: security, scale, upgrades, observability.\"\n---\n\n\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Foptimize.json — do not edit by hand. -->\n\n# Audit and optimize an existing Convex app\n\nThe remediation WORKFLOW for an existing app: open with a scored assessment, then act on it — upgrade stale components and set up observability — plan-then-confirm-then-apply. The assessment itself is delegated to launch-readiness (the findings-bus scorer); optimize's distinct value is the actions it takes on the result.\n\n## Workflow\n\n1. Detect the app: a `convex\u002F` directory, the schema, and whether it's an anonymous or cloud deployment.\n2. ASSESS via `launch-readiness` — one scored, deduped report across authz\u002Freviewer\u002Fadvisor\u002Finsights with an ordered fix plan. Do not re-run those passes by hand; optimize consumes launch-readiness's report rather than re-implementing the audit.\n3. UPGRADE: run `check-updates` against the pinned `@convex-dev\u002F*` components and fold stale-component (staleness-class) findings into the same plan.\n4. OBSERVABILITY: if the readiness report flagged an observability gap (no prod error capture), offer to install `sentinel`.\n5. Present the combined prioritized plan — the launch-readiness score + the fix plan + upgrades + observability, security\u002Fdata-loss first — and apply only on explicit confirmation, dispatching each fix to its fixCapability.\n6. After applying, re-run the launch-readiness assessment and show the score delta.\n\n## Rules\n\n- Read-only first. Present a plan and CONFIRM before changing any file.\n- Delegate the audit to launch-readiness (the findings-bus scorer); don't re-implement reviewer\u002Fadvisor\u002Finsights inline — optimize's job is acting on the report (upgrades + observability), not re-scoring.\n- Prioritize security and data-loss risks above style, following launch-readiness's ordering.\n- Never auto-land changes on someone's existing prod app; re-assess after applying and show the score moved.\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,55,62,138,144],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"audit-and-optimize-an-existing-convex-app",[46],{"type":47,"value":48},"text","Audit and optimize an existing Convex app",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53],{"type":47,"value":54},"The remediation WORKFLOW for an existing app: open with a scored assessment, then act on it — upgrade stale components and set up observability — plan-then-confirm-then-apply. The assessment itself is delegated to launch-readiness (the findings-bus scorer); optimize's distinct value is the actions it takes on the result.",{"type":41,"tag":56,"props":57,"children":59},"h2",{"id":58},"workflow",[60],{"type":47,"value":61},"Workflow",{"type":41,"tag":63,"props":64,"children":65},"ol",{},[66,81,94,115,128,133],{"type":41,"tag":67,"props":68,"children":69},"li",{},[70,72,79],{"type":47,"value":71},"Detect the app: a ",{"type":41,"tag":73,"props":74,"children":76},"code",{"className":75},[],[77],{"type":47,"value":78},"convex\u002F",{"type":47,"value":80}," directory, the schema, and whether it's an anonymous or cloud deployment.",{"type":41,"tag":67,"props":82,"children":83},{},[84,86,92],{"type":47,"value":85},"ASSESS via ",{"type":41,"tag":73,"props":87,"children":89},{"className":88},[],[90],{"type":47,"value":91},"launch-readiness",{"type":47,"value":93}," — one scored, deduped report across authz\u002Freviewer\u002Fadvisor\u002Finsights with an ordered fix plan. Do not re-run those passes by hand; optimize consumes launch-readiness's report rather than re-implementing the audit.",{"type":41,"tag":67,"props":95,"children":96},{},[97,99,105,107,113],{"type":47,"value":98},"UPGRADE: run ",{"type":41,"tag":73,"props":100,"children":102},{"className":101},[],[103],{"type":47,"value":104},"check-updates",{"type":47,"value":106}," against the pinned ",{"type":41,"tag":73,"props":108,"children":110},{"className":109},[],[111],{"type":47,"value":112},"@convex-dev\u002F*",{"type":47,"value":114}," components and fold stale-component (staleness-class) findings into the same plan.",{"type":41,"tag":67,"props":116,"children":117},{},[118,120,126],{"type":47,"value":119},"OBSERVABILITY: if the readiness report flagged an observability gap (no prod error capture), offer to install ",{"type":41,"tag":73,"props":121,"children":123},{"className":122},[],[124],{"type":47,"value":125},"sentinel",{"type":47,"value":127},".",{"type":41,"tag":67,"props":129,"children":130},{},[131],{"type":47,"value":132},"Present the combined prioritized plan — the launch-readiness score + the fix plan + upgrades + observability, security\u002Fdata-loss first — and apply only on explicit confirmation, dispatching each fix to its fixCapability.",{"type":41,"tag":67,"props":134,"children":135},{},[136],{"type":47,"value":137},"After applying, re-run the launch-readiness assessment and show the score delta.",{"type":41,"tag":56,"props":139,"children":141},{"id":140},"rules",[142],{"type":47,"value":143},"Rules",{"type":41,"tag":145,"props":146,"children":147},"ul",{},[148,153,158,163],{"type":41,"tag":67,"props":149,"children":150},{},[151],{"type":47,"value":152},"Read-only first. Present a plan and CONFIRM before changing any file.",{"type":41,"tag":67,"props":154,"children":155},{},[156],{"type":47,"value":157},"Delegate the audit to launch-readiness (the findings-bus scorer); don't re-implement reviewer\u002Fadvisor\u002Finsights inline — optimize's job is acting on the report (upgrades + observability), not re-scoring.",{"type":41,"tag":67,"props":159,"children":160},{},[161],{"type":47,"value":162},"Prioritize security and data-loss risks above style, following launch-readiness's ordering.",{"type":41,"tag":67,"props":164,"children":165},{},[166],{"type":47,"value":167},"Never auto-land changes on someone's existing prod app; re-assess after applying and show the score moved.",{"items":169,"total":338},[170,183,195,208,225,239,254,268,280,295,309,324],{"slug":8,"name":8,"fn":171,"description":172,"org":173,"tags":174,"stars":24,"repoUrl":25,"updatedAt":182},"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},[175,178,179],{"name":176,"slug":177,"type":16},"Backend","backend",{"name":9,"slug":8,"type":16},{"name":180,"slug":181,"type":16},"Database","database","2026-08-04T05:33:40.321614",{"slug":184,"name":184,"fn":185,"description":186,"org":187,"tags":188,"stars":24,"repoUrl":25,"updatedAt":194},"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},[189,190,191],{"name":176,"slug":177,"type":16},{"name":9,"slug":8,"type":16},{"name":192,"slug":193,"type":16},"Engineering","engineering","2026-08-04T05:58:58.661741",{"slug":196,"name":196,"fn":197,"description":198,"org":199,"tags":200,"stars":24,"repoUrl":25,"updatedAt":207},"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},[201,202,205,206],{"name":9,"slug":8,"type":16},{"name":203,"slug":204,"type":16},"Cost Optimization","cost-optimization",{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},"2026-08-04T05:58:45.241135",{"slug":209,"name":209,"fn":210,"description":211,"org":212,"tags":213,"stars":24,"repoUrl":25,"updatedAt":224},"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},[214,217,218,221],{"name":215,"slug":216,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":219,"slug":220,"type":16},"LLM","llm",{"name":222,"slug":223,"type":16},"RAG","rag","2026-08-04T05:59:00.756304",{"slug":226,"name":226,"fn":227,"description":228,"org":229,"tags":230,"stars":24,"repoUrl":25,"updatedAt":238},"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},[231,234,237],{"name":232,"slug":233,"type":16},"Auth","auth",{"name":235,"slug":236,"type":16},"Authentication","authentication",{"name":9,"slug":8,"type":16},"2026-08-04T05:58:59.175962",{"slug":240,"name":240,"fn":241,"description":242,"org":243,"tags":244,"stars":24,"repoUrl":25,"updatedAt":253},"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},[245,248,249,250],{"name":246,"slug":247,"type":16},"Backup","backup",{"name":9,"slug":8,"type":16},{"name":180,"slug":181,"type":16},{"name":251,"slug":252,"type":16},"Reliability","reliability","2026-08-04T05:58:42.702643",{"slug":255,"name":255,"fn":256,"description":257,"org":258,"tags":259,"stars":24,"repoUrl":25,"updatedAt":267},"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},[260,261,264],{"name":9,"slug":8,"type":16},{"name":262,"slug":263,"type":16},"Payments","payments",{"name":265,"slug":266,"type":16},"Stripe","stripe","2026-08-04T05:58:46.810981",{"slug":269,"name":269,"fn":270,"description":271,"org":272,"tags":273,"stars":24,"repoUrl":25,"updatedAt":279},"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},[274,277,278],{"name":275,"slug":276,"type":16},"Analytics","analytics",{"name":203,"slug":204,"type":16},{"name":21,"slug":22,"type":16},"2026-08-04T05:58:51.890215",{"slug":281,"name":281,"fn":282,"description":283,"org":284,"tags":285,"stars":24,"repoUrl":25,"updatedAt":294},"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},[286,289,292,293],{"name":287,"slug":288,"type":16},"API Development","api-development",{"name":290,"slug":291,"type":16},"Architecture","architecture",{"name":176,"slug":177,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T08:00:39.428577",{"slug":296,"name":296,"fn":297,"description":298,"org":299,"tags":300,"stars":24,"repoUrl":25,"updatedAt":308},"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},[301,304,305],{"name":302,"slug":303,"type":16},"Automation","automation",{"name":9,"slug":8,"type":16},{"name":306,"slug":307,"type":16},"Scheduling","scheduling","2026-08-04T05:59:03.147387",{"slug":310,"name":310,"fn":311,"description":312,"org":313,"tags":314,"stars":24,"repoUrl":25,"updatedAt":323},"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},[315,316,319,322],{"name":9,"slug":8,"type":16},{"name":317,"slug":318,"type":16},"Deployment","deployment",{"name":320,"slug":321,"type":16},"Operations","operations",{"name":14,"slug":15,"type":16},"2026-08-04T05:58:55.830592",{"slug":325,"name":325,"fn":326,"description":327,"org":328,"tags":329,"stars":24,"repoUrl":25,"updatedAt":337},"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},[330,331,332,333,334],{"name":232,"slug":233,"type":16},{"name":176,"slug":177,"type":16},{"name":9,"slug":8,"type":16},{"name":180,"slug":181,"type":16},{"name":335,"slug":336,"type":16},"Realtime","realtime","2026-08-04T05:58:54.310662",50,{"items":340,"total":386},[341,347,353,360,367,373,380],{"slug":8,"name":8,"fn":171,"description":172,"org":342,"tags":343,"stars":24,"repoUrl":25,"updatedAt":182},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[344,345,346],{"name":176,"slug":177,"type":16},{"name":9,"slug":8,"type":16},{"name":180,"slug":181,"type":16},{"slug":184,"name":184,"fn":185,"description":186,"org":348,"tags":349,"stars":24,"repoUrl":25,"updatedAt":194},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[350,351,352],{"name":176,"slug":177,"type":16},{"name":9,"slug":8,"type":16},{"name":192,"slug":193,"type":16},{"slug":196,"name":196,"fn":197,"description":198,"org":354,"tags":355,"stars":24,"repoUrl":25,"updatedAt":207},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[356,357,358,359],{"name":9,"slug":8,"type":16},{"name":203,"slug":204,"type":16},{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"slug":209,"name":209,"fn":210,"description":211,"org":361,"tags":362,"stars":24,"repoUrl":25,"updatedAt":224},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[363,364,365,366],{"name":215,"slug":216,"type":16},{"name":9,"slug":8,"type":16},{"name":219,"slug":220,"type":16},{"name":222,"slug":223,"type":16},{"slug":226,"name":226,"fn":227,"description":228,"org":368,"tags":369,"stars":24,"repoUrl":25,"updatedAt":238},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[370,371,372],{"name":232,"slug":233,"type":16},{"name":235,"slug":236,"type":16},{"name":9,"slug":8,"type":16},{"slug":240,"name":240,"fn":241,"description":242,"org":374,"tags":375,"stars":24,"repoUrl":25,"updatedAt":253},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[376,377,378,379],{"name":246,"slug":247,"type":16},{"name":9,"slug":8,"type":16},{"name":180,"slug":181,"type":16},{"name":251,"slug":252,"type":16},{"slug":255,"name":255,"fn":256,"description":257,"org":381,"tags":382,"stars":24,"repoUrl":25,"updatedAt":267},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[383,384,385],{"name":9,"slug":8,"type":16},{"name":262,"slug":263,"type":16},{"name":265,"slug":266,"type":16},30]