Handoff
Compact the current session into a cold-start handoff the MOMENT context fills, the work pauses, or you are about to /clear — so a fresh agent resumes from durable state, not a lost conversation. Writes the 5-field handoff, references artifacts by path instead of duplicating them, and redacts every secret. Use BEFORE you lose context, not after.From its SKILL.md
npx -y skills add celestialdust/achilles-skills --skill handoffAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.0 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Purpose
Stage: cross-cutting · per-session handoff layer.
A context window fills, a session pauses, or you are about to /clear — and the live
conversation, the only place the working state lives, is about to vanish. This skill compacts
that conversation into a cold-start document a fresh agent resumes from with zero prior
context.
It is the per-session half of the two-layer handoff. The other half — the
per-stage artifact chain (intent.md → prd.md → … → qa.md) and STATE.md — carries structural
state turn-to-turn. This skill carries the session's working state: the decision just made, the
half-finished thought, the single next move that those durable artifacts do not yet hold. Written
in the N14 5-field schema so it pairs with (and can BE) docs/session-state.md.
When to use / when to skip
Use when:
- Context budget is nearing the ceiling mid-session — finish the current step, then hand off.
- You are about to
/clear, switch agents, or stop a long human-led session (Ideate / Spec / Plan). - A teammate or a fresh agent will pick the work up cold.
Skip when:
STATE.md+ the per-stage artifact chain already capture everything. An autonomous orchestrator run is resumable fromSTATE.mdalone (auto-compaction + ~1M context — no handoff-resume loop). Do not write a handoff just to restateSTATE.md.- The work is one atomic step you will finish this turn.
Escape hatch: if you are mid-step, do NOT abandon it to write the handoff — finish the step first (context-budget rule), then hand off. A handoff written mid-thought is worse than none.
Inputs
- The current conversation — the primary source being compacted.
- OPTIONAL argument: a one-line description of what the next session will focus on. Treat it as the lens — tailor every field toward that focus.
- Read-only, to reference (never restate):
STATE.md; the per-feature chain underdocs/features/<slug>/(intent.md,prd.md,acceptance.md,plan.md,qa.md);docs/adr/; recent commits/diffs.
No refuse-to-run gate — a handoff can always be written from the conversation. But read the durable artifacts FIRST so you reference them by path rather than copy their bodies in.
Process
- Pick the destination. Session-boundary handoff → write to
docs/session-state.md(the N14 home, committed). Throwaway mid-session compaction → writehandoff.mdto the OS temp dir, not the workspace. Same schema either way. - Write the five N14 fields — state, not narrative.
## Current objective(one sentence) ·## Current state(what is done; which files changed; last known-good commit) ·## Remaining issues(blockers, open questions, undecided calls) ·## Boundaries(what is IN and OUT of scope for the next agent — do not let them over- or under-reach) ·## Next phase(the single next action, specific enough to resume without asking a question). - Reference, do not duplicate. Anything already captured in
prd.md,plan.md, an ADR, an issue, a commit, or a diff is named by path/URL — never pasted. Duplicated knowledge diverges. - Add
## Suggested skills— name the skills the fresh agent should invoke next (e.g. resume Spec →spec-review,to-prd; resume Plan →plan-breakdown,codebase-research). - Redact. Replace every API key, token, password, and PII with
[REDACTED]. For environment needs, point atenvironment.md(typed manifest, no value column) — never carry a value into the handoff. - Tailor to the argument if one was passed — bias
Current state/Next phasetoward that next-session focus.
The handoff document — structure
## Current objective
[One sentence: what this work is trying to accomplish.]
## Current state
[Done so far; files changed; last known-good commit. Reference prd.md / plan.md by path.]
## Remaining issues
[Blockers, open questions, unresolved decisions.]
## Boundaries
[IN scope and OUT of scope for the next agent. Do not cross these.]
## Next phase
[The single next action — specific enough to resume without asking a question.]
## Suggested skills
[Skills the fresh agent should invoke next, and why.]
## Referenced artifacts
[Paths/URLs to prd.md, plan.md, ADRs, STATE.md, commits — NOT their contents.]
Rationalizations
- "I'll just summarize what we discussed." → No. A conversation summary forces the next agent to reconstruct state. Write state, in the five fields (N14 anti-pattern).
- "I'll paste the plan/PRD in so it's all in one place." → No. Reference by path; duplicated knowledge diverges from its source (DRY-of-knowledge).
- "The next agent can figure out the scope." → No. Write
## Boundariesexplicitly, or it will over-reach or under-reach. - "
Continue where we left offis enough for Next phase." → No. That is not actionable; name the file and the step. - "The secret is internal, it's fine to keep." → No. Redact always — a handoff outlives the session and may be shared or committed.
Red flags
- The doc reads as a narrative of "what we did" rather than the five state fields → rewrite.
## Next phasesays "keep working on X" with no file/step → not resumable.- A literal API key, token, password, or PII appears anywhere → STOP, redact to
[REDACTED]. - A whole file body, full diff, or PRD/plan section is pasted in → replace with a path reference.
- No
## Boundariessection → the next agent has no scope fence.
Verification (ending criteria)
Done when ALL hold:
- All five N14 headings present and non-empty: Current objective, Current state, Remaining issues, Boundaries, Next phase.
## Suggested skillsand## Referenced artifactspresent.## Next phaseis a single concrete action (passes "resume without asking a question").- No secret/PII literal in the doc (grep common patterns:
sk-,sk_live,AKIA,password=,token=); any present →[REDACTED]. - No duplicated artifact body — referenced artifacts appear as paths/URLs only.
Outputs & handoff contract
- Emits
handoff.md(per-session compaction) in the N14 5-field schema +## Suggested skills## Referenced artifacts. Operational twin ofdocs/session-state.md; write THERE when this is the durable session boundary, or to the OS temp dir for a throwaway compaction.
- Stable sections a consumer depends on: the five N14 fields (exact headings) +
## Suggested skills. A fresh agent reads these cold to resume. STATE.mdupdate: none. Handoff is the per-session layer and is orthogonal toSTATE.md(the per-run resume index the orchestrator owns). It referencesSTATE.md; it never writes it.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.