agents/vite-react-ts-convex-tailwind/.opencode/skill/convex-components/SKILL.md
Use Convex Components to add isolated backend features and compose component APIs. Use for installing components, calling component APIs, authoring components, and handling component-specific constraints (Id types, env vars, pagination, auth). Use proactively when users mention components, workpool, workflow, agent component, or reusable backend modules. Examples: - user: "Install the Agent component" → add convex.config.ts + use() + components API - user: "Call component functions" → ctx.runQuery(components.foo.bar, args) - user: "Build a component" → defineComponent, schema, _generated, packaging - user: "Expose component API to clients" → re-export functions with auth
npx skillsauth add igorwarzocha/opencode-workflows convex-componentsInstall 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.
npm i @convex-dev/<component>.convex/convex.config.ts:
import { defineApp } from "convex/server";app.use(component); use app.use(component, { name: "custom" }) for multiple instances.npx convex dev to generate component code.components.<name> in convex/_generated/api.ctx.runQuery/Mutation/Action with components.<name>.<fn>.components.<name> exposes ONLY public component functions.Id types cross boundaries as string; You MUST NOT use v.id("table") for external tables._generated directory; You MUST use the app's components references.process.env directly.convex/http.ts.ctx.auth is NOT available inside component functions..paginate() is NOT supported inside components.convex-helpers paginator and usePaginatedQuery from convex-helpers if needed.convex.config.ts, schema.ts, functions, and _generated.defineComponent("name") defines component; use component.use(...) for child components.convex/components/ or any folder.@pkg/convex.config.js@pkg/_generated/component.js@pkg/test helperscreateFunctionHandle(api.foo.bar) to pass callbacks across boundaries.v.string() validators and cast back to FunctionHandle.convex-test using component schema/modules or provided test helpers.@pkg/test register helper.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