--- name: task-progress-reporter description: | task-starter スキルで作成したプロジェクト(todos/NNN-{task}/ 構造)の現在の進捗を精査し、 「現状サマリ・未着手タスクの分類マトリクス・推奨対応順序・次の一手」を含む進捗レポートを 日本語で出力するスキル。新形式では progresses/ の PROGRESS.md を状態・検証証跡の唯一の正本として判定し、 todos/ の W-ID / AC-ID は定義の整合性確認に使う。旧チェックボックス形式は警告付きで読み取り互換する。 以下の状況で必ずトリガーすること: (1) 「タスクの進捗を報告して」「進捗レポートを作って」「今どこまで進んでる?」「消化状況を教えて」 (2) 「未着手タスクを精査して」「残タスクを整理して」「残ってる作業をまとめて」 (3) 「task-starterで作ったプロジェクトの状況を見て」「todos/ の進み具合を確認して」 (4) 「次に何をやるべき?」「次の一手を提案して」(task-starterプロジェクトの文脈で) (5) 明示的に「task-progress-reporter スキル」の実行を指示された時 task-starter / task-performer のタスク管理(todos/・progresses/・logs/ が存在する)文脈で、 「進捗」「残タスク」「未着手」「消化状況」「次の一手」「どこまで終わった」といった依頼なら積極的に発火する。 別スキル優先: 新規タスク分割・ロードマップ生成→task-starter / 個別タスクの実行→task-performer / 成果物(PR・コミット)の要件適合レビュー→task-artifact-reviewer。単なるPRレビュー→pr-reviewer。 argument-hint: "[プロジェクトパス or todos/ のパス]" --- # Task Progress Reporter task-starter で生成したプロジェクト構造を走査し、完了/進行中/未着手を判定して、 未着手タスクの着手しやすさ分類と推奨対応順序を中心とした進捗レポートを出力する。 ## スコープ ### 含むもの - task-starter プロジェクト(`todos/NNN-{task}/` 構造)の進捗精査 - **進捗正本による完了判定**(`PROGRESS.md` の状態・AC検証とTODOのID整合性。旧形式だけ補助シグナルを使用) - 未着手タスクの内容単位グルーピングと着手容易性マーク(🟢🟡🔴) - 依存関係を踏まえた推奨対応順序(Phase A/B/C…)の提示 - `references/template-and-example.md` のテンプレートに沿ったレポート出力 ### 含まないもの - 新規タスクの分割・ロードマップ生成(→ task-starter) - タスクの実装・完了状態の書き換え(→ task-performer) - 成果物(PR・コミット)の要件適合レビュー(→ task-artifact-reviewer) - タスクファイルの編集(このスキルは**読み取り専用**。進捗を勝手に変更しない) ## 進捗状態の3区分と判定不能 実プロジェクトの実態を正確に反映するため、各タスクを3区分で扱い、正本や定義が不正な場合だけ判定不能を使用する。 テンプレートのサマリ表では、**進行中は「未着手・進行中」列に含めつつ備考や別行で明示**し、 判定不能は専用列へ分離する。 - **完了 (done)** — 成果が出ており、再着手不要 - **進行中 (in_progress)** — 着手済みだが受け入れ条件を満たしきっていない - **未着手 (not_started)** — いかなる着手痕跡も無い - **判定不能 (unknown)** — 新形式の正本欠落・不正、またはID不整合により安全に分類できない ## 完了判定: 進捗正本と定義の整合性 新形式では、進捗状態を複数ファイルへ書かない。TODOは静的な定義、`PROGRESS.md` は状態と証跡の正本として扱う。 **機械的な収集と整合性検証は `scripts/scan_progress.py` が行う**ので、まずこれを実行する。 | 情報 | ソース | 用途 | | --- | --- | --- | | 作業・受け入れ条件の定義 | `todos/NNN-{task}/README.*` | `W-ID` / `AC-ID` の集合と順序を確定 | | 全体進捗一覧 | `progresses/README.md` | 全タスクの状態を一覧確認し、個別正本との同期状態を検証 | | 進捗正本 | `progresses/NNN-{task}/PROGRESS.md` | 状態、W-ID参照、AC-IDごとの検証状態と根拠を確定 | | コミットログ | `logs/NNN-{task}/commit-*.txt` | 旧形式で正本が欠落・不正な場合だけ補助判定 | | ロードマップ | `todos/README.*`(存在すれば) | 依存・並行性・概要の補強。完了状態の根拠にはしない | ### 判定ルール(スクリプトが導出、モデルが最終確認) - **完了**: 有効な `PROGRESS.md` が `完了`、TODOの全 `AC-ID` が過不足なく存在し、すべて `充足` - **未着手**: 有効な `PROGRESS.md` が `未着手` - **進行中**: `進行中` / `ブロック中`、または `完了` とAC検証状態が矛盾する状態 - **判定不能**: 新形式の `PROGRESS.md` が欠落・不正、またはTODOとAC-IDが不一致。コミットログから完了を推定しない - **旧形式**: 有効な `PROGRESS.md` を優先する。欠落・不正な場合だけ旧チェックボックスとコミットログを読み取り専用の補助情報として使い、必ず移行警告を付ける 一般ログや `progresses/` の非標準ファイルは着手・完了の根拠にしない。スクリーンショットやレビュー結果の存在だけで進捗を変えないためである。 ### シグナル矛盾の扱い 「状態は完了だが未確認の `AC-ID` がある」「TODOとPROGRESSでIDが不一致」等の矛盾は、スクリプトが `notes` に記録する。 **矛盾は握り潰さず、レポートの該当タスクの「備考」に明示**し、必要ならユーザーに確認する。 勝手にどちらかへ寄せて確定させない(進捗の誤報告は後続の意思決定を誤らせるため)。 ## ワークフロー ### Phase 1: 対象プロジェクトの特定 1. `../_shared/references/task-management-contract.md` を読み、正本のスキーマと非標準ファイルの扱いを確認する。 2. `$ARGUMENTS` でプロジェクトパス or `todos/` のパスが指定されていればそれを使う。 3. 未指定ならカレントディレクトリを起点に `todos/` を探索する(スクリプトが自動探索する)。 4. 候補が複数 or 見つからない場合は推奨案を含む複数の選択肢を提示してユーザーに確認する。 ### Phase 2: 進捗シグナルの収集(スクリプト実行) 最初に集約ビューを読み取り専用で検証する。`--check` を外すとファイルを変更するため、このスキルでは必ず付ける。 ```bash python3 ~/.claude/skills/_shared/scripts/sync_progress_index.py "{プロジェクトパス or todos/ のパス}" --check ``` 終了コード1なら `progresses/README.md` の欠落または同期ずれとして記録し、個別 `PROGRESS.md` を正本として以降の判定を続ける。このスキルは読み取り専用なので修復しない。 ```bash python3 scripts/scan_progress.py "{プロジェクトパス or todos/ のパス}" ``` - 出力は JSON。各タスクの番号帯(main=0xx / handover=1xx)・frontmatter・定義形式・W-ID/AC-ID・ `PROGRESS.md` の有無/形式/宣言状態/AC検証・非標準ファイル・旧形式の補助情報・暫定ステータス・未充足依存・着手可能フラグ・全体サマリを含む。 - `error` が返ったら(todos/ 不在など)、パスを見直すかユーザーに確認する。 - `needs_manual_review: true` のタスク(HTML形式・README欠落など)は、該当ファイルを直接読み込んで 状態を補完する。HTMLプロジェクトは frontmatter が `