avoid-feature-creep
Keeps a change scoped to what was asked. Flags extra features, refactors, and 'while we are here' edits, and moves them to a…
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
$ npx -y skills add waynesutton/builder-skills --skill project-workflow --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/project-workflowContext preview
The summary Claude sees to decide when to auto-load this skill.
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
name: project-workflow description: 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".
One loop for any task bigger than a typo. Plan in a PRD, track in `task.md`, sync docs when done, write down what went wrong so it does not repeat.
Skip this for one file fixes. A typo, a copy change, a single obvious bug. Just fix those.
1. Triage. Read the request and the code before touching anything. 2. PRD. Write `prds/<slug>.md` from the template. Share it if the plan has a real choice in it. 3. Track. Add the work to `task.md` under `## To Do`. Move items as they land. 4. Build. Small commits worth of change at a time. Verify each step. 5. Sync docs. Hand off to the `project-docs` skill to update `task.md`, `changelog.md`, `files.md`. 6. Learn. If the user corrected the same thing twice, add a line to `prds/lessons.md`.
Before writing code, answer these in a few lines:
If the last answer is not empty, ask. One question, not five. Then wait.
For bugs, name the root cause before proposing the fix. A fix without a root cause is a guess.
Create `prds/<feature-or-problem-slug>.md` before non trivial work. Use the layout in [references/prd-template.md](references/prd-template.md).
Required sections:
Metadata at the top, always in UTC:
Created: YYYY-MM-DD HH:mm UTC Last Updated: YYYY-MM-DD HH:mm UTC Status: Draft | In Progress | Done
Keep it short. A PRD that takes longer to write than the change did is too long. Two screens is plenty for most work.
PRDs are `.md` files and live in `prds/`. Old or sensitive PRDs move to `prds/archive/`.
`task.md` has three sections: `## To Do`, `## In Progress`, `## Completed`.
Good entry:
- [x] 2026-09-15 18:40 UTC Fix duplicate heartbeat writes. prds/heartbeat-dedup.md. convex/stats.ts, src/hooks/usePageTracking.ts. Verified: npx convex dev clean, no OCC retries in dashboard for 10 min.
Bad entry:
- [x] fixed heartbeat
After each feature or fix, `task.md`, `changelog.md`, and `files.md` have to agree with the code. Load the `project-docs` skill for the rules. In short:
`prds/lessons.md` is a flat list. One line per lesson, newest at the bottom:
- 2026-09-15 Do not add `returns` validators that duplicate the schema doc shape; use a shared validator constant instead.
Add a lesson when:
Read `prds/lessons.md` at the start of any session in that repo.
Agent skills for builders shipping Convex apps. By Wayne Sutton. Seventeen skills.
Keeps a change scoped to what was asked. Flags extra features, refactors, and 'while we are here' edits, and moves them to a…
Builds AI agents on the Convex agent component: threads, messages, tools that call queries and mutations, streaming, RAG with…
Production patterns for Convex apps and the rules the @convex-dev/eslint-plugin enforces: validators, indexes, idempotent…
Creates reusable Convex components with defineComponent, a clean client wrapper, their own schema, and an npm publish setup. Use…
Schedules work in Convex: cron jobs in convex/crons.ts, one off scheduled functions with runAfter and runAt, batching large jobs,…
Handles files in Convex: upload URLs, storing blobs from actions, serving with getUrl or an HTTP action, metadata from the…