project-synclisted
Install: claude install-skill kai-kou/gem-hunter
> 🔴 **GitHub 操作の経路(必読・L-114)**: クラウド実行環境では `gh` がプリインストールされず、
> 導入しても repo スコープ REST が 403 になる。**本ファイル内の `gh ...` コマンドはローカル実行専用** で、
> クラウドでは `mcp__github__*` に読み替える(対応表: `docs/rules/github-mcp-fallback-patterns.md` §2。
> ラベル一覧/作成・マイルストーン・release 作成・variables は MCP に等価が無く **クラウドでは実行不可**・同 §2.5)。
# project-sync スキル
## 目的
GitHub Issues と Projects V2 の整合性を自動修正し、リポジトリの衛生状態を維持するメンテナンス用スキル。
**CP-3(リポジトリの衛生管理)** に���づき、放置された Issue・PR・ブランチを検出・解消する。
以下の問題を定期的に解消する。
| 問題 | 症状 | 影響 |
| --------------------------------------------------------------------------------- | ------------------------------------------------- | ---------------------------------- |
| {ワークフローフェーズ} Issue への {エンティティID} 未採番(任意・採番運用時のみ) | タイトルに `[{エンティティID}]` がない | `{次パイプライン}` が検出できない |
| {バックログ分類}(例: ネタ候補・下書き)に `status:waiting-user` 残留 | ユーザー To-Do ビューにバックログ項目が表示される | ユーザーが不要なタスクを見せられる |
| `Assignee Type` が `status:` ラベルと不整合 | `waiting-claude` なのに Assignee Type = user | ビューの担当者表示が実態と合わない |
## 設計方針
- **ユーザー手動操作ゼロ**: 定期実行で全ての不整合を自動修正する
- **エンティティ ID フィールドはベストエフォート(採番運用するプロジェクトのみ)**: Projects V2 の単一選択フィールドにオプション追加する API が存在しないため、Issue タイトルの `[{エンティティID}]` を権威ソースとする。フィールドは登録済みオプションがあれば設定、なければ静かにスキップ。ID 採番を採用しないプロジェクトでは Step 1 をスキップする
- **Assignee Type は `status:` ラベルに連動**: `waiting-user` → user / `