Official agent skill

Autopilot Issue Triage Scheduler

by microsoft in microsoft/apm

Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions.

OfficialMITAuto-check passedDevelopment

Install Autopilot Issue Triage Scheduler

skills CLI
$ npx skills add microsoft/apm --skill autopilot-issue-triage-scheduler -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/apm autopilot-issue-triage-scheduler --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/apm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/autopilot-issue-triage-scheduler .claude/skills/autopilot-issue-triage-scheduler && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
autopilot-issue-triage-scheduler
GitHub stars
4k
Token cost
~1.6k tokens
SKILL.md length
712 words
Files
5 (incl. scripts, assets)
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions.

  • Works in 5 steps: Probe scripts/fetch_queue.py,… → Build the queue with the helpers. Emit… → Drain the selected list. Concurrent… → …
  • Tasks that involve Issue triage
  • SKILL.md covers Activation card, Invocation, Selection (same contract as… and Queue table (mandatory), plus 3 more sections
  • Runs Python scripts from its folder; calls python and gh

What it does

Autopilot Issue Triage Scheduler is an agent skill from microsoft/apm, published by the product's own GitHub organization. Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions. Advisory only. Never implements, never assigns, never requests reviewers. Activate on a mixed issue list or queue-all when the job is triage. Works in a local session, Copilot App automation, Cloud Agent, Remote Agent, or Agentic Workflow.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and assets (for example `assets/fan-out-pool.md`, `assets/label-contract.json` and `scripts/fetch_queue.py`).

It sits in Development, covering Issue triage, App automation through connectors and Monitoring and alerting. The repository describes itself as: Agent Package Manager. The licence is MIT.

When your agent uses it

  • Tasks that involve Issue triage
  • Tasks that involve App automation through connectors
  • Tasks that involve Monitoring and alerting

Example prompts

  • “/autopilot-issue-triage-scheduler”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Probe scripts/fetch_queue.py, scripts/triage_state.py, and
  2. Build the queue with the helpers. Emit the mandatory queue
  3. Drain the selected list. Concurrent slots <= FANOUT_LIMIT.
  4. Optionally present ONE consolidated triage digest. Wait if the
  5. Print a final report from the table.

What it can do on your machine

Read from SKILL.md and the folder at commit 280b8a7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Autopilot Issue Triage Scheduler loads about 1.6k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 712 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~100
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from microsoft/apm at commit 280b8a7, republished under its MIT licence (© microsoft). 712 words, ~1,620 tokens.

Download SKILL.mdSave it as .claude/skills/autopilot-issue-triage-scheduler/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
autopilot-issue-triage-scheduler
description
Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions. Advisory only. Never implements, never assigns, never requests reviewers. Activate on a mixed issue list or queue-all when the job is triage. Works in a local session, Copilot App automation, Cloud Agent, Remote Agent, or Agentic Workflow.
activation_card
on

autopilot-issue-triage-scheduler

User-facing issue TRIAGE queue. This skill SELECTS issues and THROTTLES fan-out. It does not implement and does not review PRs.

Compose autopilot-issue-triage-worker one issue per slot. Never borrow slots from autopilot-issue-delivery-scheduler, autopilot-pr-review-scheduler, or autopilot-pr-triage-scheduler.

Activation card

activation_card: on. Before any queue read or spawn, emit this Enter card with every field filled. Missing field -> stop.

text
skill: autopilot-issue-triage-scheduler
skill_path: <resolved directory of this SKILL.md>
mode: run
subject: microsoft/apm
path: triage
intent: select issues and fan out triage workers
origin: unattended | actor-session
write: off
repo: microsoft/apm
fanout_limit: <positive integer>
invocation: agentic-workflow | actor-session

Rules:

  • write is always off. This scheduler never comments, labels, assigns, or requests reviewers.
  • write: on -> stop.
  • origin fail-closed unknown -> unattended.
  • invocation is the harness. Copilot App, local session, Cloud Agent, and Remote Agent are actor-session. agentic-workflow is only gh-aw / GitHub Actions. Do not copy origin into invocation.
  • One queue. Do not nest another scheduler path.

After the run, emit this Exit receipt:

text
skill: autopilot-issue-triage-scheduler
subject: microsoft/apm
path: triage
write: off
queued: <integer>
spawned: <integer>
approved: n/a

Invocation

Works in local sessions, Copilot App automations, Cloud Agent, Remote Agent, and Agentic Workflows.

Resolve ORIGIN before any GitHub write. No assignment needed. This scheduler and its slots never assign and never request reviewers, in any ORIGIN.

INTENT is triage.

Ownership writes:

  • Issue triage: none (no assignment needed)
  • Code (accepted implementation): assign the implementing user
  • PR review: request the reviewing user as reviewer, never assignee

Selection (same contract as Triage Panel AW)

Canonical owner: this skill's scripts/fetch_queue.py, scripts/triage_state.py, and assets/label-contract.json. The PR-triage scheduler ships an identical copy. Do not invent a second filter. The worker does not list the queue.

Modes (match .github/workflows/triage-panel.md):

  • Named list or one issue number: explicit request (dispatch / label-event). triage/requested is the only request trigger. status/needs-triage is human decision state, not an event, and is not consumed.
  • queue-all / no names: daily-style sweep.

fetch_queue.py owns list + eligibility (closed, locked, empty, template-only; sweep-only spam). Bot-authored issues stay eligible. Sweep list excludes processing.read_reviewed (triage/recommended, status/triaged) at GitHub so already-advised open items are not downloaded. Do not comment on skips. triage_state.py owns completed-advice skip (processing.read_reviewed), at most two per author, oldest first, cap 10. Explicit requests bypass only spam and completed-advice.

Default (authenticated gh):

python <this-skill>/scripts/fetch_queue.py --kind issue --mode sweep --repo microsoft/apm > batch.json
python <this-skill>/scripts/triage_state.py < batch.json

Named issue: --mode dispatch --number N. If gh is unavailable, pass --records-json and --labels-json. A helper failure stops the run.

Do not implement. Do not open PRs. Do not fill delivery or review slots from this pool. Do not comment on issues. Do not add or remove labels. add_labels from triage_state.py is a plan for the worker, not a scheduler write.

Show full SKILL.md (337 more words)Show less

Queue table (mandatory)

Before any spawn, emit the keep-set and the drop-set in plan.md and in the session report. Missing table, missing column, or blank rationale -> stop. Do not spawn.

Keep-set (items this run will schedule). One row per item. Do not truncate to FANOUT_LIMIT:

| number | kind | labels | rationale | slot |

Drop-set (considered, then not scheduled). slot is -:

| number | kind | labels | rationale | slot |

  • kind: issue or pr
  • labels: current GitHub labels, comma-separated; none if empty
  • rationale: why queued or dropped (helper rule and labels)
  • slot: 1-based spawn order, or - when dropped

Empty keep-set is success. Still emit the drop-set, or none. Completed-advice excluded at fetch is not a drop-set row. You are the sole table writer.

Fan-out

Load assets/fan-out-pool.md. Default FANOUT_LIMIT=2 concurrent slots. Isolated to this run. FANOUT_LIMIT is concurrency, not queue length. Drain the full selected list; when a slot returns, fill it with the next item.

Procedure

  1. Probe scripts/fetch_queue.py, scripts/triage_state.py, and autopilot-issue-triage-worker on disk. Missing -> stop.
  2. Build the queue with the helpers. Emit the mandatory queue table (labels + rationale) before any spawn.
  3. Drain the selected list. Concurrent slots <= FANOUT_LIMIT. One issue per slot. Prefer a new session, else a sub-agent, else run the worker in this thread for that one issue, then the next. When a slot returns, dispatch the next queued issue. Do not stop because the pool was full. Each slot reads the complete comment history before advising. Pass debug: off unless this run's caller set debug: on. Pass comment_via: autopilot-comment. Worker kickoff must load autopilot-comment before any GitHub comment. Workers must not call gh issue comment.
  4. Optionally present ONE consolidated triage digest. Wait if the caller asked for a checkpoint. Never treat silence as accept.
  5. Print a final report from the table.

Hard nos

  • Do not share this pool.
  • Do not dispatch the same issue to two slots.
  • Do not implement inside the scheduler thread.
  • Do not comment, label, close, or assign. Workers own those writes even when summoned without this scheduler.
  • Do not contradict CODEOWNERS.
  • ASCII only.

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, assets) in .agents/skills/autopilot-issue-triage-scheduler of microsoft/apm.

  • SKILL.md
  • assets/fan-out-pool.md
  • assets/label-contract.json
  • scripts/fetch_queue.py
  • scripts/triage_state.py

Open the folder on GitHubat commit 280b8a7

Compare with similar skills

Autopilot Issue Triage Scheduler next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Autopilot Issue Triage Scheduler compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Autopilot Issue Triage Scheduler this skillmicrosoft/apm4k—~1.6kAutomated safety check: PassMIT
Codeberg Issue Triagegoern/forgejo-mcp141—~2.1kAutomated safety check: PassGPL-3.0
TiXL Ticket Processortixl3d/tixl5.1k—~2.6kAutomated safety check: PassMIT
Issue Triagepaperclipai/paperclip99k—~1kAutomated safety check: PassMIT
Pagerduty Automationdavepoon/buildwithclaude3.6k7 repos~2.6kAutomated safety check: PassMIT
GitHub Automationsickn33/agentic-awesome-skills47k1 repos~1.3kAutomated safety check: PassMIT

Similar skills

  • Codeberg Issue Triage

    goern/forgejo-mcp

    Triage a single issue on Codeberg (or any Forgejo/Gitea-compatible host).

    141 GitHub stars~2.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Works through the In progress column of the TiXL road-map board unattended, turning simple tickets into git stashes and writing plans for the rest under .agentic/Plans.

    5.1k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Issue Triage

    paperclipai/paperclip

    Triage Paperclip inbox issues that are stale, blocked, in-review, or assigned-but-not-progressing, and decide a single next action per issue (resume, reassign, unblock, escalate, or close).

    99k GitHub stars~1k tokensUpdated today
    DevelopmentAuto-check passed
  • Pagerduty Automation

    davepoon/buildwithclaude

    Automate PagerDuty tasks via Rube MCP (Composio): manage incidents, services, schedules, escalation policies, and on-call rotations.

    3.6k GitHub starsUsed in 7 repos~2.6k tokens
    Productivity & AutomationAuto-check passed
  • GitHub Automation

    sickn33/agentic-awesome-skills

    Operate GitHub issues, pull requests, branches, checks, workflows, and permissions through Rube MCP.

    47k GitHub starsUsed in 1 repo~1.3k tokens
    DevelopmentAuto-check passed
  • Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog.

    1.6k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check: warnings

More from microsoft/apm

All 27 skills in this repo
  • Cut Release

    microsoft/apm

    Official

    A skill your agent uses to cut an APM release from the current worktree: assess whether the cycle since the last tag warrants a patch or minor bump (semver discipline against the…

    4k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Docs Corpus Audit

    microsoft/apm

    Official

    A skill your agent uses to run a holistic regrounding pass on the entire microsoft/apm documentation corpus against current source code, page-by-page, and emit surgical fixes for stale claims.

    4k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Official

    A skill your agent uses to verify CLAIM-LEVEL grounding of a documentation page (or set of pages) against the source code.

    4k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Official

    A skill your agent uses to write the PR description (PR body) for any pull request opened against microsoft/apm.

    4k GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Official

    A skill your agent uses to implement ONE microsoft/apm issue already selected by autopilot-issue-delivery-scheduler.

    4k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Official

    Drive ONE already selected open pull request in microsoft/apm to mergeable.

    4k GitHub stars~3.4k tokensUpdated today
    Auto-check passed

Questions about Autopilot Issue Triage Scheduler

What does Autopilot Issue Triage Scheduler do?

Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions. Autopilot Issue Triage Scheduler is an agent skill from microsoft/apm, published by the product's own GitHub organization. Queue open microsoft/apm issues and fan them out through an isolated pool (default 2) of autopilot-issue-triage-worker sessions.

When should I use Autopilot Issue Triage Scheduler?

Autopilot Issue Triage Scheduler fits situations like: tasks that involve Issue triage; tasks that involve App automation through connectors; tasks that involve Monitoring and alerting.

How do I install Autopilot Issue Triage Scheduler in Claude Code?

Run `npx skills add microsoft/apm --skill autopilot-issue-triage-scheduler -a claude-code`. Or copy the skill folder (.agents/skills/autopilot-issue-triage-scheduler in microsoft/apm) into .claude/skills/autopilot-issue-triage-scheduler in your project. Claude Code loads it when a task matches its description.

How do I install Autopilot Issue Triage Scheduler in Codex?

Run `npx skills add microsoft/apm --skill autopilot-issue-triage-scheduler -a codex`. Or copy the skill folder (.agents/skills/autopilot-issue-triage-scheduler in microsoft/apm) into .agents/skills/autopilot-issue-triage-scheduler in your project. Codex loads it when a task matches its description.

Can I use Autopilot Issue Triage Scheduler in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/apm --skill autopilot-issue-triage-scheduler -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/autopilot-issue-triage-scheduler, .gemini/skills/autopilot-issue-triage-scheduler, .github/skills/autopilot-issue-triage-scheduler and .opencode/skills/autopilot-issue-triage-scheduler in your project.

What does Autopilot Issue Triage Scheduler need to run?

Going by SKILL.md and its folder, Autopilot Issue Triage Scheduler needs Python for the scripts in its folder and the command-line tools its instructions call (python and gh). Our summary lists: Python 3.

Does Autopilot Issue Triage Scheduler access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Autopilot Issue Triage Scheduler safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Autopilot Issue Triage Scheduler use?

Autopilot Issue Triage Scheduler is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Autopilot Issue Triage Scheduler use?

About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Autopilot Issue Triage Scheduler?

Skills that share tags, products or a category with Autopilot Issue Triage Scheduler: Codeberg Issue Triage (goern/forgejo-mcp, 141 stars), TiXL Ticket Processor (tixl3d/tixl, 5.1k stars), Issue Triage (paperclipai/paperclip, 99k stars) and Pagerduty Automation (davepoon/buildwithclaude, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Autopilot Issue Triage Scheduler?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/apm, which has 3,988 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 9, 2026.

Source: microsoft/apm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.