Files
mattpocock-skills-opencode/docs/skill-mapping.md
T

9.3 KiB

Skill mapping — mattpocock/skills → OpenCode v2

Upstream: mattpocock/skills@49dd158 (v1.3.1, 2026-10-09). Analyzed 2026-10-14. Machine-readable source of truth: .opencode/state/classification.json (this doc will be generated from it once scripts/generate.ts exists — until then keep both in sync by hand).

Validation status legend: pending = not yet runtime-verified (Phase 1.9); validated = loads and behaves correctly in a real OpenCode v2 session.

Summary

Classification Count Skills
skill 27 all vendored verbatim; see matrix
agent+skill 1 code-review (+ pocock-reviewer subagent)
orchestrator 2 implement-spec (→ pocock + pocock-worker), chief-of-staff (excluded, in-progress)
plugin 1 git-guardrails-claude-code (→ opt-in guardrails hook)
not-convertible 1 claude-handoff (Claude-CLI-bound, excluded)
agent (dedicated, no skill) 0 research evaluated → rejected as dedicated agent (D8)

Vendored: 31 skills (engineering 20, productivity 7, misc 4). Excluded: 7 in-progress + deprecated bucket (empty upstream). 23 of 31 vendored skills are user-invoked upstream (disable-model-invocation: true) → manifest sets autoinvoke: false; OpenCode v2 honors this natively (hidden from model auto-selection, still loadable via /name or explicit id).

Generated agents

Agent Mode Purpose Key permissions
pocock primary Orchestrator: routes via ask-matt, walks grill→spec→tickets→build→review→retro, gates user-invoked skills behind explicit proposals, runs the implement-spec dispatch loop (integration branch, one worktree per ticket, frontier from own merge record, merges, cleanup) edit/shell allow; destructive-git denies on main checkout; skill * allow; task allow
pocock-worker subagent Builds one ticket test-first (tdd at the spec's seams) inside its prepared worktree; merges integration tip; reports; never pushes/PRs/stashes/worktrees; asks nothing skill deny * + allow-list (tdd, codebase-design, diagnosing-bugs + stack skills); shell denies push/stash/reset --hard/clean/worktree/switch, gh pr/issue-close; edit allow
pocock-reviewer subagent Read-only executor of one code-review axis (Standards or Spec) with the skill's fully-specified prompt; findings returned to the caller for verbatim aggregation edit deny; shell allow git-read only; skill allow code-review only

Rejected agents (recorded so they are not re-proposed without new evidence): pocock-researcher (D8 — built-in general + the 12-line research brief is equivalent), per-phase agents (spec-writer/ticket-planner/debugger/... — Matt's phases are conversation steps sharing one context, not roles; splitting them shreds the grilling→spec context the methodology depends on), triage agent (every step waits on the maintainer), teach/tutor agent (continuous human dialogue).

Matrix

DMI = disable-model-invocation: true upstream (user-invoked). All vendored skills ship verbatim (D1); "extra artifact" lists anything generated on top. Validation: all pending until Phase 1.9.

Upstream skill Bucket DMI Classification Extra artifact Depends on (skill-tool) Rationale (abridged; full text in classification.json)
ask-matt eng ✓ skill informs pocock system — pure router prose; must stay in sync upstream, vendored as-is
code-review eng agent+skill pocock-reviewer — two parallel isolated axis reviewers = dedicated read-only subagent; aggregation stays in caller
codebase-design eng skill — — shared-vocabulary reference consumed by tdd et al.
diagnosing-bugs eng skill — — six-phase inline discipline, no isolation needed
domain-modeling eng skill — — dialogue discipline writing GLOSSARY/ADRs; isolation would break it
grill-with-docs eng ✓ skill — grilling, domain-modeling 7-line wrapper; orchestrator verifies both loads (known upstream failure mode)
implement eng ✓ skill embodied by pocock-worker tdd, code-review thin single-context per-ticket procedure
implement-spec eng ✓ orchestrator pocock, pocock-worker tdd, code-review frontier + worktree fleet; OpenCode task tool lacks worktrees → agents supply them
improve-codebase-architecture eng ✓ skill — codebase-design, grilling, domain-modeling interactive survey-and-grill; subagents are internal delegation
pr eng skill — — PR-body template; verbatim vendoring preserves Dex Horthy attribution (metadata.credits, CREDITS.md)
prototype eng skill — — throwaway-artifact generation procedure
research eng skill — — the skill IS a background-agent brief; built-in general executes it (dedicated agent rejected, D8)
retro eng ✓ skill — writing-for-agents mines the current session — must not be isolated
setup-matt-pocock-skills eng ✓ skill — — creates docs/agents/* state that 7 skills hard-depend on; required first run per repo
tdd eng skill — codebase-design the build discipline; worker allow-list core
to-spec eng ✓ skill — — synthesis from conversation, no interview
to-tickets eng ✓ skill — — decomposition + human approval loop
triage eng ✓ skill — grilling, domain-modeling maintainer-driven state machine; agent rejected (HITL at every step)
wayfinder eng ✓ skill — grilling, domain-modeling, research, prototype tracker-based map/fog/frontier protocol
wizard eng skill — — bash-wizard generator; bundled template.sh ships with the skill dir
grill-me prod ✓ skill — grilling 7-line stateless wrapper
grilling prod skill — — the interview primitive; isolation would make it worse
handoff prod ✓ skill — — handoff doc to OS temp dir
teach prod ✓ skill — — stateful tutor; state lives in workspace files
to-questionnaire prod ✓ skill — — interviews + questionnaire template
wait-what prod ✓ skill — — 7-line re-pitch corrective
writing-for-agents prod skill — — pure theory reference
git-guardrails-claude-code misc plugin guardrails hook (opt-in) — Claude PreToolUse hook → OpenCode ctx.tool.hook on shell; skill text kept verbatim for reference
migrate-to-shoehorn misc skill — — codemod recipe (frozen bucket)
scaffold-exercises misc skill — — environment-bound: needs Matt's private ai-hero-cli; caveat documented, no fix possible
setup-pre-commit misc skill — — husky/lint-staged recipe (frozen bucket)
chief-of-staff in-prog ✓ orchestrator excluded (D6) — coordinator persona; revisit if upstream promotes
claude-handoff in-prog ✓ not-convertible excluded (D6) handoff Claude-CLI --bg launcher; harness-bound
loop-me in-prog ✓ skill excluded (D6) grilling workflow-spec grilling workspace
setup-ts-deep-modules in-prog ✓ skill excluded (D6) codebase-design dependency-cruiser enforcement setup
writing-beats in-prog ✓ skill excluded (D6) writing-fragments beat-by-beat exploit writing
writing-fragments in-prog ✓ skill excluded (D6) grilling explore-phase fragment mining
writing-shape in-prog ✓ skill excluded (D6) writing-fragments paragraph-level shaping

Cross-cutting notes for the conversion

  • Hard dependency chain: setup-matt-pocock-skills writes docs/agents/{issue-tracker,domain, triage-labels}.md + the ## Agent skills block; to-spec, to-tickets, triage, implement, implement-spec, code-review, wayfinder all break without it. README + pocock agent must flag it.
  • Wrapper semantics: grill-me/grill-with-docs/wait-what are 7-line compositions relying on cross-skill invocation ("Call the Skill tool with X"). OpenCode's skill tool loads by name — the loading agent must load both named skills itself (upstream docs report wrappers failing to chain; pocock agent verifies).
  • Invariant: user-invoked skills are never callable from other skills upstream; V2's autoinvoke: false reproduces exactly this (hidden from model, loadable by human via slash).
  • Frontmatter census: only name, description, disable-model-invocation, argument-hint (4 skills), metadata.credits (pr) exist upstream — no allowed-tools/model/context fields, so all permission/isolation design is ours (authored fresh in agent templates, not translated).
  • agents/openai.yaml in every skill dir is Codex UI metadata (display_name, short_description, policy mirroring DMI) — stripped from the generated OpenCode tree by the generator.
  • 17 pending upstream changesets (patch) target code-review, to-tickets, wayfinder, wizard, tdd, teach, implement, grilling, handoff, diagnosing-bugs, ask-matt, setup — the next upstream release will touch ~1/3 of the vendored skills; the nightly sync + drift tests are the safety net.
  • scaffold-exercises only works in Matt's course repos (private ai-hero-cli); vendored for fidelity, documented as environment-bound.