convex-suggest — скилл для Claude Code: подсказывает компоненты Convex
Скилл замечает, когда вы пишете руками то, что уже решает готовый компонент Convex, и после задачи предлагает один подходящий вариант.
npx skills add convex/agent-skills --skill convex-suggest -a claude-codeЧто делает convex-suggest
Скилл следит за вашим кодом и запросом пассивно, не мешая текущей работе. Как только в сниппетах появляется паттерн, который закрывает готовый компонент, он после завершения задачи называет один компонент, цитирует конкретное место из вашего кода и объясняет, почему компонент подходит лучше. Например, увидев post.likes + 1 в мутации, которую вызывают много пользователей одновременно, он скажет про конфликты OCC при нагрузке.
Внутри — правила-детекторы: setInterval или cron ведут к @convex-dev/crons, счётчик с общими инкрементами к @convex-dev/sharded-counter, сканы через .collect().length к @convex-dev/aggregate, длительные многошаговые действия к @convex-dev/workflow, ограничение параллелизма к @convex-dev/workpool, счётчики rate-limit в базе к @convex-dev/rate-limiter, загрузки файлов к Convex Storage, Elasticsearch или Algolia к встроенному полнотекстовому поиску, presence и typing к @convex-dev/presence, внешняя векторная база к @convex-dev/rag, совместное редактирование к @convex-dev/prosemirror-sync.
Установку скилл не делает сам: он ждёт явного согласия. Если вы говорите да, он запускает /add <component> или следует подсказке детектора. Отказались или проигнорировали — предложение снимается и не повторяется. На обычных вопросах по коду, не связанных с Convex, скилл молчит.
Какие задачи решает
- заметить, что ручной счётчик лайков стоит заменить на sharded-counter
- перевести cron-задачу на
@convex-dev/crons - убрать сканы
.collect().lengthв пользу aggregate - подсказать rate-limiter вместо самодельных счётчиков в базе
- предложить workflow для длительных многошаговых действий
Примеры запросов агенту
- Я закончил мутацию с инкрементом лайков — посмотри, не дублирует ли она готовый компонент Convex
- Проверь мой код на cron-задачи и скажи, есть ли подходящий компонент
- Есть ли компонент Convex для presence и typing, если я пишу это сам?
Как установить convex-suggest
1Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-suggest -a claude-code2Вручную: положить файлы
~/.claude/skills/convex-suggest/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/convex-suggest/
1Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-suggest -a codex2Вручную: положить файлы
.agents/skills/convex-suggest/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-suggest -a cursor2Вручную: положить файлы
.cursor/skills/convex-suggest/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install convex/agent-skills convex-suggest2Вручную: положить файлы
.github/skills/convex-suggest/SKILL.md1Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-suggest -a gemini-cli2Командой платформы
gemini skills install https://github.com/convex/agent-skills --path skills/convex-suggestВручную: положить файлы
.devin/skills/convex-suggest/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-suggest -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о convex-suggest
Как установить convex-suggest в Claude?
Выполните npx skills add convex/agent-skills --skill convex-suggest -a claude-code. Скилл окажется в ~/.claude/skills/convex-suggest/SKILL.md.
Что делает convex-suggest?
Смотрит за кодом и запросом, а после выполненной задачи предлагает один компонент Convex, который закрывает написанный вами паттерн. Установку без вашего согласия не делает.
Скилл сам поставит компонент?
Нет. Он называет компонент и объясняет причину, а установку запускает только после явного «да» — через /add <component> или подсказку детектора.
Исходный текст
SKILL.md · Apache-2.0
--- 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.).
© convex · Apache-2.0 · convex/agent-skills