Skills for Real Engineers. Straight from my .agents directory.
Install
npx skills add mattpocock/skillsgh skill install mattpocock/skillsgit clone --depth 1 https://github.com/mattpocock/skillsSkills in this collection
- Ask MattmattpocockAsk which skill or flow fits your situation. A router over the skills in this repo.
- Batch Grill MemattpocockA relentless interview that asks every frontier question at once, round by round.
- CavemanmattpocockUltra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.
- Chief Of StaffmattpocockPursue a long-running goal in a single session by co-ordinating subagents.
- Claude HandoffmattpocockHand the current conversation off to a fresh background agent that picks up the work immediately.
- Code ReviewmattpocockReview the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/spec asked for?). Runs both reviews in parallel sub-agents and reports them side by side.
- Codebase DesignmattpocockShared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
- Decision MappingmattpocockTurn a loose idea into a sequenced map of investigation tickets, then drive them to resolution one at a time.
- Design An InterfacemattpocockGenerate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".
- DiagnosemattpocockDisciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.
- Diagnosing BugsmattpocockDiagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.
- Domain ModelingmattpocockBuild and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a CONTEXT.md, or recording or editing an ADR.
- Edit ArticlemattpocockEdit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
- Git Guardrails Claude CodemattpocockSet up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.
- Grill MemattpocockA relentless interview to sharpen a plan or design.
- Grill With DocsmattpocockGrilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
- GrillingmattpocockGrill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
- HandoffmattpocockCompact the current conversation into a handoff document for another agent to pick up.
- ImplementmattpocockImplement a piece of work based on a spec or set of tickets.
- Implement SpecmattpocockImplement the result of /to-spec and /to-tickets in code.
- Improve Codebase ArchitecturemattpocockFind deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
- Loop MemattpocockGrill me about specs for the workflows I want to build, within this workspace.
- Migrate To ShoehornmattpocockMigrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.
- Obsidian VaultmattpocockSearch, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.
- PrmattpocockUse when writing a PR body.
- PrototypemattpocockBuild a throwaway prototype to flush out a design before committing to it. Routes between two branches â a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route.
- QamattpocockInteractive QA session where user reports bugs or issues conversationally, and the agent files GitHub issues. Explores the codebase in the background for context and domain language. Use when user wants to report bugs, do QA, file issues conversationally, or mentions "QA session".
- Request Refactor PlanmattpocockCreate a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.
- ResearchmattpocockInvestigate a question against high-trust primary sources and capture the findings as a Markdown file in the repo. Use when the user wants a topic researched, docs or API facts gathered, or reading legwork delegated to a background agent.
- Resolving Merge ConflictsmattpocockUse when you need to resolve an in-progress git merge/rebase conflict.
- RetromattpocockConduct a retrospective on a coding session.
- ReviewmattpocockReview the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side.
- Scaffold ExercisesmattpocockCreate exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
- Setup Matt Pocock SkillsmattpocockSets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub or local markdown), triage label vocabulary, and domain doc layout.
- Setup Pre CommitmattpocockSet up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
- Setup Ts Deep ModulesmattpocockWire dependency-cruiser into a TypeScript repo so each package is a deep module, with implementation hidden in subfolders and reachable only through its entry-point files. User-invoked.
- TddmattpocockTest-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
- TeachmattpocockTeach the user a new skill or concept, within this workspace.
- To IssuesmattpocockBreak a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices.
- To PrdmattpocockTurn the current conversation into a PRD and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.
- To QuestionnairemattpocockTurn a decision you can't fully answer into a questionnaire for someone else to fill in.
- To SpecmattpocockTurn the current conversation into a spec and publish it to the project issue tracker: no interview, just synthesis of what you've already discussed.
- To TicketsmattpocockBreak a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker (edges as text in one file per ticket locally, or native blocking links on a real tracker).
- TriagemattpocockTriage issues through a state machine driven by triage roles. Use when user wants to create an issue, triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.
- Ubiquitous LanguagemattpocockExtract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions "domain model" or "DDD".
- Wait WhatmattpocockStop. That last message did not land: re-pitch it.
- WayfindermattpocockPlan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.
- WizardmattpocockGenerate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.