mcpField
P
project-create-issues

project-create-issues

github.com/fandhe-ai開発2863 回インストール3 日前に更新
リポジトリ

project-create-issues について

project-create-issuesは、GitHub Project内のドラフト項目をIssueに変換するスキルです。タスクを整理するチーム向けで、フィールド値を保存し、必要に応じて親IssueとサブIssueを紐付けます。

主な機能

  1. 01ドラフト項目の抽出と選択
  2. 02ドラフトからIssueへの変換
  3. 03プロジェクトフィールド値の保存と復元
  4. 04サブIssueを親Issueに紐付け
  5. 05作成したIssueの報告

活用シーン

  1. 01プロジェクトのドラフトを追跡可能なIssueに変換
  2. 02関連タスクを親IssueとサブIssueに整理
  3. 03変換時にStatus、Priority、Sizeを保持

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fandhe-ai/agent-cli-skills --skill project-create-issues

インストール後、Claude Code で/project-create-issuesを入力して読み込まれたか確認します。

詳細

プロジェクトの README より

project-create-issues

プロジェクト内のドラフトアイテムを GitHub Issue に変換し、親子関係(sub-issues)を設定します。

前提条件

  • 対象の GitHub Project にドラフトアイテムが存在すること
  • gh CLI がインストールされ、認証済みであること(project スコープ付き)

フロー

Step 1: ドラフトアイテムを取得する
gh project item-list <number> \
  --owner <owner> \
  --format json \
  --limit 999

JSON 出力からタイプが DraftIssue のアイテムをフィルタする。

Step 2: 変換対象をユーザーに確認する

ドラフトアイテムの一覧を表示し、変換対象を確認:

  • 全件変換
  • 特定のアイテムのみ選択
Step 3: 親 Issue を決定する

ユーザーに以下を確認:

  • 既存の親 Issue 番号を指定する
  • 新規に親 Issue を作成する
  • 親 Issue なし(個別 Issue のみ作成)

新規作成の場合:

gh issue create \
  --title "feat: プロジェクト名" \
  --body "$(cat <<'EOF'
## 概要
プロジェクトのトラッキング Issue。

## サブタスク
(sub-issues として自動追加されます)
EOF
)"
Step 4: ドラフトのフィールド値を保存する

変換前に各ドラフトアイテムのフィールド値を取得・保存する:

gh project item-list <number> \
  --owner <owner> \
  --format json \
  --limit 999

各アイテムの Status, Priority, Size 等のフィールド値を記録しておく。

Step 5: Issue を作成してプロジェクトに追加する

各ドラフトアイテムに対して:

# 1. Issue を作成
gh issue create \
  --title "<ドラフトのタイトル>" \
  --body "<ドラフトの本文>" \
  --repo <owner>/<repo>

# 2. 作成した Issue をプロジェクトに追加
gh project item-add <number> \
  --owner <owner> \
  --url <issue-url> \
  --format json

# 3. 新しいアイテムにフィールド値をコピー
gh project item-edit \
  --id <new-item-id> \
  --field-id <field-id> \
  --project-id <project-id> \
  --single-select-option-id <option-id>

# 4. 元のドラフトアイテムを削除
gh project item-delete <number> \
  --owner <owner> \
  --id <draft-item-id>

Issue タイトルは Conventional Commits 形式を推奨: feat:, fix:, chore: 等。

Step 6: Sub-issue として紐付ける

親 Issue が指定されている場合、各子 Issue を sub-issue として紐付ける:

# 子 Issue の database id(ノード ID ではない数値 id)を取得する
child_id=$(gh api "repos/{owner}/{repo}/issues/{child_number}" --jq '.id')
gh api \
  --method POST \
  "repos/{owner}/{repo}/issues/{parent_number}/sub_issues" \
  -F "sub_issue_id=${child_id}"

Note: sub_issue_id には issue 番号でもノード ID でもなく database id(gh api repos/{owner}/{repo}/issues/<number> --jq '.id' の数値)を渡す。数値として送るため -F を使う。

Step 7: 結果を報告する

作成された Issue の一覧を表示:

#IssueタイトルPrioritySizeSub-issue
1#42feat: ソーシャルログインHighL#40 の子
2#43feat: パスワードリセットMediumM#40 の子

注意事項

  • Issue タイトルは Conventional Commits 形式を推奨
  • ドラフト→Issue 変換時にフィールド値が失われるため、Step 4 で事前に保存しておく
  • ラベル・アサイニー・マイルストーンが必要な場合はユーザーに確認する
  • 大量のドラフト変換時は GitHub API レート制限に注意する
  • ネットワークを要する(主に API 経由。後述の「sandbox 環境での実行」節を参照)

検証

Step 7 完了後、以下で作成された Issue とプロジェクトへの追加を確認する:

gh issue list --state open --limit 20
gh project item-list <number> --owner <owner> --format json --limit 999

変換前のドラフトが消え、実 Issue がプロジェクトに追加されていれば完了。親 Issue の sub-issues は gh api repos/{owner}/{repo}/issues/{parent_number}/sub_issues で確認する。

sandbox 環境での実行

このスキルはネットワーク越しの GitHub 操作(ドラフト→Issue 変換・プロジェクト追加)を必須とする。該当コマンドはコマンド単位で sandbox 無効にして実行する。ネットワーク遮断を解除できない環境では実行できない。

コメント