Mattpocock
BDD-first engineering skills forked from mattpocock/skills v1.2.3
Skills in this plugin
43- ▌ QA · fradserInteractive 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".
- ▌ Bdd · fradser bundleBehavior-driven development: Discovery → Formulation → Automation. Use when the user wants to build features or fix bugs via Gherkin scenarios and the BDD lifecycle, or mentions BDD/Gherkin/Executable Specifications. Delegates test implementation to /mattpocock:tdd.
- ▌ Tdd · fradser bundleBDD-driven test implementation: red-green loop mechanics, seams, mocking, and test quality under BDD Automation. Use when the user wants to write or improve tests during BDD implementation, needs guidance on test structure, or asks about test seams, mocking, or anti-patterns.
- ▌ Triage · fradser bundleMoves issues and external PRs through a state machine of triage roles — categorise, verify, grill, and write agent-ready briefs. Use when the user says "triage this issue" or wants agent-ready issue briefs.
- ▌ Wizard · fradser bundleGenerates 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, running a one-off migration or cutover, or the user says "build a wizard" or wants a scripted step-by-step setup. Don't invoke this for steps the agent can perform itself.
- ▌ Teach · fradser bundleTeaches the user a new skill or concept within the workspace. Use when the user says "teach me X", wants to learn a topic over sessions, or needs a structured learning plan.
- ▌ To Spec · fradser bundleTurns the current conversation into a spec and publishes it to the project issue tracker, with no interview. Use when the user says "write a spec", "create a PRD", or wants the discussion captured as a spec.
- ▌ Loop Me · fradser bundleRuns a stateful grilling session that produces workflow specs for workflows the user wants to build. Use when the user says "loop me" or wants workflow specs drawn out of them.
- ▌ Ask Matt · fradser bundleRecommends the skill or flow that fits the user's situation. A router over the skills in this repo. Use when the user asks which skill to use, is unsure what fits, or needs a pointer to the right workflow.
- ▌ Handoff · fradser bundleCompacts the current conversation into a handoff document for another agent to pick up. Use when the user says "hand this off" or wants the work continued by a fresh session.
- ▌ Implement · fradser bundleImplements a piece of work from a spec or ticket set. Use when the user says "implement this spec", "work the tickets", or wants code written from an existing plan.
- ▌ Prototype · fradser bundleBuild a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
- ▌ Wayfinder · fradser bundlePlans a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on the issue tracker, resolved one at a time. Use when the user has a large ambiguous goal and wants the route charted.
- ▌ Setup Pre Commit · fradser bundleSet 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.
- ▌ Edit Article · fradserEdit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
- ▌ Grill Me · fradser bundleRuns a relentless interview that sharpens a plan or design. Use when the user wants to be grilled on an idea, pressure-test a plan, or refine a design through questioning.
- ▌ Grilling · fradser bundleGrill 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.
- ▌ To Tickets · fradser bundleBreaks a plan, spec, or conversation into tracer-bullet tickets that declare their blocking edges, published to the configured tracker. Use when the user says "break this into tickets" or wants a plan decomposed into vertical slices.
- ▌ Wait What · fradser bundleStop. That last message did not land — re-pitch it. Use when the user says "wait what", "I don't follow", "explain that again", or similar confusion signals.
- ▌ Code Review · fradser bundleReview 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. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".
- ▌ Scaffold Exercises · fradser bundleCreate 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.
- ▌ Obsidian Vault · fradserSearch, 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.
- ▌ Migrate To Shoehorn · fradser bundleMigrate 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.
- ▌ Writing Beats · fradser bundleExploit-phase writing — assembles raw material into a journey of beats, grounding each term before a beat leans on it. Use when the user has raw material and wants it turned into an article.
- ▌ Writing Shape · fradser bundleExploit-phase writing — shapes raw material into an article paragraph by paragraph. Use when the user has a raw-material pile and wants the final article written.
- ▌ Batch Grill Me · fradserRuns a relentless interview that asks every frontier question at once, round by round. Use when the user wants to be grilled on a design or map a design tree.
- ▌ Claude Handoff · fradser bundleHands the current conversation to a fresh background agent that picks up the work immediately. Use when the user wants the work continued by a background agent.
- ▌ Codebase Design · fradser bundleShared 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.
- ▌ Diagnosing Bugs · fradser bundleDiagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.
- ▌ Domain Modeling · fradser bundleBuild and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.
- ▌ Grill With Docs · fradser bundleRuns a relentless interview that sharpens a plan or design and creates docs (ADRs and glossary) along the way. Use when the user wants to stress-test a plan or design, or produce decision records.
- ▌ Writing Fragments · fradser bundleExplore-phase writing — mines raw fragments without committing to structure. Use when the user wants to brainstorm material or gather fragments for a later article.
- ▌ To Questionnaire · fradser bundleTurns a decision the user can't fully answer into a questionnaire for someone else to fill in. Use when the user says "turn this into a questionnaire" or needs knowledge pulled out of an expert.
- ▌ Design An Interface · fradserGenerate 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".
- ▌ Ubiquitous Language · fradserExtract 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".
- ▌ Git Guardrails Claude Code · fradser bundleSet 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.
- ▌ Writing For Agents · fradser bundleWriting documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.
- ▌ Request Refactor Plan · fradserCreate 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.
- ▌ Setup TS Deep Modules · fradser bundleWires dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through entry-point files. Use when the user wants deep-module enforcement or dependency-cruiser setup.
- ▌ Writing Great Skills · fradser bundleReference for writing and editing skills well — the vocabulary and principles that make a skill predictable. Use when the user asks "how should I write a skill" or wants skill-writing best practices.
- ▌ Setup Matt Pocock Skills · fradser bundleConfigures a repo for the engineering skills — issue tracker, triage label vocabulary, and domain doc layout. Use once before first use of the other engineering skills, when the user says "set up the skills" or "initialize repo config".
- ▌ Resolving Merge Conflicts · fradser bundleUse when you need to resolve an in-progress git merge/rebase conflict.
- ▌ Improve Codebase Architecture · fradser bundleScans a codebase for deepening opportunities, presents them as a visual HTML report, then grills through the chosen one. Use when the user wants to improve codebase architecture or find refactoring opportunities.