本文へ移動
cccskills
GitHub Copilot 公式無料GitHub で公開

run-health-review

Stall watchdog and automation health review. Pulls recent runs, merges, no-op rate, failures, rate-limit hits and stuck PRs; classifies each stall; proposes exactly one change or "no change"; and takes over orphaned work. Use when unattended delivery stalled ("why did it stall overnight", "no merges in N hours", "it was fast the first few days, now slow"), when an automation fails or its output drops, when rate limits or quotas are hit, or on a schedule while agents run unattended.

日本語の概要は準備中です。原文の説明を表示しています。

github/leverスター 49(GitHub 49 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(1)

  • SKILL.md10.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

run-health-review

Unattended work fails quietly. A host restarts and children sit idle, a quota runs out at 2am, a prompt drifts, the pool empties, CI goes red and every worker politely no-ops. Without a watchdog, the human computes "time since last merge" by eye every morning. This skill makes that check a job: measure health from GitHub state, name the stall, change one thing (or nothing), and pick up work that was left half-done.

When to use

  • "Why did delivery stall overnight?", "nothing merged for 8 hours", "this was great the first few days, now it's slow".
  • An automation failed (automation_failed) or its useful-output rate dropped.
  • 403/429 rate-limit errors, or CI minutes or another quota ran out.
  • On a schedule: every 30–60 minutes during an active unattended run; weekly for automations at steady state.

When not to use

  • Nothing is running unattended. Use progress-contract for attended work.
  • A single PR is red. That is pr-shepherd's job.

Steps

  1. Set the window and baseline. Default: last 24 h vs the prior 7-day daily average.
  2. Pull health signals, read-only, in one pass:
    • Time since last merge to the default branch (the headline watchdog metric) and since the last release.
    • Merged PRs, open PRs by state: green-unmerged, red, conflicted, waiting on review, draft; age of each.
    • Ready-pool size (see keep-the-pool-full).
    • Per automation or worker: runs, ACTED / NOOP / BLOCKED mix, failures by reason (reported, crashed, timed_out), latest revision and date.
    • Rate-limit and quota hits: 403/429 counts, CI minutes, API calls per merged PR.
    • Idle or interrupted sessions and branches with no commits since the stall began.
  3. Stay silent if healthy. If time since last merge is under STALL_THRESHOLD and no signal crossed its threshold, end NOOP(healthy) and post nothing.
  4. Classify each stall with the taxonomy below. Cite the evidence for each (the run, PR, log line or count). One stall can have one primary cause; list secondary causes, don't act on them.
  5. Take over orphaned work if TAKEOVER allows (protocol below).
  6. Propose one change, or none. Pick the single change with the largest expected effect on the headline metric. State the prediction ("time since last merge back under 45 min within 24 h") and how you will check it. "No change" is a valid outcome when the stall was transient or the cause is outside your control; say what you'll watch instead.
  7. Route human-only blockers once. Permissions, budget increases, sign-ins and policy calls go in a single list with a recommended answer, surfaced in the next scheduled report. Never ask the same question twice; never block a stream on it.
  8. Report in the status format: time since last merge: x → y, merged count, stalls by class, the one change (or "no change") with its prediction, takeovers, human-only list. Next run, check last run's prediction first.

Stall taxonomy

ClassSignalTypical one change
SupplyPool empty or low; workers NOOP(no eligible work)Run keep-the-pool-full; raise its target
CIMain red, or PRs red on the same jobRoute to main-red triage; quarantine a proven flake
Rate limit (secondary)403 or 429 with a rate-limit body or Retry-After; bursts of content-creating writes from many lanes on one identityClassify as retryable, not permission. Record "not attempted, retry after <absolute time>". Pace all lanes through one budget; serialize writes
Quota (primary)Hourly API, CI-minute or credit cap exhaustedLower concurrency or trigger breadth; adopt the shared API budget below
PermissionBLOCKED on a missing tool, scope or rulesetOne human-only request; or remove the step that needs it
Prompt driftRising BLOCKED or invalid outputs after a revision; humans overriding outputsRevert to the last good revision, or propose one contract-rule change
OrphanedBranch or PR with an owner that stopped (host restart, interrupted session)Take over (below)
TriggerEligible items with no run (filter too narrow); or many runs per item (too broad)Adjust one trigger filter; add a sweep
Review / mergeGreen PRs waiting on threads or approvalsThread-resolution sweep; check the autonomy level is what the human intended
Busy-but-idleSession reports busy, but there has been no new turn or tool call for longer than IDLE_AFTERRekick with what changed and what's expected. Judge liveness by the last tool timestamp, not a status flag
Host restartCoordinator and children went idle at the same time, right after a deploy of the platform they run onResume the root first, then its children. Make "resume self" the last step of any self-deploy
Self-echo / no-op stormNo-op wakes above 50%, or any wakes triggered by the agent's own writesTighten the wake filter (see automate-it step 3)
Tool-profile mismatchA tool fails on every call; a write tool sits in a read-only profileRemove it, or fix the profile. Every-call failures are a config bug, not flakiness

Takeover protocol

  1. Find candidates: open PRs or branches with no commits for longer than ORPHAN_AFTER, whose owner session or automation is no longer running.
  2. Verify state: head SHA, CI on that SHA, unresolved threads, mergeability, and the linked issue's acceptance check.
  3. Claim visibly: comment "taking over from <owner> at <sha>: <next step>" and assign yourself (or the worker that will continue).
  4. Continue from the existing branch. Don't rewrite or force-push someone else's commits; add commits on top.
  5. If the work is obsolete (superseded, already fixed on main), close it with a one-line reason and a link, only if TAKEOVER allows closing.
  6. Record the takeover. If the original owner reappears, hand back with the current state.

Shared API budget

Quota is the failure mode that grows with success: more agents, more polling, more calls per merge.

  • Inventory callers: every automation, worker and local loop that reads GitHub, with calls per run.
  • Set a per-unit budget, for example at most 75 REST calls per merged PR across all callers, and a per-hour ceiling below the token's limit.
  • Pace through one budget, not N independent ones. Priority order: merge-path work first, reports last.
  • Cut calls before adding retries: read the head SHA only; one batched GraphQL read per wake; bounded pages; cached job lists; wait on events instead of polling.
  • Alert on overspend: calls per merged PR above budget, or any 403/429, is a Rate limit or Quota stall.

Dials

DialDefaultOptions
STALL_THRESHOLD2 h without a merge during active hours, report onlyMinutes; per repo
ScheduleHourly during active runs; weekly otherwiseinterval; automation_failed
TAKEOVERpropose (list candidates, don't act)continue (claim and push), continue_and_close
ORPHAN_AFTER2 h without commits and no live ownerDuration
Change authorityPropose onlyApply prompt changes via a human; never self-update automations
Merge stalled green PRsOffOn, at the level set in docs/autonomy.md
API budget75 REST calls per merged PRInteger; per-hour ceiling
Quiet hoursNoneNo human pings between X and Y; batch into the morning report

Outputs

  • A health report (silent when healthy) with stalls, evidence, one change or "no change", and a prediction.
  • Takeover comments and records.
  • At most one proposed change per run, for example a propose_automation_update or a PR to a prompt file.

To run the weekly automation half unattended, install automations/automation-health.

This skill's own feedback loop

  • Headline metric: stall minutes per day (time since last merge above threshold), and human rekicks or "why did it stall?" asks per week (target zero).
  • Prediction score: for each proposed change, did the predicted metric move within the window? Keep a running hit rate. If "no change" runs are followed by the same stall twice, escalate the class.

Failure modes it prevents

  • The human as the watchdog, computing time since last merge by eye.
  • Changing three things at once and learning nothing.
  • Half-done PRs left by interrupted sessions.
  • Agents exhausting a shared API quota and taking every other agent down with them.
  • Asking the same human-only question every hour.

Why this exists

  • Morning messages in one long unattended run: "no merged commits in 19 hours", "no commit all night", "lots of draft PRs, nothing merged for 8 hours". The human computed the metric himself for about two weeks before it became a 30-minute job; once encoded, overnight stalls became visible and short.
  • Rekicking interrupted child sessions was the top manual chore (at least 7 explicit requests) until it became a rule that the human should never have to ask.
  • Scheduled single-shot runs spend 7–13% of runs checking state and exiting. Event-woken, long-lived sessions are different: in one sample, about 62% of wakes were no-ops and about 16% were self-echo. A watchdog must know which kind of lane it is judging.
  • CI babysitters once made about 45k API calls in 3 hours and hit the rate limit. The fix was a shared budget and fewer calls per merge, not retries.
  • In one fleet of hosted agents, the secondary rate limit was mentioned more than 15 times as often as flaky tests. The damage came from misreading a rate-limited 403 as access-denied and reporting merges as failed. The fix was classification plus one paced budget, not retries.
  • Revisions that changed one thing (a model swap, a prompt cut 15% with the same rules) could be judged; "no change" was often the right answer.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

automate-it

GitHub Copilot 公式無料

Turns a task you keep doing by hand into a paused GitHub Copilot Automation with an event trigger, a least-privilege tool list, a PARAMETERS + CONTRACT prompt, a quiet exit and a propose-only improver sibling. It creates automations, so it runs only on `/lever automate` or an explicit ask ("automate this", "run this on every PR/issue", "do this nightly", "make this run in the cloud"). When the same task has been done 3 or more times by hand, or a local self-wake has fired 5 or more times for the same job, suggest it in one line instead of running it.

日本語の概要は準備中です。原文の説明を表示しています。

github/lever492026年10月29日 更新

autonomous-delivery

GitHub Copilot 公式無料

Runs long-lived delivery as a coordinator with parallel lanes. Sets authority and pacing dials up front, keeps lanes alive and fed, lands work through a single-writer release train, and reports status only when something changed. Runs only on `/lever deliver`, "/autonomous-delivery" or an explicit request to run multi-hour, overnight or multi-lane delivery ("run this overnight", "keep N streams going", "don't stop until it ships"), or to re-arm an existing run after a restart.

日本語の概要は準備中です。原文の説明を表示しています。

github/lever492026年10月29日 更新

autonomy-dial

GitHub Copilot 公式無料

Resolves how far an agent may take a change, from L0 propose to L5 release. It reads the repo's real GitHub rules (rulesets, branch protection, CODEOWNERS, merge queue) and `.github/lever.yml`, applies per-path and per-class limits, records every grant verbatim with its source and expiry, and exposes a `may_merge` check that delivery skills call before landing anything. Use when a delivery skill or automation starts, when creating an automation, before any merge or enqueue, or when the user says "merge", "ship it", "land it", "then merge", "hand off", "do not merge", "freeze" or "you can merge X".

日本語の概要は準備中です。原文の説明を表示しています。

github/lever492026年10月29日 更新

brief

GitHub Copilot 公式無料

Turns a short intent, often around 20 words, into a brief that can run unattended. The brief has the user's words verbatim, an outcome owner, an observable done-when, a feedback loop, constraints and neighbors, a budget, an autonomy level, an absence window, stop conditions and a report contract. Runs only on `/lever brief`, when another lever skill delegates, or on an explicit request to write a brief or hand work off ("kick off", "spin up", "hand this to", "while I'm asleep", "I'll be away"). It files issues, so it never runs just because work is happening in parallel.

日本語の概要は準備中です。原文の説明を表示しています。

github/lever492026年10月29日 更新

cross-model-review

GitHub Copilot 公式無料

Reviews a PR, diff, plan or skill with 2–3 models from different providers working blind and independently, and surfaces only the findings they agree on or that survive a contradiction-first proof; a precision mode runs one automated reviewer that posts at most two proven findings and stays silent otherwise. Use when asked to "review this with opus, codex and gemini", "rubber duck this plan", "second opinion", "only show me issues the models agree on", when a plan is about to drive a day or more of work, when work has been stuck for hours, or when setting up review-on-ready automation.

日本語の概要は準備中です。原文の説明を表示しています。

github/lever492026年10月29日 更新

experiment-arms

GitHub Copilot 公式無料

Runs many single-hypothesis "arms" as do-not-merge PRs, measures each with paired, interleaved runs against a cost-matched control, keeps only the arms that clear a keep bar set in advance, records every negative, and composes the winners into a stack that is re-measured on real traffic after merge. It opens PRs and burns CI, so it runs only on `/lever arms` or an explicit ask to measure ideas ("which of these ideas actually helps?", "is this change worth it?", "try that tip I saw", "run arms on this") for a CI, perf, eval, benchmark or cost hill-climb where the system can be run on demand.

日本語の概要は準備中です。原文の説明を表示しています。

github/lever492026年10月29日 更新

github のスキルをすべて見る

このスキルの問題を報告する