# Autopilot Comment

Use this skill to post or patch ONE GitHub comment for a microsoft/apm autopilot run.

- Repository: https://github.com/microsoft/apm (4171 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add microsoft/apm --skill autopilot-comment -g -a claude-code -y`
Codex: `npx skills add microsoft/apm --skill autopilot-comment -g -a codex -y`
Cursor: `npx skills add microsoft/apm --skill autopilot-comment -g -a cursor -y`
Gemini CLI: `npx skills add microsoft/apm --skill autopilot-comment -g -a gemini-cli -y`

## Description

Use this skill to post or patch ONE GitHub comment for a microsoft/apm autopilot run. It owns public vs debug body assembly and the AI disclaimer footer. Never labels, assigns, requests reviewers, or merges. Autopilot skills that write comments must load this skill and must not call gh comment APIs themselves.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# autopilot-comment -- Sole GitHub comment writer

Any autopilot skill that would write a GitHub comment loads this
skill in the same session and stops if the card is missing. Do not
spawn a nested session. Do not comment from the caller.

## Activation card

`activation_card: on`. Before any GitHub comment write, emit this
Enter card with every field filled. Missing field -> stop.

```text
skill: autopilot-comment
skill_path: <resolved directory of this SKILL.md>
mode: run
subject: microsoft/apm#<number>
path: comment
intent: post one GitHub comment | patch one GitHub comment
origin: unattended | actor-session
write: on | off
debug: off | on
repo: microsoft/apm
target_kind: issue | pull
target: <positive integer>
source_skill: <canonical autopilot skill name>
comment_id: none | <positive integer>
invocation: agentic-workflow | actor-session
receipt: <HTML comment watermark line>
public_body: <author-facing prose, no JSON, no footer>
debug_body: <full internal template without JSON fence, or none>
```

Rules:

- `write` defaults to `on` when the caller omitted it.
- `write: off` returns the assembled body only. Do not post or
  patch.
- `write: on` posts or patches exactly one comment. Never labels,
  assigns, requests reviewers, or merges.
- `debug` defaults to `off` when omitted or unknown. Omitted
  `debug` is not a missing-field stop.
- `debug: off` -> HTML `receipt` plus `public_body`. Do not post
  internal headings from `debug_body`.
- `debug: on` -> first line `[i] Skill debug is on.` then `receipt`
  plus `debug_body` (or `public_body` if `debug_body` is `none`).
- `comment_id: none` with intent `post`. A numeric `comment_id`
  with intent `patch`. Mismatch -> stop.
- `source_skill` is the caller (for example
  `autopilot-issue-triage-worker`). Never `autopilot-comment`.
- `origin` fail-closed unknown -> `unattended`.
- Strip any JSON fence from bodies before assembly. Never post
  JSON on GitHub.

After the write (or dry-run), emit this Exit receipt:

The rest: https://github.com/microsoft/apm/blob/HEAD/.agents/skills/autopilot-comment/SKILL.md
