Skip to content
Back to skills

Checkout

ASecurity

GitHub Issueを選択してworktreeを作成し、自律的に開発を進めてPRを完成させる。

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsbashreactgit

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill checkout --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Checkout?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Checkout
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-checkout/badge)](https://www.skillsdirectory.com/skills/david-li0406-checkout)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: checkout
description: GitHub Issueを選択してworktreeを作成し、自律的に開発を進めてPRを完成させる。
---

# 自律開発スキル

Issueを選択し、Claudeが司令塔となってサブエージェントとスキルを使い、PRが完成するまで自律的に開発を進める。

## 基本方針

- ユーザーの指示を待つのではなく、主体的に進める
- 不明点や承認が必要な時だけ AskUserQuestion で確認
- 実作業はサブエージェントに委任してメインのコンテキストを軽く保つ
- 進捗は簡潔に報告する

## スキル連携

スキルの呼び出しには **Skill ツール** を使用する。

### メインで実行 (Skill ツール直接)

人間への質問が発生する可能性があるスキルはメインで実行:

| スキル | 用途 |
|--------|------|
| `/.update-issue` | Issue確認・更新 |
| `/.update-pr` | PR確認・更新 |

```
Skill ツールで skill: "update-issue" を実行
```

### サブエージェントで実行 (Task ツール経由)

並列実行可能なスキルは Task ツールで実行:

| スキル | 用途 |
|--------|------|
| `/update-docs` | 仕様書の更新 |
| `/test-lib` | lib/utils の単体テスト |
| `/test-react-components` | コンポーネントの単体テスト |
| `/test-pages` | ページのE2Eテスト |
| `/infer-code-rules` | コード規則・デザインガイドラインの抽出 |

```
Task ツールで subagent_type: "general-purpose" を使い、
prompt に「Skill ツールで skill: "test-lib" を実行して」と指示
```

## 承認が必要なタイミング

1. Issue選択時
2. 実装計画の承認時
3. 仕様の不明点がある時
4. 実装方針に複数の選択肢がある時
5. PRをReadyにする前

## 業務フロー図

```
Phase 1: Issue選択
    ↓
Phase 1.5: 開発環境の選択 (worktree or 現在のブランチ)
    ↓
Phase 2: 環境準備 (ブランチ + Draft PR)
    ↓
Phase 3: 要件分析
    │
    ├─→ Skill: update-issue (メイン) ─→ Issue内容を確認・不明点を解消
    │
    ↓
Phase 4: 実装計画 (プランモード)
    │
    ├─→ EnterPlanMode
    ├─→ コード探索 (サブエージェント)
    ├─→ 計画立案・承認
    ↓
Phase 5: 実装
    │
    ├─→ ファイル実装 (サブエージェント並列)
    │
    ↓
Phase 6: 検証 (並列実行)
    │
    ├─→ Task + Skill: test-lib
    ├─→ Task + Skill: test-react-components
    ├─→ Task + Skill: test-pages
    ├─→ Task + Skill: infer-code-rules
    │
    ↓
Phase 7: ドキュメント更新
    ├─→ Task + Skill: update-docs
    ↓
Phase 7.5: PR更新
    ├─→ Skill: update-pr (メイン)
    ↓
Phase 8: 完了
    │
    ├─→ PRをReadyに変更
    ├─→ 完了報告
```

## Phase 1: Issue選択

### 引数でIssue番号が指定された場合

```
例: /.checkout 1234
例: /.checkout 1234 --worktree
```

Issue番号が引数にあれば、Phase 1 をスキップして Phase 1.5 へ進む。

### 引数が空の場合: Issue一覧から選択

#### Step 1: Issue一覧を取得(最終更新日順、16件)

```bash
gh issue list --state open --limit 16 --json number,title,body,comments,updatedAt --jq 'sort_by(.updatedAt) | reverse'
```

#### Step 2: 各Issueの取り組みやすさを確認

各Issueのbodyに `>` で始まる分析コメント(`※ Generated by Claude` を含む)があるか確認する。

**キャッシュあり**: コメントが存在すれば、その内容を使用(サブエージェント不要)

**キャッシュなし**: コメントがなければ、サブエージェント (haiku) で並列分析し、Issueに追記

#### 分析の情報源

Issueのbodyとcommentsのみから判断する。コードベースの調査は行わない。

#### Issueへの追記フォーマット

分析結果は引用形式で一行にまとめる。文体は「ですます」調。取り組みやすさは文章のトーンで表現する。

```markdown
> 要件が明確で、既存パターンを踏襲すれば実装できます。※ Generated by Claude
```

トーンの例:
- 取り組みやすい: 「〜できます」「シンプルです」
- 検討が必要: 「〜が必要です」「確認が必要です」
- 大変: 「大規模な変更が必要です」「複雑な依存関係があります」
- 不明: 追記しない(Issue内容が空/不明確)

追記コマンド:
```bash
CURRENT_BODY=$(gh issue view {番号} --json body -q '.body')
NEW_BODY="${CURRENT_BODY}

> {分析コメント}※ Generated by Claude"

gh issue edit {番号} --body "${NEW_BODY}"
```

#### Step 3: 結果を一覧表示

フォーマット: `#番号(4桁0埋め) タイトル - 分析コメント`

取り組みやすい順でソート(文章のトーンで判断)。

#### Step 4: AskUserQuestionでIssue選択

## Phase 1.5: 開発環境の選択

Issue選択後、開発環境を決定する。

### 引数パターン

| 引数 | 動作 |
|------|------|
| `/.checkout 1234 --worktree` | Issue #1234 で worktree を作成 |
| `/.checkout 1234` | Issue #1234 で開発環境を質問 |
| `/.checkout --worktree` | Issue一覧から選択、worktree を作成 |
| `/.checkout` | Issue一覧から選択、開発環境を質問 |

### --worktree がない場合

AskUserQuestion で開発環境を確認する。

```
開発環境をどうする?

選択肢:
1. worktree を作成 (推奨) - 別ディレクトリで作業
2. 現在のブランチで作業 - このディレクトリで新しいブランチを作成
```

選択に応じて Phase 2 の処理を分岐する。

## Phase 2: 環境準備

### パターン A: worktree を作成する場合

```bash
REPO_NAME=$(basename $(pwd))
ISSUE_NUM=<選択されたIssue番号>
WORKTREE_PATH="../${REPO_NAME}-issue-${ISSUE_NUM}"
BRANCH_NAME="issue-${ISSUE_NUM}"

git worktree add "${WORKTREE_PATH}" -b "${BRANCH_NAME}"
cd "${WORKTREE_PATH}"
git commit --allow-empty -m "Start work on #${ISSUE_NUM}"
git push -u origin "${BRANCH_NAME}"

gh pr create --draft --title "#${ISSUE_NUM} <Issueタイトル>" --body "Closes #${ISSUE_NUM}"
```

### パターン B: 現在のブランチで作業する場合

```bash
ISSUE_NUM=<選択されたIssue番号>
BRANCH_NAME="issue-${ISSUE_NUM}"

git checkout -b "${BRANCH_NAME}"
git commit --allow-empty -m "Start work on #${ISSUE_NUM}"
git push -u origin "${BRANCH_NAME}"

gh pr create --draft --title "#${ISSUE_NUM} <Issueタイトル>" --body "Closes #${ISSUE_NUM}"
```

## Phase 3: 要件分析

Skill ツールで `update-issue` を実行してIssueの内容を確認・整理する。

```
Skill ツール: skill: "update-issue"
```

人間への質問が発生する可能性があるため、サブエージェントではなくメインで実行する。

不明点があれば解消し、Issueの内容を充実させる。

## Phase 4: 実装計画 (プランモード)

### Step 1: プランモードに入る

EnterPlanMode ツールを使ってプランモードに入る。

### Step 2: コード探索 (サブエージェント)

Exploreエージェントで関連コードを並列調査:
- 既存の類似実装
- 変更が必要なファイル
- 影響範囲

### Step 3: 計画立案

計画ファイルに実装方針を記録:
- 変更するファイル一覧
- 実装の順序
- テスト方針
- 技術的な判断とその理由

### Step 4: ExitPlanMode で承認

ExitPlanMode で計画を提示し承認を得る。

## Phase 5: 実装

### 実装の進め方

1. ファイルごとにサブエージェントで実装
2. 独立したファイルは並列で実装
3. 依存関係があるファイルは順次実装
4. 各実装完了後に簡潔に進捗報告

### 実装中の判断

- 軽微な判断 → 自律的に進める
- 設計に影響する判断 → Askで確認

## Phase 6: 検証 (並列実行)

Task ツールで以下のスキルを並列実行:

```
Task ツール (subagent_type: "general-purpose")
  prompt: "Skill ツールで skill: 'test-lib' を実行して"

Task ツール (subagent_type: "general-purpose")
  prompt: "Skill ツールで skill: 'test-react-components' を実行して" (必要に応じて)

Task ツール (subagent_type: "general-purpose")
  prompt: "Skill ツールで skill: 'test-pages' を実行して" (必要に応じて)

Task ツール (subagent_type: "general-purpose")
  prompt: "Skill ツールで skill: 'infer-code-rules' を実行して"
```

並列実行後、結果をまとめて報告。
エラーがあれば修正してから次へ進む。

## Phase 7: ドキュメント更新

Task ツールで `update-docs` を実行して仕様書を更新する。

```
Task ツール (subagent_type: "general-purpose")
  prompt: "Skill ツールで skill: 'update-docs' を実行して"
```

## Phase 7.5: PR更新

Skill ツールで `update-pr` を実行してPR説明を更新する。

```
Skill ツール: skill: "update-pr"
```

人間への質問が発生する可能性があるため、サブエージェントではなくメインで実行する。

## Phase 8: 完了

### Step 1: 最終確認をAskで取る

- 実装内容のサマリー
- テスト結果
- 残課題があれば報告
- PRをReadyにしていいか

### Step 2: PRをReadyに変更

```bash
gh pr ready
```

### Step 3: 完了報告

```
開発が完了したゆ🥹

Issue: #${ISSUE_NUM}
PR: <PR URL>

実装内容:
- (変更のサマリー)

PRをレビューしてマージしてゆ🥹
```

## 注意事項

- 同じIssue番号のworktreeが既に存在する場合はエラーになる
- Draft PR機能を使用する (--draft フラグ)
- プランの制限でDraftが使えない場合はタイトルに `WIP:` を付ける

## スキルの自己改善

このスキルの実行中に不備や改善点を発見した場合:

1. ユーザーに改善提案を伝える
2. 承認を得たら、このSKILL.mdを直接編集して修正する
3. 修正内容を簡潔に報告する

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…