1. Habit
  2. Skills
  3. Convex Best Practices skill
waynesutton · 4K installs

Convex Best Practices skill
Runs by itself, convex code changes.

Convex changes checked against the rules.

Install the Convex Best Practices skill and make it a habit: follow https://gethabit.dev/skills/waynesutton/convex-best-practices.md

  1. 1Copy
  2. 2Paste into Claude Code, Codex or Cursor
  3. 3It runs by itself

4K installs405 starsApache-2.0 licenceSource on GitHub ↗

Convex Best Practices

by waynesutton · 4K installs

The skill

Convex best practices covers the production patterns the convex eslint plugin enforces: validators, index reads, idempotent mutations, avoiding OCC write conflicts, pagination, thin wrappers and error handling.

Only when you ask.

The habit

Convex changes checked against the rules.

↻ Runs by itselfconvex code changes

How the habit works.
You don't have to.

Three questionsWhen does it start? How does it check its work? What does it remember?

One run, step by step.
Then it stops.

Stop ruleStops after the changed convex files of one pull request are reviewed.

  1. 01

    Scope the diff

    Find the changed functions and schema in the convex folder.

  2. 02

    Check reads and writes

    Confirm index reads over filters, idempotent mutations and Promise.all for independent writes.

  3. 03

    Check safety rules

    Confirm ConvexError for client messages, internal.* scheduled targets and no Date.now() in queries.

  4. 04

    Run the linter

    Run npm run lint with the convex eslint plugin to catch old syntax and missing validators.

  5. 05

    Report against the checklist

    List failures against the checklist and log recurring issues.

What it may do.
Nothing more.

Safe by defaultIt writes only in its own folder and asks you before anything goes out.

Is it for you?
Use it when it fits.

Quick checkRead both lists. If the left one sounds like you, the Convex Best Practices skill helps.

Use it when

  • ✓ You review Convex functions
  • ✓ You fix write conflicts or slow queries
  • ✓ You set up the Convex ESLint plugin

Skip it when

  • – The project does not use Convex
  • – You want general JavaScript style rules

Questions

Convex Best Practices skill, answered.

Why indexes instead of filters?

.filter() reads every row then drops most; withIndex against a schema index reads as little as possible.

Why ConvexError over plain Error?

Plain Error messages are redacted to a generic server error in production, so clients cannot read them.

How do I install the Convex Best Practices skill?

Copy the prompt at the top into your agent. It installs the skill from waynesutton/builder-skills and sets up the habit. Or run npx skills add waynesutton/builder-skills --skill convex-best-practices.

Is the Convex Best Practices skill free?

Yes. It is published under Apache-2.0. Habit is free too.

Convex Best Practices. Now as a habit.

Install the Convex Best Practices skill and make it a habit: follow https://gethabit.dev/skills/waynesutton/convex-best-practices.md

  • Free
  • No account
  • Undo in one line

All waynesutton skills →More code skills →

Works in

  • Claude Code
  • Codex
  • Cursor
  • ChatGPT
  • Claude app

Made by waynesutton, published under Apache-2.0. Habit links to the original and never changes it. Is this your skill?

Copying didn't work here. Select the line and copy it by hand.