convex-advisor
get-convex/agent-skills
Analyze Convex deployment health: root-cause read limits, OCC contention, and performance issues with evidence-backed fixes.
What is convex-advisor?
Reads 72-hour insights from a live Convex deployment to identify performance and cost issues—read limits, OCC contention, approaching thresholds—then traces each event to its code root cause and recommends concrete fixes. Use this after deploying to production to get actionable perf/cost findings backed by real runtime data.
- Fetches typed 72h health events (read limits, OCC failures, threshold warnings) from the official Convex MCP
- Root-causes each event by reading the flagged function's actual code and identifying patterns (unindexed filters, missing pagination, write hotspots)
- Emits findings with severity, locus, evidence, and concrete fixes (index + withIndex, pagination, sharded-counter, etc.)
- Ranks findings by severity and offers to apply mechanical fixes on confirmation
- Re-runs insights after fixes to verify improvement trends
- Routes non-perf findings (authz, style, error triage) to specialized skills
How to install convex-advisor
npx skills add https://github.com/get-convex/agent-skills --skill convex-advisor- Logged-in Convex user context (insights tool requires cloud dev/prod, not previews or deploy-key scopes)
- Live deployment with ~72h of traffic (insights require historical data)
- Read-only access to the deployment (no mutation flags enabled)
How to use convex-advisor
- 1.Run the skill to identify the target deployment and fetch 72h insights
- 2.Review the ranked findings: severity, runtime evidence (e.g., 'messages:list read 4.2MB 31× yesterday'), and root cause with file:line
- 3.For each finding, examine the suggested fix and the capability that applies it (e.g., convex-expert for indexing, sharded-counter for OCC)
- 4.Confirm to apply mechanical fixes; the skill will modify code and re-run insights to verify the trend
- 5.If insights are unavailable or empty, fall back to convex-reviewer for static analysis
Use cases
- Investigate why a function hit its read-limit quota and identify the missing index or pagination
- Diagnose OCC contention on a shared counter or status document and apply sharded-counter or narrowing fixes
- Review approaching read-threshold warnings before they become hard limits
- Verify that a deployed fix reduced contention or read volume by re-running insights
- Triage repeated function failures in logs to distinguish crashes, validator rejections, and unhandled errors
- Backend engineers optimizing Convex function performance
- DevOps/SRE teams monitoring production deployment health
- Teams preparing for launch and scoring readiness via findings
- Developers debugging why a function stopped working or became slow
convex-advisor FAQ
The skill will report that and offer to run convex-reviewer instead for static analysis. Insights require ~72h of traffic on cloud dev/prod deployments; previews and deploy-key contexts do not have access.
Only on explicit confirmation, and only mechanical fixes (adding indexes, pagination, sharded-counter). It never enables mutation flags and always operates read-only by default.
Real runtime events from the insights tool (read-limit hits, OCC failures, threshold warnings), log lines, or table statistics. The skill does not invent findings without evidence.
convex-advisor analyzes live deployment health with 72h runtime data; convex-reviewer does static code review. Use the advisor for perf/cost/health issues and route authz/style/error triage to specialized skills.
The skill routes authz findings to convex-authz, code-idiom findings to convex-reviewer, and error triage to sentinel, emitting a pointer finding instead of duplicating work.
Full instructions (SKILL.md)
Source of truth, from get-convex/agent-skills.
name: convex-advisor description: "Read the Convex deployment's 72h insights (read limits, OCC contention), root-cause each event in code, report evidence-backed perf/cost findings with fixes."
<!-- GENERATED from convex-agents content/capabilities/convex-advisor.json — do not edit by hand. -->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
- 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.
- GATHER (deterministic, via the official Convex MCP):
status→ deployment selector;insights→ the typed 72h events;tables→ schema + row counts;functionSpec→ the public/internal surface. Theinsightstool 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. - 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.
- bytesReadThreshold/Limit or documentsReadThreshold/Limit → look for
- 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.
- 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
insightsafter traffic to verify the trend, or re-run the static check immediately. - 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.
Related skills
More from get-convex/agent-skills and the wider catalog.

convex-agent
Add durable AI agent and RAG backend to Convex with built-in message history, tool calls, and vector search.

convex-auth
Add passkey/OAuth authentication to Convex apps with proper auth.config.ts wiring.

convex-authz
Audit and harden Convex app authorization: detect identity spoofing, missing ownership checks, PII leaks, and unsafe parent writes.

convex-backup
Set up Convex backups and prove recovery works with automated restore drills.

convex-billing
Add Stripe billing and subscription management to Convex apps with checkout, webhooks, and server-side gating.

convex-cost
Preview Convex spend by ranking functions on bytes-read × call-volume, project cost curves, and name the cheapest fix.