Handoff Protocol logo

Handoff Protocol

Community
Dark-Alex-17
handoff-protocol

Schema and discipline for writing and reading step handoff documents - the only channel between implementation steps. Evidence must be pasted, downstream plan changes proposed not imposed. Grants filesystem access for reading and writing handoffs.

Overview

PublisherDark-Alex-17
Repositorycoyote
Skill namehandoff-protocol
Stars
56
Forks
2
Bundled files
Instructions only
LicenseAGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Dark-Alex-17 on GitHub. Read the source before you install it.

Installation

Install the Handoff Protocol AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Dark-Alex-17/coyote/tree/main/assets/skills/handoff-protocol
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Dark-Alex-17/coyote.git /tmp/coyote
mkdir -p .claude/skills
cp -r /tmp/coyote/assets/skills/handoff-protocol .claude/skills/handoff-protocol
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Handoff Protocol in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Handoff Protocol on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Handoff Protocol is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

A handoff is the ONLY channel between step N and step N+1. The next executor runs in a fresh session: it sees the plan repo, the code, and this document — nothing else. Whatever you learned that isn't in the handoff (or in plans/NOTES.md) is lost. Write accordingly.

Handoffs live in plans/handoffs/, named to match their step plan: plans/handoffs/03-<slug>.md for plans/steps/03-<slug>.md.

Required schema (writer)

Frontmatter:

yaml
---
step: 3
title: Add retry policy to the fetch client
result: complete   # complete | partial | blocked
---

Sections, all mandatory (write "None" rather than omitting — an absent section is indistinguishable from a forgotten one):

SectionContents
Summary2-4 sentences: what exists now that didn't before
CompletedTask-by-task, mirroring the plan's Tasks section
Not completedDeferred or dropped tasks, each WITH a reason
DeviationsEvery departure from the plan: what the plan said, what you did, why
Downstream plan updatesEdge-case annotations made directly (which plan, which section) and proposed diffs awaiting approval (see below)
Edge cases discoveredFound during implementation — including ones you handled, so the next step knows they're covered
EvidencePasted verbatim: format/lint/build/test commands, exit codes, salient output lines. Note pre-existing failures explicitly
Notes for next stepWarnings, gotchas, invariants the next executor must not violate

Evidence rules

Assertions are not evidence. "Tests pass" is a claim; this is evidence:

$ cargo test
   ...
test result: ok. 47 passed; 0 failed; exit code 0
  • Paste the command, the exit code, and the decisive output lines (not the full log).
  • Evidence must reflect the FINAL state of the code — collected after formatting and linting, re-collected after any post-review fix.
  • If a check was skipped (no formatter configured, etc.), say so explicitly.

Downstream plan updates: annotate vs propose

Two classes, with different authority:

  • Annotations (make directly). Adding an entry to a later plan's Edge cases section. Additive, non-scope-changing. Record each in Downstream plan updates.
  • Proposals (never apply directly). Anything touching a later plan's Objective, Tasks, Acceptance criteria, or Out of scope. Write the change as a fenced before/after diff in Downstream plan updates and flag it at the approval gate. The user applies or rejects it.

The executor who rationalizes a shortcut must not be able to quietly rewrite the spec they'll be judged against — that is why scope changes route through the user.

Rolling notes vs handoff

  • Handoff: step-scoped. What happened in THIS step.
  • plans/NOTES.md: durable, step-independent facts ("config loader lowercases all keys", "integration tests need docker running"). Append; never rewrite others' entries. Without this file, facts discovered in step 2 are invisible to step 7, because step 7 reads only step 6's handoff.

Reading a handoff (start of a step)

  1. Check result. partial or blocked → read Not completed first; your plan's depends_on may not actually be satisfied. Escalate rather than build on missing ground.
  2. Trust what has pasted evidence. Re-verify bare assertions before depending on them.
  3. Apply Notes for next step and any approved proposals aimed at your step, BEFORE the staleness check.
  4. Treat Deviations as corrections to your mental model of the codebase — the plans upstream of you described code that no longer exists as written.
  5. Read plans/NOTES.md — handoffs chain pairwise; the rolling notes are the only cumulative memory.

Anti-patterns

  • "All tests pass" with nothing pasted — a claim, not a handoff
  • Omitting a section instead of writing "None" — forgotten or empty, the reader can't tell
  • Editing a later plan's Tasks or scope directly instead of proposing a diff
  • Burying a major deviation in prose instead of the Deviations section
  • Durable facts in the handoff only — lost after one more step
  • Evidence collected before the formatter ran — the pasted output describes bytes that no longer exist
  • Writing the handoff before the completion gate (todos done or deferred-with-reason) is satisfied

Frequently asked questions

What does the Handoff Protocol AI skill do?

Schema and discipline for writing and reading step handoff documents - the only channel between implementation steps. Evidence must be pasted, downstream plan changes proposed not imposed. Grants filesystem access for reading and writing handoffs.

Why use Handoff Protocol on TypingMind?

Because you install it once and use it with any model. Handoff Protocol is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Handoff Protocol in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Dark-Alex-17/coyote/tree/main/assets/skills/handoff-protocol. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Handoff Protocol?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Handoff Protocol?

As many as you like. As long as a model supports skills, you can use Handoff Protocol with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Handoff Protocol AI skill free?

Yes. It is published on GitHub by Dark-Alex-17 under the AGPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇