convex-advisor

द्वारा get-convex

कॉन्वेक्स डिप्लॉयमेंट की 72 घंटे की इनसाइट्स (रीड लिमिट्स, OCC कंटेंशन) पढ़ें, कोड में प्रत्येक घटना का मूल कारण पता लगाएं, साक्ष्य-आधारित प्रदर्शन/लागत निष्कर्ष और समाधान रिपोर्ट करें।

npx skills add https://github.com/get-convex/agent-skills --skill convex-advisor

Live-deployment advisor

Static review guesses; the deployment KNOWS. The official Convex MCP ships an insights tool with typed 72h health events per function — documentsReadLimit / bytesReadLimit (hard limit hits), documentsReadThreshold / bytesReadThreshold (approaching), occFailedPermanently / occRetried (write contention) — each carrying evidence (table_name, bytes_read, documents_read, occ document id + retry count). The advisor turns each event into a root-caused finding by reading the flagged function's actual code, and emits findings on the findings bus (specs/finding.schema.json) so fixers can be dispatched and launch-readiness can score.

Workflow

  1. GUARD: run deploy-guard step 0-1 — identify + announce the deployment being read. Reading insights/logs on prod is allowed read-only; never enable mutating prod access for an advisory pass.
  2. GATHER (deterministic, via the official Convex MCP): status → deployment selector; insights → the typed 72h events; tables → schema + row counts; functionSpec → the public/internal surface. The insights tool is only available on cloud dev/prod deployments when logged in as a user (not on previews or deploy-key-scoped contexts) and needs ~72h of traffic; if it returns nothing or is unavailable, say so and fall back to offering convex-reviewer — do NOT invent findings.
  3. ROOT-CAUSE each insight event by reading the flagged function's code:
    • bytesReadThreshold/Limit or documentsReadThreshold/Limit → look for .collect() / unindexed .filter() / missing pagination on the named table; the fix is an index + .withIndex, .take(n), or .paginate (convex-expert patterns), or an aggregate component for counting shapes.
    • occRetried / occFailedPermanently → look for read-modify-write hotspots on the named document (shared counters, status toggles); the fix is @convex-dev/sharded-counter, narrowing the read set, or moving contention to a workpool.
    • repeated failures in logs (status: failure) → classify: crash loop in a cron, validator rejections, unhandled error shapes.
  4. EMIT findings per specs/finding.schema.json: class perf/correctness/cost, severity from the insight kind (limit hits = high, thresholds = med, retried = med, permanent OCC failure = high), locus {kind: deployment, functionId, tableName}, evidence {kind: insight-event, detail: the raw event}, confidence: confirmed (the event happened — it is not a hypothesis), fixCapability + autofixable where the repair is mechanical.
  5. REPORT: findings ranked by severity, each with (a) the runtime evidence in one line ('messages:list read 4.2MB from messages 31× yesterday'), (b) the code-level root cause with file:line, (c) the concrete fix and which capability applies it. Offer to apply fixes; apply only on confirmation, then re-run insights after traffic to verify the trend, or re-run the static check immediately.
  6. Scope discipline: this is a health/perf/cost pass. Route authz findings to convex-authz, code-idiom findings to convex-reviewer, error triage to sentinel — emit a pointer finding rather than duplicating their work.

Rules

  • Evidence-not-vibes: every finding cites a real insight event, log line, or table stat — if the deployment has no evidence, the advisor has no findings (offer convex-reviewer instead).
  • Read-only by construction: an advisory pass never mutates any deployment and never enables prod mutation flags (deploy-guard discipline applies).
  • Root-cause in the code before reporting: an insight event names the symptom; the finding must name the line and the mechanism.
  • Emit on the findings bus (specs/finding.schema.json), confidence: confirmed — runtime events are facts, not hypotheses.
  • Severity from the event kind: limit-hit / permanent-OCC-failure = high; threshold / retried = med.
  • Stay in lane: perf/cost/health only — hand authz to convex-authz, style to convex-reviewer, error triage to sentinel.
  • Prefer component fixes over hand-rolls when they match (sharded-counter for OCC on counters, aggregate for count scans) — same bias as suggest.

get-convex की और Skills

convex-performance-audit
get-convex
कॉन्वेक्स प्रदर्शन का ऑडिट करता है: रीड, सब्सक्रिप्शन, राइट कंटेंशन और फंक्शन सीमाएँ। धीमी सुविधाओं, इनसाइट्स निष्कर्षों, OCC विरोधों या रीड एम्प्लीफिकेशन के लिए उपयोग करें।
developmentdatabasedata-analysis
convex
get-convex
सामान्य Convex अनुरोधों को सही प्रोजेक्ट कौशल पर रूट करता है। इसका उपयोग तब करें जब उपयोगकर्ता पूछता है कि किस Convex कौशल का उपयोग करना है या कोई अपर्याप्त रूप से निर्दिष्ट Convex ऐप कार्य देता है।
developmentdatabase
convex-setup-auth
get-convex
Convex प्रमाणीकरण, पहचान मैपिंग और पहुँच नियंत्रण सेट करता है। Convex ऐप में लॉगिन, प्रमाणीकरण प्रदाताओं, उपयोगकर्ता तालिकाओं, संरक्षित फ़ंक्शन या भूमिकाओं के लिए उपयोग करें।
developmentdatabaseapi
convex-quickstart
get-convex
एप्लिकेशन में Convex बनाता या जोड़ता है। नए Convex प्रोजेक्ट्स, npm create convex@latest, फ्रंटएंड सेटअप, env वेरिएबल्स, या पहली npx convex dev रन के लिए उपयोग करें।
developmentdatabase
convex-migration-helper
get-convex
Convex स्कीमा और डेटा माइग्रेशन की योजना widen-migrate-narrow और @convex-dev/migrations के साथ बनाता है। ब्रेकिंग स्कीमा परिवर्तनों, बैकफिल, टेबल रीशेपिंग या जीरो-डाउनटाइम रोलआउट के लिए उपयोग करें।
developmentdatabase
convex-create-component
get-convex
पुन: प्रयोग करने योग्य Convex घटकों का निर्माण करता है जिनमें पृथक तालिकाएँ और ऐप-मुखी API होते हैं। नए घटकों, पुन: प्रयोग करने योग्य बैकएंड मॉड्यूल, एकीकरण या घटक सीमा कार्य के लिए उपयोग करें।
developmentdatabase
convex-migrate
get-convex
तैनात Convex ऐप पर @convex-dev/migrations का उपयोग करके स्कीमा माइग्रेट करें और डेटा बैकफिल करें।
developmentdatabase
convex-optimize
get-convex
Audit and optimize an existing Convex app: security, scale, upgrades, observability.