--- 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. ```text skill: autopilot-comment skill_path: mode: run subject: microsoft/apm# 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: source_skill: comment_id: none | invocation: agentic-workflow | actor-session receipt: public_body: debug_body: ``` 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: ```text skill: autopilot-comment subject: microsoft/apm# path: comment write: on | off debug: off | on posted: yes | no patched: yes | no comment_id: source_skill: approved: n/a ``` ## Assemble 1. Drop JSON fences and `triage-recommendation` blocks. 2. Build the body from `debug` as above. ASCII only. 3. Append this exact footer, substituting `source_skill`: ```text --- Generated by . This comment is AI-generated and may contain errors. ``` 4. If the footer is already the last lines, do not duplicate it. ## Write Actor-session / Copilot App / Cloud / Remote: - issue + post: `gh issue comment --body-file ...` - pull + post: `gh pr comment --body-file ...` - patch: `gh api -X PATCH /repos/microsoft/apm/issues/comments/` 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.