Content
82%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A dense, highly actionable orchestration runbook: exact CLI invocations with fallbacks, a mandatory pre-dispatch queue table acting as a checklist, and fail-closed stop conditions at every risky step. Its weaknesses are redundancy (guardrails stated three to four times, ownership rules for sibling paths) and a fail-closed-only error model with no recovery path for a failed slot during the batch drain.
Suggestions
State the write-prohibition guardrails once in an authoritative section (e.g., Hard nos) and reference it from the Activation card and Invocation instead of repeating them; drop Ownership writes entries for issue triage, code, and PR review paths this scheduler never executes.
Add an explicit slot-failure recovery rule to the Procedure (e.g., record the failed PR in the queue table with a failure rationale and continue draining remaining slots, or stop the run), so a worker error mid-drain has defined behavior rather than only fail-closed stops at setup time.
Move the inline eligibility rules summarized under Selection ("closed, merged, locked, empty, template-only; sweep-only draft and spam", completed-advice skip, two-per-author cap) into assets/label-contract.json or a selection asset, keeping only the helper commands, modes, and table format in SKILL.md.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is lean and telegraphic with no explanations of concepts Claude already knows, but the same write-prohibition guardrails are repeated across the intro, Activation card rules ("`write` is always `off`. This scheduler never comments, labels, assigns, or requests reviewers"), Invocation, and Hard nos ("Do not comment, label, close, merge, or assign"), and the Ownership writes block lists rules for paths this PR scheduler never executes ("Issue triage: none", "Code (accepted implementation): assign the implementing user"). These minor redundancies could be trimmed without loss, matching level 4 rather than the every-token-earns-its-place level 5. | 4 / 5 |
Actionability | Guidance is fully executable: copy-paste-ready commands ("python <this-skill>/scripts/fetch_queue.py --kind pr --mode sweep --repo microsoft/apm > batch.json", "python <this-skill>/scripts/triage_state.py < batch.json"), a complete named-dispatch mode ("`--mode dispatch --number N`") with a documented fallback ("If `gh` is unavailable, pass `--records-json` and `--labels-json`"), exact card fields, exact table columns, and a concrete slot fill-order. The common cases are covered by specific commands. | 5 / 5 |
Workflow Clarity | The Procedure gives a clear sequence with real validation checkpoints — "Probe `scripts/fetch_queue.py`, `scripts/triage_state.py`, and the worker skill on disk. Missing -> stop", "A helper failure stops the run", and the pre-spawn table gate "Missing table, missing column, or blank rationale -> stop. Do not spawn" — plus edge-case handling ("Empty keep-set is success"). It stops short of level 5 because error handling is fail-closed only: there is no explicit fix-and-retry or slot-failure recovery path (e.g., what to do when a worker fails mid-drain), a minor validation gap for a batch operation. | 4 / 5 |
Progressive Disclosure | Good structure with clearly signaled one-level-deep references that all exist in the bundle: "Load [assets/fan-out-pool.md](assets/fan-out-pool.md)" plus the canonical helpers "`scripts/fetch_queue.py`, `scripts/triage_state.py`, plus `assets/label-contract.json`", and fan-out-pool.md itself contains no nested references. It sits below level 5 because the ~180-line body still inlines a fair amount that a stricter split would move out (the full eligibility summary "closed, merged, locked, empty, template-only; sweep-only draft and spam", ownership rules for other triage paths, and the cross-skill link "[autopilot-pr-triage-worker](../autopilot-pr-triage-worker/SKILL.md)" that leaves this bundle). | 4 / 5 |
Total | 17 / 20 Passed |