Project View Status

Fandhe-AI/agent-cli-skills/skills/project-view-status

作者 Fandhe-AIb8c1f3669cc3eff5079b57ae6da56a42d395e94c无许可证2 个星标收录于 2026年10月9日更新于 2026年10月9日仓库昨天更新

プロジェクトの進捗をステータス別・優先度別・サイズ別に集計してレポートを生成する。完了率と未完了の優先度内訳を表形式で出力する読み取り専用スキル。「進捗を見せて」「プロジェクトレポート」「完了率は?」「ステータス別の件数」などで使用。

AI 生成的概览

按状态、优先级和规模汇总 GitHub Project 条目,生成只读的进度报告。

功能
该技能通过 gh CLI 读取 GitHub Project 并生成进度报告。它获取项目元数据、全部条目和字段定义,然后统计按状态分组的数量、未完成条目按优先级和规模的分布,以及完成率。输出为 Markdown 报告,包含整体进度、状态分布、优先级分布和规模分布表格。
适用场景
当有人要求查看项目进度、项目报告、完成率或按状态统计的数量时使用,适用于 GitHub Project。它仅用于只读报告,不会修改项目。
运行要求
需要安装并已认证(具备 project 权限范围)的 gh CLI,以及访问 GitHub API 的网络连接以执行读取命令。由于使用 gh 内置的 --jq,无需单独安装 jq。该技能仅包含说明,不附带脚本。

project-view-status

プロジェクトの進捗状況をステータス別・優先度別に集計し、レポートを生成します。

前提条件

  • 対象の GitHub Project が存在すること
  • gh CLI がインストールされ、認証済みであること(project スコープ付き)
  • 集計は gh の --jq(組み込み jq)で行うため、別途 jq のインストールは不要

フロー

Step 1: プロジェクト情報を取得する

bash
gh project view <number> --owner <owner> --format json

プロジェクトのタイトル・説明・URL を取得する。

Step 2: 全アイテムを取得する

--limit の固定値(例: 999)は、アイテムが上限を超えるプロジェクトで残りを無視し総件数・内訳・完了率を誤らせる。先に totalCount を取得し、その件数を --limit に渡して全件取得する。

bash
total=$(gh project item-list <number> --owner <owner> --limit 1 --format json --jq '.totalCount')[[ "${total}" =~ ^[0-9]+$ ]] || { echo "totalCount の取得に失敗した。中止する" >&2; exit 1; }[ "${total}" -eq 0 ] && { echo "アイテム 0 件"; exit 0; }

Step 4 では ${total} を --limit にそのまま渡し、全アイテムを 1 回だけ取得する(取りこぼしの判定は Step 4 の出力で行う)。

Step 3: フィールド定義を取得する

bash
gh project field-list <number> \  --owner <owner> \  --format json

Status, Priority, Size フィールドの定義とオプション値を取得する。

Step 4: ステータス別・優先度別に集計する

gh project item-list は Step 2 で確認した ${total} を --limit に渡して 1 回だけ取得し、その同一 JSON から --jq の 1 つの式で全集計をまとめて算出する(同一レポート内でスナップショットが混在しないようにするため、複数回に分けて再取得しない)。手で数えない、standalone の jq インストールも不要。例:

bash
gh project item-list <number> --owner <owner> --limit "${total}" --format json \  --jq '{    total: .totalCount,    n: (.items | length),    by_status: ([.items[] | .status // "(未設定)"] | group_by(.) | map({key: .[0], count: length})),    open_by_priority: ([.items[] | select(.status != "Done") | .priority // "(未設定)"] | group_by(.) | map({key: .[0], count: length})),    open_by_size: ([.items[] | select(.status != "Done") | .size // "(未設定)"] | group_by(.) | map({key: .[0], count: length})),    open_status_x_priority: ([.items[] | select(.status != "Done") | {status: (.status // "(未設定)"), priority: (.priority // "(未設定)")}] | group_by(.) | map({key: .[0], count: length})),    done: ([.items[] | select(.status == "Done")] | length)  }'

取得は 1 回だけなので結果は取得時点の一貫したスナップショットであり、Step 2〜4 の間にアイテムが削除されていても影響しない。問題になるのは Step 2 以降にアイテムが増えて --limit "${total}" を超え取りこぼす場合のみで、出力の total(.totalCount)と n(.items | length)が一致しない(total > n)ときは不完全な集計として扱わず、処理を停止してユーザーへ報告する(再実行は報告後の対応とする)。フィールドが Step 3 の field-list に存在しない場合、全件で (未設定) になるため、該当フィールドのセクションはスキップする。完了率は done / n から算出する。open_by_priority・open_by_size・open_status_x_priority は Step 5 の書式(優先度別・サイズ別は未完了のみ)に合わせ、Status が Done 以外(未設定も含む)のアイテムのみを集計する。モデルは算出結果を表に整形し、目立つ偏りがあればコメントする。

Step 5: レポートを生成する

以下の形式でレポートを出力:

markdown
## プロジェクト進捗レポート: <タイトル>
**更新日時:** YYYY-MM-DD HH:MM
### 全体進捗- 総アイテム数: N 件- 完了率: XX% (N/M)- 進行中: N 件- レビュー中: N 件- 未着手: N 件
### ステータス別
| ステータス | 件数 | 割合 ||-----------|------|------|| Done | N | XX% || In Review | N | XX% || In Progress | N | XX% || Todo | N | XX% |
### 優先度別(未完了のみ)
| 優先度 | 件数 | In Progress | Todo ||--------|------|------------|------|| High | N | N | N || Medium | N | N | N || Low | N | N | N |
### サイズ別(未完了のみ)
| サイズ | 件数 ||--------|------|| XL | N || L | N || M | N || S | N || XS | N |

注意事項

  • --limit は固定値ではなく totalCount(Step 2 で取得した ${total})を渡し、ページネーション切り捨てを防ぐ
  • 読み取り専用の操作のため、プロジェクトに変更を加えない
  • フィールドが存在しない場合は該当セクションをスキップする
  • アイテムが 0 件の場合はその旨を報告する
  • ネットワークを要する(読み取りのみ。後述の「sandbox 環境での実行」節を参照)

検証

Step 5 のレポート出力に以下が含まれていれば完了:

  • 総アイテム数・完了率が表示されている
  • ステータス別・優先度別の件数が集計されている

プロジェクトに変更は加わらない(読み取り専用)。

sandbox 環境での実行

Step 1〜4 の gh project view / gh project item-list / gh project field-list(Step 4 の集計取得も含む)はいずれも GitHub API への読み取りであり、ネットワークを要する。該当コマンド単位で sandbox 無効にして実行する。本スキルは書き込みを一切行わない(プロジェクトへの変更なし・ワークスペース外への書き込みなし)。Step 5 のレポート整形のみローカル処理であり、ネットワークを要しない。

来源与署名

来源:Fandhe-AI/agent-cli-skills位于skills/project-view-status提交b8c1f36

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架