Claude Cursor opencode Skill

setup-matt-pocock-skills

Sets 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. Run before first use of `to-issues`, `to-prd`, `triage`, `diagnose`, `

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download vodailocz-kilo-kit-mcp-skills_engineering_setup-matt-pocock-skills-0448e6c.zip · 6 KB
Part of vodailocz/kilo-kit-mcp — 142 skills

Install

skills CLI npx skills add https://github.com/VoDaiLocz/kilo-kit-mcp/tree/main/skills/engineering/setup-matt-pocock-skills
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install vodailocz-kilo-kit-mcp@llmmart
Git git clone https://github.com/VoDaiLocz/kilo-kit-mcp.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole vodailocz/kilo-kit-mcp collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

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

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 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.) — 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, 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 five canonical roles:

  • needs-triage — maintainer needs to evaluate
  • needs-info — waiting on reporter
  • ready-for-agent — fully specified, AFK-ready (an agent can pick it up with no human context)
  • ready-for-human — needs human implementation
  • 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 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 CONTEXT.md + docs/adr/ at the repo root. 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 docs/agents/issue-tracker.md, docs/agents/triage-labels.md, docs/agents/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:

## 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"]. See `docs/agents/domain.md`.

Then write the three docs files using the seed templates in this skill folder as a starting point:

For "other" issue trackers, write docs/agents/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 docs/agents/*.md directly later — re-running this skill is only necessary if they want to switch issue trackers or restart from scratch.

Files (kilo-kit-mcp)
  • domain.md 1.9 KB
    # Domain Docs
    
    How the engineering skills should consume this repo's domain documentation when exploring the codebase.
    
    ## Before exploring, read these
    
    - **`CONTEXT.md`** at the repo root, or
    - **`CONTEXT-MAP.md`** at the repo root if it exists — it points at one `CONTEXT.md` per context. Read each one relevant to the topic.
    - **`docs/adr/`** — read ADRs that touch the area you're about to work in. In multi-context repos, also check `src/<context>/docs/adr/` for context-scoped decisions.
    
    If any of these files don't exist, **proceed silently**. Don't flag their absence; don't suggest creating them upfront. The producer skill (`/grill-with-docs`) creates them lazily when terms or decisions actually get resolved.
    
    ## File structure
    
    Single-context repo (most repos):
    
    ```
    /
    ├── CONTEXT.md
    ├── docs/adr/
    │   ├── 0001-event-sourced-orders.md
    │   └── 0002-postgres-for-write-model.md
    └── src/
    ```
    
    Multi-context repo (presence of `CONTEXT-MAP.md` at the root):
    
    ```
    /
    ├── CONTEXT-MAP.md
    ├── docs/adr/                          ← system-wide decisions
    └── src/
        ├── ordering/
        │   ├── CONTEXT.md
        │   └── docs/adr/                  ← context-specific decisions
        └── billing/
            ├── CONTEXT.md
            └── docs/adr/
    ```
    
    ## Use the glossary's vocabulary
    
    When your output names a domain concept (in an issue title, a refactor proposal, a hypothesis, a test name), use the term as defined in `CONTEXT.md`. Don't drift to synonyms the glossary explicitly avoids.
    
    If the concept you need isn't in the glossary yet, that's a signal — either you're inventing language the project doesn't use (reconsider) or there's a real gap (note it for `/grill-with-docs`).
    
    ## Flag ADR conflicts
    
    If your output contradicts an existing ADR, surface it explicitly rather than silently overriding:
    
    > _Contradicts ADR-0007 (event-sourced orders) — but worth reopening because…_
    
  • issue-tracker-github.md 1 KB
    # Issue tracker: GitHub
    
    Issues and PRDs for this repo live as GitHub issues. Use the `gh` CLI for all operations.
    
    ## Conventions
    
    - **Create an issue**: `gh issue create --title "..." --body "..."`. Use a heredoc for multi-line bodies.
    - **Read an issue**: `gh issue view <number> --comments`, filtering comments by `jq` and also fetching labels.
    - **List issues**: `gh issue list --state open --json number,title,body,labels,comments --jq '[.[] | {number, title, body, labels: [.labels[].name], comments: [.comments[].body]}]'` with appropriate `--label` and `--state` filters.
    - **Comment on an issue**: `gh issue comment <number> --body "..."`
    - **Apply / remove labels**: `gh issue edit <number> --add-label "..."` / `--remove-label "..."`
    - **Close**: `gh issue close <number> --comment "..."`
    
    Infer the repo from `git remote -v` — `gh` does this automatically when run inside a clone.
    
    ## When a skill says "publish to the issue tracker"
    
    Create a GitHub issue.
    
    ## When a skill says "fetch the relevant ticket"
    
    Run `gh issue view <number> --comments`.
    
  • issue-tracker-gitlab.md 1.5 KB
    # Issue tracker: GitLab
    
    Issues and PRDs for this repo live as GitLab issues. Use the [`glab`](https://gitlab.com/gitlab-org/cli) CLI for all operations.
    
    ## Conventions
    
    - **Create an issue**: `glab issue create --title "..." --description "..."`. Use a heredoc for multi-line descriptions. Pass `--description -` to open an editor.
    - **Read an issue**: `glab issue view <number> --comments`. Use `-F json` for machine-readable output.
    - **List issues**: `glab issue list --state opened -F json` with appropriate `--label` filters. Note that GitLab uses `opened` (not `open`) for the state value.
    - **Comment on an issue**: `glab issue note <number> --message "..."`. GitLab calls comments "notes".
    - **Apply / remove labels**: `glab issue update <number> --label "..."` / `--unlabel "..."`. Multiple labels can be comma-separated or by repeating the flag.
    - **Close**: `glab issue close <number>`. `glab issue close` does not accept a closing comment, so post the explanation first with `glab issue note <number> --message "..."`, then close.
    - **Merge requests**: GitLab calls PRs "merge requests". Use `glab mr create`, `glab mr view`, `glab mr note`, etc. — the same shape as `gh pr ...` with `mr` in place of `pr` and `note`/`--message` in place of `comment`/`--body`.
    
    Infer the repo from `git remote -v` — `glab` does this automatically when run inside a clone.
    
    ## When a skill says "publish to the issue tracker"
    
    Create a GitLab issue.
    
    ## When a skill says "fetch the relevant ticket"
    
    Run `glab issue view <number> --comments`.
    
  • issue-tracker-local.md 838 B
    # Issue tracker: Local Markdown
    
    Issues and PRDs for this repo live as markdown files in `.scratch/`.
    
    ## Conventions
    
    - One feature per directory: `.scratch/<feature-slug>/`
    - The PRD is `.scratch/<feature-slug>/PRD.md`
    - Implementation issues are `.scratch/<feature-slug>/issues/<NN>-<slug>.md`, numbered from `01`
    - Triage state is recorded as a `Status:` line near the top of each issue file (see `triage-labels.md` for the role strings)
    - Comments and conversation history append to the bottom of the file under a `## Comments` heading
    
    ## When a skill says "publish to the issue tracker"
    
    Create a new file under `.scratch/<feature-slug>/` (creating the directory if needed).
    
    ## When a skill says "fetch the relevant ticket"
    
    Read the file at the referenced path. The user will normally pass the path or the issue number directly.
    
  • SKILL.md 6.7 KB
    ---
    name: setup-matt-pocock-skills
    description: Sets 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. 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
    ---
    
    # 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
    
    ### 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/<feature>/` 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, 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 five canonical roles:
    
    - `needs-triage` — maintainer needs to evaluate
    - `needs-info` — waiting on reporter
    - `ready-for-agent` — fully specified, AFK-ready (an agent can pick it up with no human context)
    - `ready-for-human` — needs human implementation
    - `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 `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 `CONTEXT.md` + `docs/adr/` at the repo root. 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 `docs/agents/issue-tracker.md`, `docs/agents/triage-labels.md`, `docs/agents/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 `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"]. See `docs/agents/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 `docs/agents/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 `docs/agents/*.md` directly later — re-running this skill is only necessary if they want to switch issue trackers or restart from scratch.
    
  • triage-labels.md 1 KB
    # Triage Labels
    
    The skills speak in terms of five canonical triage roles. This file maps those roles to the actual label strings used in this repo's issue tracker.
    
    | Label in mattpocock/skills | Label in our tracker | Meaning                                  |
    | -------------------------- | -------------------- | ---------------------------------------- |
    | `needs-triage`             | `needs-triage`       | Maintainer needs to evaluate this issue  |
    | `needs-info`               | `needs-info`         | Waiting on reporter for more information |
    | `ready-for-agent`          | `ready-for-agent`    | Fully specified, ready for an AFK agent  |
    | `ready-for-human`          | `ready-for-human`    | Requires human implementation            |
    | `wontfix`                  | `wontfix`            | Will not be actioned                     |
    
    When a skill mentions a role (e.g. "apply the AFK-ready triage label"), use the corresponding label string from this table.
    
    Edit the right-hand column to match whatever vocabulary you actually use.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related