A handoff is the unit another chat needs to continue a job. It is a paste block plus the files that chat must open. A markdown note alone is not a handoff.
- Kind:
handoff - Extension:
.handoff - MIME:
application/x-handoff - Versions: 1 and 2 (v2 = pinned:
repoandcommitrequired) - Language spec: docs/language.md
- Declaration:
handoff.kind - Sample:
sample.handoff(a v2 handoff that continues Lumen fromlumen.py)
This type is registered in the sandbox and in this repo. It is not an OS MIME registration.
- Open
sample.handoffor the.handoffyou were given. - Reject it unless line 1 is
# handoff v1or# handoff v2. - Read
mission,continue_from, andstop_rule, plusrepoandcommitif set. - Open every path under
FILESatcommitinrepobefore writing. - Take
PASTEas the exact instruction. Do not summarize it. - Do not claim the job continued unless the
stop_ruletest passed.
Check a file:
python3 parse_handoff.py sample.handoff
Work continues in the repo named by the fenced repo field, pinned to the commit field. Both are optional in v1 and required in v2. Write new handoffs as v2. The sample points at https://github.com/fitzyracing1/lumen at commit b93be5644b6e5659606bfede4bd086d94cd215c2.
Run the tests:
python3 -m unittest discover -s tests -v
parse_handoff.py checks structure only. Checking that FILES exist and running the stop_rule belong to handoff-mcp.
License: MIT, see LICENSE.
- In-repo docs: docs/
- Wiki: https://github.com/fitzyracing1/handoff/wiki
This project is free, and its license stays as is. Support it through GitHub Sponsors:
- Free: use the code, community support.
- Pro ($49/month): priority issues and support.
- Team ($199/month): priority support for your team plus early access.