Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use at the end of any session that discovered durable knowledge (architecture decisions, root causes, setup gotchas, workflow changes, security findings, reusable patterns), or when the user says "hand off", "write a handoff", or "save this for the memory system".
.claude/skills/escoffier-labs-memory-handoff/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 118% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 220% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 40% | 0% |
Coding sessions die with their transcripts. A memory handoff is a short structured note that a memory owner (a long-lived agent, a teammate, or future you) can review and file into durable memory. This skill pairs with brigade, which lints and ingests handoffs, but works standalone.
In a Brigade-wired repo the handoff is the closing gate of the Brigade process model. This skill owns the handoff itself: format, quality bar, routing sections, and lint.
Durable knowledge only: architecture decisions, non-obvious root causes, environment gotchas, workflow changes, security findings, reusable commands or patterns, user preferences, research findings. Not task chatter, not anything the repo already records (code, git history, existing docs).
.brigade/ config) or an existing handoff dir (.claude/memory-handoffs/, .codex/memory-handoffs/), write there..claude/memory-handoffs/ and write there.Filename: YYYY-MM-DD-HHMM-<slug>.md
md# Memory Handoff ## Type setup | workflow | bugfix | decision | security | preference | research | project-context ## Title Short, specific title ## Summary 2 to 4 sentences. What happened and why it matters. ## Durable facts - Fact 1 - Fact 2 ## Evidence - files changed: ... - commands run: ... - error strings: ... ## Recommended memory action create-card | update-card | no-card ## Target card descriptive-card-name.md ## Suggested card content (the exact card to save; MUST start with YAML frontmatter)
brigade handoff lint requires the routing sections: Recommended memory action is mandatory, and for create-card/update-card the suggested card content must begin with YAML frontmatter. For no-card, replace the card sections with ## Target document and ## Suggested document content instead. When unsure of the destination system's exact expectations, scaffold with brigade handoff draft and fill it in.
If the brigade CLI is installed, run brigade handoff lint on the repo and fix what it flags. If not, re-read the handoff asking: could someone who was not in this session act on this?
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→fail | 11,863 | 4,266 | -64% | 1 | 1 | 0% | 1,840 | 1,278 | -31% | 0 | 0 | — |
case-01 | fail→pass | 23,323 | 10,721 | -54% | 1 | 1 | 0% | 1,917 | 2,795 | +46% | 0 | 0 | — |
case-03 | fail→pass | 34,098 | 10,931 | -68% | 1 | 1 | 0% | 1,319 | 2,879 | +118% | 0 | 0 | — |
case-04 | pass→pass | 11,398 | 9,304 | -18% | 1 | 1 | 0% | 1,671 | 2,216 | +33% | 0 | 0 | — |
case-05 | pass→pass | 13,446 | 13,623 | +1% | 1 | 1 | 0% | 1,970 | 2,115 | +7% | 0 | 0 | — |
case-06 | fail→pass | 4,902 | 5,940 | +21% | 1 | 1 | 0% | 538 | 1,721 | +220% | 0 | 0 | — |
case-07 | fail→pass | 10,481 | 6,117 | -42% | 1 | 1 | 0% | 1,747 | 1,843 | +5% | 0 | 0 | — |
case-08 | fail→pass | 9,989 | 7,887 | -21% | 1 | 1 | 0% | 1,423 | 1,991 | +40% | 0 | 0 | — |
case-09 | fail→pass | 5,029 | 7,909 | +57% | 1 | 1 | 0% | 765 | 2,179 | +185% | 0 | 0 | — |
case-10 | pass→pass | 9,319 | 9,094 | -2% | 1 | 1 | 0% | 1,437 | 2,318 | +61% | 0 | 0 | — |
case-11 | fail→pass | 6,120 | 8,228 | +34% | 1 | 1 | 0% | 907 | 2,200 | +143% | 0 | 0 | — |
case-12 | fail→pass | 7,720 | 8,535 | +11% | 1 | 1 | 0% | 1,325 | 2,197 | +66% | 0 | 0 | — |
case-13 | fail→pass | 10,026 | 1,935 | -81% | 1 | 1 | 0% | 1,631 | 1,065 | -35% | 0 | 0 | — |
case-14 | fail→pass | 9,754 | 13,244 | +36% | 1 | 1 | 0% | 1,656 | 3,124 | +89% | 0 | 0 | — |
case-15 | fail→pass | 9,420 | 3,474 | -63% | 1 | 1 | 0% | 1,554 | 1,051 | -32% | 0 | 0 | — |
case-16 | fail→pass | 8,371 | 4,126 | -51% | 1 | 1 | 0% | 1,296 | 1,454 | +12% | 0 | 0 | — |
case-17 | fail→pass | 7,749 | 10,181 | +31% | 1 | 1 | 0% | 902 | 1,960 | +117% | 0 | 0 | — |
case-18 | fail→pass | 9,509 | 7,477 | -21% | 1 | 1 | 0% | 1,414 | 2,074 | +47% | 0 | 0 | — |
case-19 | fail→pass | 9,858 | 9,380 | -5% | 1 | 1 | 0% | 1,486 | 2,371 | +60% | 0 | 0 | — |
case-20 | fail→fail | 12,834 | 10,373 | -19% | 1 | 1 | 0% | 1,971 | 2,522 | +28% | 0 | 0 | — |
case-21 | fail→pass | 10,378 | 8,970 | -14% | 1 | 1 | 0% | 1,561 | 2,560 | +64% | 0 | 0 | — |
case-22 | fail→pass | 10,382 | 6,143 | -41% | 1 | 1 | 0% | 1,484 | 1,753 | +18% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +77 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/6/2026 | +59% |
Other measured skills in the registry, with their headline benchmark lift.