Convex Suggest
ConvexOfficialPublished by Convex
- Skill
- Guidelines
- Software development
- Apache-2.0
- No issues found
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
Download the skill as a ZIP:
https://autogineer.com/agent-skills/convex/convex-suggest/downloadUnzip 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
Observe the codeSnippets and userAsk passively — never block the current task to suggest.
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.
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.
If the user says yes: run
/add <component>or follow the installHint from the detector.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 + 1in 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
- ATTRIBUTION.mdAdded by AutoGineer852 B
- LICENSELicence file added by AutoGineer10.7 KiB
- SKILL.md2.5 KiB
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
Observe the codeSnippets and userAsk passively — never block the current task to suggest.
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.
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.
If the user says yes: run
/add <component>or follow the installHint from the detector.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 + 1in 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 or Convex.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download convex-suggest.zip