Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/PolarCoding85/convex-agent-skillznpx agentmods add skills/polarcoding85/convex-agent-skillz/convex-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/polarcoding85/convex-agent-skillz/convex-skill)<a href="https://agentmods.dev/skills/polarcoding85/convex-agent-skillz/convex-skill"><img src="https://agentmods.dev/badge/skills/polarcoding85/convex-agent-skillz/convex-skill/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/polarcoding85/convex-agent-skillz/convex-skill"><img src="https://agentmods.dev/badge/skills/polarcoding85/convex-agent-skillz/convex-skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00203 | $0.02093 |
| Opus 5.5 | $0.00081 | $0.00837 |
| Sonnet 5.5 | $0.00041 | $0.00419 |
| Haiku 4.5 | $0.00020 | $0.00209 |
Grade A, and why
convex scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 233 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Convex Backend Development
Core Architecture
Convex is a reactive database where queries are TypeScript functions. The sync engine (queries + mutations + database) is the heart of Convex — center your app around it.
Function Types
| Type | DB Access | Deterministic | Cached/Reactive | Use For |
|---|---|---|---|---|
query |
Read only | Yes | Yes | All reads, subscriptions |
mutation |
Read/Write | Yes | No | All writes (transactions) |
action |
Via ctx.run* | No | No | External APIs, LLMs, email |
httpAction |
Via ctx.run* | No | No | Webhooks, custom HTTP |
Key rule: Queries and mutations cannot make network requests. Actions cannot directly access the database.
Project Structure (Best Practice)
convex/
├── _generated/ # Auto-generated types (commit this)
├── schema.ts # Database schema
├── model/ # Helper functions (most logic lives here)
│ ├── users.ts
│ └── messages.ts
├── users.ts # Thin wrappers exposing public API
├── messages.ts
├── crons.ts # Cron job definitions
└── http.ts # HTTP action routes
Essential Patterns
1. Function Structure
// convex/messages.ts
import { query, mutation, internalMutation } from './_generated/server';
import { internal } from './_generated/api';
import { v } from 'convex/values';
// PUBLIC query with validators (always validate public functions)
export const list = query({
args: { channelId: v.id('channels') },
handler: async (ctx, { channelId }) => {
return await ctx.db
.query('messages')
.withIndex('by_channel', (q) => q.eq('channelId', channelId))
.order('desc')
.take(50);
}
});
// PUBLIC mutation with validators and auth check
export const send = mutation({
args: { channelId: v.id('channels'), body: v.string() },
handler: async (ctx, { channelId, body }) => {
const user = await ctx.auth.getUserIdentity();
if (!user) throw new Error('Unauthorized');
await ctx.db.insert('messages', {
channelId,
body,
authorId: user.subject
});
}
});
// INTERNAL mutation (for scheduling, crons, actions)
export const deleteOld = internalMutation({
args: { before: v.number() },
handler: async (ctx, { before }) => {
const old = await ctx.db
.query('messages')
.withIndex('by_createdAt', (q) => q.lt('_creationTime', before))
.take(100);
for (const msg of old) {
await ctx.db.delete(msg._id);
}
}
});
What ships with it
12 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/ADVANCED.md 8.0 KB
- references/AUTH.md 5.1 KB
- references/DATABASE.md 23 KB
- references/ERROR_HANDLING.md 10 KB
- references/FILE_STORAGE.md 15 KB
- references/FUNCTIONS.md 12 KB
- references/HTTP_ACTIONS.md 13 KB
- references/NEXTJS.md 9.2 KB
- references/RUNTIMES.md 9.3 KB
- references/SCHEDULING.md 14 KB
- references/SEARCH.md 13 KB
- references/VALIDATION.md 8.6 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 233 lines · 203 tokens per session scan A c6f595f70433
convex is a skill published in the GitHub repository PolarCoding85/convex-agent-skillz (16 stars, last pushed 8mo ago), licensed MIT. It adds 203 tokens to every session and 2,093 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
laravel-scout
Implement full-text search with Laravel Scout. Use when adding search to Eloquent models with Meilisearch, Algolia, or database driver.
sc-supabase
(STUB / NOT IMPLEMENTED YET) Supabase backend as an alternative to self-hosted Convex. Create project, apply migrations from supabase/migrations, deploy Edge Functions, generate types. For projects where Postgres + Row-Level-Security is a better fit than Convex's reactive query model.
go-architecture
Use when laying out a new Go service, choosing an HTTP router or DB layer, or wiring dependencies. Not for concurrency (go-concurrency) or language idioms (go-core-idioms).
convex-component-authoring
How to create, structure, and publish self-contained Convex components with proper isolation, exports, and dependency management.
convex-realtime
Patterns for building reactive apps including subscription management, optimistic updates, cache behavior, and paginated queries with cursor-based loading.
convex-best-practices
Guidelines for building production-ready Convex apps covering function organization, query patterns, validation, TypeScript usage, error handling, and the Zen of Convex design philosophy.