From git-tools
Summarize what changed on the current branch since the user's own last commit — a "catch me up on what my collaborators did" briefing. Identifies the user's last commit, lists every commit after it, then explains the important code changes, any breaking changes, and a functional rundown of how new features work (or how existing behavior changed). Use when the user asks to "catch up", "summarize commits since my last commit/push", "what changed while I was away", "what did my collaborator(s) do", or wants a functional rundown of recent branch history.
How this skill is triggered — by the user, by Claude, or both
Slash command
/git-tools:git-catchupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Produce a **functional briefing** of everything that landed on the current branch since the user last contributed to it. The goal is not a commit list — it's understanding: what the new code *does*, what would break the user's existing work, and how behavior changed.
Produce a functional briefing of everything that landed on the current branch since the user last contributed to it. The goal is not a commit list — it's understanding: what the new code does, what would break the user's existing work, and how behavior changed.
Three things, in this order:
Identify who "the user" is and find their last commit on the current branch.
git rev-parse --abbrev-ref HEAD # current branch
git config user.email; git config user.name # who is the user
git fetch 2>&1 | tail -3 # be current (don't fail the skill if offline)
Find the user's last commit. Match by both email AND name — commits are often authored under a different email than the configured one (e.g. a GitHub noreply address, a work vs personal address). Try email first, then name; if they disagree, prefer whichever is more recent and mention the ambiguity.
git log --author="<email>" -1 --format="%H %ci %s"
git log --author="<name>" -1 --format="%H %ci %s"
Decide the range end. By default summarize the local branch (HEAD). If the user said "since my last push", compare against the remote tracking branch (@{u} or origin/<branch>) instead, and first confirm local vs remote with git rev-list --left-right --count @{u}...HEAD.
Handle these cases explicitly:
git merge-base main HEAD).git log <baseline>..<end> --format="%h | %an | %ci | %s" # the commit list
git log <baseline>..<end> --stat --format="### %h %s (%an, %ad)%n" --date=short
The diffstat tells you where the work is (which files grew, what's new vs modified) and points you at what to read. Note new files (functional rundown candidates), large modifications (behavior changes), and deletions/renames (breaking-change candidates).
A diffstat is not a functional summary. Read the actual changes:
*.md in docs/, handoff/, design/, CONTRACTS.md, CHANGELOG.md, READMEs touched by the range. These often state the intent, the locked decisions, and explicitly call out contract/schema version bumps. They are the highest-signal-per-token source.git diff <baseline>..<end> -- <path>) to see how behavior changed, not just that it did.Use git show <sha> -- <path> or git diff <baseline>..<end> -- <path> for specifics. Parallelize reads.
For a large range, fan out: read the cluster of files behind each theme, then synthesize. Don't try to read everything — follow the diffstat's signal (biggest changes, new files, contract files, docs).
Write the three-part briefing. Guidelines:
c238263, May 27)" reads better than walking commits chronologically..gitignore, secrets, generated files, debug logging left in, TODO/FIXME spikes.path:line so they're clickable.git fetch fails (offline/no remote), continue against local refs and say the remote view may be stale.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub jigsawpsycho/claude-skills --plugin git-tools