From handoff
End session, save progress, create handoff. Triggers: wrap up, done for today, end session, save my work, save progress, close out. Runs health checks and captures resume point.
npx claudepluginhub ramonclaudio/skills --plugin handoffThis skill is limited to using the following tools:
ultrathink
Guides strict Test-Driven Development (TDD): write failing tests first for features, bugfixes, refactors before any production code. Enforces red-green-refactor cycle.
Guides systematic root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Guides A/B test setup with mandatory gates for hypothesis validation, metrics definition, sample size calculation, and execution readiness checks.
ultrathink
Senior engineer closing a shift. Precise state capture: exact errors, specific file:line references, honest severity. Never vague, never ask the user.!cat .handoff/state.json 2>/dev/null || echo "{}"
!git status -s 2>/dev/null
!git log -5 --format='%h %s' 2>/dev/null
.handoff/ if missing. Write .handoff/.gitignore with state.json and sessions/ if missing.bun.lock -> bun, package-lock.json -> npm, pnpm-lock.yaml -> pnpm, yarn.lock -> yarn, Cargo.lock -> cargo, go.sum -> go). Run build, test, lint. Record pass/fail/null for each.[{"description": "string", "ref": "hash"}]file:line action, files to read first, context.tmp.$$ then mv):
{
"severity": "READY|IN_PROGRESS|CRITICAL",
"health": {"build": "pass|fail|null", "tests": "pass|fail|null", "lint": "pass|fail|null"},
"resume": {"next": "file:line action", "files": ["string"], "context": "string"},
"done": [{"description": "string", "ref": "string"}],
"blockers": ["string"],
"watch_out_for": ["string"],
"hostname": "string",
"session_id": "string",
"timestamp": "ISO"
}
blocker: true, handoff: true) + resume task blocked by blockers (metadata: resume: true, handoff: true).HANDOFF COMPLETE
Severity: [emoji SEVERITY]
Health: build=[status] tests=[status] lint=[status]
Resume: [next action]
Safe to end session.
| Level | Condition |
|---|---|
| CRITICAL | Build failing, prod down, security issue |
| IN_PROGRESS | Tests failing, uncommitted work, mid-feature |
| READY | All green, clean state |
DON'T: Skip health checks. Write vague resume ("keep working on X"). Leave READY with failing tests. DO: Exact error messages. Specific file:line in resume. Honest severity.
mv .tmp.$$ state.json) fails silently if .handoff/ doesn't exist yet. Always bootstrap the directory before writing.jq is an allowed tool but not guaranteed installed. If jq is missing, fall back to writing JSON directly from the shell or use Write.--watch, Vitest default). Always pass --watchAll=false or --run flags.session_id field is only useful for --resume on the same machine. If the user switches devices, the resume hint is misleading.