Audit of github.com/obra/superpowers — Jesse Vincent's MIT-licensed cross-platform skills framework for AI coding agents — against IKA Concierge's Per-neuron Skills + Commands + Plugins model. Compiled 2026-06-07. Companion to /skills/ (Anthropic knowledge-work-plugins), /odysseus/, /karpathy, /gstack, /hermes, /ika-pro-architecture.
IKA-curated Engineering skills + adopt the SessionStart hook pattern + adopt the trigger-focused description rule for our skill schema.ADOPT (skills): 5 of 14 process skills as IKA-curated Engineering-neuron skills. systematic-debugging · brainstorming · writing-plans · verification-before-completion · writing-skills. These are domain-agnostic; they apply both to user-facing Engineering workflows AND to the Builder's own agent-authoring loop. The other 9 either duplicate existing Paperclip primitives or are stronger discipline than IKA Concierge needs as defaults.
ADOPT (mechanic): SessionStart hook pattern. Superpowers ships a Claude Code hook that fires on startup|clear|compact and auto-injects the using-superpowers system prompt. Maps onto our Conversation Surface's per-turn context-assembly: when a new IKA thread starts (or after compact), inject relevant always-on skills' descriptions into the system prompt. Today our spec assembles per-turn context but does not formalize the hook contract — name the events.
ADOPT (skill anatomy): "trigger-focused description" rule. Superpowers' writing-skills formalizes that a skill's description must say when to invoke ("Use when implementing any feature or bugfix, before writing implementation code"), not what the skill does. This is the LLM router's signal. Add to our SKILL.md schema as a hard requirement.
ADOPT (vetting): RED/GREEN skill test. Their authoring rule: prove the agent fails WITHOUT the skill (RED), then prove it succeeds WITH (GREEN). Treats skills as testable artifacts, not free-text additions. Add as a community-with-sig tier gate — community skills require a RED/GREEN test pair to publish.
WATCH: cross-platform installer. Superpowers ships for Claude Code · Codex CLI/App · Factory Droid · Gemini CLI · OpenCode · Cursor · GitHub Copilot CLI. We are our own platform; we don't need their installer. But the multi-target packaging shape (one skill, N install paths) is the same shape as our wire-format compatibility goal with Anthropic plugins — confirms the converging spec.
SKIP: the iron-law TDD framing as universal default · git-worktrees as universal · the "invoke-skill-before-any-response" rule (too aggressive for prosumer conversation pace) · the "subagent-driven-development" workflow as a default (Paperclip already handles this).
Author: Jesse Vincent (Prime Radiant). License: MIT. Posture: cross-platform skills framework for AI coding agents — not knowledge work. Distributed for Claude Code · Codex CLI/App · Factory Droid · Gemini CLI · OpenCode · Cursor · GitHub Copilot CLI from one repo.
Surface area: 14 skills (process discipline + meta), 1 SessionStart hook, install scripts per platform. No connectors / MCP servers / domain knowledge.
Skill file format: skills/<slug>/SKILL.md with YAML frontmatter (just name + description) followed by markdown body. Schema is intentionally lighter than Anthropic plugins.
---
name: test-driven-development
description: Use when implementing any feature or bugfix, before writing implementation code
---
# Overview
...
# When to Use
...
# The Iron Law
...
Stated principles (verbatim from README):
| Skill | Category | IKA verdict |
|---|---|---|
using-superpowers | meta (auto-injected) | PATTERN — see SessionStart hook adopt below |
writing-skills | meta (how to author) | ADOPT — lift its rules into our skill-creator system prompt |
brainstorming | process | ADOPT — universal Engineering skill; also useful in Marketing/Product |
writing-plans | process | ADOPT — pairs with our Tasks/Projects entities; agent emits structured plans |
systematic-debugging | process | ADOPT — universal Engineering skill; aligns with our "evidence over claims" preference |
verification-before-completion | process | ADOPT — apply as default to all agent-as-assignee task closures (the "done" button is a check, not a claim) |
test-driven-development | process | PARTIAL — adopt as an OPT-IN Engineering skill, not iron-law default. For prototyping/spike work TDD is friction. |
executing-plans | process | PARTIAL — overlaps with Paperclip's agent-as-assignee loop. Watch for lift-worthy fragments. |
requesting-code-review | collaboration | PARTIAL — applies only inside Engineering neuron; map onto our Hermes-paperclip-adapter PR workflow when present |
receiving-code-review | collaboration | PARTIAL — same scope as above |
dispatching-parallel-agents | orchestration | SKIP — Paperclip + per-neuron Agents already handle this |
using-git-worktrees | orchestration | SKIP — Engineering-specific implementation detail; Builder's React workflow doesn't use git worktrees |
subagent-driven-development | orchestration | SKIP — duplicates per-neuron Agents |
finishing-a-development-branch | workflow | SKIP — git-flow specific; out of posture for IKA |
Superpowers ships a single Claude Code hook (hooks/hooks.json):
{
"hooks": {
"SessionStart": [{
"matcher": "startup|clear|compact",
"hooks": [{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.cmd session-start",
"async": false
}]
}]
}
}
The hook injects the using-superpowers skill's content into the system prompt on session start, on /clear, and after auto-compact. That is: discipline is enforced by re-priming the model after every context reset, not by a single bootstrap.
Our Conversation Surface already assembles per-turn context (per-neuron skills + integrations + recent thread + briefing). What we have not formalized is the equivalent of hook events: the moments at which always-on skills get re-injected. Lift the contract:
| Hook event | IKA equivalent | Action |
|---|---|---|
startup | First turn of a new thread | Inject always-on skills' description + universal IKA preamble |
clear | User invokes "new conversation" / "reset thread" | Same as startup — re-prime always-on skills |
compact | Auto-compaction passes truncated history | Re-inject always-on skills + last-N-message summary so discipline survives the truncation |
Today our spec implies all three but doesn't name the contract. Naming it lets the per-IKA Skills registry declare which skills are always_on (re-injected at every event) vs on_demand (only injected when description matches).
always_on BOOL column to neuron_skills link table. Default false. When true, skill's description fires on every hook event.skill_hooks table for skills that ship their own hook scripts (forward-compat with Anthropic plugins that may add hooks in v2 of their schema).The most subtle and load-bearing rule in Superpowers' writing-skills meta-skill:
Description is trigger-focused, not workflow-focused. "Use when..." statements describe when to apply the skill, never how it works.
The reasoning: the LLM uses the description to decide whether to invoke. If the description summarizes the workflow, the model often follows the description instead of reading the full skill content — a silent failure mode where the skill is "invoked" but its substantive rules never load.
Current schema (from /ika-pro-architecture/#per-neuron-skills): SKILL.md descriptor with name, description, version, allowed tools, allowed integrations, vetting tier, source URL, sha256, ed25519 signature, license.
Addition: description must start with "Use when…" and describe trigger conditions only. skill-creator's system prompt enforces this on draft. Validation rule on publish: reject if description contains workflow verbs ("does", "performs", "generates", "outputs", "transforms"). Vetting at the curator level catches the rest.
| Skill | BAD description | GOOD description |
|---|---|---|
brand-voice-copywriter | Rewrites copy in the brand voice using tone rules and approved phrases. | Use when drafting any external-facing copy where brand voice must be enforced (web, ads, email, social). |
cash-flow-projector | Projects cash flow over 12 weeks from accounts data. | Use when planning runway, considering a hire, or evaluating a capital allocation decision. |
systematic-debugging | Helps debug systematically by isolating variables. | Use when a bug's root cause is non-obvious or when a fix attempt has already failed once. |
Superpowers' writing-skills also requires authors to ship a baseline test: show the agent failing the task without the skill (RED), then succeeding with the skill (GREEN). This treats skills as TDD-style artifacts.
| Vetting tier | RED/GREEN requirement | Rationale |
|---|---|---|
Anthropic-shipped | not required | Trusted source; their internal QA covers this |
IKA-curated | required for new authoring; existing skills can be back-tested incrementally | Our quality bar; sets the standard |
Community-with-sig | hard requirement — publish blocked without the test pair | Forces authors to prove value; weeds out wrapper skills that don't change behavior |
skill_tests — id, skill_id, baseline_prompt, expected_red_signal, expected_green_signal, author_proof_url. Test runs at publish-time + weekly drift check.using-superpowers demands skill lookup even for simple clarifications. For a conversational concierge that talks 100+ times a day, this would burn token budget and slow turns. IKA's classifier gate already does the cheap routing.plugin.json instead./skills/ directory. We need per-neuron scoping + inheritance; flat namespace doesn't survive multi-tenant prosumer scale.IKA-curated. brainstorming · writing-plans · systematic-debugging · verification-before-completion · writing-skills. Vendor under /vendored/superpowers/<slug>/SKILL.md; pin commit; declare MIT license; sign with our ed25519. Default install: Engineering neuron in Company template; inherit-down. ~½ day.startup / clear / compact) to our Conversation Surface context-assembly path; add always_on BOOL to neuron_skills; add skill_hooks table. ~1 day.skill-creator via system prompt; add validator to publish path. ~½ day. Backfill: walk our existing curated skills and rewrite descriptions that drift into workflow-summarizing.community-with-sig tier. New skill_tests table; CI runs baseline prompt without + with skill, expects different outputs; publish blocked until pass. ~1 day for the test runner, ~½ day for UX badge.submitted-for-review, the verification-before-completion skill fires automatically and writes its evidence (logs, artifacts, asserts) to the task's review thread. ~½ day wiring.writing-skills' rules into skill-creator system prompt. The trigger-focused-description rule, the "one excellent example beats many mediocre", the "flowcharts only for non-obvious decisions", the "close loopholes explicitly" guidance — all become part of the bootstrap prompt for new drafts. ~½ day.~4 days total (S1–S6). All slot inside our existing Per-neuron Skills + Commands + Plugins sections — no new entity needed.
Three quiet wins. First: when the user installs a Superpowers skill from upstream, IKA speaks the same SKILL.md frontmatter shape — drop-in install. Second: agent-as-assignee task closures get the same discipline a senior IC would apply (verification, not assertion). Third: the next 200 skills the IKA catalog accrues are higher quality, because the description-trigger rule + RED/GREEN test pair are gates, not suggestions.
before_agent_invocation, after_task_closure, on_neuron_switch. Recommendation: ship the three named events first, extend as need surfaces.plugin.json doesn't yet specify hooks. If they ship a hook schema that differs from Superpowers', we'll have two shapes to support. Recommendation: adopt Superpowers' shape now (it's the only de-facto standard); migrate if Anthropic ships differently.