with one click
catchup
Summarize all changes in current branch compared to base branch
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Summarize all changes in current branch compared to base branch
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Manual E2E tester that starts the app and exercises new features end-to-end
Generate a single self-contained HTML page that is genuinely visual AND interactive — charts, diagrams, motion, tabs, comparison toggles, click-to-expand, base64-inlined images, opinionated typography. Use whenever the user wants ANY rich visual artifact from arbitrary content: explainer, research write-up, PRD or spec page, pitch, internal one-pager, "make this less boring" rebuild, scroll-snap deck, landing-style summary, distilled report. Trigger phrasings: "make me a page about X", "turn this PDF/doc into something visual", "build me a deck/talk/pitch", "explain Y in a visual way", "make this readable", "give it some eye candy", "I want something I can show the team", "less boring version of this", "rebuild that page", "redo it with more visuals". Output is one .html file that renders identically when DM'd — CDN libraries (Tailwind, Chart.js, D3, GSAP, Mermaid, Lucide) load from stable jsdelivr/unpkg URLs; every image is base64-inlined. Not for plain Markdown docs (use technical-writer), not for code revi
Vision-based visual QA reviewer — captures rendered output (live web pages, static HTML artifacts, PDFs) as screenshots, inspects them with a designer's eye for layout defects a human catches instantly, and normalizes findings into the verify pipeline format
Independent second-opinion reviewer that shells out to the local Codex CLI for a broad code review, then normalizes findings into the verify pipeline format
Comment-hygiene-only reviewer — flags ephemeral review-ID references, historical change-narration, stale comments, reviewer-appeasement, and redundant restating in the scoped diff, and normalizes findings into the verify pipeline format
Adversarial cooperation loop — player implements, /verify reviews, creates PR, passes CI
| name | catchup |
| description | Summarize all changes in current branch compared to base branch |
| argument-hint | [optional: base branch name] |
| disable-model-invocation | true |
| allowed-tools | ["Read","Bash","Grep","Glob"] |
Quickly understand all changes in the current branch by providing a smart summary of commits, changed files, and key modifications. This is optimized for the "restart workflow" - after running /clear, use /catchup to get back up to speed without reading every file.
$ARGUMENTS (optional): Base branch name to compare against
main, master, or develop/catchup, /catchup main, /catchup developCheck that we're in a git repository:
git rev-parse --git-dir
If this fails, inform the user this command requires a git repository and exit.
# Get current branch
CURRENT_BRANCH=$(git branch --show-current)
# If no argument provided, auto-detect base branch
if [ -z "$ARGUMENTS" ]; then
# Try to find default branch from remote
DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@')
# Fallback: check if main or master exists
if [ -z "$DEFAULT_BRANCH" ]; then
if git show-ref --verify --quiet refs/heads/main; then
DEFAULT_BRANCH="main"
elif git show-ref --verify --quiet refs/heads/master; then
DEFAULT_BRANCH="master"
elif git show-ref --verify --quiet refs/heads/develop; then
DEFAULT_BRANCH="develop"
else
echo "Could not auto-detect base branch. Please specify: /catchup <base-branch>"
exit 1
fi
fi
BASE_BRANCH="$DEFAULT_BRANCH"
else
BASE_BRANCH="$ARGUMENTS"
fi
Verify base branch exists:
if ! git show-ref --verify --quiet refs/heads/$BASE_BRANCH; then
echo "Error: Base branch '$BASE_BRANCH' does not exist"
exit 1
fi
Determine if there are any changes:
# Get commit count ahead
COMMITS_AHEAD=$(git rev-list --count $BASE_BRANCH..HEAD)
# Get changed files count
CHANGED_FILES=$(git diff --name-only $BASE_BRANCH...HEAD | wc -l)
If both are zero:
No changes detected between $CURRENT_BRANCH and $BASE_BRANCH.
Branches are in sync.
Exit successfully.
Collect comprehensive branch context:
# Commit history (one-line format)
git log --oneline $BASE_BRANCH..HEAD
# Changed files with status
git diff --name-status $BASE_BRANCH...HEAD
# Diff stats (lines added/removed per file)
git diff --stat $BASE_BRANCH...HEAD
# Get uncommitted changes if any
git status --porcelain
Present information in this structured format:
# Branch Catchup: {CURRENT_BRANCH}
## Overview
- **Current Branch**: {CURRENT_BRANCH}
- **Base Branch**: {BASE_BRANCH}
- **Commits Ahead**: {COMMITS_AHEAD}
- **Files Changed**: {total} ({added} added, {modified} modified, {deleted} deleted)
- **Uncommitted Changes**: {Yes/No} ({count} files)
## Commit History
{List commits with hash and message}
## Changed Files by Status
### Added Files
{List of added files}
### Modified Files
{List of modified files with diff stats}
### Deleted Files
{List of deleted files}
## Diff Statistics
{Output from git diff --stat showing lines changed per file}
## Uncommitted Changes
{If any exist, show git status output}
## File Organization
{Group files by directory/component for easier understanding}
Example:
- **Backend (src/)**: 5 files
- **Frontend (ui/)**: 3 files
- **Tests (tests/)**: 2 files
- **Docs (docs/)**: 1 file
## Key Insights
{Analyze commit messages and file changes to provide context}
- Main focus: {infer from commit messages}
- Components affected: {list major areas}
- Potential breaking changes: {flag if file names suggest}
## Next Steps
To see detailed changes in a specific file:
- Use Read tool: `Read path/to/file.py`
- Or git diff: `git diff {BASE_BRANCH}...HEAD -- path/to/file.py`
To resume work:
- Review uncommitted changes if any
- Check TODO list with TodoWrite
- Continue implementation
Only read file contents if:
Otherwise, trust that the summary provides enough context. The goal is efficiency - reading 20+ files defeats the "quick catchup" purpose.
Error: This command requires a git repository.
Current directory is not a git repository.
Error: Base branch '{BASE_BRANCH}' does not exist.
Available branches: {list branches}
Usage: /catchup [base-branch-name]
Warning: You are in a detached HEAD state.
Current commit: {hash}
Cannot determine current branch name.
You may want to create a branch first:
git checkout -b my-branch-name
This appears to be a new repository with no commits.
Cannot compare branches without commit history.
# Basic usage - auto-detect base branch
/catchup
# Compare to specific branch
/catchup develop
# Compare to main explicitly
/catchup main
# After /clear to understand current state
/clear
/catchup # "What have I been working on?"
This command works well with:
/clear - Clear state, then /catchup to understand what's there/handoff - After /catchup, use /handoff to document work/create-pr - After /catchup, review changes before creating PR/check-ci - After /catchup, ensure tests pass