AgentSkillsCN

Wf Cleanup

Wf 清理

SKILL.md
skill
---
name: wf-cleanup
description: マージ完了後のクリーンアップ処理を実行する。worktree、ローカルブランチ、Issue の整理を行うときに使用する。
---

# クリーンアップ

PR マージ後に worktree、ローカルブランチ、Issue を整理する。

## 前提

`.github/settings.json` からプロジェクト設定を読み取って使用する。

## 入力

- 対象ブランチ名(複数可)
- Issue UUID(複数可)— `wf-new-feature` で記録した `id`(UUID)を使用する

## 手順

### 0. 設定読み込み

`.github/settings.json` を読み取り、以下の値を使用する:
- `issueTracker.provider` — Issue トラッカー種別
- `issueTracker.mcpServer` — MCP サーバー名

### 1. Worktree の削除

```bash
git worktree remove .worktrees/<ブランチ名>
```

### 2. ローカルブランチの削除

```bash
git branch -D <フルブランチ名>
```

### 3. リモート参照の整理

```bash
git fetch --prune
```

### 4. main ブランチの更新

```bash
git checkout main
git pull origin main
```

### 5. Issue のステータス更新

`issueTracker.provider` が `"none"` の場合はこのステップをスキップする。

```
mcp_<issueTracker.mcpServer>_update_issue:
  id: "<UUID>"       # wf-new-feature で記録した id(UUID)を使用。identifier ではない
  state: "Done"
```

## 一括クリーンアップ

複数ブランチを同時にクリーンアップする場合:

```bash
# worktree 一括削除
git worktree remove .worktrees/<ブランチA>
git worktree remove .worktrees/<ブランチB>

# ローカルブランチ一括削除
git branch -D <フルブランチA> <フルブランチB>

# リモート参照整理&main更新
git fetch --prune
git checkout main
git pull origin main
```

## マージ済みブランチの一括削除(ブランチが溢れた場合)

```bash
git branch -r --merged main | grep 'origin/' | grep -v 'main' | \
  sed 's|origin/||' | xargs git push origin --delete
git branch --merged main | grep -v 'main' | xargs git branch -D
git fetch --prune
```

## エラー時の対処

| エラー | 対処 |
|---|---|
| `git worktree remove` 失敗(未コミットの変更あり) | `--force` を付与するか、先に変更を退避 |
| `git branch -D` 失敗(worktree が残っている) | 先に worktree を削除する |
| Issue 更新失敗(UUID 不明) | `mcp_<mcpServer>_list_issues` で検索して UUID を特定 |