What’s New

superpowers

AI

An agentic skills framework & software development methodology that works.

Latest v6.2.0 · by obraWebsiteobra/superpowers

Changelog

v6.2.0

Added
  • Gemini CLI support is restored with install docs and the gemini-tools.md tool-mapping reference
Changed
  • The workspace is now plan-scoped: .superpowers/sdd/ resolves to a per-plan directory .superpowers/sdd/<plan-basename>/, sdd-workspace requires the plan file, task-brief and review-package write into their plan's directory, the ledger names its plan on its first line, and the workspace is deleted once the final review is clean
  • The review-fix loop now resumes the implementer with resume-the-implementer semantics instead of fresh dispatches, includes a scoped re-review prompt so the re-reviewer checks the fixes rather than re-reading the whole task, and installs a five-round circuit breaker with controller adjudication when it trips
  • testing-anti-patterns.md is renamed to writing-good-tests.md and rebuilt as a positive catalog with six rules, a falsifiability discipline including naming production changes that would fail the test, and a closing mutation check
  • TDD's Why Order Matters section is removed but its prose rebuttals survive as rationalization rows in the Common Rationalizations table
  • finishing-a-development-branch no longer offers to discard work in the completion menu; discard survives only as an explicit-request-only path with typed-confirmation ritual
  • Recap and persuasion prose removed from brainstorming, systematic-debugging, dispatching-parallel-agents, verification-before-completion, executing-plans, subagent-driven-development, requesting-code-review, receiving-code-review, using-git-worktrees, writing-plans, and writing-skills
  • PR creation is now forge-agnostic, using your forge's CLI or the URL printed on push instead of a blessed list of tools
  • The SessionStart hook now dispatches via Git Bash by declaring shell: bash, which Claude Code ≥ 2.1.81 resolves to Git for Windows directly and surfaces an actionable install prompt when Git Bash is missing
Fixed
  • find-polluster.sh now correctly matches test files by fixing the ./ prefix mismatch in the -path pattern, preventing double-prefixing when a caller-supplied pattern includes the prefix, and handling **/ patterns that were silently skipping tests directly under the base directory
  • The worktree path in finishing-a-development-branch is no longer recomputed after cleanup has changed directory, fixing a bug where provenance checks never matched and cleanup silently no-oped
v6.2.0 (2026-07-23)
Subagent-Driven Development

Two structural changes to how SDD tracks progress and closes out review findings, both developed against live eval campaigns.

  • The workspace is now plan-scoped. .superpowers/sdd/ had no plan identity and no end-of-life: a follow-up plan in the same working tree could read the previous plan's ledger as its own progress (observed in the wild, with multiple contamination rounds and ad-hoc workarounds). sdd-workspace now requires the plan file and resolves a per-plan directory, .superpowers/sdd/<plan-basename>/; task-brief and review-package write into their plan's directory (review-package gains the plan file as its first argument); the ledger names its plan on its first line; and the workspace is deleted once the final review is clean — git history is the durable record. Baseline evals showed controllers already refused foreign ledgers, but at a cost of 6–13 tool calls of cross-plan git forensics per resume; plan-scoping makes the answer structural instead. (25/25 baseline and GREEN eval runs documented in docs/specs/ and docs/plans/.)
  • The review-fix loop resumes the implementer. The lifecycle restructure gives fix rounds resume-the-implementer semantics instead of fresh dispatches, adds a scoped re-review prompt (re-review-prompt.md) so the re-reviewer checks the fixes rather than re-reading the whole task, and installs a five-round circuit breaker with controller adjudication when it trips. SKILL.md reorganizes by lifecycle, and its Red Flags convert to the house rationalization-table form.
Skills

A branch-wide compression campaign: recap sections, social proof, and benefits-selling prose aimed at a reader who has already invoked the skill are gone, with every load-bearing argument folded into a rationalization-table row or moved to its point of use. Each cut was micro-tested with subagent probes, and the one cut that measurably degraded behavior was reworked rather than shipped.

  • testing-anti-patterns.md is now writing-good-tests.md. The TDD reference doc is rebuilt as a positive catalog — six rules that lead with the GOOD example — and absorbs a falsifiability discipline: name the production change that would fail the test, derive expectations independently of the code under test, and a closing mutation check. It closes two holes by name: the string-presence trap (grep-style tests on scripts, skills, and prompts counterfeit falsifiability — the observable is behavior, never text) and the change-detector trap (a constant assertion can fail and still protect nothing), each with a hard stop in the gate function. Trivial code and human prose earn no test; the trigger broadens from "adding mocks" to any test writing.
  • TDD's "Why Order Matters" rebuttals survive as rationalization rows. Deleting the section outright measurably degraded test-first behavior under "just write it, tests after" pressure (control 8/10 → treatment 5/10, corroborated on Claude and Codex), so each prose rebuttal now lives in its Common Rationalizations row — the section is gone but the arguments fire where an agent hits them mid-rationalization.
  • finishing-a-development-branch no longer offers to discard your work. The completion menu dates from when throwing away branches was routine; "Discard this work" next to "Merge" advertised destroying finished, passing work. Discard survives as an explicit-request-only path with the same typed-confirmation ritual. The same pass made PR creation forge-agnostic (your forge's CLI or the URL printed on push, not a blessed list of tools) and fixed a real bug: the worktree path was recomputed after cleanup had already changed directory, so provenance checks never matched and cleanup silently no-oped.
  • Recap and persuasion prose removed across the library. brainstorming, systematic-debugging, dispatching-parallel-agents, verification-before-completion, executing-plans, subagent-driven-development, requesting-code-review, receiving-code-review, using-git-worktrees, writing-plans, and writing-skills all drop their Bottom Line / Key Principles / Real-World Impact / Advantages sections; using-git-worktrees and finishing-a-development-branch convert their guard sections to the house Excuse/Reality rationalization table.
Windows
  • The SessionStart hook now dispatches via Git Bash. The hook's command string starts with a quoted path, which broke both shells Claude Code might hand it to: PowerShell parsed the quoted string as an expression and died with a parser error (#1751), and cmd.exe's quote-stripping rule truncated the command when the profile path contained a metacharacter like ( (#1918) — either way the bootstrap silently never loaded. The hook now declares shell: "bash", which Claude Code ≥ 2.1.81 resolves to Git for Windows directly, and which surfaces an actionable install prompt when Git Bash is missing. Older Claude Code versions ignore the unknown key and behave as before. Verified end-to-end on Linux, Windows 11 with Git Bash under a hostile path, and Windows 11 without Git Bash.
Harness Support
  • Gemini CLI support is restored. The v6.1.0 removal (on the news that Google had EOLed the Gemini CLI) was premature; the install docs and the gemini-tools.md tool-mapping reference are back while permanent removal gets a proper evaluation. (#1959)
Fixes
  • find-polluter.sh actually finds test files now. find . emits ./-prefixed paths, so the documented -path "src/**/*.test.ts" pattern matched nothing — and wc -l on empty input then reported "Found 1". Fixed the prefix mismatch (#2008, #2011), plus two follow-ups: a caller-supplied ./-prefixed pattern no longer double-prefixes into a never-matching form, and **/ is also matched collapsed so tests directly under the base directory (src/top.test.ts vs src/**/*.test.ts) aren't silently skipped. The script gains a deterministic test suite.
  • The Codex package script works beyond macOS. Deterministic-metadata tar flags were bsdtar-only spellings, staged file modes depended on two umasks canceling out, and the test's timestamp assertion parsed bsdtar's column layout in a US timezone. GNU tar now gets equivalent flags producing byte-identical headers, modes are pinned canonical, and the test asserts mtime via tarfile.
  • SDD's skill test no longer flakes. The file's worst case exceeded the runner's per-file ceiling (raised to 900s), and the assert helpers matched free-form model prose case-sensitively; matching is now case-insensitive and assert_order dumps output on failure so the next flake is diagnosable.
  • Docs and test cleanup after the v6.1.0 reference pruning. Dead links to the deleted claude-code-tools.md/copilot-tools.md are replaced with the current architecture (#1969), a dangling #subagent-support anchor in the Antigravity reference is dropped (#2010), and the Antigravity/Pi mapping tests assert only the surviving harness-specific mappings — scoped to the table so they fail again if it's deleted.

v6.1.1

Added
  • Add package-codex-plugin.sh script for building deterministic Codex portal packages with timestamp normalization, executable mode preservation, OpenAI metadata verification, and dirty worktree detection
Changed
  • Move worked shell-hook example in docs/porting-to-a-new-harness.md from Codex to Cursor
Fixed
  • Codex no longer re-registers the Claude SessionStart hook by declaring an explicit empty hooks object in the manifest
  • Correct stale hooks-codex.json pointer in docs/windows/polyglot-hooks.md
  • Fix the Codex plugin category to Developer Tools
Removed
  • Remove orphaned Codex session-start dead code in hooks/session-start-codex and its test cases
v6.1.1 (2026-07-02)
Codex
  • Codex no longer re-registers the Claude SessionStart hook. v6.1.0 removed the Codex hook config and its manifest hooks pointer, meaning to stop Codex from installing a SessionStart hook — but with no hooks field, Codex fell back to auto-discovering hooks/hooks.json, the Claude Code SessionStart hook that the marketplace ships from the repo root, and re-registered it along with its install-time trust prompt. The Codex manifest now declares an explicit empty hooks object (hooks: {}), which Codex reads as "no hooks" instead of reaching the auto-discovery fallback. An absent field, [], and an empty inline list all collapse back to the fallback, so the value has to be exactly {}.
  • Removed orphaned Codex session-start dead code. hooks/session-start-codex had no caller once the Codex hook config was deleted, so it and its redundant test cases are gone. The worked shell-hook example in docs/porting-to-a-new-harness.md moves from Codex — now native skill discovery with no session-start hook — to Cursor, a live shell-hook harness, and the stale hooks-codex.json pointer in docs/windows/polyglot-hooks.md is corrected. The Codex plugin category is also fixed to "Developer Tools".
Packaging
  • New package-codex-plugin.sh for building the Codex portal package. A maintainer script produces a deterministic Codex "portal" archive — .zip by default, tar.gz on request — that normalizes entry timestamps, preserves executable modes, verifies every packaged skill ships its OpenAI metadata, includes the app and composer icons, and refuses to run against a dirty worktree. The packaged manifest keeps the source hooks: {} object so a portal-installed plugin avoids the same SessionStart auto-discovery, and the script can rebuild a byte-identical archive from a saved metadata source. Covered by a new test suite.

v6.1.0

Added
  • Codex can now install from the marketplace with a repo-local Codex marketplace manifest at .agents/plugins/marketplace.json
Changed
  • Compressed the using-superpowers bootstrap by replacing the graphviz skill-flow diagram with prose, folding the Instruction-Priority section into User Instructions, dropping the per-platform How to Access Skills walkthrough, and trimming the Platform Adaptation pointer
  • Pruned per-harness tool-mapping references to retain only harness-specific notes such as subagent dispatch, task tracking, and instructions-file paths
Removed
  • Deleted claude-code-tools.md and copilot-tools.md reference files as they contained no harness-specific content
  • Codex no longer ships a SessionStart hook; removed hooks-codex.json config and its manifest registration
  • Removed Gemini CLI support following Google's EOL on 2026-06-18; Gemini is removed from install docs, subagent-capable platform lists, eval-harness description, and its tool-mapping reference is deleted
Lower Per-Session Token Cost

The using-superpowers bootstrap is injected into every session, so its size is paid for constantly. This release trims it and the per-harness references it points to, without dropping behavior-shaping content.

  • Compressed the using-superpowers bootstrap. Replaced the graphviz skill-flow diagram with the prose it encoded, folded the standalone Instruction-Priority section into User Instructions, dropped the per-platform "How to Access Skills" walkthrough, and trimmed the Platform Adaptation pointer to the harnesses that still ship a reference file. The full Red Flags rationalization table and the user-instruction precedence rules are unchanged.
  • Pruned the per-harness tool-mapping references. The verbose action-to-tool tables restated guidance modern agents already follow. Each reference file is trimmed to the harness-specific notes that still carry weight — subagent dispatch, task tracking, instructions-file paths — and claude-code-tools.md and copilot-tools.md, which had nothing harness-specific left, are deleted.
Codex
  • Codex can install from the marketplace. Codex marketplace sources expect a .agents/plugins/marketplace.json at the marketplace root; the repo only shipped the Claude marketplace file, so Codex could name the marketplace but found no installable plugin entries. A repo-local Codex marketplace manifest now points at the same repository root, so the plugin is installable from Codex.
  • Codex no longer ships a SessionStart hook. Codex reliably triggers skills on its own, and the bootstrap hook made the UX worse rather than better. The Codex hook config (hooks-codex.json) and its manifest registration are removed.
Harness Support
  • Gemini CLI support removed. Google EOLed the Gemini CLI on 2026-06-18; the extension can no longer be installed or updated. Gemini is gone from the install docs, the subagent-capable platform lists, and the eval-harness description, and its tool-mapping reference is deleted.

v6.0.3

Added
  • sdd-workspace helper to resolve SDD workspace per worktree
Changed
  • SDD scratch files moved from .git/ to .superpowers/sdd/ directory to avoid Claude Code protection conflicts
  • .superpowers/sdd/ directory is git-ignored and kept out of git status and commits
Subagent-Driven Development
  • SDD scratch files moved out of .git/. Claude Code treats .git/ as a protected path and denies agent writes there, so an implementer subagent writing its report into .git/sdd/ got blocked mid-run. Task briefs, implementer reports, review diffs, and the progress ledger now live in a self-ignoring .superpowers/sdd/ directory in the working tree — kept out of git status and out of commits, and resolved per worktree by a shared sdd-workspace helper. One caveat: because the workspace is git-ignored working-tree scratch, git clean -fdx will delete the progress ledger; recover from git log if that happens. (#1780)

v6.0.2

Removed
  • Remove the evals submodule from the shipped plugin as it broke plugin installs for some users
Install Fixes
  • We no longer ship the evals submodule. It broke plugin installs for some users, so the eval harness now lives in its own repo, separate from the published plugin. (#1778, #1774)

v6.0.0

Added
  • Add support for Kimi Code harness with plugin manifest and marketplace installation
  • Add support for Pi harness as a session-start extension with native skills
  • Add support for Antigravity harness with direct plugin installation and bootstrap from first message
  • Implement pre-flight plan validation to check for internal conflicts before the first task
  • Add task-brief and review-package scripts to write task text and review diffs as files instead of pasted text
  • Add Global Constraints block to plans to list rules that bind every task
  • Add per-task Interfaces block to plans to specify what each task consumes and produces
  • Implement single whole-branch review at end of run on the most capable model instead of re-reviewing task by task
Changed
  • Rewrite of subagent-driven-development task review system to use a single reviewer per task instead of two, reducing token usage by approximately 50% and improving speed
  • Replace separate spec-reviewer-prompt.md and code-quality-reviewer-prompt.md files with a single task-reviewer-prompt.md file
  • Move worktrees from global ~/.config/superpowers/worktrees/ directory to project-local .worktrees/ directory
  • Make reviewer prompts read-only and prevent reviewers from modifying the working tree or branch
  • Require explicit model specification for every dispatch instead of allowing unnamed models to inherit the session's most expensive model
  • Ban controller ability to suppress findings or pre-rate severity in reviewer judgments
  • Add file and line evidence backing to reviewer answers and progress ledger for resuming interrupted work
  • Rewrite skills' tool calls to be significantly more vendor-neutral
  • Improve brainstorming visual companion security model with authentication
  • Improve brainstorming visual companion to survive restarts and dropped connections
v6.0.0 (2026-06-16)

Superpowers 6.0 is a big release. The headline is a rewrite of how subagent-driven-development reviews each task — cheaper, stricter, and harder to game.

While these numbers won't hold on every harness and for every workload, in our evals, Claude Code and Codex produce similar high-quality results roughly twice as fast and while spending almost 50% fewer tokens.

It also adds three new harnesses (Kimi Code, Pi, and Antigravity), gives the brainstorming visual companion a better security model, and rewrites a number of skills' tool calls to be significantly more vendor-neutral.

Visible Changes
  • The two per-task reviewer prompts became one. spec-reviewer-prompt.md and code-quality-reviewer-prompt.md are gone, replaced by a single task-reviewer-prompt.md. If you dispatch the old files directly, switch to the new one.
  • The legacy global worktree directory is gone. using-git-worktrees and finishing-a-development-branch no longer use ~/.config/superpowers/worktrees/. Worktrees now land in the project — an existing .worktrees/ or worktrees/ if you have one, otherwise a fresh .worktrees/ — unless you say otherwise.
New Harness Support

Superpowers now runs on three more harnesses. Each ships its own bootstrap, a tool-mapping reference, and tests, and each gets its own install section in the README.

  • Kimi Code — a plugin manifest, install docs, and manifest tests; install from Kimi's marketplace or straight from the repo. (initial manifest by @qer)
  • Pi — a session-start extension that registers the skills and injects the using-superpowers bootstrap. Pi has native skills, so it needs no compatibility shim.
  • Antigravity (agy) — installs the plugin directly and bootstraps from the first message; verified end-to-end against the standard "make a react todo list" acceptance test.
Subagent-Driven Development

A long run of cost-and-quality experiments on real projects reshaped how the controller reviews each task. The old flow ran two reviewers per task and leaned on the controller's judgment for model choice and severity, and both turned out to be expensive and easy to game. The new flow runs one reviewer per task, hands work off as files instead of pasted text, and takes several judgment calls away from the controller.

  • One reviewer per task, two verdicts. A single task-reviewer-prompt.md reads the task's diff once and returns both a spec-compliance verdict and a quality verdict, so one fix pass clears both. A new "can't verify from the diff" verdict flags requirements that live in untouched code, for the controller to check itself. (#1538, #1543)
  • One broad review at the end. The run finishes with a single whole-branch review on the most capable model, instead of re-reviewing everything task by task.
  • Plans get a pre-flight read. Before the first task, the controller checks the plan for internal conflicts — and for anything the plan asks for that a reviewer would flag as a defect — and raises it all at once, rather than stumbling into it mid-run.
  • Diffs and task text move as files. A pasted diff parks itself permanently in the most expensive context, and a reviewer without one rebuilds it by hand — the single biggest reviewer cost. Two new scripts, task-brief and review-package, write the task text and the review diff to files for the subagent to read.
  • Every dispatch states its model. Left to choose, controllers stopped naming a model at all — and an unnamed model quietly inherits the session's most expensive one, so one run put all 26 of its reviewers on the top tier. The templates now require a model, with guidance that reaches for cheaper tiers when the work allows.
  • The controller can't tell a reviewer what to ignore. Real runs caught controllers coaching reviewers to skip a finding or call it "Minor at most," and the flaw shipped. Suppressing findings and pre-rating severity are now banned outright, and a defect the plan itself mandates gets reported for you to decide on rather than waved through.
  • Reviewers are read-only and skeptical of rationales. Review no longer touches the working tree or branch — a reviewer running git checkout had been orphaning later commits — and an implementer's "I left this unabstracted on purpose" no longer talks a reviewer out of a real finding.
  • Stronger evidence and reporting. Reviewers back each answer with a file and line, the implementer's report moves to a file and carries red/green evidence when TDD applies, and a progress ledger lets a controller that loses its context resume instead of redoing finished work. (#994)
Writing Plans

Plans now carry the structure the controller and reviewers used to re-derive on every dispatch.

  • A Global Constraints block lists the rules that bind every task — version floors, dependency limits, naming and copy, exact values — copied in verbatim, so they actually reach the implementers and reviewers downstream.
  • A per-task Interfaces block names exactly what each task consumes and produces, so an implementer who sees only its own task still knows its neighbors' contracts.
  • Right-sizing guidance keeps a task at the size that earns its own test cycle and a reviewer's pass, folding setup, config, and docs into the task that needs them. In testing, a plan written this way needed one round of fixes where the control needed two to four — and the control shipped a real bug.
Brainstorming Visual Companion

The visual companion is a small web server the agent opens alongside the conversation. It had no authentication at all, so on a shared or remote machine anyone who could reach the port could read your brainstorm — or inject events the agent treats as your input. This release gives it a real security model and makes it survive restarts and dropped connections.

  • A per-session key now guards everything. The agent's URL carries a one-time key, the browser tucks it into a tab-scoped cookie, and every request and WebSocket connection has to present it. This closes the door to stray local tabs and routable remote hosts alike, including the DNS-rebinding case an origin allowlist can't catch. (Closes #1014)
  • The file server stays in its sandbox. It refuses symlinks, dotfiles, and any path that climbs out of the content directory, ignores macOS resource-fork files, and sends the usual no-store and deny-framing headers. Files that hold the session key are written owner-only.
  • The companion is offered only when it helps. The skill raises it the first time a question would read better shown than told, as its own message, and lets a decline stand. Accepting opens your browser to the first screen. (Closes #755)
  • It survives restarts and flaky connections. Given a project directory, the server keeps the same port and key across restarts, so an open tab simply reconnects. The page reconnects on its own, shows a live status pill, and raises a "paused" overlay while the server is down.
  • Longer idle life, safer shutdown. The idle timeout went from 30 minutes to 4 hours, and stop-server.sh now confirms it owns the right process before signaling, so it never kills an unrelated node after a reboot. (#1703)
  • Windows launch hardening — consolidated shell detection, and Windows now relies on the idle timeout for shutdown, since Node can't track POSIX process ownership across MSYS2.
Existing Harness Updates
  • Codex now bootstraps through its own SessionStart hook rather than shared wiring, and the Codex App gained an install section and fuller tool docs (web search, AGENTS.md, personal skills). (#1540)
  • OpenCode got an action-based tool mapping across its plugin, install doc, and README, plus a bootstrap-caching test.
  • Cursor's manifest dropped its agents and commands entries, since those directories no longer exist.
One Set of Skills, Every Harness

The skills used to speak Claude Code's dialect — "use the Task tool," "put it in CLAUDE.md." This release rewrites that vocabulary in terms of what you're actually doing ("dispatch a subagent," "your instructions file") and adds a per-harness reference that maps each action to the right tool, checked against each runtime. Prose that named "Claude" now says "your agent."

  • A tool reference per harness at skills/using-superpowers/references/, covering Claude Code, Codex, Copilot, Gemini, Pi, and Antigravity.
  • finishing-a-development-branch went forge-neutral — it no longer hardcodes gh pr create, so agents push with whatever forge tooling they have. (#1609)
  • One rename: "Claude Search Optimization" is now "Skill Discovery Optimization," since the technique isn't Claude-specific.
Writing Skills

Two additions for skill authors.

  • Match the Form to the Failure — a short table for picking the right kind of guidance. A flat "don't do X" works for discipline slips but backfires when the problem is the shape of an output, where a worked example does better. The table, and a tighter scope on the existing rationalization section, steer authors to the form that actually helps.
  • Micro-Test Wording — a cheap way to check a phrasing before committing to it: sample it a handful of times against a no-guidance control and read every result by hand, treating run-to-run variance as a warning sign.
Testing

Skill-behavior testing moved out of tests/ into a new evals/ submodule built on "drill," which runs real Claude Code, Codex, and Gemini sessions and judges them with an LLM. Several in-tree bash suites retired once a stricter drill scenario covered them; the few with no equivalent stayed. From here on, tests/ holds plugin-code tests and evals/ holds skill-behavior tests, and docs/testing.md explains the split. New backends reach Antigravity, Pi, and more models, and new shell-lint and pre-commit checks guard the harness. (#1541)

Bug Fixes
  • systematic-debugging no longer forces every session into extended thinking. One bullet held the exact keyword Claude Code scans for, quietly tripping the switch on every session that loaded the skill. A hyphen breaks the keyword; the text still reads. (#1283, by @Nick Galatis)
  • The Windows SessionStart hook stopped printing a write error every session — each printf now routes through cat to absorb the broken pipe, and the output is otherwise unchanged. (#1612, reported by @silvertakana)
  • Windows foreground mode tracks the right process and clears its owner PID on MSYS2. (by @nestorluiscamachopaz)
  • The using-superpowers bootstrap no longer lists "debugging" as a skill that doesn't exist. (reported by @mhat)
  • The TDD skill links the testing anti-patterns reference. (#1532, #1529; link fix #1474 by @Stable Genius)
  • using-git-worktrees fixes its step numbering and drops stale Cursor references. (#1522, and by @fuleinist)
  • The Codex review skill swaps a private in-joke for plain guidance. (#1531)
Documentation & Contributor Guidelines
  • A guide to porting Superpowers to a new harness (docs/porting-to-a-new-harness.md) lays out the three pieces every integration needs and the one rule that makes or breaks it: load the bootstrap at session start.
  • Every PR and issue now discloses how it was made — model, harness, version, and installed plugins, or a note that it was written by hand. We weigh a contribution differently depending on what produced it. PRs also target dev, not main. The PR template, all three issue templates, and a new platform-support template carry this.
Contributors

Thanks to @mattvanhorn, @nawfal, @Nick Galatis, @silvertakana, @nestorluiscamachopaz, @qer, @mhat, @Stable Genius, @fuleinist, @dev_Hakaze, @robotsnh, Rahul, and @arittr.

v5.1.0

Added
  • Environment detection checks GIT_DIR != GIT_COMMON to determine if already in a linked worktree, with a submodule guard to prevent false detection
  • Native tool preference in worktree skills: when the harness exposes its own worktree tool, the skill defers to it and respects the user's stated preference
  • Two new sections added to CLAUDE.md for AI agents covering pre-submission checklist and unacceptable contribution types
  • New harness PRs now require a session transcript demonstrating the acceptance test with auto-triggered brainstorming in a clean session
  • New sync-to-codex-plugin script mirrors superpowers into the OpenAI Codex plugin marketplace as prime-radiant-inc/openai-codex-plugins with path/user-agnostic operation
  • requesting-code-review skill is now self-contained with persona and checklist in skills/requesting-code-review/code-reviewer.md dispatching Task (general-purpose) directly
Changed
  • using-git-worktrees and finishing-a-development-branch skills now detect when the agent is running inside an isolated worktree and prefer the harness's native worktree controls before falling back to git worktree
  • using-git-worktrees no longer creates worktrees implicitly and now asks the user for consent before creating worktrees
  • Detached HEAD handling in the finishing menu now collapses to two options when there is no branch to merge from
  • subagent-driven-development now dispatches Task (general-purpose) instead of the named code-reviewer agent
Fixed
  • finishing-a-development-branch only cleans up worktrees inside .worktrees/ created by superpowers, leaving external worktrees untouched
  • Hardcoded /Users/jesse paths in skill examples replaced with generic placeholders
  • Bootstrap content is now cached at module level in OpenCode, eliminating repeated fs.existsSync and fs.readFileSync calls on every agent step
Removed
  • Legacy slash commands /brainstorm, /execute-plan, and /write-plan have been removed; use superpowers:brainstorming, superpowers:executing-plans, and superpowers:writing-plans directly instead
  • superpowers:code-reviewer named agent has been removed; dispatch Task (general-purpose) with the prompt template from skills/requesting-code-review/code-reviewer.md instead
  • Integration sections have been removed from skills
Removals
  • Legacy slash commands removed/brainstorm, /execute-plan, and /write-plan are gone. They were deprecated stubs that did nothing but tell the user to invoke the corresponding skill. Invoke superpowers:brainstorming, superpowers:executing-plans, and superpowers:writing-plans directly instead. (#1188)
  • superpowers:code-reviewer named agent removed — the agent was the plugin's only named agent and was used by exactly two skills, while every other reviewer/implementer subagent in the repo dispatches general-purpose with a prompt template alongside its skill. The agent's persona and checklist have been merged into skills/requesting-code-review/code-reviewer.md as a self-contained Task-dispatch template. Anyone dispatching Task (superpowers:code-reviewer) should switch to Task (general-purpose) with the prompt template instead. (PR #1299)
  • Integration sections removed from skills — these were a legacy of the time before agents had native skills systems and didn't help with steering.
Worktree Skills Rewrite

using-git-worktrees and finishing-a-development-branch now detect when the agent is already running inside an isolated worktree and prefer the harness's native worktree controls before falling back to git worktree. Behavior was TDD-validated and cross-platform-checked across five harnesses. (PRI-974, PR #1121)

  • Environment detection — both skills check GIT_DIR != GIT_COMMON before doing anything; if already in a linked worktree, creation is skipped entirely. A submodule guard prevents false detection.
  • Consent before creating worktreesusing-git-worktrees no longer creates worktrees implicitly; the skill asks the user first. Fixes #991 (subagent-driven-development was auto-creating worktrees without consent).
  • Native tool preference (Step 1a) — when the harness exposes its own worktree tool (e.g. Codex), the skill defers to it. The user's stated preference is respected when expressed.
  • Provenance-based cleanupfinishing-a-development-branch only cleans up worktrees inside .worktrees/ (created by superpowers); anything outside is left alone. Fixes #940 (Option 2 was incorrectly cleaning up worktrees), #999 (merge-then-remove ordering), and #238 (cd to repo root before git worktree remove).
  • Detached HEAD handling — the finishing menu collapses to two options when there is no branch to merge from.
  • Hardcoded /Users/jesse paths in skill examples replaced with generic placeholders. (#858, PR #1122)
Contributor Guidelines for AI Agents

Two new sections at the top of CLAUDE.md (symlinked to AGENTS.md) speak directly to AI agents. An audit of the last 100 closed PRs against this repo showed a 94% rejection rate driven by AI-generated slop: agents that didn't read the PR template, opened duplicates, fabricated problem descriptions, or pushed fork- or domain-specific changes upstream.

  • Pre-submission checklist — read the PR template, search for existing PRs, verify a real problem exists, confirm the change belongs in core, and show the human partner the complete diff before submitting.
  • What we will not accept — third-party dependencies, "compliance" rewrites of skill content, project-specific configuration, bulk PRs, speculative fixes, domain-specific skills, fork-specific changes, fabricated content, and bundled unrelated changes.
  • New harness PRs require a session transcript — most past new-harness integrations copied skill files or wrapped with npx skills instead of loading the using-superpowers bootstrap at session start. The acceptance test ("Let's make a react todo list" must auto-trigger brainstorming in a clean session) and a complete transcript are now required.
Codex Plugin Mirror Tooling

New sync-to-codex-plugin script mirrors superpowers into the OpenAI Codex plugin marketplace as prime-radiant-inc/openai-codex-plugins. Path/user-agnostic so any team member can run it. (PR #1165)

  • Clones the fork fresh into a temp directory per run, regenerates overlays inline, and opens a PR; auto-detects upstream from the script's own location and preflights rsync/git/gh auth/python3.
  • --bootstrap flag for first-time setup; EXCLUDES patterns anchored to source root; assets/ excluded.
  • Mirrors CODE_OF_CONDUCT.md; drops the agents/openai.yaml overlay.
  • Seeds interface.defaultPrompt in the mirrored plugin.json. (PR #1180 by @arittr)
  • Codex plugin files are committed to the source repo so the sync script uses canonical versions; Codex marketplace metadata is preserved.
OpenCode
  • Bootstrap content cached at module levelgetBootstrapContent() was calling fs.existsSync + fs.readFileSync + frontmatter regex on every agent step (the experimental.chat.messages.transform hook fires on every step in OpenCode's agent loop). Now read once, cached for the session lifetime, with a null sentinel for the missing-file case. 15 regression tests cover cache behavior, fs call counts, the injection guard, the missing-file sentinel, and cache reset. (Fixes #1202)
  • Integration tests modernized.
  • Install caveats clarified in the README.
Code Review Consolidation

requesting-code-review is now self-contained: the persona, checklist, and dispatch template live in skills/requesting-code-review/code-reviewer.md and the skill dispatches Task (general-purpose) directly. (PR #1299)

  • Single source of truth — the persona/checklist that previously lived in both agents/code-reviewer.md and the skill's placeholder template (and drifted independently) is now one file.
  • subagent-driven-development follows suit — its code-quality-reviewer-prompt.md now dispatches Task (general-purpose) instead of the named agent.
  • Behavioral test addedtests/claude-code/test-requesting-code-review.sh plants real bugs (SQL injection, plaintext password handling, credential logging) into a tiny project and asserts the dispatched reviewer flags every planted issue at Critical/Important severity and refuses to approve the diff.
  • Codex and Copilot workaround docs trimmed — the "Named agent dispatch" sections in references/codex-tools.md and references/copilot-tools.md documented how to flatten a named agent into a generic dispatch. With no named agents shipping, the workaround is unnecessary; both sections were dropped.
Subagent-Driven Development
  • No more pause every 3 tasks — the "review after each batch (3 tasks)" cadence in requesting-code-review (originally for executing-plans) was leaking into subagent-driven-development. Replaced with "each task or at natural checkpoints" plus an explicit continuous-execution directive.
  • SDD integration test now runs its assertions — three independent bugs caused the test to silently bail before printing any verification results: an unresolved .. segment in the working-dir path, a set -euo pipefail interaction with find | sort | head -1 (SIGPIPE on the producer killed the script), and a missing --plugin-dir on the claude -p invocation that caused the test to load the installed plugin instead of the working tree. All three fixed; six verification tests now actually run against a real end-to-end SDD run.
Cursor
  • Windows SessionStart hook routed through run-hook.cmd instead of invoking the extensionless session-start script directly. Fixes Windows opening the file in an editor instead of running it. Also removed an accidental UTF-8 BOM from hooks-cursor.json.
Gemini CLI
  • Subagent dispatch mapping — Gemini's Task dispatch now maps to @agent-name / @generalist, with parallel subagent dispatch documented for independent tasks.
Skills
  • Terminology cleanups across skill content.
Documentation & Install
  • Factory Droid installation instructions added to README.
  • Quickstart install links in README. (PR #1293 by @arittr)
  • Codex plugin install guidance updated. (PR #1288 by @arittr)
  • Codex wait mapping corrected to wait_agent in the tools reference.
  • Install order reorganized; Codex install instructions cleaned up.
  • Removed vestigial CHANGELOG.md in favor of RELEASE-NOTES.md as the single source. (PR #1163 by @shaanmajid)
  • Discord invite link fixed; release announcements link and a detailed Discord description added to the Community section.
Community
  • @shaanmajid — vestigial CHANGELOG.md removal (PR #1163)
  • @arittr — README quickstart install links (#1293), Codex plugin install guidance (#1288), sync-to-codex-plugin interface.defaultPrompt seed (#1180)

v5.0.7

Added
  • Session-start hook now detects the COPILOT_CLI environment variable and emits SDK-standard additionalContext format for Copilot CLI support
  • Added references/copilot-tools.md with Claude Code to Copilot CLI tool equivalence table
  • Added Copilot CLI to the using-superpowers skill's platform instructions and README installation section
Changed
  • Moved bootstrap injection from experimental.chat.system.transform to experimental.chat.messages.transform, prepending to the first user message instead of adding a system message
Fixed
  • Bootstrap text no longer advertises misleading configDir/skills/superpowers/ path and uses native skill tool instead
GitHub Copilot CLI Support
  • SessionStart context injection — Copilot CLI v1.0.11 added support for additionalContext in sessionStart hook output. The session-start hook now detects the COPILOT_CLI environment variable and emits the SDK-standard { "additionalContext": "..." } format, giving Copilot CLI users the full superpowers bootstrap at session start.
  • Tool mapping — added references/copilot-tools.md with the full Claude Code to Copilot CLI tool equivalence table
  • Skill and README updates — added Copilot CLI to the using-superpowers skill's platform instructions and README installation section
OpenCode Fixes
  • Skills path consistency — the bootstrap text no longer advertises a misleading configDir/skills/superpowers/ path that didn't match the runtime path. The agent should use the native skill tool, not navigate to files by path. Tests now use consistent paths derived from a single source of truth. (#847, #916)
  • Bootstrap as user message — moved bootstrap injection from experimental.chat.system.transform to experimental.chat.messages.transform, prepending to the first user message instead of adding a system message. Avoids token bloat from system messages repeated every turn (#750) and fixes compatibility with Qwen and other models that break on multiple system messages (#894).

v5.0.6

Added
  • Add explicit "No Placeholders" section in writing-plans defining plan failures as TBD, vague descriptions, undefined references, and references similar to Task N
  • Add named agent dispatch mapping documenting translation from Claude Code's named agent types to Codex spawn_agent with worker roles
  • Add environment detection and Codex App finishing sections for worktree-aware skills
  • Add Codex App compatibility design spec covering read-only environment detection, worktree-safe skill behavior, and sandbox fallback patterns
Changed
  • Replace subagent review loops in brainstorming with inline Spec Self-Review checklist covering placeholder scan, internal consistency, scope check, and ambiguity check
  • Replace Plan Review Loop in writing-plans with inline Self-Review checklist covering spec coverage, placeholder scan, and type consistency
  • Restructure brainstorm server session directory to separate content/ and state/ subdirectories, with both screen_dir and state_dir paths included in server-started JSON
Fixed
  • Fix brainstorm server owner-PID monitoring false shutdowns by treating EPERM as alive and validating owner PID at startup to disable monitoring if already dead
  • Correct writing-skills documentation to say SKILL.md frontmatter supports two required fields and link to agentskills.io specification
Removed
  • Remove Windows/MSYS2-specific carve-out from start-server.sh
Inline Self-Review Replaces Subagent Review Loops

The subagent review loop (dispatching a fresh agent to review plans/specs) doubled execution time (~25 min overhead) without measurably improving plan quality. Regression testing across 5 versions with 5 trials each showed identical quality scores regardless of whether the review loop ran.

  • brainstorming — replaced Spec Review Loop (subagent dispatch + 3-iteration cap) with inline Spec Self-Review checklist: placeholder scan, internal consistency, scope check, ambiguity check
  • writing-plans — replaced Plan Review Loop (subagent dispatch + 3-iteration cap) with inline Self-Review checklist: spec coverage, placeholder scan, type consistency
  • writing-plans — added explicit "No Placeholders" section defining plan failures (TBD, vague descriptions, undefined references, "similar to Task N")
  • Self-review catches 3-5 real bugs per run in ~30s instead of ~25 min, with comparable defect rates to the subagent approach
Brainstorm Server
  • Session directory restructured — the brainstorm server session directory now contains two peer subdirectories: content/ (HTML files served to the browser) and state/ (events, server-info, pid, log). Previously, server state and user interaction data were stored alongside served content, making them accessible over HTTP. The screen_dir and state_dir paths are both included in the server-started JSON. (Reported by 吉田仁)
Bug Fixes
  • Owner-PID lifecycle fixes — the brainstorm server's owner-PID monitoring had two bugs causing false shutdowns within 60 seconds: (1) EPERM from cross-user PIDs (Tailscale SSH, etc.) was treated as "process dead", and (2) on WSL the grandparent PID resolves to a short-lived subprocess that exits before the first lifecycle check. Fixed by treating EPERM as "alive" and validating the owner PID at startup — if it's already dead, monitoring is disabled and the server relies on the 30-minute idle timeout. This also removes the Windows/MSYS2-specific carve-out from start-server.sh since the server now handles it generically. (#879)
  • writing-skills — corrected false claim that SKILL.md frontmatter supports "only two fields"; now says "two required fields" and links to the agentskills.io specification for all supported fields (PR #882 by @arittr)
Codex App Compatibility
  • codex-tools — added named agent dispatch mapping documenting how to translate Claude Code's named agent types to Codex's spawn_agent with worker roles (PR #647 by @arittr)
  • codex-tools — added environment detection and Codex App finishing sections for worktree-aware skills (by @arittr)
  • Design spec — added Codex App compatibility design spec (PRI-823) covering read-only environment detection, worktree-safe skill behavior, and sandbox fallback patterns (by @arittr)

v5.0.5

Changed
  • Restore user choice between subagent-driven and inline execution after plan writing
Fixed
  • Rename server.js to server.cjs so the brainstorming server starts correctly on Node.js 22+ where the root package.json "type": "module" caused require() to fail
  • Skip PID lifecycle monitoring on Windows/MSYS2 where the PID namespace is invisible to Node.js, preventing the server from self-terminating after 60 seconds
  • Verify the server process actually died before reporting success with SIGTERM + 2s wait + SIGKILL fallback in stop-server.sh
Bug Fixes
  • Brainstorm server ESM fix — renamed server.jsserver.cjs so the brainstorming server starts correctly on Node.js 22+ where the root package.json "type": "module" caused require() to fail. (PR #784 by @sarbojitrana, fixes #774, #780, #783)
  • Brainstorm owner-PID on Windows — skip PID lifecycle monitoring on Windows/MSYS2 where the PID namespace is invisible to Node.js, preventing the server from self-terminating after 60 seconds. (#770, docs from PR #768 by @lucasyhzlu-debug)
  • stop-server.sh reliability — verify the server process actually died before reporting success. SIGTERM + 2s wait + SIGKILL fallback. (#723)
Changed
  • Execution handoff — restore user choice between subagent-driven and inline execution after plan writing. Subagent-driven is recommended but no longer mandatory.