本文へ移動
cccskills
無料GitHub で公開

worktree-status

Audit all git worktrees in the current project. Use when the user asks about worktree status, which branches are merged, which have uncommitted changes, or which worktrees can be safely cleaned up.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

worktree-status

Report the status of every git worktree for the current project, covering dirty state and merge status.

When to use

  • User asks "which worktrees can I clean up?"
  • User asks "what's the status of my worktrees / branches?"
  • Before batch-cleaning worktrees, to avoid losing uncommitted work

Procedure

1. Pull latest main (MANDATORY)

You MUST pull latest main before any status checks. Without this, merge detection (both ancestry and content diff) will produce stale results and you may mistakenly conclude a branch is not merged.

cd "$(git rev-parse --show-toplevel)" && git pull origin main

2. Collect worktree info

PROJECT_DIR="$(git rev-parse --show-toplevel)"

for wt in $(git worktree list --porcelain | grep "^worktree " | sed 's/^worktree //' | grep -v "$PROJECT_DIR$"); do
  branch=$(git -C "$wt" branch --show-current 2>/dev/null)
  [ -z "$branch" ] && branch="(detached)"
  name=$(basename "$wt")

  # dirty?
  if [ -z "$(git -C "$wt" status --short 2>/dev/null)" ]; then
    dirty="clean"
  else
    dirty="DIRTY"
  fi

  # merged into origin/main?
  # NOTE: `git merge-base --is-ancestor` does NOT detect squash-merged
  # branches. Always follow up with a content diff (step 3) for branches
  # that appear "not merged".
  if [ "$branch" != "(detached)" ]; then
    if git merge-base --is-ancestor "$branch" origin/main 2>/dev/null; then
      merged="merged"
    else
      merged="not merged (verify with content diff)"
    fi
  else
    merged="n/a"
  fi

  echo ""
  echo "[$name]  branch=$branch  $dirty  $merged"
  if [ "$dirty" = "DIRTY" ]; then
    git -C "$wt" status --short 2>/dev/null | sed 's/^/  /'
  fi
done

3. Detect squash-merged branches (content diff)

For any branch that shows "not merged", check whether the branch's changes are already in main. The correct method is:

  1. Find the files the branch actually changed (relative to merge-base).
  2. For each changed file, compare the branch version with main. If all files are identical, the branch was squash-merged.

⚠️ Do NOT use git diff origin/main <branch> — that compares the two tips directly, so commits added to main after the branch diverged will show up as false differences.

BRANCH="<branch>"
BASE=$(git merge-base origin/main "$BRANCH")

# List files the branch touched
FILES=$(git diff --name-only "$BASE" "$BRANCH")

# Compare each file between branch and current main
for f in $FILES; do
  d=$(git diff "$BRANCH" origin/main -- "$f" | wc -l)
  if [ "$d" != "0" ]; then
    echo "❌ $f — differs"
  else
    echo "✅ $f — identical in main"
  fi
done
# All ✅ = squash-merged

4. Present results

Always present results as a Markdown table. Every worktree must appear as a row. Never use abbreviated or prose-only summaries.

WorktreeBranchDirtyMergedCan clean?
example-wtfeat-foo✅ clean✅ squash-merged✅
another-wtfix-bar⚠️ 3 files❌ not merged❌ dirty + not merged
detached-wt(detached)⚠️ 14 filesn/a❌ has uncommitted changes

Column definitions:

  • Dirty: ✅ clean or ⚠️ N files
  • Merged: ✅ merged / ✅ squash-merged (confirmed via content diff) / ❌ not merged / n/a
  • Can clean?: ✅ only when merged (or squash-merged) AND clean

Add extra columns (e.g. notes) only when relevant.

5. Cleanup (only when asked)

Only clean worktrees the user explicitly approves. For each:

NAME="<worktree-name>"
git worktree remove "/path/to/$NAME"
git branch -D "<branch>"  # only if the branch is no longer needed

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

Use when developing in packages/agent-core-v2 (the DI × Scope agent engine) — adding or modifying a domain Service, choosing a LifecycleScope, wiring DI dependencies, splitting a domain across scopes, owning or migrating a config section, gating behavior behind an experimental flag, raising coded errors, working on the permission system, writing DI/Scope tests, porting business logic from agent-core (v1) to v2, triaging a main-branch commit against v2, or exposing a v2 domain over server-v2 while keeping the /api/v1 wire contract compatible with released clients. Self-contained guide organized by development stage (orient → design → implement → test → verify) plus align workflows for v1→v2 migration, main-branch commit triage, and server-v2 wire exposure; each file carries the rules, examples, and red lines for its step.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

Apply an approved sub-skill grouping by moving user-specified skills into a parent bundle, with timestamped backups of every modified directory.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

dogfood

無料

Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", "test this app/site/platform", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

electron

無料

Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

Use when generating changesets in the pythinker-code repository — deciding whether to write one, which package to list, the bump level, the wording, and the confirmation workflow.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

PyModel のスキルをすべて見る

このスキルの問題を報告する