---
title: "Wayne Sutton (@waynesutton) skills · skilld"
canonical_url: "https://skilld.dev/gh/waynesutton"
meta:
  description: "19 agent skills written by Wayne Sutton on skilld. convex, TypeScript, validation."
  "og:description": "19 agent skills written by Wayne Sutton."
  "og:title": "Wayne Sutton on skilld"
---

`

![Avatar for Wayne Sutton](https://skilld.dev/_img/avatar?url=https%3A%2F%2Fgithub.com%2Fwaynesutton.png)

# **Wayne Sutton**

[@waynesutton](https://github.com/waynesutton)person

Startup Programs at Convex + Head of Community & Events at @get-convex / Connecting developers & startups to build faster with Convex. / 🏍 Adv Rider /

19 skills 405 San Francisco, CA Synced 3 days ago

Mostly·convex, TypeScript, validation

[GitHub](https://github.com/waynesutton) [Website](https://www.waynesutton.ai/)

## Skills

### [waynesutton/convexskills](https://skilld.dev/gh/waynesutton/convexskills)

19 skills 405

`npx skilld add waynesutton/convexskills`

- [

  **/avoid-feature-creep**405

  Keeps a change scoped to what was asked. Flags extra features, refactors, and 'while we are here' edits, and moves them to a suggestions list instead of the diff. Use when a request is small and the agent is about to expand it, when a PRD grows beyond its problem statement, or when the user says 'just do what I asked'. /avoid-feature-creep by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/avoid-feature-creep)
- [

  **/convex**405

  Routes Convex work to the right builder skill and covers the handful of rules that apply everywhere: validators on every function, withIndex over filter, idempotent mutations, internal functions for scheduling. Use when a task mentions Convex and no more specific skill matches, or as the first stop before picking one. /convex by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex)
- [

  **/convex-agents**405

  Builds AI agents on the Convex agent component: threads, messages, tools that call queries and mutations, streaming, RAG with vector search, and workflows for multi step jobs. Use when adding a chat assistant, tool calling agent, or retrieval feature to a Convex app. /convex-agents by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-agents)
- [

  **/convex-best-practices**405

  Production patterns for Convex apps and the rules the @convex-dev/eslint-plugin enforces: validators, indexes, idempotent mutations, avoiding OCC conflicts, thin function wrappers, error handling. Use when reviewing Convex code, asking whether a pattern is right, setting up ESLint, or fixing write conflicts and slow queries. /convex-best-practices by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-best-practices)
- [

  **/convex-component-authoring**405

  Creates reusable Convex components with defineComponent, a clean client wrapper, their own schema, and an npm publish setup. Use when extracting a feature into a package, building something for the Convex component directory, or when a component's functions are not showing up in the parent app. /convex-component-authoring by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-component-authoring)
- [

  **/convex-cron-jobs**405

  Schedules work in Convex: cron jobs in convex/crons.ts, one off scheduled functions with runAfter and runAt, batching large jobs, and cancelling or inspecting the queue. Use when something needs to run on a timer, later, or in the background, or when a cron is not firing. /convex-cron-jobs by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-cron-jobs)
- [

  **/convex-file-storage**405

  Handles files in Convex: upload URLs, storing blobs from actions, serving with getUrl or an HTTP action, metadata from the \_storage table, and deletion. Use when users upload images or documents, when an action fetches a file from a third party, or when a file URL expires unexpectedly. /convex-file-storage by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-file-storage)
- [

  **/convex-functions**405

  Writes Convex queries, mutations, actions, and internal functions in the object form with args and returns validators, correct ctx usage, runtime boundaries, and error handling. Use when adding or changing anything in convex/\*.ts that exports a function, or when deciding between query, mutation, and action. /convex-functions by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-functions)
- [

  **/convex-http-actions**405

  Adds HTTP endpoints in convex/http.ts: webhook receivers with signature checks, REST style routes, CORS, auth headers, streaming responses, and file uploads over HTTP. Use when integrating Stripe, Clerk, Resend, or any service that calls back into the app, or when a client needs a plain HTTP API. /convex-http-actions by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-http-actions)
- [

  **/convex-migrations**405

  Changes a live Convex schema without downtime: make a field optional, backfill in batches, flip the validator, then clean up. Uses the @convex-dev/migrations component where it fits. Use when renaming or removing a field, changing a type, splitting a table, or when deploy fails with a schema validation error on existing documents. /convex-migrations by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-migrations)
- [

  **/convex-realtime**405

  Builds reactive UIs on Convex subscriptions: useQuery patterns, optimistic updates, pagination that stays live, presence, and avoiding subscription churn. Use when wiring the frontend to Convex, when data does not update live, or when a page rerenders too much. /convex-realtime by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-realtime)
- [

  **/convex-schema-validator**405

  Designs convex/schema.ts tables, validators, indexes, and relationships, and keeps the schema honest as data evolves. Use when creating tables, adding fields, choosing index fields, modeling relationships, or when a validator error appears at deploy time. /convex-schema-validator by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-schema-validator)
- [

  **/convex-security-audit**405

  Deep security review of a Convex app: authorization model, data access paths per table, HTTP action exposure, rate limiting, file storage access, scheduled function trust, and a written findings report. Use before launch, after an incident, or when the user asks for a full audit rather than a quick check. /convex-security-audit by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-security-audit)
- [

  **/convex-security-check**405

  Ten minute security pass over a Convex backend: public functions that should be internal, missing auth checks, unvalidated args, IDs from the client trusted without ownership checks, secrets in code. Use before merging a pull request, after adding new public functions, or when the user says 'quick security check'. /convex-security-check by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/convex-security-check)
- [

  **/dev**405

  House style for full stack Convex work in this project: type safe code, terse answers, Convex mutation rules, design system over browser defaults, and the files.md / changelog.md / task.md habit. Edit this file to match the project. Use when writing or reviewing application code in this repo. /dev by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/dev)
- [

  **/git-safety**405

  Stops an agent from destroying uncommitted work with git. Requires git status and git diff before any command that discards changes, treats "revert" and "undo" as manual edits, and never runs reset, checkout, clean, stash drop, or force push without explicit approval. Use when a task involves reverting, undoing, resetting, cleaning, rebasing, or force pushing, or before any git command in a repo with uncommitted changes. /git-safety by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/git-safety)
- [

  **/help**405

  Think before typing. Root cause first, two candidate fixes, pick one, ask if still unclear, then change only the files the request needs. Edit the confidence bar and scope rules to fit the project. Use when a bug report comes in, when a previous fix did not work, or when the request is vague. /help by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/help)
- [

  **/project-docs**405

  Brings task.md, changelog.md, and files.md back in sync with what the code says shipped. Reads git history and the working tree, never memory, and refuses to log features it cannot see in source. Use when a feature or fix lands, when the user says "update the docs", "sync changelog", "update files.md", "@update", or when task.md and the code disagree. /project-docs by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/project-docs)
- [

  **/project-workflow**405

  Runs multi step work the way a careful senior engineer would. Triage before code, a short PRD in prds/, task.md kept current, docs synced after, and lessons recorded when a mistake repeats. Use when a task spans several files or steps, changes architecture, needs a plan the user can review, or when the user says "write a PRD", "plan this", "track this in task.md", or "what did we learn". /project-workflow by waynesutton](https://skilld.dev/gh/waynesutton/convexskills/project-workflow)

Curated skills from @waynesutton. Checked GitHub just now