A personal collection of skills for AI coding assistants — covering code review, DX/UX analysis, TDD, holistic debugging, and developer productivity.
Overview
An opinionated workflow for coding agents — my own way of working, current best practices, and lessons from real projects — kept only where evals show it helps. These skills encode how I build software with agents: scope the task, build against checks, get a second pair of eyes on the diff, prove the UI works, and keep CI green. Each one is run with and without itself; a skill that doesn't change the outcome gets cut. They install into Claude Code, Cursor, Codex, Gemini CLI, Copilot, Windsurf, OpenCode, and any other Agent Skills-compatible tool. aw scopes the job, writes a short brief with sealed checks, builds until they pass, gets a fresh-eyes review, and opens a draft PR. A stack trace, a span URL, a screen recording, a ticket, or a hunch: it reproduces the bug, traces the root cause, fixes it behind a failing test, and opens a draft PR. Independent finders flag, a verifier filters, and only grounded findings reach your PR.
README
Agent Skills
An opinionated workflow for coding agents — my own way of working, current best practices, and lessons from real projects — kept only where evals show it helps.
These skills encode how I build software with agents: scope the task, build against checks, get a second pair of eyes on the diff, prove the UI works, and keep CI green. Each one is run with and without itself; a skill that doesn’t change the outcome gets cut. They install into Claude Code, Cursor, Codex, Gemini CLI, Copilot, Windsurf, OpenCode, and any other Agent Skills-compatible tool.
git clone https://github.com/mthines/agent-skills.git
cd agent-skills && bash scripts/sync-symlinks.sh
What you get
Most skills trigger from plain language — describe what you want. The rest are slash commands you type when you want them.
Measured, not assumed
Every skill here has to earn its place in the context window. Each one is run with and without itself on hard, real-usage cases; skills that changed nothing were deleted or folded into the skill that calls them.
- Over 400 KB less prompt. Seven skills and three agents cut; the reviewer’s prompt went from 202 KB to 60 KB; skill descriptions from 44k to 17k characters.
awbeats a plain Claude Code run. On three real tickets, each pair blind-judged by two independent reviewers,awwon 10 of 12 judgements — 8 of 8 since its current design. Every win came from a defect its fresh-eyes review caught that the plain run shipped. It costs about 1.5–2× a plain run, so reach for it when a missed bug costs more than that./polish simplifywent from 0.73 to 1.00 on planted-defect evals, and the rewrittenuxranked first on 3 of 3 real audits against both the old skill and no skill.
The aw runs used Claude Opus 5.5. Method and every run: PR #241.
Featured: autonomous workflow
Implement a dark-mode toggle independently
Add user authentication end-to-end
Refactor the API client to use retry logic — handle it in isolation
- Sizes the job. Micro (one file) finishes in one pass; Lite (a small change) writes a short brief and verifies UI changes too; Full gets the loop below.
- Writes a short brief. At most 60 lines: what done means, what must not change, and one sealed, runnable check per goal.
- Builds until green. In your session, in its own Git worktree, looping until the checks print
CHECKS n/n PASS. - Gets a fresh-eyes review. A reviewer that did not write the code reads the diff; every finding is fixed or rejected with evidence.
- Opens a draft PR with a walkthrough and evidence, then gets CI green. Stuck after five attempts, it stops with
BLOCKED:instead of guessing. - Proves it works. With
.agents/aw/set up, Lite and Full run/aw-verifyon your local stack before the push: it runs the brief’s specs, tries to break the change, and traces each criterion from the web event to the API to the database. Its screenshots and report land on the PR, and atelemetry:criterion must be confirmed before the run counts as done.
Every run prints a paste-ready /goal line to let the session drive itself to done, and records what it learned for the next run.
How it works inside: full-tier.md · design notes.
Skills
| Skill | What it does |
|---|---|
workflow/ |
End-to-end orchestrators |
aw |
Ships a task end to end: brief, build until green, fresh-eyes review, draft PR. |
/fix-bug |
Fixes one bug from a stack trace, span, recording, or ticket, behind a failing test. |
/implement-suggestion |
Applies PR review comments, one commit each, and resolves the threads. |
quality/ |
Code, tests, plans, AI apps |
/pr-review |
One read-only review of a PR: a single report plus inline findings. |
/review-loop |
Reviews, fixes, and resolves a PR’s threads until it converges; with no PR, it does the same on the local branch. |
/optimize-approach |
Asks whether a change or plan takes the best approach, and names a better one only when it clearly wins. |
/polish |
Pre-PR cleanup: simplifies the changed code and prunes noise comments. |
impact-map |
An impact-first view of a PR: a verdict, one colored diagram, and the decisions a reviewer must make. |
critical |
A hostile pre-mortem of a plan or diff, with a steelman alternative. |
confidence |
Scores how sure you can be that the work meets the requirement. |
tdd |
Strict red-green-refactor, then checks each test really exercises the production code. |
measurable |
Ships each change with the telemetry that proves it worked. |
/ai-engineering |
Reviews an LLM app: prompts, RAG, agents, evals, safety, cost. |
delivery/ |
Git, PR, CI |
/create-pr |
Writes a short PR story, opens a draft, and drives review and CI to green. |
/ci-auto-fix |
Diagnoses red CI and fixes it — never by weakening a check. |
/resolve-conflicts |
Resolves merge and rebase conflicts; asks on the ambiguous ones. |
/attach-media |
Uploads screenshots and recordings into a PR so they render inline. |
/github-actions-author |
Writes and reviews fast, cheap GitHub Actions workflows. |
testing/ |
UI verification and end-to-end tests |
/aw-verify |
Proves a feature works on your local stack or the preview — browser and telemetry — fixes what fails, and posts the proof with screenshots and recordings to one PR comment. setup writes the shared .agents/aw/ config. |
/ui-verify |
Puts a plain-language UI spec in the PR, runs it, tries to break it, and posts the evidence to the PR. |
telemetry-verify |
Reads back what the services recorded during a run and checks each journey from web event to database. |
/e2e-testing |
Plans, writes, and heals Playwright end-to-end tests. |
/e2e-testing-mobile |
Maestro flows for Expo and React Native. |
design/ |
UI, visual, interaction |
ux |
Walks the user’s real path, then accessibility, microcopy, and dark patterns. |
visual-design |
Brand-aware visual direction: color, type, and hierarchy. |
animations |
Performant web motion and perceived performance. |
animations-native |
Reanimated and gesture motion for React Native. |
charting |
Picks the right chart and library for your data. |
storybook |
Stories, playgrounds, and interaction tests per component. |
behavioral-design |
Helps people adopt a new behavior or tool — ethically. |
analysis/ |
Investigate data, diagnose issues |
ideate |
Research-grounded brainstorming with independent judges. |
interview |
Aligns on scope before planning; asks only what research can’t answer. |
rum-tracking |
Decides which product analytics to track, and what is PII. |
video-analyser |
Pulls bugs and repro steps out of a screen recording. |
screencast |
Records browser videos with a cursor and step captions, cuts the waits, and outputs an mp4 with a contact sheet. |
/playwright-trace-analyzer |
Names the race behind a flaky Playwright test. |
/profile-optimizer |
Turns a React or Chrome performance trace into fixes. |
youtube-transcript |
Fetches a YouTube video’s captions as text. |
authoring/ |
Skills about Claude Code itself |
docs |
Writes and audits CLAUDE.md, AGENTS.md, READMEs, and docs trees. |
/create-skill |
Writes a skill from what a real run got wrong; also diagnoses and prunes skills. |
/optimize-claude-md |
Trims context bloat from CLAUDE.md. |
/handoff |
Packs the session into a brief for a fresh agent. |
/persistent-memory |
Plain-markdown memory that carries across sessions. |
A / name is a slash command; the rest also trigger from plain language.
The skills dispatch five agents of their own: pr-reviewer, branch-reviewer, feature-pr-verifier, aw-executor, and aw-tester.
Install
git clone https://github.com/mthines/agent-skills.git
cd agent-skills && bash scripts/sync-symlinks.sh
Every skill is symlinked live into your tool, so git pull is the whole upgrade.
No clone? npx skills add https://github.com/mthines/agent-skills --all --agent claude-code installs a frozen copy.
Forks, other tools, the VS Code extension, and per-project plug-ins: docs/setup.md.
Contributing
PRs welcome. Start with docs/development.md and the conventions in CLAUDE.md.
License
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add mthines/agent-skills