PluginBench
Skill
Pass
Audit score 90

convex-suggest

get-convex/agent-skills

Suggest the right Convex component when you detect hand-rolled patterns it already solves.

What is convex-suggest?

This skill passively observes your code and asks, then suggests a matching Convex component (crons, rate-limiter, storage, search, presence, workflow, RAG, etc.) when it detects a pattern you're duplicating. It never interrupts the current task and requires explicit consent before installing anything.

  • Detects hand-rolled patterns matching Convex components (crons, sharded-counter, rate-limiter, storage, search, presence, workflow, RAG, prosemirror-sync)
  • Surfaces one targeted suggestion after task completion, never mid-task
  • Cites specific code or phrases from your own work to explain why the component fits
  • Waits for explicit consent before installing; never auto-installs
  • Avoids repeating suggestions or suggesting already-installed components

How to install convex-suggest

npx skills add https://github.com/get-convex/agent-skills --skill convex-suggest
Claude Code
Cursor
Windsurf
Cline

How to use convex-suggest

  1. 1.Install the skill via `npx skills add https://github.com/get-convex/agent-skills --skill convex-suggest`
  2. 2.Write or modify code normally; the skill observes passively in the background
  3. 3.After you complete a task, the skill analyzes your code against its detector rules
  4. 4.If a match is found, the skill offers one suggestion with the component name, the specific code that triggered it, and why it fits better
  5. 5.Review the suggestion and reply yes to install, or no/ignore to dismiss
  6. 6.If you consent, the skill runs the install command or provides the install hint

Use cases

Good for
  • You write setInterval logic and the skill suggests @convex-dev/crons
  • You implement a shared counter with concurrent increments; it suggests @convex-dev/sharded-counter to avoid OCC conflicts
  • You query .collect().length to count records; it suggests @convex-dev/aggregate for efficiency
  • You build presence/typing indicators; it suggests @convex-dev/presence
  • You integrate an external vector DB; it suggests @convex-dev/rag
Who it's for
  • Convex developers building backend features
  • Teams scaling from prototype to production
  • Developers unfamiliar with Convex's built-in components

convex-suggest FAQ

Will this skill interrupt my work?

No. It only suggests after you finish the current task, never mid-work.

What if I don't want a suggestion?

Simply say no or ignore it. The skill will not repeat the same suggestion and will not auto-install anything.

Can it suggest multiple components at once?

No. It picks the highest-priority match and suggests one component at a time, unless you ask for more.

What if I've already installed the component it wants to suggest?

The skill checks for already-installed components and will not suggest them again.

Does this work for non-Convex code?

No. It only fires on code patterns related to Convex; generic coding questions (sorting, CSS, etc.) are ignored.

Full instructions (SKILL.md)

Source of truth, from get-convex/agent-skills.


name: convex-suggest description: "Suggest the matching Convex component when the user hand-rolls a pattern it already solves (crons, sharded-counter, rate-limiter, storage, search, presence, workflow, RAG, prosemirror-sync). Passive — suggest after the task, never interrupt. Never install without consent."

<!-- GENERATED from convex-agents content/capabilities/suggest.json — do not edit by hand. -->

Proactively suggest the right Convex component

When you see code or intent that duplicates what a Convex component already does, surface a targeted suggestion: ONE component, WHY (anchored in the user's own code or ask), and a concrete install hint. Never install without explicit consent. Never suggest more than one component at a time unless the user asks.

Workflow

  1. Observe the codeSnippets and userAsk passively — never block the current task to suggest.
  2. Match against the detector rules (see generators/suggest-detector.mjs): email/SMTP → resend; push notifications → expo-push; setInterval/cron → @convex-dev/crons; shared counter increments → @convex-dev/sharded-counter; .collect().length scans → @convex-dev/aggregate; multi-step/long-running actions → @convex-dev/workflow; bounded concurrency → @convex-dev/workpool; rate-limit counters in DB → @convex-dev/rate-limiter; fs.write/S3 uploads → Convex Storage; Elasticsearch/Algolia → built-in full-text search; presence/typing → @convex-dev/presence; Pinecone/external vector DB → @convex-dev/rag; collaborative editing → @convex-dev/prosemirror-sync.
  3. After finishing the current task, offer ONE suggestion: name the component, quote the specific code or phrase that triggered it, explain why the component fits better.
  4. If the user says yes: run /add <component> or follow the installHint from the detector.
  5. If the user says no or ignores it: drop it. Do not repeat the same suggestion.

Rules

  • Passive — never interrupt the current task; surface the suggestion AFTER completing what the user asked.
  • One at a time — pick the highest-priority match; do not dump a list of five components.
  • Cite WHY from the user's own code or ask — 'I noticed you wrote post.likes + 1 in a mutation that many users call concurrently; that causes OCC conflicts at scale.'
  • Never install without explicit consent — suggest, explain, wait for a yes.
  • Do not suggest a component the user has already installed.
  • Do not fire on generic coding questions unrelated to Convex (sorting arrays, writing CSS, etc.).