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…
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
$ npx -y skills add waynesutton/builder-skills --skill project-docs --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/project-docsContext preview
The summary Claude sees to decide when to auto-load this skill.
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
name: project-docs description: 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.
Three files describe a project to the next person who opens it. Keep them true.
| File | Answers | | --- | --- | | `task.md` | What is planned, in flight, and done | | `changelog.md` | What changed for users, by version and date | | `files.md` | What each file is for |
Truth comes from the repo, not from the conversation. If the diff does not show it, it did not ship.
1. Find the root. `git rev-parse --show-toplevel`, or the workspace root without git. 2. Collect evidence. `git log --date=short -n 20`, `git status --short`, `git diff --stat`, and for the current change `git diff HEAD --stat` or the staged diff. See [references/evidence-rules.md](references/evidence-rules.md) for what counts. 3. Read all three files as they are. Note the last logged date and the last completed task. 4. Update each file. Rules below. 5. Check idempotency. If nothing new landed since the last entry, change nothing and say so. 6. Scan for secrets and personal data before saving. See the redaction section. 7. Report in a few lines. Show the new changelog entry or say the docs were already current.
Sections: `## To Do`, `## In Progress`, `## Completed`.
Keep a Changelog format. `## [Unreleased]` at the top, then `## [x.y.z] - YYYY-MM-DD` blocks, each with `### Added`, `### Changed`, `### Fixed`, `### Removed` as needed.
One line per file that matters. Grouped by folder.
## convex/ - `schema.ts` tables and indexes - `stats.ts` heartbeat mutation with 10s dedup window, page view inserts ## src/hooks/ - `usePageTracking.ts` sends heartbeats, debounced 5s, path change aware
When the repo has a `convex/` folder, the changelog and files.md can name Convex features, but only ones the source proves. [references/convex-detection.md](references/convex-detection.md) lists what file shows what.
Short version:
Prefer `none` over an invented value.
`changelog.md` and `files.md` are often public. Treat them that way.
Synced project docs. changelog.md added 2.1.0 (2026-09-15): 3 added, 1 fixed files.md added 2 files, updated 1 description task.md moved 1 item to Completed, 1 still In Progress (verification pending: e2e) Suggested commit: docs: sync changelog, files, and tasks for 2.1.0
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…