# Startup Skills: Engineering > Every Engineering skill in the index, with a line saying when to use each one. I index these, I do not host them. Every entry points at the original author's repo and carries a source byline. ## Entries (98) - [Browser testing with DevTools](https://github.com/addyosmani/agent-skills/tree/main/skills/browser-testing-with-devtools) by Addy Osmani: Use when a browser bug needs real DOM, console and network data via DevTools. - [Code review and quality](https://github.com/addyosmani/agent-skills/tree/main/skills/code-review-and-quality) by Addy Osmani: Use when a change is about to enter the main branch unreviewed. - [Constraint-driven development](https://github.com/addyosmani/agent-skills/tree/main/skills/constraint-driven-development) by Addy Osmani: Use when agents must not quietly lower a project's written quality bar. - [Core Web Vitals](https://github.com/addyosmani/web-quality-skills/tree/main/skills/core-web-vitals) by Addy Osmani: Use when LCP, INP or CLS scores need improving from field and lab data. - [Doubt-driven development](https://github.com/addyosmani/agent-skills/tree/main/skills/doubt-driven-development) by Addy Osmani: Use when high-stakes decisions need a fresh-context adversarial review before they stand. - [Performance](https://github.com/addyosmani/web-quality-skills/tree/main/skills/performance) by Addy Osmani: Use when pages load slowly and the site needs to feel faster. - [Security and hardening](https://github.com/addyosmani/agent-skills/tree/main/skills/security-and-hardening) by Addy Osmani: Use when code handling untrusted input, sessions or logins needs hardening against vulnerabilities. - [Source-driven development](https://github.com/addyosmani/agent-skills/tree/main/skills/source-driven-development) by Addy Osmani: Use when an approach should be grounded in official documentation, not remembered patterns. - [Web quality audit](https://github.com/addyosmani/web-quality-skills/tree/main/skills/web-quality-audit) by Addy Osmani: Use when a site needs one audit across performance, accessibility, SEO and best practices. - [Recursive code review](https://github.com/angiejones/skills/tree/main/recursive-code-review) by Angie Jones: Use when a diff needs several tightening passes, not one verdict. - [Repo readiness](https://github.com/angiejones/skills/tree/main/repo-readiness) by Angie Jones: Use when checking whether a repository has the context files coding agents need. - [antfu](https://github.com/antfu/skills/tree/main/skills/antfu) by Anthony Fu: Use when a JavaScript or TypeScript project should follow Anthony Fu's tooling conventions. - [Slidev](https://github.com/antfu/skills/tree/main/skills/slidev) by Anthony Fu: Use when a technical talk or code walkthrough needs a Markdown slide deck. - [Compose component design](https://github.com/chrisbanes/skills/blob/main/skills/compose-component-design/SKILL.md) by Chris Banes: Use when designing or reviewing the API of a reusable Jetpack Compose component. - [Compose performance](https://github.com/chrisbanes/skills/blob/main/skills/compose-performance/SKILL.md) by Chris Banes: Use when investigating Jetpack Compose recomposition cost, stability reports or unstable parameters. - [Compose state and effects](https://github.com/chrisbanes/skills/blob/main/skills/compose-state-and-effects/SKILL.md) by Chris Banes: Use when writing or reviewing Jetpack Compose state ownership, hoisting or effects. - [Implement with subagents](https://github.com/chrisbanes/skills/blob/main/skills/implement-with-subagents/SKILL.md) by Chris Banes: Use when a queue of tickets is being implemented by separate subagents. - [Kotlin API design](https://github.com/chrisbanes/skills/blob/main/skills/kotlin-api-design/SKILL.md) by Chris Banes: Use when deciding whether Kotlin code is a member, extension, factory or value class. - [Kotlin concurrency and flow](https://github.com/chrisbanes/skills/blob/main/skills/kotlin-concurrency-and-flow/SKILL.md) by Chris Banes: Use when writing or reviewing Kotlin coroutine scopes, cancellation, StateFlow or SharedFlow. - [Release Kotlin library](https://github.com/chrisbanes/skills/blob/main/skills/release-kotlin-library/SKILL.md) by Chris Banes: Use when publishing a new Kotlin library version with gradle-maven-publish-plugin. - [Componentize](https://github.com/howells/skills/blob/main/componentize/SKILL.md) by Daniel Howells: Use when shared UI needs consolidating, files need splitting or packages extracting. - [Fieldtest](https://github.com/howells/skills/blob/main/fieldtest/SKILL.md) by Daniel Howells: Use when a running web app needs QA in a real browser, with evidence. - [Improve CLAUDE.md](https://github.com/dexhorthy/slopfiles/tree/main/plugins/improve-claude-md/skills/improve-claude-md) by Dex Horthy: Use when agents keep ignoring instructions in a CLAUDE.md file. - [Finishing a development branch](https://github.com/obra/superpowers/tree/main/skills/finishing-a-development-branch) by Jesse Vincent: Use when a branch is done, tests pass, and it must be integrated. - [Receiving code review](https://github.com/obra/superpowers/tree/main/skills/receiving-code-review) by Jesse Vincent: Use when review feedback arrives and needs verifying before any suggestion is implemented. - [Subagent-driven development](https://github.com/obra/superpowers/tree/main/skills/subagent-driven-development) by Jesse Vincent: Use when a plan's independent tasks should run through subagents in this session. - [Systematic debugging](https://github.com/obra/superpowers/tree/main/skills/systematic-debugging) by Jesse Vincent: Use when a bug or failing test needs investigating before any fix is proposed. - [Test-driven development](https://github.com/obra/superpowers/tree/main/skills/test-driven-development) by Jesse Vincent: Use when about to write implementation code for a feature or fix. - [Using git worktrees](https://github.com/obra/superpowers/tree/main/skills/using-git-worktrees) by Jesse Vincent: Use when feature work needs a workspace isolated from the current one. - [Verification before completion](https://github.com/obra/superpowers/tree/main/skills/verification-before-completion) by Jesse Vincent: Use when about to claim work is done, fixed or passing. - [Writing plans](https://github.com/obra/superpowers/tree/main/skills/writing-plans) by Jesse Vincent: Use when a spec exists and the work needs a plan before any code. - [Writing skills](https://github.com/obra/superpowers/tree/main/skills/writing-skills) by Jesse Vincent: Use when creating, editing or testing a skill before it is deployed. - [Adversarial code reviewing](https://github.com/lox/agent-skills/blob/main/adversarial-code-reviewing/SKILL.md) by Lachlan Donald: Use when the call is ship or do not ship, and confidence feels untested. - [Babysitting PRs](https://github.com/lox/agent-skills/blob/main/babysitting-prs/SKILL.md) by Lachlan Donald: Use when a pull request is stuck on CI, rebases or review feedback. - [Check docs updated](https://github.com/lox/agent-skills/blob/main/check-docs-updated/SKILL.md) by Lachlan Donald: Use when code changed and the docs, runbooks or changelog may now be stale. - [Drafting plans](https://github.com/lox/agent-skills/blob/main/drafting-plans/SKILL.md) by Lachlan Donald: Use when an architecture or rollout decision needs a short written plan that lasts. - [Go CLI writing](https://github.com/lox/agent-skills/blob/main/go-cli-writing/SKILL.md) by Lachlan Donald: Use when building or refactoring a Go command-line tool's flags, subcommands or config. - [Go writing](https://github.com/lox/agent-skills/blob/main/go-writing/SKILL.md) by Lachlan Donald: Use when writing, reviewing or refactoring Go packages, tests or benchmarks. - [High performance Zig](https://github.com/lox/agent-skills/blob/main/high-performance-zig/SKILL.md) by Lachlan Donald: Use when Zig code is latency, memory or layout sensitive and must be measured. - [Simplicity review](https://github.com/lox/agent-skills/blob/main/simplicity-review/SKILL.md) by Lachlan Donald: Use when a change looks over-engineered and the code may not need to exist. - [Writing PR descriptions](https://github.com/lox/agent-skills/blob/main/writing-pr-descriptions/SKILL.md) by Lachlan Donald: Use when a pull request needs a title and body that match its diff. - [Writing tests](https://github.com/lox/agent-skills/blob/main/writing-tests/SKILL.md) by Lachlan Donald: Use when deciding whether to add tests or changing mocks, snapshots or assertions. - [Code review](https://github.com/mattpocock/skills/tree/main/skills/engineering/code-review) by Matt Pocock: Use when a branch must be checked against repo standards and the original spec. - [Codebase design](https://github.com/mattpocock/skills/tree/main/skills/engineering/codebase-design) by Matt Pocock: Use when deciding a module's interface or where a seam should go. - [Diagnosing bugs](https://github.com/mattpocock/skills/tree/main/skills/engineering/diagnosing-bugs) by Matt Pocock: Use when a hard bug or performance regression needs a diagnosis loop. - [Domain modeling](https://github.com/mattpocock/skills/tree/main/skills/engineering/domain-modeling) by Matt Pocock: Use when a project's terminology, CONTEXT.md or ADRs need writing or sharpening. - [Improve codebase architecture](https://github.com/mattpocock/skills/tree/main/skills/engineering/improve-codebase-architecture) by Matt Pocock: Use when scanning a codebase for deepening opportunities, then working through the one picked. - [Prototype](https://github.com/mattpocock/skills/tree/main/skills/engineering/prototype) by Matt Pocock: Use when a state model or UI idea needs testing before real work starts. - [TDD](https://github.com/mattpocock/skills/tree/main/skills/engineering/tdd) by Matt Pocock: Use when building a feature or fixing a bug test first, red-green-refactor. - [To tickets](https://github.com/mattpocock/skills/tree/main/skills/engineering/to-tickets) by Matt Pocock: Use when an agreed plan has to become ordered tickets in a tracker. - [Triage](https://github.com/mattpocock/skills/tree/main/skills/engineering/triage) by Matt Pocock: Use when incoming issues and outside pull requests are piling up unsorted. - [Wayfinder](https://github.com/mattpocock/skills/tree/main/skills/engineering/wayfinder) by Matt Pocock: Use when work too big for one agent session needs mapping as decision tickets. - [Wizard](https://github.com/mattpocock/skills/tree/main/skills/engineering/wizard) by Matt Pocock: Use when only a human can do the steps and needs walking through them. - [Writing for agents](https://github.com/mattpocock/skills/tree/main/skills/productivity/writing-for-agents) by Matt Pocock: Use when creating skills or editing AGENTS.md or CLAUDE.md files. - [Code reviewer](https://github.com/elithrar/dotfiles/blob/main/.agents/skills/code-reviewer/SKILL.md) by Matt Silverlock: Use when one specific diff must be read for defects, with no wider audit. - [Create README](https://github.com/elithrar/dotfiles/blob/main/.agents/skills/create-readme/SKILL.md) by Matt Silverlock: Use when an open source project's README needs writing or rewriting. - [Prompt engineer](https://github.com/elithrar/dotfiles/blob/main/.agents/skills/prompt-engineer/SKILL.md) by Matt Silverlock: Use when a system prompt or tool description causes over-searching, format drift or conflicts. - [Web perf](https://github.com/elithrar/dotfiles/blob/main/.agents/skills/web-perf/SKILL.md) by Matt Silverlock: Use when diagnosing slow loads or layout shift from browser traces and network evidence. - [Fastify best practices](https://github.com/mcollina/skills/blob/main/skills/fastify/SKILL.md) by Matteo Collina: Use when building, configuring or debugging a Fastify server or REST API. - [Init](https://github.com/mcollina/skills/blob/main/skills/init/SKILL.md) by Matteo Collina: Use when a repository's AGENTS.md is missing, too long, generic or stale. - [Linting neostandard ESLint 9](https://github.com/mcollina/skills/blob/main/skills/linting-neostandard-eslint9/SKILL.md) by Matteo Collina: Use when ESLint flat config or neostandard needs setting up or migrating. - [Node](https://github.com/mcollina/skills/blob/main/skills/node/SKILL.md) by Matteo Collina: Use when building Node.js projects in TypeScript, including error handling, streams and testing. - [Node.js core](https://github.com/mcollina/skills/blob/main/skills/nodejs-core/SKILL.md) by Matteo Collina: Use when contributing to Node.js core or debugging native crashes, addons and libuv. - [OAuth](https://github.com/mcollina/skills/blob/main/skills/oauth/SKILL.md) by Matteo Collina: Use when securing Fastify routes with OAuth flows, tokens and PKCE. - [Cloud stacked diffs](https://github.com/dabit3/cloud-stacked-diffs/blob/main/.agents/skills/cloud-stacked-diffs/SKILL.md) by Nader Dabit: Use when a large change should ship as a chain of stacked draft PRs. - [Better Stimulus](https://github.com/obie/skills/blob/main/skills/better-stimulus/SKILL.md) by Obie Fernandez: Use when writing StimulusJS controllers that need to stay maintainable and reusable. - [MCP OAuth setup](https://github.com/obie/skills/blob/main/skills/mcp-oauth-setup/SKILL.md) by Obie Fernandez: Use when an admin UI must let users connect third-party MCP servers with credentials. - [Rails activity timeline](https://github.com/obie/skills/blob/main/skills/rails-activity-timeline/SKILL.md) by Obie Fernandez: Use when a Rails model needs an activity timeline with live Turbo Stream updates. - [Rails Tiptap autosave](https://github.com/obie/skills/blob/main/skills/rails-tiptap-autosave/SKILL.md) by Obie Fernandez: Use when Rails models need Tiptap rich text editing with debounced autosave. - [Native app performance](https://github.com/steipete/agent-scripts/tree/main/skills/native-app-performance) by Peter Steinberger: Use when profiling a native app with xctrace and Time Profiler to find hotspots. - [Oracle](https://github.com/steipete/agent-scripts/tree/main/skills/oracle) by Peter Steinberger: Use when bundled prompts and files need a second model's review. - [Project structure](https://github.com/steipete/agent-scripts/tree/main/skills/project-structure) by Peter Steinberger: Use when an agent needs one symbol map of a TypeScript or Swift repo. - [Skill cleaner](https://github.com/steipete/agent-scripts/tree/main/skills/skill-cleaner) by Peter Steinberger: Use when Codex or OpenClaw skills need auditing for budget, usage and duplicates. - [Cranky Old Sam](https://github.com/ramparte/cranky-old-sam/blob/main/skills/cranky-old-sam/SKILL.md) by Sam Schillace: Use when a design review should question every abstraction and argue for less. - [Frontend accessibility best practices](https://github.com/sergiodxa/agent-skills/blob/main/skills/frontend-accessibility-best-practices/SKILL.md) by Sergio Xalambri: Use when building or reviewing React components, forms and controls for accessibility. - [Frontend async best practices](https://github.com/sergiodxa/agent-skills/blob/main/skills/frontend-async-best-practices/SKILL.md) by Sergio Xalambri: Use when async code has request waterfalls that could run in parallel. - [Frontend internationalization best practices](https://github.com/sergiodxa/agent-skills/blob/main/skills/frontend-internationalization-best-practices/SKILL.md) by Sergio Xalambri: Use when adding locales or language switching to a React Router app with remix-i18next. - [Frontend React best practices](https://github.com/sergiodxa/agent-skills/blob/main/skills/frontend-react-best-practices/SKILL.md) by Sergio Xalambri: Use when writing or reviewing React components for rendering and bundle performance. - [Frontend React Router best practices](https://github.com/sergiodxa/agent-skills/blob/main/skills/frontend-react-router-best-practices/SKILL.md) by Sergio Xalambri: Use when writing React Router loaders, actions, forms or routes. - [Frontend testing best practices](https://github.com/sergiodxa/agent-skills/blob/main/skills/frontend-testing-best-practices/SKILL.md) by Sergio Xalambri: Use when writing frontend tests that favour end-to-end coverage over mocks. - [OWASP security check](https://github.com/sergiodxa/agent-skills/blob/main/skills/owasp-security-check/SKILL.md) by Sergio Xalambri: Use when checking a web app or REST API against the OWASP Top 10. - [Migrate Radix to Base](https://github.com/shadcn-ui/ui/blob/main/skills/migrate-radix-to-base/SKILL.md) by shadcn: Use when moving a React or shadcn project from Radix UI to Base UI. - [shadcn](https://github.com/shadcn-ui/ui/blob/main/skills/shadcn/SKILL.md) by shadcn: Use when adding, fixing or styling shadcn/ui components in a project with components.json. - [AI engineering](https://github.com/swyxio/skills/tree/main/ai-engineering) by Shawn Wang: Use when a multi-request AI workflow fails on retries, rate limits or malformed output. - [Align me](https://github.com/swyxio/skills/tree/main/align-me) by Shawn Wang: Use when preferences and ambiguity need settling before a long autonomous run. - [Claude session introspect](https://github.com/swyxio/skills/tree/main/claude-session-introspect) by Shawn Wang: Use when token counts or compaction details are needed from a Claude Code session. - [Cloudflare production builder](https://github.com/swyxio/skills/tree/main/cloudflare-production-builder) by Shawn Wang: Use when designing, migrating or deploying a production system on Cloudflare Workers. - [Data chatbots](https://github.com/swyxio/skills/tree/main/data-chatbots) by Shawn Wang: Use when building a copilot that proposes data changes for a human to approve. - [Long-Running Operation UX](https://github.com/swyxio/skills/tree/main/long-running-operation-ux) by Shawn Wang: Use when a slow async action needs visible progress, cancellation or result handoff. - [Resilient computer use](https://github.com/swyxio/skills/tree/main/resilient-computer-use) by Shawn Wang: Use when a multi-step desktop or browser task runs through Computer Use. - [Skill cutter](https://github.com/swyxio/skills/tree/main/skill-cutter) by Shawn Wang: Use when an existing SKILL.md needs trimming to its core or triggering less often. - [Slackbot builder](https://github.com/swyxio/skills/tree/main/slackbot-builder) by Shawn Wang: Use when designing or hardening a Slack bot's event handling and interaction architecture. - [cogapp Markdown](https://github.com/simonw/skills/blob/main/cogapp-markdown/SKILL.md) by Simon Willison: Use when README sections such as CLI help output should be generated from code. - [uv TDD](https://github.com/simonw/skills/blob/main/uv-tdd/SKILL.md) by Simon Willison: Use when starting a Python project with uv and building it test first. - [Code contracts](https://github.com/spolu/code-contracts/blob/main/skills/code-contracts/SKILL.md) by Stanislas Polu: Use when defining or enforcing @cc code contracts across a codebase. - [Layered Rails](https://github.com/palkan/layered-rails-skills/blob/master/layered-rails/skills/layered-rails/SKILL.md) by Vladimir Dementyev: Use when Rails controllers and models have grown fat and layers are blurred. - [Hono Inertia](https://github.com/yusukebe/skills/blob/main/skills/hono-inertia/SKILL.md) by Yusuke Wada: Use when a Hono and hono/jsx app needs SPA-style interactivity through Inertia. - [Hono React](https://github.com/yusukebe/skills/blob/main/skills/hono-react/SKILL.md) by Yusuke Wada: Use when a Hono project needs real React for its ecosystem, SSR or SPA. ## Links - [Page](https://startupskills.dev/engineering): the same list, for a person. - [The whole index](https://startupskills.dev/llms.txt): all 189 entries. - [Skills index](https://startupskills.dev/skills): every skill, with search.