Done - Reset for next task

VerifiedSafe

Checks for any uncommitted changes using `git status --porcelain` and stops if any exist; otherwise switches to the default branch (master or main) and pulls the latest changes. Ensures a clean working directory ready for the next task.

Sby Skills Guide Bot
DevelopmentBeginner
406/2/2026
Claude Code
#git#reset#branch-switching#pull

Recommended for

Our review

Resets the working directory for the next task by ensuring no uncommitted changes exist, switching to the main branch and pulling the latest changes.

Strengths

  • Automates a multi-step manual process
  • Prevents conflicts by first checking for uncommitted changes
  • Maintains repository integrity by only proceeding after validation

Limitations

  • Only handles master/main branches
  • Does not discard uncommitted changes – requires user action
  • Depends on network connectivity for the pull
When to use it

At the end of a task, to cleanly prepare the repository for the next task.

When not to use it

When you have uncommitted changes that you want to keep on the current branch.

Security analysis

Safe
Quality score88/100

The skill only uses standard Git commands (status, checkout, pull) within the local repository, with no external data exfiltration, destructive operations, or execution of arbitrary code.

No concerns found

Examples

Finish current task
/done
Reset repo to main
Reset the repository to the main branch with the latest changes, but first check for uncommitted changes.

name: done description: Reset the working directory for the next task by ensuring no uncommitted changes exist, then switching to the main branch and pulling latest. disable-model-invocation: true allowed-tools: Bash(git *)

Done - Reset for next task

You are finishing up the current work and resetting the repo to be ready for the next task.

Steps

  1. Check for uncommitted changes: Run git status --porcelain. If there is ANY output (staged, unstaged, or untracked files), stop immediately and tell the user:

    • List the uncommitted/untracked files
    • Tell them to commit or stash their changes before running /done
    • Do NOT proceed to the next steps
  2. Determine the default branch: Run git branch --list master main to check which exists. Prefer master if it exists, otherwise use main. If neither exists, tell the user that no master or main branch was found and stop.

  3. Switch to the default branch: Run git checkout <branch> where <branch> is the branch determined in step 2.

  4. Pull latest changes: Run git pull to fetch and merge the latest changes from the remote.

  5. Confirm: Tell the user they are now on the default branch with the latest changes and ready to start the next task.

Related skills