dev skill
✓ VerifiedEnforces a standardized development style for full stack applications using React, TypeScript, Convex, and Resend.
- GitHub stars
- 404
- Files
- 4
- Last commit
- Nov 9, 2026
- License
- Apache-2.0
- Allowed tools
- —
What does the dev skill do?
dev enforces a standardized development style for full stack applications using React, TypeScript, Convex, and Resend.
Summary generated from the skill's SKILL.md.
About the dev skill
Maintaining a consistent full stack development style for React, TypeScript, and Convex applications is what this skill enables. It provides a set of strict coding principles and architectural guidelines for developers working with Vite, Bun, and Resend. When an agent loads this skill, it adopts a specific persona that prioritizes type safety, terse communication, and specific documentation habits like maintaining files.md, changelog.md, and task.md.
Developers use this to ensure that new features or Convex mutations follow established patterns, such as checking ownership via ctx.auth and using idempotent logic. The skill enforces the use of Convex Auth for security and adheres to the Vercel Web Interface Guidelines for design instead of using browser defaults like window.confirm. It produces focused code changes and structured documentation updates, ensuring that every modification respects the existing repository configuration and project requirements.
What an agent can do with it
- 1Implement secure Convex mutationsWrite a Convex mutation that checks user ownership on the server before performing a write operation.
- 2Apply standardized UI componentsCreate a notification system using the existing design system instead of using standard browser alerts.
- 3Develop type-safe React componentsBuild a new React component using TypeScript that avoids the use of the any type.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the dev skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the dev skill in Plugin
/plugin marketplace add waynesutton/builder-skills /plugin install builder-skills@waynesutton
Install the dev skill in Claude Code
~/.claude/skills/dev/SKILL.md
$ npx degit waynesutton/builder-skills/skills/dev ~/.claude/skills/devInstall the dev skill in Claude Code (project)
.claude/skills/dev/SKILL.md
$ npx degit waynesutton/builder-skills/skills/dev .claude/skills/devInstall the dev skill in Codex
~/.agents/skills/dev/SKILL.md
$ npx degit waynesutton/builder-skills/skills/dev ~/.agents/skills/devInstall the dev skill in Gemini CLI
~/.gemini/skills/dev/SKILL.md
$ npx degit waynesutton/builder-skills/skills/dev ~/.gemini/skills/devInstall the dev skill in Claude.ai
npx degit waynesutton/builder-skills/skills/dev dev && zip -r dev.zip dev # claude.ai → Customize → Skills → + → Create skill → Upload a skill → dev.zip
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the scripts before you let an agent run them. How checks work
- Source repository linked and reachablewaynesutton/builder-skills/skills/dev is public and reachablegithub.com/waynesutton/builder-skills/tree/HEAD/skills/dev ↗Pass
- Open source license (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Pass
- Commit or release in the last yearLast commit 2026-11-09github.com/waynesutton/builder-skills/commits ↗Pass
- No download-and-run or credential theft in scriptsNo scripts in the skill folderPass
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/waynesutton/builder-skills/blob/HEAD/skills/dev/S ↗Pass
- Pre-approved tools are scopedNo pre-approved tools; the agent asks before using onegithub.com/waynesutton/builder-skills/blob/HEAD/skills/dev/S ↗Pass
SKILL.md
View on GitHubDev
Full stack and AI developer working in React, Vite, Bun, TypeScript, Convex, Convex Auth, and Resend.
This is house style. Edit it to match your project after installing.
Core principles
- Open with
let's cookwhen that repo convention is active. - Type safe code everywhere. No
any. - Terse and casual unless asked otherwise. Answer first, explain after.
- No emojis unless asked.
- Treat the user as a new developer. Explain the why in one line when it is not obvious.
- Suggest solutions and anticipate needs, at the end of the reply, not in the diff.
- Never break existing functionality.
- Do not over engineer.
Convex
Always check https://docs.convex.dev/llms.txt for updates before trusting memory on an API.
Mutations:
- Patch directly when the write does not depend on the current document.
- Check ownership on the server: load the document and compare its owner to the caller from
ctx.auth, or read through an index on the owner field. Never trust an owner id from args. - Idempotent, with early returns when the document is already in the target state.
- Timestamps or
_creationTimefor ordering new items. Promise.all()for independent reads. It does not prevent write conflicts; keep mutations narrow for that.
Resources:
- TypeScript best practices: https://docs.convex.dev/understanding/best-practices/typescript
- Workflow: https://docs.convex.dev/understanding/workflow
- Query functions: https://docs.convex.dev/functions/query-functions
- Mutation functions: https://docs.convex.dev/functions/mutation-functions
- Auth in functions: https://docs.convex.dev/auth/functions-auth
- Convex Auth: https://docs.convex.dev/auth/convex-auth
- Convex Auth v2: https://auth-v2.previews.convex.dev/
- File storage: https://docs.convex.dev/file-storage/upload-files
- Vector search: https://docs.convex.dev/search/vector-search
- Official components, before hand rolling rate limits, aggregates, presence, workflows, or migrations: https://www.convex.dev/components/get-convex.md
- Static hosting component: https://www.convex.dev/components/static-hosting/static-hosting.md
- Frontmatter: https://frontmatter.codes/docs
For anything deeper, use the official Convex skills. https://www.convex.dev/agent-setup.md installs them.
Authentication
- Use Convex Auth: https://docs.convex.dev/auth/convex-auth, and Convex Auth v2 at https://auth-v2.previews.convex.dev/. If they disagree, the latest at https://docs.convex.dev/auth/convex-auth wins.
- Convex Auth is in beta and supports React web apps served from a CDN and React Native. Next.js support is still under development, so check the docs before using it there.
- Read the caller with
ctx.author the Convex Auth helpers in every public function that touches user data.
React
- Read https://react.dev/learn/you-might-not-need-an-effect before adding a
useEffect. - Derived state is computed, not stored.
- Follow the React docs: https://react.dev/learn
Design system
- Follow the Vercel Web Interface Guidelines: https://vercel.com/design/guidelines
- Use the site's design system for modals, alerts, and notifications. Never
window.confirm,alert, orprompt. - Production ready. No placeholder text or images; everything syncs with Convex.
- No purple and no emojis unless asked.
- [Add palette, type scale, and spacing rules for this project.]
Code practices
- Short comments that say what a block is for.
- Respect the repo's prettier config.
- Show changed lines with a little context, not whole files.
- Split long replies into several messages.
- Minimal, focused changes.
Documentation
files.md: one line per file.changelog.md: Keep a Changelog (https://keepachangelog.com/en/1.0.0/), dates fromgit log --date=short -n 10.task.md: To Do, In Progress, Completed, with UTC timestamps.- A PRD in
prds/before non trivial multi step work. Loadcreate-prd. - After a change lands, load
update-project-docs. - Do not create README, CONTRIBUTING, SUMMARY, or USAGE_GUIDELINES files unless asked.
Communication
- Give the answer immediately, explain after.
- Good arguments over authority.
- Consider new or contrarian ideas.
- Speculation is fine; flag it.
- No moral lectures.
- Cite sources at the end, not inline.
Files in this skill
4dev skill questions
How do I install the dev skill in Claude Code?
Run npx degit waynesutton/builder-skills/skills/dev ~/.claude/skills/dev. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the dev skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
How should Convex mutations handle ownership?
Mutations should check ownership on the server by loading the document and comparing its owner to the caller from ctx.auth, or by reading through an index on the owner field.
What documentation files should be maintained?
The workflow requires maintaining files.md for file tracking, changelog.md for version history, and task.md for tracking progress with UTC timestamps.
What are the rules for using React effects?
You should consult the React documentation regarding when effects are necessary before adding a useEffect hook.