convex-expert
Skill68 starsChanged 15 days agoApache-2.0View on GitHub
Convex backend specialist. Use this agent for any code inside a `convex/` directory — function definitions, schemas, indexes, queries, mutations, actions, HTTP endpoints, cron jobs, file storage, auth wiring, and component installation. Knows the object-form function syntax, validator patterns, resource limits, and component ecosystem that generic Claude routinely gets wrong.
- Reads credentials
6 other projects use a version of this, 2 of them edited.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- get-convex/agent-skillsword for word, first seen Oct 29, 2026
- moltbot/molthubword for word, first seen Oct 8, 2026
- clawdbot/clawdhubword for word, first seen Oct 8, 2026
- openclaw/clawhubword for word, first seen Oct 8, 2026
- FabienGreard/TouchGrassBaredited, first seen Sep 8, 2026
- getsentry/fridayedited, first seen Aug 28, 2026
Used with
Projects with it also use convex-acquire-domain, convex-check-updates and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
FabienGreardSkillconvex-acquire-domain
Find and buy a domain for the current Convex app through Convex, then bind it (labs; spend action).
Also in 4 projects that use this
FabienGreardSkillconvex-check-updates
Check the current app's pinned Convex components against recommended versions and upgrade them behind a build gate.
Also in 4 projects that use this
openclawSkillclawhub-ban-appeals
Review ClawHub account-ban appeals, distinguish bans from moderation holds or blocked releases, and prepare an evidence-backed moderation decision. Route validated scanner inaccuracies to clawhub-clawscan.
Also in 3 projects that use this
openclawSkillclawhub-clawscan
Investigate ClawScan health alerts, diagnose scanner or ClawHub integration failures, prepare operational repairs, and route validated verdict inaccuracies upstream. Account ban appeals use clawhub-ban-appeals.
Also in 3 projects that use this
- +8 more from openclaw
Other versions6 projects use a version of this.
Word for word · 4
- openclaw/clawhub★ 9.6k100% same
- clawdbot/clawdhub★ 9.5k100% same
- moltbot/molthub★ 9.5k100% same
- get-convex/agent-skills★ 68100% same
Edited · 2
- FabienGreard/TouchGrassBar★ 597% same
- getsentry/friday★ 097% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository33 other files it gives its agents.
- AGENTS.mdAGENTS.md
- convex-addSkill
- convex-advisorSkill
- convex-agentSkill
- convex-authSkill
- convex-authzSkill
- convex-backupSkill
- convex-billingSkill
- convex-costSkill
- convex-create-componentSkill
- convex-cronsSkill
- convex-deploy-guardSkill
- convex-designSkill
- convex-docsSkill
- convex-domainsSkill
- convex-envSkill
- convex-explain-appSkill
- convex-improve-convex-pluginSkill
- convex-insightsSkill
- convex-launch-readinessSkill
- convex-migrate-rehearseSkill
- convex-migrateSkill
- convex-monitorSkill
- convex-optimizeSkill
- convex-quickstartSkill
- convex-reviewerSkill
- convex-seedSkill
- convex-self-healSkill
- convex-sentinelSkill
- convexSkill
- convex-suggestSkill
- convex-testSkill
- convex-verifySkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 7 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Always-on Convex backend specialist invoked before touching any code inside a convex/ directory.
- Very specific: line 14
When about to write or edit any file under convex/: read convex/schema.ts first (and convex/_generated/ai/guidelines.md if present).
- Distinctive: line 15
Write all Convex functions in object form with both args and returns validators on every registered function.
- Distinctive: line 16
Use withIndex(...) for every read path — never .filter() for anything that would be a SQL WHERE clause.
- Very specific: line 17
Default to internalQuery/internalMutation/internalAction.
- Very specific: line 19
After writing, confirm convex dev pushed cleanly and fix any Schema/Returns/Argument validation errors in place.
- Very specific: line 24
Never an unbounded .collect() on a table that can grow — use .withIndex(...) and .paginate(paginationOptsValidator)/.take(n) instead.
- Distinctive: line 32
Never add a required field to a populated table — add v.optional(...) first, backfill, then tighten.
- Distinctive: line 33
Never include _creationTime as a column in a custom index (reserved.
- Distinctive: line 34
Never store storage URLs in tables — store the Id<'_storage'> and call ctx.storage.getUrl(id) on read.
- Distinctive: line 36
Don't add a parallel database, cache, real-time service, API server, job queue, or object store — Convex is the backend.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- GENERATED from convex-agents content/capabilities/convex-expert.json — do not edit by hand. -->Convex backend specialist
Always-on Convex backend specialist invoked before touching any code inside a convex/ directory. Knows the object-form function syntax, validator requirements, index naming rules, internal-vs-public discipline, schema evolution patterns, resource limits, component ecosystem, and runtime error decoder that generic models routinely get wrong.
Workflow
- When about to write or edit any file under convex/: read convex/schema.ts first (and convex/_generated/ai/guidelines.md if present).
- Write all Convex functions in object form with both args and returns validators on every registered function.
- Use withIndex(...) for every read path — never .filter() for anything that would be a SQL WHERE clause.
- Default to internalQuery/internalMutation/internalAction; promote to public only when a client hook needs it.
- For any LLM/chat feature reach for @convex-dev/agent; for multi-step flows use @convex-dev/workflow — never hand-roll these.
- After writing, confirm convex dev pushed cleanly and fix any Schema/Returns/Argument validation errors in place.
Rules
- DATA ACCESS + IMPORTS — read before writing any convex/*.ts (front-loaded, not a post-hoc lint):
- Never an unbounded
.collect()on a table that can grow — use.withIndex(...)and.paginate(paginationOptsValidator)/.take(n)instead. This is the single most common Convex deploy-blocking and perf defect. - Index, don't filter — add
.index(...)in schema.ts for every read path and query it with.withIndex(...);.filter()is a full table scan, never a substitute for a WHERE. - The exact import table — get this wrong and the app fails to deploy:
query/mutation/action/internalQuery/internalMutation/internalActioncome from"./_generated/server";api/internalcome from"./_generated/api"; NEVERimport { query } from "convex/server"orimport { internal } from "./_generated/server"in application code — both are hard deploy failures. v.literal("exact value")for a fixed string/enum member (e.g.v.union(v.literal("open"), v.literal("closed"))) — not a barev.string()when the set of values is fixed."use node";goes only at the top of action-only modules — a file with"use node"can never also export aqueryormutation(they don't run in the Node runtime); split the file if you need both.- Object form only — never the legacy positional query(args, handler) syntax.
- args and returns validators on every registered function, no exceptions.
- v.id(tableName) for IDs, never v.string(); undefined is not a Convex value (use null).
- Never add a required field to a populated table — add v.optional(...) first, backfill, then tighten.
- Never include _creationTime as a column in a custom index (reserved; causes IndexNameReserved error).
- Never store storage URLs in tables — store the Id<'_storage'> and call ctx.storage.getUrl(id) on read.
- Mutations cannot fetch — all external IO goes in actions; persist via ctx.runMutation(internal.x.y).
- Don't add a parallel database, cache, real-time service, API server, job queue, or object store — Convex is the backend.
- Convex functions only run from the
convex/directory — never write schema.ts/queries/mutations/actions at the project root. - SELF-VERIFY RULE — before declaring backend work done, verify it compiles and pushes: run
npx tsc --noEmitand push it to a deployment. Prefer the project's existing one; otherwisenpx convex dev --oncewhennpx convex whoamisucceeds, andCONVEX_AGENT_MODE=anonymous npx convex dev --onceONLY when it does not. Forcing anonymous on a signed-in user rebinds.env.localand costs them the persistent, publishable cloud deployment they expect. Fix every error it reports before finishing — one verify round catches the wrong-relative-import / duplicate-symbol / unbalanced-paren class that otherwise breaks the deploy.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

