Skip to main content
← Blog

Superpowers vs Matt Pocock's skills: two opposite bets on who runs your agent

· Mick Brzeziński

  • AI agents
  • Claude Code
  • build in public

Matt Pocock’s agent-skills library hit 1.0. Jesse Vincent’s Superpowers is on 6.0.3. Both are built on the exact same primitive — and they make the opposite bet about whether your coding agent should obey you or override you.

I read both repos end to end — not the announcements, the actual files: plugin manifests, session hooks, SKILL.md frontmatter.

The same Lego brick

A “skill” is unglamorous: a folder with a SKILL.md file, a few lines of YAML frontmatter (name, description), and markdown telling the agent how to do one thing well. Register it in a .claude-plugin/plugin.json manifest and you have a Claude Code plugin. That’s the whole primitive.

The libraries don’t compete on the brick. Pocock’s tdd and Superpowers’ test-driven-development preach the same gospel — failing test first, red-green-refactor, no production code before it. Diff the advice and you’d struggle to tell them apart.

The fork is one level up — in how the skills get invoked at all.

Two ways a skill fires. Superpowers (obra, v6.0.3): a SessionStart hook injects the using-superpowers bootstrap, which tells the agent that on every turn, if there is even a 1% chance a skill applies it MUST invoke it — so a skill fires automatically. Labelled autopilot, owns the process. Matt Pocock skills (v1.0): no hook, nothing injected; a skill fires only when you type it (user-invoked) or the task matches a skill's description trigger (model-invoked) — otherwise nothing happens. Labelled power steering, you stay in control.

Superpowers: the agent that won’t let you skip a step

Superpowers ships a SessionStart hook. Before you type anything, it injects the using-superpowers skill into the agent’s context, wrapped in <EXTREMELY_IMPORTANT>. The payload is blunt:

If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill. […] This is not negotiable. This is not optional. You cannot rationalize your way out of this.

It even ships a Red Flags table — the exact thoughts an agent uses to talk itself out of the process (“this is just a simple question”, “let me explore the codebase first”), each labelled as rationalisation. The agent must check for a skill before any response, including clarifying questions.

This methodology owns the process. The whole workflow — brainstorm → spec → plan → subagent-driven implementation → TDD → code review → finish the branch — fires automatically, because the bootstrap forces a skill-check every turn. The contributor guide is the tell: a 94% PR rejection rate, and a refusal to “comply” with outside skill-writing guidance without eval evidence.

Pocock 1.0: small tools you stay in front of

Pocock’s library opens with a thesis statement: “Skills for real engineers — not vibe coding,” and then, pointedly:

Approaches like GSD, BMAD, and Spec-Kit try to help by owning the process. But while doing so, they take away your control and make bugs in the process hard to resolve.

There is no session hook; nothing gets injected at startup. The 1.0 release formalised one axis that runs through every skill: user-invoked vs model-invoked.

  • User-invoked skills (disable-model-invocation: true) fire only when a human types them, e.g. /grill-me. Their job is to orchestrate.
  • Model-invoked skills can also fire automatically — but only when the skill’s own description advertises a trigger the model matches.

The difference is the default. Superpowers assumes a skill applies; Pocock fires one only when you invoke it, or when a skill explicitly opted into auto-firing.

What’s in each box

The defaults shape what each library contains. Both share a disciplined core — then they diverge in opposite directions. Superpowers spends its skills on autonomous execution: the machinery that lets it run for hours unattended. Pocock spends his on human alignment and product shaping: the machinery that keeps you deciding what to build. The skill lists are the philosophies.

Skill overlap map, shipped skills only: 14 Superpowers (obra) vs 17 Pocock. Shared by both, four capabilities: test-first (test-driven-development and tdd), debugging (systematic-debugging and diagnosing-bugs), align before code (brainstorming and grill-me/grilling), authoring skills (writing-skills and writing-great-skills). Superpowers-only, ten: using-superpowers, writing-plans, executing-plans, subagent-driven-development, dispatching-parallel-agents, using-git-worktrees, verification-before-completion, requesting-code-review, receiving-code-review, finishing-a-development-branch. Pocock-only, twelve: ask-matt, grill-with-docs, to-prd, to-issues, triage, domain-modeling, codebase-design, improve-codebase-architecture, prototype, handoff, teach, setup-matt-pocock-skills.

The two libraries at a glance

Superpowers (obra)Matt Pocock skills
Version (at writing)6.0.31.0.1
AuthorJesse Vincent / Prime RadiantMatt Pocock
Skills14, all general-purpose~17 shipped, plus drafts/deprecated in-repo
Session bootstrapYes — SessionStart hook injects using-superpowersNone
Default invocationAuto: “1% chance → you MUST”, every turnExplicit: you type it, or a description trigger matches
DependenciesZero, by designComposable; some skills require others
InstallPlugin marketplaces + 11 per-harness integrationsnpx skills add (skills.sh), pick your agents
Skill testingEval harness (drill drives real sessions, LLM-judged)None in the repo (changesets release)
Centre of gravityAutonomous executionHuman alignment + design
Best whenYou want discipline enforcedYou want sharp tools you drive

The trade-off

Neither bet is wrong. They’re tuned for different failure modes.

Superpowers optimises for the agent that cuts corners. If your pain is a model that skips tests, declares victory early, and rationalises its way out of process, a system that injects “you have no choice” every turn is the medicine. The cost: it’ll also drag a one-line question through a full brainstorming workflow, because it can’t tell your trivial task from your load-bearing one.

Pocock optimises for the engineer who already has judgement and wants leverage, not a chaperone. Small, legible skills you compose by hand mean nothing fires that you didn’t ask for — and when something breaks, it breaks in your flow, where you can see and fix it. The cost: the discipline is opt-in: skip the skill and nothing stops you.

It’s the classic tension — framework vs library, autopilot vs power steering.

So what

The real decision isn’t “which repo.” It’s: do you want a system that enforces a process, or a toolkit you drive? The mistake is picking on vibes — pick the architecture that matches how much you want the machine to override the human.

Which would you trust more on your own codebase: the agent that won’t let you skip a step, or the one that does exactly — and only — what you tell it?