agents/vite-react-ts-convex-tailwind/.opencode/skill/convex-core/SKILL.md
Build Convex schemas, queries, mutations, actions, and client usage with strict validators and indexes. Use for data modeling, function authoring, argument/return validation, and performance guidance. Use proactively when work touches convex/schema.ts, functions, or api.* references. Examples: - user: "Design tables for multi-tenant app" → defineSchema/defineTable with indexes - user: "Write a mutation" → args/returns validators + auth checks - user: "Optimize query" → add index and withIndex range expression - user: "Use useQuery" → show generated hook usage
npx skillsauth add igorwarzocha/opencode-workflows convex-coreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
convex/schema.ts with defineSchema / defineTable._id (v.id(tableName)) and _creationTime (v.number()) are added automatically.v.* validators for every field; SHOULD avoid v.any() unless necessary."by_field1_and_field2".
</rules>
.index(name, [fields...]).args, returns, and handler.args and returns (HTTP actions excluded).query for reads, mutation for writes, and action for external/long-running.ctx.db; You MUST use ctx.runQuery / ctx.runMutation.ctx.run*, You MUST add explicit return type annotations to the receiver variable.ctx.db.get, ctx.db.patch, ctx.db.replace, and ctx.db.delete.ctx.db.replace for full document replacement (throws if missing).ctx.db.patch for shallow merge updates (throws if missing)..delete(). You MUST .collect() results and iterate to call ctx.db.delete(id)..unique() for single document results; it MUST throw if multiple documents match.filter in production queries; use indexes and .withIndex.as const for string literals in discriminated unions.const array: Array<T> = [...] and records as const record: Record<K, V> = {...}.Id<"table"> over string for all document identifiers..withIndex over .filter on large tables..withIndex without a range, You MUST pair it with take, first, unique, or paginate.collect() throws if >1024 docs; You SHOULD use take(n), paginate(), or for await iteration for large sets.for await (const row of query) instead of .collect() for streaming large result sets.paginationOptsValidator in args..paginate() returns { page, isDone, continueCursor }.returns validators for the full .paginate() result object; validate page or use v.any().api.* references from convex/_generated/api.useQuery, useMutation, useAction, usePaginatedQuery.ctx.auth helpers.development
Handle structured co-authoring of professional documentation. Use for proposals, technical specs, and RFCs. Use proactively when a collaborative drafting process (Gathering -> Refinement -> Testing) is needed. Examples: - user: "Draft a technical RFC for the new API" -> follow Stage 1 context gathering - user: "Refine the introduction of this proposal" -> use iterative surgical edits - user: "Test if this document is clear for readers" -> run reader testing workflow
development
Handle Word document (.docx) creation, editing, and analysis with high-fidelity visual review. Use for professional reports, legal documents, and tracked changes. Use proactively when quality and precise formatting are critical. Examples: - user: "Create a professional report in Word" -> use python-docx with render loops - user: "Draft a legal contract with redlines" -> use ooxml redlining workflow - user: "Extract text from this DOCX while preserving structure" -> use pandoc markdown conversion
testing
Apply professional visual themes to documents and presentations. Use for styling artifacts with consistent color palettes and font pairings. Use proactively to quickly improve the aesthetic quality of deliverables. Examples: - user: "Apply a modern theme to this deck" -> use Modern Minimalist theme - user: "I want a tech aesthetic for this doc" -> apply Tech Innovation theme - user: "Create a custom theme for my project" -> generate new color/font specification
tools
Guide for creating effective opencode skills. Use for creating or updating skills that extend agent capabilities with specialized knowledge, workflows, or tool integrations. Examples: - user: "Create a skill for git workflows" → define SKILL.md with instructions and examples - user: "Add examples to my skill" → follow the user: "query" → action pattern - user: "Update skill description" → use literal block scalar and trigger contexts - user: "Structure a complex skill" → organize with scripts/ and references/ directories - user: "Validate my skill" → check structure, frontmatter, and discovery triggers