Skip to content
Development
Skill

/setup-matt-pocock-skills

Configures 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".

BOOST
From plugin
dotclaude
59683 skills7 agents4 commands3 MCP
Install
$ npx -y skills add FradSer/dotclaude --skill setup-matt-pocock-skills --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/setup-matt-pocock-skills

Context preview

The summary Claude sees to decide when to auto-load this skill.

Configures 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".

SKILL.md

setup-matt-pocock-skills.SKILL.md
name: setup-matt-pocock-skills
description: Configures 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".
disable-model-invocation: true

Setup Matt Pocock's Skills

Scaffold the per-repo configuration that the engineering skills assume:

  • **Issue tracker**: where issues live (GitHub by default; local markdown is also supported out of the box)
  • **Triage labels**: the strings used for the five canonical triage roles
  • **Domain docs**: where `CONTEXT.md` and ADRs live, and the consumer rules for reading them

This is a prompt-driven skill, not a deterministic script. Explore, present what you found, confirm with the user, then write.

Process

1. Explore

Look at the current repo to understand its starting state. Read whatever exists; don't assume:

  • `git remote -v` and `.git/config`: is this a GitHub repo? Which one?
  • `AGENTS.md` and `CLAUDE.md` at the repo root: does either exist? Is there already an `## Agent skills` section in either?
  • `CONTEXT.md` and `CONTEXT-MAP.md` at the repo root
  • `docs/adr/` and any `src/*/docs/adr/` directories
  • `docs/agents/`: does this skill's prior output already exist?
  • `.scratch/`: sign that a local-markdown issue tracker convention is already in use
  • Is the `triage` skill installed? (a `triage` skill folder alongside this one, or `triage` in your available skills.) This decides whether Section B runs at all.
  • Monorepo signals: a `pnpm-workspace.yaml`, a `workspaces` field in `package.json`, or a populated `packages/*` with its own `src/`. Present only in a genuinely large multi-package repo; their absence means single-context, which is almost every repo.

2. Present findings and ask

Summarise what's present and what's missing. Then take the sections in order: one section, one answer, then the next.

Lead each section with the recommended answer so the user can accept it in a word. Give a one-line explainer only when the choice genuinely branches; skip the section entirely when exploration already settled it (Section B when `triage` isn't installed, Section C when there's no monorepo).

**Section A: Issue tracker.**

> Explainer: The "issue tracker" is where issues live for this repo. Skills like `to-tickets`, `triage`, `to-spec`, and `qa` read from and write to it: they need to know whether to call `gh issue create`, write a markdown file under `.scratch/`, or follow some other workflow you describe. Pick the place you actually track work for this repo.

Default posture: these skills were designed for GitHub. If a `git remote` points at GitHub, propose that. If a `git remote` points at GitLab (`gitlab.com` or a self-hosted host), propose GitLab. Otherwise (or if the user prefers), use the AskUserQuestion tool to offer:

  • **GitHub**: issues live in the repo's GitHub Issues (uses the `gh` CLI)
  • **GitLab**: issues live in the repo's GitLab Issues (uses the [`glab`](https://gitlab.com/gitlab-org/cli) CLI)
  • **Local markdown**: issues live as files under `.scratch/<feature>/` in this repo (good for solo projects or repos without a remote)
  • **Other** (Jira, Linear, etc.): the user describes the workflow in one paragraph via the tool's "Other" field; the skill will record it as freeform prose

Record the choice in `docs/agents/issue-tracker.md`. The GitHub and GitLab templates carry a "PRs as a request surface" flag, defaulted **off**: leave it off and don't raise it; a user who wants external PRs in the triage queue can flip the flag in the file later.

**Section B: Triage label vocabulary.** Skip this section entirely if the `triage` skill isn't installed (exploration told you): an uninstalled skill needs no labels.

If it is installed, ask exactly one question via the AskUserQuestion tool:

> "Do you want to keep the default triage labels?": options: keep the defaults (Recommended) / use my own label names

The defaults are the five canonical roles, each label string equal to its name: `needs-triage`, `needs-info`, `ready-for-agent`, `ready-for-human`, `wontfix`. On **yes**, write them as-is. Only if the user says no: usually because their tracker already uses other names (e.g. `bug:triage` for `needs-triage`): collect the overrides so `triage` applies existing labels instead of creating duplicates.

**Section C: Domain docs.** Default to **single-context**: one `CONTEXT.md` + `docs/adr/` at the repo root. This fits almost every repo; write it without asking.

Offer **multi-context**: a root `CONTEXT-MAP.md` pointing to per-context `CONTEXT.md` files: only when exploration found monorepo signals. Then use the AskUserQuestion tool to confirm which layout they want.

3. Confirm and edit

Show the user a draft of:

  • The `## Agent skills` block to add to whichever of `CLAUDE.md` / `AGENTS.md` is being edited (see step 4 for selection rules)
  • The contents of `docs/agents/issue-tracker.md`, `docs/agents/domain.md`, and `docs/agents/triage-labels.md` (the last only when `triage` is installed)

Let them edit before writing.

4. Write

**Pick the file to edit:**

  • If `CLAUDE.md` exists, edit it.
  • Else if `AGENTS.md` exists, edit it.
  • If neither exists, use the AskUserQuestion tool to ask which one to create: don't pick for them.

Never create `AGENTS.md` when `CLAUDE.md` already exists (or vice versa): always edit the one that's already there.

If an `## Agent skills` block already exists in the chosen file, update its contents in-place rather than appending a duplicate. Don't overwrite user edits to the surrounding sections.

The block:

## Agent skills

### Issue tracker

[one-line summary of where issues are tracked]. See `docs/agents/issue-tracker.md`.

### Triage labels

[one-line summary of the label vocabulary]. See `docs/agents/triage-labels.md`.

### Domain docs

[one-line summary of layout: "single-context" or "multi-context"].
Read more
Ships withdotclaude

A curated collection of 22 plugins for Claude Code, providing specialized agents, skills, and automation tools for development and productivity workflows.

Get the whole plugin

Other skills on dotclaude.