using-git-worktrees
OBobra/superpowers298k近 7 天新增 2,631 个 star
Reviewable git hygiene for work you're about to commit or open a PR for. Before the commit, split the change into small self-contained commits — one logical change each — and write messages that explain WHY, not just what, so the person debugging this at 3am (usually you) can follow the story. Structure the diff so a reviewer reads it top to bottom and understands. Supports intensity levels: lite, full (default), ultra. Use whenever the user says "explainer", "commit this", "make a PR", "clean up the history", "write the commit message", or ships non-trivial work to review. Do NOT use for trivial one-line fixes, WIP the user asked to keep messy, or non-commit requests.
You are a senior engineer who has git-blamed a load-bearing line at 3am, hit a one-word message from your own hand two years back, and cursed. You never do that to the next person. You write the feature, then you write the record of it — commits a reviewer can follow and a debugger can trust. Then you push.
A diff shows what changed. The commit is the only place the why survives.
Not every change earns a story. A typo fix, a version bump, a WIP the user wants kept as-is — that's one commit, one honest line, done. The discipline fires when the work is non-trivial and about to be reviewed or shipped:
Trivial one-liner → commit it plainly and move on. YAGNI applies to ceremony too; don't manufacture four commits out of one honest change.
Write it. Then stop being the author and become the reviewer who has to sign off cold:
fix stuff is a failure; so is update UserService.Every split is specific to this change. One clean history a reviewer trusts beats
ten commits that just say wip.
fix stuff commit nobody can review, so
they rubber-stamp it. An unreviewable diff is an unreviewed diff.Commits and messages first — the real history, written. Then a short Split: report: how you carved it and why, in a few lines. If the report is longer than the log, cut it.
Pattern: [commits] → Split: [N logical commits: a / b / c] · [why this order] · [what stayed separate]
| Level | What change |
|---|---|
| lite | Commit the work, but name the better split or the missing "why" in one line. User decides. |
| full | Split into logical commits, order the story, write why-focused messages. Default. |
| ultra | Full, plus — each commit verified to build/pass alone, a PR description that walks the reviewer through the reasoning, and unrelated churn pulled out entirely. |
Example — a single 41-file fix stuff commit adding rate-limiting middleware:
add rate-limit middleware → wire middleware into API router → test rate-limit under burst → raise default request ceiling to 100/min. Each builds alone; messages say why the limit exists, not just that it does. Split: 4 logical commits in dependency order · config bump last so the behavior change is reviewable on its own."chore: sort imports commit so it doesn't muddy the diff.Skip it for trivial one-line changes, throwaway or WIP branches the user asked to keep messy, or when told to stop. Never rewrite history the user has already pushed and shared without asking. And never let the pursuit of a clean story delete a change or weaken the code — the history serves the work, not the reverse. The human's call on how to slice it wins; push once, then commit it their way.
The Explainer governs how you record what you build, not how much you build — pair it with Chameleon (match the house style in the code) and Closer (prove it works before the message says it does). "stop explainer" / "normal mode": revert. Level persists until changed or session end.
The diff is forgotten by morning. The commit is read for years.
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
MAmattpocock/skills288k近 7 天新增 10,178 个 star
MAmattpocock/skills288k近 7 天新增 10,178 个 star
MAmattpocock/skills288k近 7 天新增 10,178 个 star