Agent skill

Cleanup Workspace

by haumacher in haumacher/phoneblock

Park a finished worktree — commit real work, delete temporary/generated leftovers, then switch to the throwaway branch named after the workspace directory and reset it to origin/master.

GPL-3.0Auto-check: notesDevelopment

Install Cleanup Workspace

skills CLI
$ npx skills add haumacher/phoneblock --skill cleanup-workspace -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install haumacher/phoneblock cleanup-workspace --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/haumacher/phoneblock.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/cleanup-workspace .claude/skills/cleanup-workspace && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cleanup-workspace
GitHub stars
367
Token cost
~1.1k tokens
SKILL.md length
567 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
GPL-3.0

At a glance

Park a finished worktree — commit real work, delete temporary/generated leftovers, then switch to the throwaway branch named after the workspace directory and reset it to origin/master.

  • Works in 6 steps: Survey the workspace → Classify every uncommitted file → Verify clean → …
  • The user says clean up this workspace
  • SKILL.md covers Step 1 — Survey the workspace, Step 2 — Classify every…, Step 3 — Verify clean and Step 4 — Determine the…, plus 2 more sections
  • Calls git

What it does

Cleanup Workspace is an agent skill from haumacher/phoneblock. Park a finished worktree — commit real work, delete temporary/generated leftovers, then switch to the throwaway branch named after the workspace directory and reset it to origin/master. Use when the user says "clean up this workspace", "park this worktree", "reset back to master", or is done with a feature branch and wants the directory ready for the next task.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Git worktrees. The repository describes itself as: Der Spam-Filter für Dein Telefon. The licence is GPL-3.0.

When your agent uses it

  • The user says clean up this workspace
  • Park this worktree
  • Reset back to master
  • Is done with a feature branch and wants the directory ready for the next task

Example prompts

  • “clean up this workspace”
  • “park this worktree”
  • “reset back to master”
  • “/cleanup-workspace”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Glob, Grep

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Survey the workspace
  2. Classify every uncommitted file
  3. Verify clean
  4. Determine the throwaway branch
  5. Switch, fetch, reset
  6. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 9287ad7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cleanup Workspace loads about 1.1k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 567 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~95
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from haumacher/phoneblock at commit 9287ad7, republished under its GPL-3.0 licence (© haumacher). 567 words, ~1,143 tokens.

Download SKILL.mdSave it as .claude/skills/cleanup-workspace/SKILL.md (or your agent's skills folder).
name
cleanup-workspace
description
Park a finished worktree — commit real work, delete temporary/generated leftovers, then switch to the throwaway branch named after the workspace directory and reset it to origin/master. Use when the user says "clean up this workspace", "park this worktree", "reset back to master", or is done with a feature branch and wants the directory ready for the next task.
allowed-tools
Bash, Read, Glob, Grep

Clean Up / Park a Workspace

This repository is used through several sibling git worktrees (/home/haui/devel/phoneblock, pb-1, pb-2, pb-3, pb-fix-sip, …). Each pb-N worktree has a same-named throwaway branch (pb-1, pb-2, …) that tracks origin/master and holds no work of its own. Between tasks a worktree is parked: its feature branch is left behind (never deleted — the work lives on in origin and in the branch ref), and the directory returns to its throwaway branch at the current origin/master.

origin is haumacher/phoneblock. Always name origin explicitly.

Step 1 — Survey the workspace

bash
git status
git stash list
git worktree list

Then, for the currently checked-out branch, find work that exists only locally:

bash
git log --oneline @{upstream}..HEAD    # unpushed commits (no upstream ⇒ compare to origin/master)

Report what you found before changing anything.

Step 2 — Classify every uncommitted file

Split the dirty/untracked entries into two piles. Read or diff each file you are unsure about — never classify by filename alone.

Commit — anything that is source, config, docs, tests, or release notes; in short, work a reviewer would want. Group related files into commits with proper messages, following the repository's commit style (git log for reference) and ending each message with the Co-Authored-By: Claude trailer required by the environment.

Delete — build output and tool leftovers that were never meant to be tracked, e.g.:

  • phoneblock-dongle/firmware/sdkconfig.stale-* — ESP-IDF's backup of a regenerated sdkconfig (sdkconfig itself is git-ignored, the .stale-* copy is not, so it surfaces as untracked). Confirm it is just a generated snapshot (diff it against sdkconfig) and remove it.
  • build/, target/, scratch scripts, log files, *.orig/*.rej merge debris, editor backups.

Two rules:

  • If a file's pile is genuinely unclear, ask. Do not guess between committing and deleting.
  • Never delete something merely because it is untracked and inconvenient. Untracked source is the most common form of unsaved work.

If a file should be ignored permanently rather than deleted every time, propose the .gitignore addition — that change is itself a commit.

Stashes: leave them alone and tell the user they exist. Do not drop or pop a stash without being asked.

Step 3 — Verify clean

bash
git status --porcelain    # must print nothing

Do not continue while output remains.

Show full SKILL.md (236 more words)Show less

Step 4 — Determine the throwaway branch

It is the basename of the worktree directory — basename "$(git rev-parse --show-toplevel)" (for /home/haui/devel/pb-1 that is pb-1). Do not invent a name and do not reuse another worktree's.

Two checks before switching:

  • git worktree list — if that branch is checked out in a different worktree, the checkout will fail. Stop and ask the user which branch to park on.
  • git log --oneline origin/master..<branch> — if the throwaway branch has commits of its own, git reset --hard would discard them. Stop, show them, and ask. (Normally this is empty; that's what makes the branch throwaway.)

The main worktree (/home/haui/devel/phoneblock) parks on master itself, not on a pb-N branch.

Step 5 — Switch, fetch, reset

bash
git checkout <branch>
git fetch origin --prune --tags
git reset --hard origin/master

--hard is intended here: the point is to discard local divergence of the throwaway branch. It is safe only because steps 3 and 4 proved there is nothing to lose.

Step 6 — Report

Confirm the final state (git status, git log --oneline -3) and tell the user:

  • which commits were created (if any) and whether they still need pushing,
  • which files were deleted,
  • the branch left behind and that its work is preserved there,
  • the commit the workspace now sits at.

If commits were created on the feature branch and are not yet pushed, say so explicitly — the branch ref keeps them locally, but they exist nowhere else. Ask whether to push; do not push on your own initiative.

© haumacher, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/cleanup-workspace of haumacher/phoneblock.

Open the folder on GitHubat commit 9287ad7

Compare with similar skills

Cleanup Workspace next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cleanup Workspace compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cleanup Workspace this skillhaumacher/phoneblock367—~1.1kAutomated safety check: NotesGPL-3.0
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Migrate Core Code to Submodulestinyhumansai/openhuman42k—~2.6kAutomated safety check: PassGPL-3.0
Finishing A Development Branchfarm-fe/farm5.6k34 repos~1.8kAutomated safety check: PassMIT
Git Worktree Cleanuplobehub/lobehub83k—~2.8kAutomated safety check: PassCustom licence
Keep Codex Fastvibeforge1111/keep-codex-fast1.6k—~3.1kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Migrate Core Code to Submodules

    tinyhumansai/openhuman

    Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.

    42k GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • A skill your agent uses when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for…

    5.6k GitHub starsUsed in 34 repos~1.8k tokens
    DevelopmentAuto-check passed
  • Git Worktree Cleanup

    lobehub/lobehub

    Audits stale Git worktrees and branches with a bundled script, classifies each one, and deletes only after you approve the exact candidates.

    83k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Keep Codex Fast

    vibeforge1111/keep-codex-fast

    A skill your agent uses when Codex feels slow or bloated, when local sessions/logs/worktrees/config have grown over time, or when a user wants safe maintenance for Codex Desktop/CLI state.

    1.6k GitHub stars~3.1k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Pre-Release PR Triage

    jamiepine/voicebox

    Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.

    57k GitHub stars~3.1k tokensUpdated 4 days ago
    DevelopmentAuto-check passed

More from haumacher/phoneblock

  • Dongle Crash Analysis

    haumacher/phoneblock

    Decode and analyze an ESP32 dongle crash report (uploaded .coredump).

    367 GitHub stars~1.9k tokensUpdated 7 days ago
    Auto-check: notes
  • Fix Issue

    haumacher/phoneblock

    Start work on a GitHub issue — verify a clean workspace, read the issue, branch off the correct base (the branch where the fix will ship) as issue-<nr-<short-description, then plan the implementation.

    367 GitHub stars~1.1k tokensUpdated 7 days ago
    Auto-check: notes
  • Diag Tuning

    haumacher/phoneblock

    Tune the PhoneBlock diagnostics log analysis — inspect aggregated log signatures, find noise / signature fragmentation / PII leaks, and propose, audit and promote scrub rules (and detection rules)…

    367 GitHub stars~2.1k tokensUpdated 7 days ago
    Auto-check passed

Categories

Questions about Cleanup Workspace

What does Cleanup Workspace do?

Park a finished worktree — commit real work, delete temporary/generated leftovers, then switch to the throwaway branch named after the workspace directory and reset it to origin/master. Cleanup Workspace is an agent skill from haumacher/phoneblock. Park a finished worktree — commit real work, delete temporary/generated leftovers, then switch to the throwaway branch named after the workspace directory and reset it to origin/master.

When should I use Cleanup Workspace?

Cleanup Workspace fits situations like: the user says clean up this workspace; park this worktree; reset back to master; is done with a feature branch and wants the directory ready for the next task.

How do I install Cleanup Workspace in Claude Code?

Run `npx skills add haumacher/phoneblock --skill cleanup-workspace -a claude-code`. Or copy the skill folder (.claude/skills/cleanup-workspace in haumacher/phoneblock) into .claude/skills/cleanup-workspace in your project. Claude Code loads it when a task matches its description.

How do I install Cleanup Workspace in Codex?

Run `npx skills add haumacher/phoneblock --skill cleanup-workspace -a codex`. Or copy the skill folder (.claude/skills/cleanup-workspace in haumacher/phoneblock) into .agents/skills/cleanup-workspace in your project. Codex loads it when a task matches its description.

Can I use Cleanup Workspace in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add haumacher/phoneblock --skill cleanup-workspace -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cleanup-workspace, .gemini/skills/cleanup-workspace, .github/skills/cleanup-workspace and .opencode/skills/cleanup-workspace in your project.

What does Cleanup Workspace need to run?

Going by SKILL.md and its folder, Cleanup Workspace needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Bash, Read, Glob, Grep.

Does Cleanup Workspace access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Cleanup Workspace safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Cleanup Workspace use?

Cleanup Workspace is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cleanup Workspace use?

About 1.1k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cleanup Workspace?

Skills that share tags, products or a category with Cleanup Workspace: Finishing a Development Branch (obra/superpowers, 297k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars), Finishing A Development Branch (farm-fe/farm, 5.6k stars) and Git Worktree Cleanup (lobehub/lobehub, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cleanup Workspace?

haumacher (a GitHub user) maintains it in haumacher/phoneblock, which has 367 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 3, 2026.

Source: haumacher/phoneblock on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.