From 553834dbb10fd5565d4922183d71f4e3684765d7 Mon Sep 17 00:00:00 2001 From: Michal Date: Sun, 16 Aug 2026 00:16:07 +0100 Subject: [PATCH] docs(epics): document linking a task to its pull request Accept only merges if the task carries a prNumber, and nothing said how a human sets one. It goes through the generic patch command; without this the merge gate reads as unreachable from the CLI. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01N4wNHWf7xSwnZCWpJcyv9p --- docs/epics.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/epics.md b/docs/epics.md index e10418c..6b766cd 100644 --- a/docs/epics.md +++ b/docs/epics.md @@ -124,6 +124,25 @@ mcpctl tasks verdict cart-cookie-ttl \ Reaching `done` without the required passing verdicts is refused, and the error names which stage is missing. +### Linking the pull request + +Accept only merges something if the task knows what its pull request is. An +agent writes these when it pushes; from the CLI they go through `patch`: + +```sh +mcpctl patch task cart-cookie-ttl \ + branch=feat/cart-cookie-ttl \ + headCommit=4f2a91c \ + prNumber=214 \ + prUrl=https://mysources.co.uk/michal/mcpctl/pulls/214 +``` + +`headCommit` is what the review is pinned to. Accept refuses if the PR's head +has moved past it — see below. + +A task with no `prNumber` can still be accepted; it records the approval and +merges nothing, and says so rather than implying code landed. + ### The human gate `done` means it left the developer's loop, not that it shipped. `awaiting_review`