Agent handoff

Async vs sync review loops, park discipline, exit codes, and MCP/CLI pairing.

The handoff protocol is agent waits, human releases for sync waits, plus a default async park/resume path so agents do not burn tokens holding a turn open.

Async (default)

Agent opens review / submits plan
  → gets URL + nextAction=park
  → ends turn (no await loop)
Human reviews when ready
  → says "ready" / agent resumes
Agent runs one await OR comments --open / get_plan

Do not silent-loop on timeout. At most one extra await if the human asked you to keep waiting.

Sync (human at the keyboard)

diffing await-review [--timeout 570]
# or MCP await_review

Long-poll until Send to agent. Default timeout 570s.

Exit codes

CodeMeaning
0OK — payload received
2Await timeout (expected park signal)
3No server for this repo
4Not found (e.g. comment id)
5Usage error

On timeout, stderr includes DIFFING_AWAIT_TIMEOUT and a park hint.

Discovery

No port configuration:

diffing url
diffing sessions --json
diffing sessions use <id>

MCP binds a repository (diffing mcp [--repo /abs/path]) and discovers the active lockfile.

MCP vs CLI

MCPCLI
await_reviewdiffing await-review
list_commentsdiffing comments [--open] [--format xml|json|md]
reply_to_commentdiffing reply
resolve_comment / unresolve_commentdiffing resolve / unresolve
report_progressdiffing progress --message "…"
diff_*diffing inspect …
Plan toolsdiffing plan …
gh_*diffing gh …

Full catalog: MCP tools.

Comment-only mode

If a released handoff has mode comment-only, reply without editing files.

Skills

npx skills add ahmedragab20/diffing

Skills: diffing, diffing-start-review, diffing-finish-review, diffing-review, diffing-plan-review, diffing-pr-read, diffing-pr-address.