| name | project-archive-done |
| description | Status が Done のプロジェクトアイテムを `gh project item-archive` で一括アーカイブする。Auto-archive ビルトインワークフローの設定状況も確認・案内 (有効なら手動実行は基本不要)。「完了アイテムをアーカイブ」「Done を整理」「ボード掃除」などで使用。 |
| model | haiku |
project-archive-done
プロジェクト内の完了済み(Done)アイテムをアーカイブし、ボードを整理します。ビルトインの Auto-archive が設定済みの場合はその状況も確認します。
前提条件
- 対象の GitHub Project に完了アイテムが存在すること
gh CLI がインストールされ、認証済みであること(project スコープ付き)
フロー
Step 1: Auto-archive の状況を確認する
ビルトインの Auto-archive ワークフローが有効な場合は自動でアーカイブされる。設定状況をユーザーに確認する。
設定 URL: https://github.com/orgs/<owner>/projects/<number>/workflows
(個人プロジェクトの場合: https://github.com/users/<owner>/projects/<number>/workflows)
- Auto-archive が有効 → 基本的にスキルの実行は不要。即時アーカイブしたい場合のみ続行
- Auto-archive が無効 → このスキルで手動アーカイブを実行。必要に応じて Auto-archive の有効化も案内
Step 2: プロジェクトアイテムを取得する
gh project item-list <number> \
--owner <owner> \
--format json \
--limit 999
Step 3: フィールドメタデータを取得する
gh project field-list <number> \
--owner <owner> \
--format json
Status フィールドの ID と "Done" オプションの ID を特定する。
Step 4: 完了アイテムをフィルタする
Step 2 の結果から、Status が "Done" のアイテムを抽出する。
--query が使える場合:
gh project item-list <number> \
--owner <owner> \
--query "status:Done" \
--format json
Step 5: ユーザーに確認する
アーカイブ対象を表示:
以下の N 件の完了アイテムをアーカイブします:
- #42: feat: ソーシャルログイン(Done)
- #43: fix: バリデーションエラー(Done)
- #44: docs: API ドキュメント更新(Done)
実行しますか?
Step 6: アーカイブを実行する
各アイテムをアーカイブ:
gh project item-archive <number> \
--owner <owner> \
--id <item-id>
Step 7: 結果を報告する
## アーカイブ結果
- アーカイブ済み: N 件
- 残りアクティブアイテム: M 件
- ボード上の完了アイテム: 0 件
Auto-archive が無効の場合は有効化を推奨:
推奨: Auto-archive を有効にすると、Done から N 日経過したアイテムが自動でアーカイブされます。
設定: <workflows URL>
検証
Step 7 完了後、以下でアーカイブ結果を確認する:
gh project item-list <number> --owner <owner> --format json --limit 999
Status が "Done" のアイテムが一覧から消えていれば完了。アーカイブ済みアイテムは削除されておらず、元に戻せる(gh project item-archive --undo)。
注意事項
- アーカイブ前に必ずユーザーの確認を得る
- アーカイブは元に戻せる(
gh project item-archive --undo)
- アーカイブされたアイテムはプロジェクトビューから非表示になるが、削除はされない
- Auto-archive ビルトインワークフローとの併用で手動実行の頻度を減らせる
- 特定の条件(日付範囲、ラベル等)でフィルタしてアーカイブすることも可能
sandbox 環境での実行
このスキルはネットワーク越しの GitHub 操作(gh project item-archive)を必須とする。該当コマンドはコマンド単位で sandbox 無効にして実行する。ネットワーク遮断を解除できない環境では実行できない。