Suggest

by get-convex6ca54f6e2e75No licenseListed Oct 8, 2026Updated Oct 8, 2026

Proactively suggest the right Convex component when the user hand-rolls what already exists: setInterval polling → crons, counter increments → sharded-counter, .collect() counts → aggregate, email → resend, DB-counter rate limiting → rate-limiter, uploads → storage, search, presence, multi-step actions → workflow, vector DB → rag, collaborative editing → prosemirror-sync. TRIGGER on noticing the pattern in a Convex app, AFTER completing the user's request. NEVER for non-Convex code.

AI-generated overview

Suggests the appropriate Convex component when a Convex app hand-rolls functionality that already exists as a component.

What it does
The skill watches a Convex app's code and user requests for patterns that duplicate existing Convex components, such as polling intervals, counter increments, or email sending. After finishing the current task, it offers a single suggestion naming one component, quoting the triggering code, and explaining why the component fits. It provides an install hint and only proceeds if the user explicitly agrees.
When to use it
Use it while working in a Convex codebase, when you notice code or intent that reimplements something a Convex component already provides. It is meant to run after the user's current request is complete, not to interrupt it. It should not be used for non-Convex code or generic coding questions.
Requirements
No scripts; instructions only. It assumes a Convex project context and references a detector rules file at generators/suggest-detector.mjs, which is not included in the skill folder.

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.

Steps

  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.).

Source and attribution

Source:get-convex/convex-backend-skillinskills/suggestat commit6ca54f6

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal