Skill v1.0.0
currentTrusted Publisher100/100version: "1.0.0" name: autopilot-comment activation_card: on 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.
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.
skill: autopilot-commentskill_path: <resolved directory of this SKILL.md>mode: runsubject: microsoft/apm#<number>path: commentintent: post one GitHub comment | patch one GitHub commentorigin: unattended | actor-sessionwrite: on | offdebug: off | onrepo: microsoft/apmtarget_kind: issue | pulltarget: <positive integer>source_skill: <canonical autopilot skill name>comment_id: none | <positive integer>invocation: agentic-workflow | actor-sessionreceipt: <HTML comment watermark line>public_body: <author-facing prose, no JSON, no footer>debug_body: <full internal template without JSON fence, or none>
Rules:
writedefaults toonwhen the caller omitted it.write: offreturns the assembled body only. Do not post or
patch.
write: onposts or patches exactly one comment. Never labels,
assigns, requests reviewers, or merges.
debugdefaults tooffwhen omitted or unknown. Omitted
debug is not a missing-field stop.
debug: off-> HTMLreceiptpluspublic_body. Do not post
internal headings from debug_body.
debug: on-> first line[i] Skill debug is on.thenreceipt
plus debug_body (or public_body if debug_body is none).
comment_id: nonewith intentpost. A numericcomment_id
with intent patch. Mismatch -> stop.
source_skillis the caller (for example
autopilot-issue-triage-worker). Never autopilot-comment.
originfail-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:
skill: autopilot-commentsubject: microsoft/apm#<number>path: commentwrite: on | offdebug: off | onposted: yes | nopatched: yes | nocomment_id: <id or none>source_skill: <canonical autopilot skill name>approved: n/a
Assemble
- Drop JSON fences and
triage-recommendationblocks. - Build the body from
debugas above. ASCII only. - Append this exact footer, substituting
source_skill:
---Generated by <source_skill>. This comment is AI-generated and may contain errors.
- If the footer is already the last lines, do not duplicate it.
Write
Actor-session / Copilot App / Cloud / Remote:
- issue + post:
gh issue comment <target> --body-file ... - pull + post:
gh pr comment <target> --body-file ... - patch:
gh api -X PATCH /repos/microsoft/apm/issues/comments/<comment_id>
Agentic Workflow: safe-outputs.add-comment for post. Patch is not available; stop if intent is patch.
One comment per activation. No progress comments.
Hard nos
- Do not assign, request reviewers, merge, or edit labels.
- Do not implement.
- Do not compose schedulers or other workers.
- ASCII only.