DEV Community

Sam Rivera
Sam Rivera

Posted on

"Build a Handoff Receipt Before Delegating Linear Work"

For a two-person team, delegation fails less dramatically: one person assumes the agent owns the task while the other assumes a human still does. A receipt should make ownership reversible without introducing another service.

What the announcement establishes

GitHub announced Copilot cloud agent for Linear as generally available on July 23, 2026. The official description covers delegating work from Linear and following progress there; it does not remove the need for a team-owned handoff record. Read the primary source.

For test track 8.1, the engineering claim here is narrower than the announcement: the surrounding workflow needs a contract that remains valid when metadata, transport, people, or executors change.

The artifact

# handoff.py — illustrative, unexecuted, Python 3 stdlib
import json, sys, time
p=sys.argv[1]
r=json.load(open(p))
need={"task","from","to","scope","head_sha","expires_at"}
missing=need-r.keys()
if missing: raise SystemExit("missing: "+",".join(sorted(missing)))
r["recorded_at"]=int(time.time())
print(json.dumps(r,sort_keys=True))
Enter fullscreen mode Exit fullscreen mode

Sanitized fixture: {"task":"ENG-42","from":"human:a","to":"agent","scope":["src/ui.py"],"head_sha":"abc123","expires_at":"2026-07-28T12:00:00Z"}.

For test track 8.2, this is a design fixture, not executed code. Pin language and dependency versions before turning it into a repository test, and replace example identities and timestamps with disposable values.

Success path

The delegator creates the receipt, the second person checks scope and starting SHA, and only then marks the task handed off. Completion returns a patch and final SHA to the named reviewer.

For test track 8.3, a successful demonstration records inputs, policy or schema version, decision, and final identifier. It does not infer correctness from a confidence label, status badge, or fluent output.

Failure path and regression plan

Reject a missing expiry, changed starting SHA, or scope expansion. Restore ownership to from, leave the branch intact for inspection, and avoid interpreting a Linear status label as proof of code acceptance.

Try a valid fixture, omitted reviewer, duplicate receipt, expired handoff, and completion against a different commit. The CLI should fail closed with a nonzero exit and never modify the repository.

For test track 8.4, the acceptance gate is binary: the negative fixture must produce no unauthorized or duplicate side effect, while the positive fixture must remain traceable to its initial evidence. Expected output should be documented before execution.

Cleanup and rollback

The exit plan is deliberately boring: cancel delegation, assign the issue back to the human, archive the receipt beside the task notes, and delete the temporary branch after review.

For test track 8.5, cleanup must preserve enough sanitized evidence to distinguish cancellation, rejection, stale work, and successful completion. Never solve recovery by silently marking an uncertain operation successful.

Limitations

For test track 8.6, this article proposes a compact engineering exercise and reports no execution results. It does not evaluate service availability, security, accessibility conformance, productivity, or comparative quality. Product previews can change, and a local fixture cannot reproduce every hosted-system failure.

A practical development environment

If a small team wants a separate workspace for experiments, MonkeyCode is an open-source AGPL-3.0 AI development platform and offers an overseas hosted option. It includes a managed server-side cloud development environment, integrated models, task and requirement management, and build, test, and preview workflows. It is free to start. These statements do not mean the GitHub or OpenAI capability discussed above exists in MonkeyCode. Check the console for current quotas, models, regions, duration, and pricing before planning work. Open the campaign workspace.

Disclosure: This article promotes MonkeyCode using an official campaign link. I’m a MonkeyCode user, not affiliated with the project, and I receive no commission from this link.

AI assistance disclosure: This article was drafted with AI assistance and reviewed against the cited primary sources.

Top comments (0)