Generated banner for Convex Suggest
Generated logo for Convex Suggest

Convex Suggest

ConvexOfficialPublished by Convex

  • Skill
  • Guidelines
  • Software development
  • Apache-2.0
  • No issues found

From the author

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.
— the description by Convex

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

Convex-suggest is a passive assistant skill that monitors user code and intent for patterns that mirror existing Convex components. It identifies when a developer is manually implementing features like rate limiting, cron jobs, or search, and suggests the appropriate pre-built component to reduce maintenance and improve performance. The skill operates non-intrusively, waiting until the current task is complete before offering a single, context-aware recommendation.

What it does

  • Monitors code and user requests for patterns solvable by Convex components.
  • Matches custom implementations against a library of known Convex solutions.
  • Provides a single, targeted suggestion after the current task is finished.
  • Explains the reasoning behind a suggestion by citing the user's specific code.
  • Respects user autonomy by requiring explicit consent before any installation.
  • Prevents redundant suggestions by tracking previously installed components.

When to use it

  • When you want to ensure your codebase leverages existing platform capabilities.
  • When you are unsure if a complex feature you are building has a native Convex equivalent.
  • When you want to avoid common pitfalls like OCC conflicts in high-concurrency mutations.
  • When you prefer to use maintained components over custom-rolled infrastructure.

Advantages

  • Reduces technical debt by replacing custom code with battle-tested components.
  • Improves application performance by suggesting optimized alternatives.
  • Maintains developer flow by keeping suggestions passive and non-interruptive.
  • Provides clear, actionable justifications for every recommendation.

Usage examples

“I am writing a mutation to increment a counter every time a user likes a post.”
The agent completes the task and then suggests: 'I noticed you are manually incrementing a counter; consider using @convex-dev/sharded-counter to avoid OCC conflicts at scale.'
“How can I set up a background job to clean up old records every night?”
The agent provides the code for the task and then suggests: 'Since you are looking for scheduled execution, you might prefer using @convex-dev/crons for this task.'

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/convex/convex-suggest/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip convex-suggest.zip -d .agents/skills

Documentation by Convex

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

Files

SKILL.md

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

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Convex
Publisher
Convex (Official)
Source
convex/agent-skills · skills/convex-suggest · commit f60629d
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Convex.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download convex-suggest.zip