Skip to content
Agentmart
Submit a tool

cleanup

フルサイクル開発完了後のクリーンアップを実行します。状態ファイルの削除、worktreeの削除、ローカルブランチの削除を行います。

Skill by ohzono

IndexedMIT★ 3
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ohzono-cleanup

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

フルサイクル開発完了後のクリーンアップを実行します。状態ファイルの削除、worktreeの削除、ローカルブランチの削除を行います。

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/cleanup

Tools it pre-approves 3

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read,
  • Bash,
  • AskUserQuestion

What's inside

Skill name
cleanup
Description
フルサイクル開発完了後のクリーンアップを実行します。状態ファイルの削除、worktreeの削除、ローカルブランチの削除を行います。
License
MIT
Allowed tools
Read,, Bash,, AskUserQuestion
Instructions
160 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves some shell commands

Files (1)

  • SKILL.md

SKILL.md (first lines)

# クリーンアップ

> 読み取る状態フィールド名(`issue` / `branch` / `worktreeDir`)は `commands/full-cycle-phases/_schema/state-schema.yaml` の `readers.cleanup` を正本とする。

**あなたは今からクリーンアップを実行します。冗長な前置きは省いて手順を進めてください。ただし Step 2 の実行確認(AskUserQuestion)は必須の確認ゲートであり、スキップしてはいけません。** worktree・ブランチの削除は不可逆で、未コミット・未 push の作業を巻き込むと復旧できません。

## Step 1: 状態ファイルの確認

`$ARGUMENTS` で Issue 番号が指定されているか確認する。

**重要**: 状態ファイルは worktree 内 (`${WORKTREE_DIR}/.full-cycle-state.json`) に配置されます。

### 状態ファイルの読み込み

```bash
# Issue指定時: 共通スクリプトで worktree を解決
ISSUE_NUMBER=$1
WORKTREE_DIR=$("${CLAUDE_PLUGIN_ROOT}/scripts/resolve-worktree.sh" "${ISSUE_NUMBER}")
STATE_FILE="${WORKTREE_DIR}/.full-cycle-state.json"
```

`${STATE_FILE}` を Read で読み込む。引数なしの場合はカレントディレクトリの `.full-cycle-state.json` を読む。

- **存在する場合**: `issue`, `branch`, `worktreeDir`, `baseBranch` を取得する
- **存在しない場合**:
  - `$ARGUMENTS` で Issue 番号が指定されていれば、その情報を元に処理を続行する
  - 引数も未指定の場合は **Step 1a** へ進む

### baseBranch のフォールバック解決

状態ファイルが無い、または `baseBranch` フィールドが含まれていない場合は、リポジトリのデフォルトブランチを動的に解決する。`main` を決め打ちしない(デフォルトブランチが `develop` 等のリポジトリで `git checkout main` が失敗するため):

```bash
BASE_BRANCH=$(gh repo view --json defaultBranchRef -q .defaultBranchRef.name 2>/dev/null \
  || git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@.*/@@' \
  || echo main)
```

### 並行実行の状態ファイル

並行実行(`/parallel-full-cycle`)の状態ファイル `.parallel-full-cycle-state.json` は親リポジトリのルートに作成され、中断時には残置される。カレントディレクトリに存在する場合は削除対象に含める:

```bash
ls .parallel-full-cycle-state.json 2>/dev/null
```

### Step 1a: 引数なし + 状態ファイルなしの場合

`git worktree list` を実行して残っている worktree を一覧表示する。

```bash
git worktree list
```

表示結果をユーザーに提示し、AskUserQuestion でどの worktree を削除するか確認する。
ユーザーが選択した worktree のパスとブランチ情報を使って Step 2 以降を実行する。

## Step 2: 安全チェックとクリーンアップ対象の確認

### 2-1. 安全チェック(削除前に必ず実行)

**(a) worktree の未コミット変更**: worktree 内に未コミット変更・未追跡ファイルがないか確認する:

```bash
cd [worktreeDir] && git status --porcelain && cd -
```

出力が空でなければ、変更ファイル一覧を控えて確認表に「⚠️ 未コミット変更あり」と明示する。

**(b) 未 push コミット**: 削除対象ブランチにリモート未反映のコミットがないか確認する:

```bash
git log --oneline "origin/[branch]..[branch]" 2>/dev/null \
  || echo "リモートブランチ origin/[branch] が存在しません"
```

未 push コミットがある場合や、リモートブランチ自体が存在しない場合(PR 作成に失敗したケース等)は、ローカルブランチを削除するとコミットの唯一の実体が失われる。確認表に「⚠️ 未 push コミット N 件」「⚠️ リモートに存在しない」と明示する。

### 2-2. 実行確認(必須ゲート)

クリーンアップ対象と安全チェック結果をユーザーに表示する:

| 対象 | パス | 状態 |
|------|------|------|
| 状態ファイル | `.full-cycle-state.json` | 削除予定 |
| 並行実行状態ファイル | `.parallel-full-cycle-state.json` | 削除予定(存在する場合のみ) |
| Worktree | `[worktreeDir]` | 削除予定 / ⚠️ 未コミット変更あり |
| ローカルブランチ | `[branch]` | 削除予定 / ⚠️ 未 push コミット N 件 |
| リモートブランチ | `origin/[branch]` | 保持(PRがあるため) / ⚠️ 存在しない |

AskUserQuestion で実行確認を行う。**⚠️ が1つでもある場合は、失われる内容(変更ファイル一覧・未 push コミットのログ)を提示したうえで、その対象を削除するか個別に確認する。** ユーザーが承認したら Step 3 へ進む。

## Step 3: 実行

以下の順番でクリーンアップを実行する。各ステップでエラーが発生した場合は、その対象をスキップして次へ進む。

### 3-1. Worktree の削除

Step 2-1(a) で未コミット変更が検出された worktree は、Step 2-2 でユーザーが明示的に承認した場合のみ削除する。承認がなければスキップし、Step 4 で保留として報告する。

```bash
git worktree remove [worktreeDir] --force
```

- `--force` は gitignore 済みの状態ファイル等が worktree 内に残っていても削除するために必要(未コミット変更の保護は Step 2 の確認ゲートで担保する)
- worktree が既に存在しない場合: スキップして次へ

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

現在のブランチを確認する:

```bash
git branch --show-current
```

**現在のブランチが削除対象ブランチと一致する場合のみ**、ブランチ切り替えが必要になる。一致しない場合は切り替えを行わない(ユーザーの現在ブランチを無断で変更しない)。

切り替えが必要な場合は、実行前に AskUserQuestion で「現在のブランチ [branch] から ${BASE_BRANCH} へ切り替えます」と確認したうえで切り替える:

From ohzono/native-app-fullcycle, MIT.

More from ohzono/native-app-fullcycle

Signals

Stars
3
Forks
0
Open issues
0
Last commit (this folder)
Jun 18, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ohzono

Cite this page

cleanup skill. Agent Mart. https://agentmart.dev/skills/ohzono-cleanup (last updated 2026-10-24)