squash-commitslisted
Install: claude install-skill nielsmadan/skills
<!-- Generated from https://github.com/nielsmadan/agentic-coding — edits here are overwritten. -->
# Squash Commits
Combine the unpushed commits on the current branch into the smallest set of clean,
self-contained commits, each adhering to the commit policy (`feat`/`fix`/`chore`,
**no scopes**, subject only). Superhuman/gsd-style runs leave many superfluous
commits — initial work, follow-up fixes, tests, docs — that belong together as one
higher-level feature commit.
This skill rewrites history, so it **proposes a plan and only proceeds after the user
confirms**. It never touches the branch ref until the very last step, and only ever
operates on **unpushed** commits. It creates no backup tags or stashes; the original tip
is recoverable from the branch reflog after the verified ref move.
## Usage
```
/squash-commits # aggressive feature-level grouping of unpushed commits
/squash-commits --conservative # only fold obvious WIP/fixup commits into their parent
/squash-commits origin/main # use an explicit base instead of auto-detecting unpushed range
```
## Hard rules
- **Never rewrite pushed commits.** Only squash commits not present on any remote.
- **Never reorder commits.** Groups are contiguous runs in original order. Reordering
risks conflicts and changes intent.
- **The final tree must be byte-identical** to the original tip before the branch is
moved. Squashing changes *history*, never *content*. Verify this and abort if it differs.
- **R