Handoff Architecture

Plain-English explainer of what got decided in step 01.1 of the migration.

TL;DR — what changes

The problem in one picture

Right now your handoffs are scattered across 10 different folders on two machines, with five different naming conventions, and no sync between them. Stuff that has nothing to do with n8n is living in the n8n folder.

174
handoff files in N8N-BUILDER on Mac
~75%
are NOT n8n-related (Mistral, TTS, dispatch, etc.)
9
separate handoff silos on the VPS
5
naming conventions coexisting
Today's mess (VPS)
/home/dev/projects/n8n-builder/handoffs/ /home/dev/projects/praul/handoffs/ /home/dev/projects/lever/handoffs/ /home/dev/projects/kdp/handoffs/ /home/dev/projects/dev-ops/handoffs/ /home/dev/projects/lb-debug-workspace/handoffs/ /home/dev/josh-portal/handoffs/ /home/dev/handoffs/ ... and Mac has its own handoffs/ folder unsynced from any of these

The new layout

Everything moves into one folder at the top of your code home, prefixed with an underscore so it sorts above project folders. Same structure on Mac and VPS, kept in sync via Git.

Tomorrow's layout (Mac & VPS, mirrored)
_handoffs/ ├── active/ # picked up next or in flight ├── done/ # complete or superseded ├── parked/ # valid but backlogged ├── _kickoffs/ # launch prompts (NEW — easier to find) ├── _archive/ # session-report-* + team-* dumps (time-series exhaust) └── _local/ # gitignored — handoffs that quote secrets

How a single handoff lives

Most handoffs are just one file. But some need transcripts, screenshots, context dumps, or sample data alongside them. Rule: everything for one handoff lives together so when it moves through its lifecycle, the context moves with it.

Simple handoff (no extras)
_handoffs/active/ └── handoff-mistral-tour.md
Handoff with resources
_handoffs/active/ └── mistral-tour/ ├── handoff.md ├── context.md ├── transcript.md └── screenshot.png

The lifecycle (unchanged but cleaner)

active/
created here
done/
work complete
active/
parked/
"not now, but valid"
active/
resurrected

When a handoff moves between states, its kickoff file (see next section) moves with it.

Kickoff prompts — solving "I can't find them"

You mentioned having a hard time organizing kickoff prompts. Here's the fix:

The launch prompt lives in two places — one is the source, one is the index

Source of truth: the fenced code block at the bottom of every handoff.md (unchanged).

Generated sibling: a tiny file at _handoffs/_kickoffs/<name>.md containing just the launch prompt and a link back to the handoff.

When you need to launch a chat, you browse _kickoffs/ — flat list, just prompts, easy to scan. The handoff-creator skill writes both files automatically going forward.

How the two machines stay in sync

Both Mac and VPS check the same private GitHub repo. The _handoffs/ folder lives in that repo. Markdown is small, syncs cheap, and you get a full edit history for free.

Mac
~/<top>/_handoffs/
GitHub
private repo
VPS
/home/dev/_handoffs/

Edge case: if a handoff genuinely contains a secret (rare — most reference IDs, not tokens), it goes in _handoffs/_local/ instead. That subfolder is gitignored so it stays on the machine where you wrote it.

What happens to the 174 existing files

Migration 02 will move them in three batches. You don't have to do anything — the migration handoff handles it.

WhatHowWhere it lands
~113 files in handoffs/done/Big-bang move_handoffs/done/
Files in handoffs/parked/Big-bang move_handoffs/parked/
Files in handoffs/active/Lazy — moves when next touched_handoffs/active/
session-report-*.md, team-*.md dumpsBig-bang to archive_handoffs/_archive/
handoffs/team-runs/Big-bang move_handoffs/active/team-runs/
_dev0/handoffs/ho-*.mdStay put(migration-specific, untouched)
VPS — 9 silosMerge into one/home/dev/_handoffs/active/

Safety net: active handoffs leave a 30-day symlink at the old path so any in-flight chat that says "Read handoffs/handoff-X.md" still works.

Where the rules live (so this doesn't drift again)

The current root cause of drift is that no master rules file exists — every project copy of handoffs.md defines its own conventions, and bot sessions write wherever the project tells them to.

Three layers
~/.claude/rules/handoffs.mdMaster. Created fresh. Auto-loaded every session.
<project>/.claude/rules/handoffs.mdTrimmed down to project-specific overrides only.
Skill files (handoff-creator, closeout, dev0-report, team-builder)Path strings updated from handoffs/_handoffs/active/. Migration 02 has the line-level list ready.

Naming convention (one, going forward)

The only convention you need to remember
handoff-<short-kebab-case-description>.md

Optional project prefix when the topic is ambiguous: handoff-kdp-keyword-strategy.md, handoff-tts-vendor-sweep.md, handoff-dispatch-bot-routing.md. That's it.

The numbered ho-N.M-… pattern stays inside _dev0/migration/ for migration-step handoffs only — it doesn't leak into _handoffs/.

What's still open

Authored by step 01.1 of the N8N-BUILDER migration · 2026-04-29 · The full machine-readable spec lives in _dev0/migration/architecture-decisions.md.