Files
skills/CLAUDE.md
T
Matt PocockandClaude Opus 5 ad98b80dbd docs: sharpen the canonical install block after review
- install-block.md: state the invariant as a requirement rather than
  as already-true (docs/ is brought into line downstream); mark all
  three canonical snippets, not just the Claude Code one; pin the
  `skills@latest` spelling; restore the `setup-matt-pocock-skills`
  instruction the whole-set form carries; cite the docs source for
  the auto-update claim.
- writing-docs.md: say plainly that the template's Quickstart is the
  older wording, so the file no longer contradicts itself.
- CLAUDE.md: split the paragraph, stop restating the fallback rationale.
- ADR 0002: record what was actually verified, on which version, and
  the two things that were not — the pinned sha in the official
  listing, and the in-session slash command.

Refs mattpocock/personal-wiki#250

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 10:00:45 +01:00

3.7 KiB

Skills are organized into bucket folders under skills/:

  • engineering/ — daily code work
  • productivity/ — daily non-code workflow tools
  • misc/ — kept around but rarely used, not promoted
  • personal/ — tied to my own setup, not promoted
  • in-progress/ — drafts not yet ready to ship
  • deprecated/ — no longer used

Every skill in engineering/ or productivity/ (the promoted buckets) must have a reference in the top-level README.md and an entry in .claude-plugin/plugin.json's skills array (the Claude Code plugin ships exactly the promoted set). Skills in misc/, personal/, in-progress/, and deprecated/ must not appear in either.

mattpocock-skills is listed in Claude Code's official marketplace (claude-plugins-official), and that is the one install route we document. Never reword an install command in place — copy it verbatim from .agents/install-block.md, which is the single source for install wording.

The repo is also its own single-plugin marketplace: .claude-plugin/marketplace.json lists the one mattpocock-skills plugin. The official listing does not depend on it, and it is not documented to users — it survives only as the fallback described in the install block. When bumping the release version, keep .claude-plugin/plugin.json's version in sync with package.json's — Claude uses the plugin version to decide when installed users see an update. Run claude plugin validate . --strict after touching either manifest. Why a Claude plugin but not (yet) a Codex one lives in .agents/adr/0002-ship-as-a-claude-code-plugin.md.

Each skill entry in the top-level README.md must link the skill name to its SKILL.md.

Each bucket folder has a README.md that lists every skill in the bucket with a one-line description, with the skill name linked to its SKILL.md. The promoted buckets' README.mds and the top-level README.md group entries into User-invoked and Model-invoked; non-promoted bucket README.mds (misc/, personal/) use a flat list.

Skills in engineering/ and productivity/ also have a human-facing docs page at docs/<bucket>/<skill-name>.md (the docs tree mirrors those two bucket folders under skills/). The published URL is https://aihero.dev/skills-<skill-name> regardless of bucket — the docs path is repo organisation only. When you add, rename, or change the behaviour of a skill in engineering/ or productivity/, create or re-sync its docs page following .agents/writing-docs.md. Skills in the non-promoted buckets (misc/, personal/, in-progress/, deprecated/) get no docs page.

Every SKILL.md is either user-invoked (disable-model-invocation: true plus policy.allow_implicit_invocation: false in agents/openai.yaml, reachable only by the human) or model-invoked (model- or user-reachable). See .agents/invocation.md.

ask-matt is the router that maps every user-reachable skill and how they relate. The same trigger that re-syncs a docs page applies to it: whenever you add, rename, remove, or change how a user-reachable skill fits the flows, re-read ask-matt's SKILL.md and update it so the map stays accurate — a new skill it never mentions, or a stale one it still routes to, is a router that lies.

To (re)link every skill into the local harness skill directories (~/.claude/skills, ~/.agents/skills), run scripts/link-skills.sh. Each entry is a symlink into this repo, so a git pull keeps installed skills current; re-run the script after adding, removing, or renaming a skill.