Run convex-doctor static analysis, interpret findings, and fix issues across security, performance, correctness, schema, and architecture categories. Use when running convex-doctor, fixing convex-doctor warnings or errors, improving the convex-doctor score, or when asked about Convex code quality, static analysis, or linting Convex functions.
Run convex-doctor static analysis, interpret findings, and fix issues across security, performance, correctness, schema, and architecture categories. Use when running convex-doctor, fixing convex-doctor warnings or errors, improving the convex-doctor score, or when asked about Convex code quality, static analysis, or linting Convex functions.
Convex doctor workflow
This skill codifies the full convex-doctor remediation workflow used in this codebase (score 42 to 100 across 17 passes). Follow it whenever running convex-doctor or fixing its findings.
What is convex-doctor
convex-doctor is a static analysis tool for Convex backends. It scores your codebase 0 to 100 across five categories: security, correctness, performance, schema, and architecture.
Run it with:
npx convex-doctor@latest
Configuration
This project has a convex-doctor.toml at the repo root with intentional suppressions. Always check it before working on findings.
Current suppressions and rationale
Rule
Level
Rationale
correctness/generated-code-modified
off
Working tree is always dirty after codegen
schema/optional-field-no-default-handling
off
94 optional fields by design for markdown frontmatter
correctness/missing-unique
off
Remaining .first() calls are intentional ordered picks
schema/deep-nesting
off
4-level validators needed for chat attachments
schema/array-relationships
off
Flagged on function args, not table columns
perf/missing-index-on-foreign-key
off
Remaining FK is inside nested array (not indexable)
arch/duplicated-auth
off
Auth awareness is intentional per public handler
arch/monolithic-file
off
Files organized by domain
arch/large-handler
off
Email templates, sync, and search are inherently multi-step