CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

autopilot-pr-triage-scheduler

Queue open microsoft/apm pull requests (community fixes, PRs without an issue, or PRs that close an issue) and fan them out through an isolated pool (default 2) of autopilot-pr-triage-worker sessions. Advisory only. Never merges, never assigns, never requests reviewers, never runs autopilot-pr-review-worker. Activate on a mixed PR list or queue-open when the job is PR triage. Works in a local session, Copilot App automation, Cloud Agent, Remote Agent, or Agentic Workflow.

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

The canonical home for this skill is autopilot-pr-triage-scheduler in microsoft/apm

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong operational skill body: lean imperative rules, copy-paste-ready commands with verified bundle files, and a fail-closed procedure with explicit stop checkpoints. The main gaps are a somewhat redundant Invocation section, no post-spawn verification of worker outcomes, and a couple of references (label-contract.json, inlined filter rules) that are not cleanly disclosed.

Suggestions

Consolidate the write-prohibition rules repeated across the Activation card, Invocation, and Hard nos into one canonical location to tighten conciseness.

Add an explicit post-spawn verification step (e.g., confirm each slot's worker completed before reporting "spawned") to close the workflow validation gap for this batch operation.

Give assets/label-contract.json an explicit read trigger and link, and move the inlined fetch_queue.py/triage_state.py filter rules into a short reference file or the scripts' docstrings to sharpen progressive disclosure.

DimensionReasoningScore

Conciseness

The body is dense, imperative, and explains no concepts Claude already knows, but boundary rules are restated across sections: "This scheduler and its slots never assign and never request reviewers, in any ORIGIN" repeats the Activation card's "This scheduler never comments, labels, assigns, or requests reviewers" and the Hard nos, and the Ownership-writes list mostly describes other pipelines ("PR review: request the reviewing user as reviewer"). This fits anchor 4 (efficient with minor trimmable instances); it is above 3 because the redundancy is limited to safety-boundary restatements rather than general padding, and below 5 because the Invocation section could be consolidated.

4 / 5

Actionability

Guidance is fully executable: copy-paste commands "python <this-skill>/scripts/fetch_queue.py --kind pr --mode sweep --repo microsoft/apm > batch.json" and "python <this-skill>/scripts/triage_state.py < batch.json", the dispatch variant "--mode dispatch --number N", fallback flags "--records-json" and "--labels-json", and fully specified card, receipt, and queue-table templates with every column defined. All referenced bundle files (fetch_queue.py, triage_state.py, label-contract.json, fan-out-pool.md) exist, matching anchor 5's complete, common-case-covering commands; anchor 4's "minor gaps" do not apply.

5 / 5

Workflow Clarity

The Procedure is a clear numbered sequence with explicit fail-closed checkpoints at each stage ("Missing -> stop" for probes, "A helper failure stops the run", "Missing table, missing column, or blank rationale -> stop. Do not spawn."), so the batch-operation validation requirement is satisfied and the anchor-3 cap does not apply. It is not 5 because there is no post-spawn verification of worker outcomes beyond "Print a final report from the table" and no error-recovery loop (failures stop the run rather than feeding back), leaving minor validation gaps per anchor 4.

4 / 5

Progressive Disclosure

Structure is good: on-demand loading is clearly signaled ("Load [assets/fan-out-pool.md](assets/fan-out-pool.md)"), scripts are reached via concrete commands, all four bundle files are referenced and exist, and references are one level deep. It is not 5 because "assets/label-contract.json" is named as a canonical owner with no read trigger or link, and the Selection section inlines ~15 lines of the helpers' filter rules ("closed, merged, locked, empty, template-only; sweep-only draft and spam ... at most two per author, oldest first, cap 10") that arguably belong in a reference or the scripts themselves — minor organization gaps per anchor 4.

4 / 5

Total

17

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: it states concrete, parameterized actions, gives an explicit activation clause with natural trigger phrases, and explicitly fences off adjacent sibling skills. Its main weaknesses are the shared "queue-open" trigger term with sibling schedulers and slightly incomplete coverage of the skill's full workflow.

Suggestions

Add one more concrete capability phrase (e.g., "emit a keep/drop queue table before spawning workers") so the specificity anchor's comprehensive-coverage bar for a 5 is met.

Add natural trigger synonyms such as "triage open PRs" or "sweep the PR queue" alongside "queue-open", and contrast the trigger with issue triage to further reduce sibling-skill overlap.

State that the scheduler emits a mandatory queue table and a final report so the "what" covers the observable outputs of a run.

DimensionReasoningScore

Specificity

Concrete actions are named — "Queue open microsoft/apm pull requests" and "fan them out through an isolated pool (default 2) of autopilot-pr-triage-worker sessions" — plus explicit boundary actions ("Never merges, never assigns, never requests reviewers"). This lists several specific actions with concrete parameters, matching anchor 4; it is not 5 because the description omits parts of the actual workflow (queue table emission, slot draining), and it is above 3 because more than 1-2 actions are specified with repo-scoped detail.

4 / 5

Completeness

The "what" is explicit ("Queue open microsoft/apm pull requests ... and fan them out through an isolated pool") and the "when" is explicit with concrete trigger phrases ("Activate on a mixed PR list or queue-open when the job is PR triage"). Both questions are clearly and concretely answered, matching anchor 5; it is above anchor 4 because the when-clause does not need to be more explicit or specific.

5 / 5

Trigger Term Quality

Natural terms a user would say are present: "PR triage", "mixed PR list", "queue-open", and both synonyms "pull requests" and "PRs". This is good keyword coverage per anchor 4; it falls short of anchor 5's comprehensive synonym coverage (e.g., no "triage open PRs", "PR queue sweep", or similar variations), and is above anchor 3 because the core natural trigger phrases are explicitly included.

4 / 5

Distinctiveness Conflict Risk

The description fences off its closest siblings ("Never merges, never assigns, never requests reviewers, never runs autopilot-pr-review-worker") and pins a clear niche (repo-scoped PR triage scheduling, "Advisory only"). However "queue-open" is a trigger mode plausibly shared with the issue-triage sibling skill, leaving minor overlap risk with closely related skills — anchor 4 rather than 5's minimal conflict risk.

4 / 5

Total

17

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 1 suspicious

Warning

Total

14

/

16

Passed

Repository

microsoft/apm

Path

packages/autopilot/autopilot-pr-triage-scheduler/.apm/skills/autopilot-pr-triage-scheduler/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.