Skill 94 · Copilot PR Autopilot
Subchapter 94.8
references/08-reply-resolve.mdMarkdown4 KBView on GitHub
Sub-agent type: general-purpose drafts the reply bodies; the
parent posts them (mutations stay parent-owned). Budget for the
drafting sub-agent: 5 min.
Runs AFTER step 7 (commit + push) so every reply can cite the .
Scripts
Lib{ thread_id, action, rationale } per open thread (including escalate-to-user).HeadOid from step 7.summary and files_touched from step 5 (for
fix rows).One row per open thread:
{ thread_id, action, reply_body }Where action ∈ fix | decline | escalate-to-user. The parent
consumes this to drive the resolve/no-resolve decision (see
Procedure).
Drafting sub-agent produces a reply_body per thread by
selecting the appropriate template (see #templates)
based on the triage action. Cite the pushed SHA from step 7 in
fix replies. For escalate-to-user, explain the disposition and
the open question for the human merge owner; do not promise a
resolve.
Parent posts each reply, choosing whether to resolve:
pwsh ./scripts/08-reply-and-resolve.ps1 -ThreadId <id> -Body <text>action ∈ { fix, decline } → run as above (resolve happens).
action == escalate-to-user → add -NoResolve so the thread
stays open for the human:
pwsh ./scripts/08-reply-and-resolve.ps1 -ThreadId <id> -Body <text> -NoResolvefix or decline). Resolving without a reply
leaves no record of why the issue was considered addressed.OpenThreadCount > 0.HeadOid is the only SHA reviewers can browse to.Pick by triage action:
| Triage action | Template |
|---|---|
fix | reply-fix.md |
decline | reply-decline.md |
| PR-description / comment drift acknowledgement | reply-drift.md |
| Partial fix with deferred follow-up | reply-partial.md |
For escalate-to-user, there is no template — write a bespoke reply
explaining the disposition and the open question, then post with
-NoResolve so the thread stays open.
The reply has to do real work — it documents the decision for future maintainers and shapes what the next Copilot review will surface.
Be concrete (cite file paths, commit SHAs, function names), direct (no hedging when you have a position), and brief (2–4 sentences is typical). Long replies usually mean the round should have been broken up.
"Thanks!" / "Good point." with no substance."Will fix later." Either fix it now or decline with rationale;
deferred fixes that aren’t tracked anywhere get lost."I disagree." with no reasoning. State the actual technical
disagreement.