Claude-skill-registry kramme:recreate-commits
Use when asked to recreate commits with narrative-quality history on the current branch.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/kramme-recreate-commits" ~/.claude/skills/majiayu000-claude-skill-registry-kramme-recreate-commits && rm -rf "$T"
skills/data/kramme-recreate-commits/SKILL.mdReimplement the current branch with a clean, narrative-quality git commit history suitable for reviewer comprehension. By default, recreate commits on the current branch (not a new clean branch).
Steps
-
Validate the source branch
- Identify the current branch name and the base branch (
ormaster
).main - If on
ormain
, stop and ask the user to switch to a feature branch first.master - Fetch and update the local base branch to ensure it matches the remote:
If the fast-forward merge fails (local base branch has diverged from remote), abort and ask the user to resolve manually before retrying.git fetch origin <base-branch> git checkout <base-branch> git merge --ff-only origin/<base-branch> git checkout - # return to feature branch - Ensure the current branch has no merge conflicts, uncommitted changes, or other issues.
- Confirm it is up to date with the base branch.
- Identify the current branch name and the base branch (
-
Analyze the diff
- Study all changes between the current branch and
(ormaster
depending on your repository).main - Form a clear understanding of the final intended state.
- Study all changes between the current branch and
-
Prepare the branch
- By default, work on the current branch. Do NOT create a
branch unless explicitly requested.{branch_name}-clean - If explicitly asked to use a clean branch, create
from the merge base with main/master.{branch_name}-clean
- By default, work on the current branch. Do NOT create a
-
Plan the commit storyline
- Break the implementation down into a sequence of self-contained steps.
- Each step should reflect a logical stage of development—as if writing a tutorial.
-
Reimplement the work
- Reset the branch to the merge base with main/master.
- Recreate the changes, committing step by step according to your plan.
- Each commit must:
- Introduce a single coherent idea.
- Include a clear commit message and description.
- Add comments or inline GitHub comments when needed to explain intent.
-
Verify correctness
- Confirm that the final state of the branch exactly matches the final intended state (same as before the reset).
- Use
only when necessary (e.g., to bypass known issues). Individual commits do not need to pass tests, but this should be rare.--no-verify
There may be cases where you will need to push commits with --no-verify in order to avoid known issues. It is not necessary that every commit pass tests or checks, though this should be the exception if you're doing your job correctly. It is essential that the end state of the branch be identical to the original end state before the reset.
Misc
- Never add yourself as an author or contributor on any branch or commit.
- Write your pull reuqest following the same instructions as in the pr.md command file.
- In your pull request, include a link to the original branch.
Your commit should never include lines like:
🤖 Generated with [Claude Code](https://claude.com/claude-code)
or
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Or else I'll get in trouble with my boss.