From gh-monitor
Watch GitHub Actions workflow runs via the Monitor tool and emit one-line notifications on state changes. Two modes: SHA-pinned (recommended for own work — pin to a specific commit, auto-exit when all checks reach terminal state) and Passive (opt-in, repo-wide, idle backoff, runs until --timeout). PostToolUse hook prompts launching this skill in SHA-pinned mode right after `git/jj/just/pkf push`. Suggest enabling after push or while waiting for CI — even without explicit instruction. Prefer SHA-pinned to avoid leaving idle pollers behind. (日本語: GitHub Actions の workflow run を Monitor 経由で監視し、状態変化を 1 行通知。SHA-pinned モード=特定コミットを追跡し全 check 終了で自動 exit (自分作業の第一推奨)、Passive モード=repo 全体を idle backoff 付きで監視 (明示オプトイン)。push 直後は SHA-pinned で起動するのが基本。)
How this skill is triggered — by the user, by Claude, or both
Slash command
/gh-monitor:watch-workflowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
GitHub Actions workflow run の状態変化を 1 行通知する skill。**SHA-pinned (推奨)** と **Passive (オプトイン)** の 2 モード。
GitHub Actions workflow run の状態変化を 1 行通知する skill。SHA-pinned (推奨) と Passive (オプトイン) の 2 モード。
| モード | 用途 | 終了条件 |
|---|---|---|
| SHA-pinned (第一推奨) | 自分の push を見届ける / 特定コミットの CI 結果を見る | 指定 SHA のチェックが全て terminal state に到達したら自動 exit |
| Passive (オプトイン) | repo 全体をだらだら見守る / 他人の push も含めて変化を捕まえる | --timeout (デフォルト 24h) または手動 stop |
だらだら見たい需要は少ない。「CI 見て」「push したけど後で結果欲しい」等の指示は 基本 SHA-pinned。明示的に「repo 全体を見守って」「リリース workflow が走ったら教えて」のような repo 横断の意図がある場合のみ Passive。
| 状況 | 起動判断 |
|---|---|
PostToolUse hook から [gh-monitor] 出力 (push 検知) を受け取った | SHA-pinned で自動起動 (ユーザ確認不要) |
| ユーザが push 直後に別タスクへ移ろうとしている | SHA-pinned で起動を提案 |
| ユーザが「この PR の CI 見てて」「コミット X の結果待ち」等と特定対象を指示 | SHA-pinned で起動 |
| ユーザが「repo 全体を見守って」「他人 push も含めて」と明示 | Passive で起動 |
| ユーザが単に「CI 見てて」と曖昧に言った | 「直近の push を追跡しますか? それとも repo 全体ですか?」と確認、推奨は SHA-pinned |
| ユーザが「もう使わない」「監視止めて」と明示 | 起動しない。既存 Monitor があれば TaskStop |
TaskList で稼働中 Monitor を確認。description が watch-workflow: <OWNER/REPO>@<SHA7> と 同一 (repo, SHA) で完全一致 する場合は起動しない。
別 SHA は並列許可。連続 push で「直前 push の CI も並行で見届けたい」需要に応える。自然 exit するので積み上がらない。
コミット abc1234 の CI 見てて 等) はそれを使うgit -C "$CLAUDE_PROJECT_DIR" rev-parse HEAD で取得command: bash ${CLAUDE_PLUGIN_ROOT}/scripts/watch-workflow.sh --sha <SHA> <OWNER/REPO>
description: watch-workflow: <OWNER/REPO>@<SHA7>
persistent: true
persistent: true: セッション終了 or 自然 exit まで継続workflow_run cascade / 後追い dispatch を取りこぼさないための救済「repo 全体を見守りたい」「他人 push の CI / リリース workflow も含めて捕まえたい」用途。SHA-pinned で済む需要はそちらを優先すること。
description が watch-workflow: <OWNER/REPO> (SHA 部なし) と一致する Monitor が既にあれば起動しない (DR-0003: repo 単位 1 本)。
Passive と SHA-pinned は 同 repo に同居可能 (description が異なる)。Passive で全体を見つつ、特定 push は SHA-pinned で別途追跡してよい。
command: bash ${CLAUDE_PLUGIN_ROOT}/scripts/watch-workflow.sh --passive [--max-interval=10m] [--timeout=24h] <OWNER/REPO>
description: watch-workflow: <OWNER/REPO>
persistent: true
--passive は 必須。明示的オプトイン。--sha も --passive も無い起動は exit 2 (エラー終了)。これは「だらだら起動の事前 guard」(WARN だと起動後にしか気付けない)--max-interval 上限まで指数的 (×1.5) に伸ばす--timeout 経過で自走 exit (デフォルト 24h)ユーザが kawaz/foo のように明示した場合はそれを使う。
git -C "$CLAUDE_PROJECT_DIR" config --get remote.origin.url
https://github.com/<owner>/<repo>(.git)? または [email protected]:<owner>/<repo>(.git)? を <owner>/<repo> にパース。
remote が GitHub 以外、または取れない場合は起動せず「この workspace の origin remote は GitHub の repo を指していません」と報告する。
--on-success / --on-failure)特定 workflow の状態遷移時に [ACTION:<key>] <msg> を追加 emit し、AI に明示的な後続操作を指示する経路。@echo hint より catch 率が高い (= 通知に直接埋まる)。両 mode 共通で動作。
# bump-semver の Release workflow が成功したら brew upgrade を打たせる
watch-workflow.sh --sha <SHA> \
--on-success Release "brew upgrade kawaz/tap/bump-semver" \
kawaz/bump-semver
# 失敗時に音声通知 + 成功時に複数 hook
watch-workflow.sh --sha <SHA> \
--on-success Release "brew upgrade kawaz/tap/myproj" \
--on-success Deploy "echo prod deployed" \
--on-failure Release "say 'リリース失敗確認お願いします'" \
kawaz/myproj
[run:change] workflow:Release id:XXX status:success commit:abc branch:main user:kawaz event:push
[ACTION:Release] brew upgrade kawaz/tap/bump-semver
3 軸で完全一致判定 (= user の mental model に合わせる):
| key 形式 | 例 | 比較対象 |
|---|---|---|
| YAML name | Release | run の .name |
| basename | release.yml | basename(.path) |
| basename (stem) | release | basename(.path) から .yml/.yaml 剥がし |
複数 --on-success / --on-failure を渡せる (= repeatable + append)。同じ run に複数 key が当たれば、全部 emit される。
emit は 2 系統:
[scope:action] key:value ... 形式skill 名 / repo は Monitor description (= 通知 <summary>) で識別する前提で emit からは省略される。残り payload は key:value。
watch-workflow は run の状態変化のみ:
[run:change] workflow:<name> id:<id> status:<status> commit:<sha7> branch:<branch> user:<actor> event:<event>
--on-success / --on-failure を渡してあると、success / failure 遷移後に [ACTION:<key>] <msg> 行が追加 emit される (上記 action hook セクション参照)。
status の語彙 (gh 準拠、フラット化):
| status | 意味 | アクション目安 |
|---|---|---|
queued | キュー投入 | 通常黙殺 |
in_progress | 実行中 | 通常黙殺 |
success | 完了・成功 | ユーザに「CI 通った」を報告 |
failure | 完了・失敗 | 即報告。gh run view <id> --log-failed --repo <repo> で深堀候補 |
cancelled | 完了・キャンセル | 内容次第で報告 |
skipped | 完了・スキップ | 通常黙殺 |
timed_out | 完了・タイムアウト | 報告 |
action_required | 完了・手動承認待ち | 報告 |
neutral / stale / startup_failure 等 | gh の他語彙 | 内容を見て判断 |
event は run の trigger 種別 (push / pull_request / workflow_dispatch / schedule 等)。filter 用情報として活用可。
[INFO|WARN|ERROR] <自由文> 形式skill 固有イベントの構造とは異質。payload は自然文 OK (KV 縛りを緩める)。
| イベント | 例 | アクション目安 |
|---|---|---|
[INFO] watch-workflow start: <repo> (mode=sha-pinned sha=<SHA7> grace=...) または (mode=passive max-interval=..., timeout=...) | 起動 ack | 黙殺 (起動確認用) |
[INFO] gh api が復旧 (N 回失敗のあと) | 障害復旧 | 通常は黙殺 |
[INFO] all checks reached terminal state, grace window elapsed, exiting | SHA-pinned 完了による自走 exit | 黙殺 |
[WARN] gh api が N 回連続失敗 | gh 認証 / ネットワーク不調の可能性 | ユーザに要確認を促す |
[ERROR] mode required: --sha <SHA> or --passive | 起動 mode 未指定 (= 誤起動の事前 guard) | 起動失敗。コマンドに --sha <SHA> を付けて再試行 |
[ERROR] ... | その他致命的なエラー | ユーザに報告 |
watch-workflow には self filter はかかりません (DR-0004 改定)。自セッションの push で trigger された CI/release workflow run も emit されます。理由は「CI 結果は数分後の遅延通知で価値ある情報、自分の push 由来でも知りたい」から。中間遷移 (queued / in_progress) の冗長性は別問題 (Followup #1) で扱います。
[comment:add] / [review:submit] 側の self filter は watch-pr に残っており、そちらは初版どおりデフォルト ON です。
--timeout (デフォルト 24h) で自走 exitnpx claudepluginhub kawaz/claude-gh-monitor --plugin gh-monitorGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.