--- name: setup-matt-pocock-skills description: Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `.agent/docs/` so the engineering skills know this repo's issue tracker (GitHub or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` - or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs. disable-model-invocation: true metadata: internal: 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 six canonical triage roles - **Domain docs** - where `docs/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? - `docs/CONTEXT.md` and `CONTEXT-MAP.md` (at the repo root) - `docs/adr/` and any `src/*/docs/adr/` directories - `.agent/docs/` - does this skill's prior output already exist? - `.scratch/` - sign that a local-markdown issue tracker convention is already in use ### 2. Present findings and ask Summarise what's present and what's missing. Then walk the user through the three decisions **one at a time** - present a section, get the user's answer, then move to the next. Don't dump all three at once. Assume the user does not know what these terms mean. Each section starts with a short explainer (what it is, why these skills need it, what changes if they pick differently). Then show the choices and the default. **Section A - Issue tracker.** > Explainer: The "issue tracker" is where issues live for this repo. Skills like `to-issues`, `triage`, `to-prd`, 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), 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//` in this repo (good for solo projects or repos without a remote) - **Other** (Jira, Linear, etc.) - ask the user to describe the workflow in one paragraph; the skill will record it as freeform prose **Section B - Triage label vocabulary.** > Explainer: When the `triage` skill processes an incoming issue, it moves it through a state machine - needs evaluation, waiting on reporter, ready for an AFK agent to pick up, ready for a human, blocked on an external dependency, or won't fix. To do that, it needs to apply labels (or the equivalent in your issue tracker) that match strings *you've actually configured*. If your repo already uses different label names (e.g. `bug:triage` instead of `needs-triage`), map them here so the skill applies the right ones instead of creating duplicates. The six canonical roles: - `needs-triage` - maintainer needs to evaluate - `needs-info` - waiting on reporter - `ready-for-agent` - fully specified, ready for immediate implementation (pick it up yourself or with an agent) - `ready-for-human` - needs a judgment call or design decision before implementation - `blocked` - specified, but work cannot start until an external dependency clears. Mutually exclusive with the ready roles - `wontfix` - will not be actioned Default: each role's string equals its name. Ask the user if they want to override any. If their issue tracker has no existing labels, the defaults are fine. **Section C - Domain docs.** > Explainer: Some skills (`improve-codebase-architecture`, `diagnose`, `tdd`) read a `docs/CONTEXT.md` file to learn the project's domain language, and `docs/adr/` for past architectural decisions. They need to know whether the repo has one global context or multiple (e.g. a monorepo with separate frontend/backend contexts) so they look in the right place. Confirm the layout: - **Single-context** - one `docs/CONTEXT.md` + `docs/adr/`. Most repos are this. - **Multi-context** - `CONTEXT-MAP.md` at the root pointing to per-context `CONTEXT.md` files (typically a monorepo). ### 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 `.agent/docs/issue-tracker.md`, `.agent/docs/triage-labels.md`, `.agent/docs/domain.md` 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, ask the user 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: ```markdown ## Agent skills ### Issue tracker [one-line summary of where issues are tracked]. See `.agent/docs/issue-tracker.md`. ### Triage labels [one-line summary of the label vocabulary]. See `.agent/docs/triage-labels.md`. ### Domain docs [one-line summary of layout - "single-context" or "multi-context"]. See `.agent/docs/domain.md`. ``` Then write the three docs files using the seed templates in this skill folder as a starting point: - [issue-tracker-github.md](./issue-tracker-github.md) - GitHub issue tracker - [issue-tracker-gitlab.md](./issue-tracker-gitlab.md) - GitLab issue tracker - [issue-tracker-local.md](./issue-tracker-local.md) - local-markdown issue tracker - [triage-labels.md](./triage-labels.md) - label mapping - [domain.md](./domain.md) - domain doc consumer rules + layout For "other" issue trackers, write `.agent/docs/issue-tracker.md` from scratch using the user's description. ### 5. Done Tell the user the setup is complete and which engineering skills will now read from these files. Mention they can edit `.agent/docs/*.md` directly later - re-running this skill is only necessary if they want to switch issue trackers or restart from scratch.