From tl
Captures the orchestrator's mental model, task state, and git history for a structured session handoff. Use at end of long sessions, when /session-health recommends a fresh session, or before switching workstreams.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tl:handoff [focus area][focus area]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
!`git log --oneline -10`
!git log --oneline -10
You are running a session handoff -- capturing the orchestrator's mental model so a future session can pick up where this one left off. Focus area (optional): $ARGUMENTS
Handoff works in 4 phases:
Gather state (tasks + git + context)
-> Document decisions and discoveries
-> Identify loose ends and risks
-> Write handoff note
Check your task tracker for current state: in-progress tasks, blocked items, and what is ready to pick up.
git status
git log --oneline -10
git stash list
Note any uncommitted changes, recent commits made this session, and stashed work.
Review what you set out to do this session and what actually happened:
List every significant decision made during this session:
These are the decisions most likely to be re-litigated in a fresh session without context.
Note any patterns, conventions, or codebase behaviors discovered during exploration:
Capture the high-level understanding built up during this session:
For each in-progress task:
Flag anything that could cause problems:
Identify any agents that were dispatched this session but did not complete:
List unresolved questions that came up during the session:
Sharpening gate: Transform vague questions into decision frameworks. For each question:
Example transformation:
src/cache/provider.ts: Redis (latency <10ms, requires infra) vs in-memory (no infra, scale limit at ~1M records). Decision criteria: expected data volume and ops budget. Ask: product team for volume projections"Produce a structured handoff document:
## Session Handoff: [date or topic]
### What Got Done
- [completed task/outcome 1]
- [completed task/outcome 2]
### Key Decisions
- **[Decision]**: [reasoning] (rejected: [alternatives])
### Patterns & Discoveries
- [pattern/discovery with evidence]
### In-Progress Work
- **[task ID]**: [status, where to pick up, what remains]
### Uncommitted Changes
- [file or area]: [what changed and why it is not yet committed]
### Blocked Work
- **[task ID]**: blocked on [reason]
### Resumable Agents
<!-- only include this section when one or more agents were mid-task at session end -->
- **[agent-id]**: [one-line description of last known state — e.g., "investigating auth module, blocked on missing test coverage"]
- Resume: `Task({resume: "<agent-id>"})`
### Open Questions
- **[Component/file]**: [decision needed] — Options: [A (pros/cons), B (pros/cons)]. Criteria: [what determines choice]. Ask: [who or what investigation resolves this]
### Recommended Next Steps
1. [Highest priority action with specific file/function/command to run]
2. [Second priority with pickup point]
3. [Third priority with context]
### Risks & Warnings
- [anything the next session should watch out for]
If $ARGUMENTS specifies a focus area, use it as the filename context. Write the handoff note to the project's memory:
Create a handoff task in your task tracker with the full handoff note content, or write the handoff note to .claude/tackline/memory/handoff-[date].md for persistent reference if the project has a .claude/tackline/memory/ directory.
After writing the handoff note, emit a pipe-format summary so the next session's /status or /advise can consume handoff items without parsing the full prose document:
## Handoff state
**Source**: /handoff
**Input**: [focus area from $ARGUMENTS, or "general session handoff"]
**Pipeline**: (none — working from direct input)
### Items (5)
1. **Unfinished work** — [N tasks in-progress at handoff time]
- tasks: [task IDs and one-line status for each in-progress task]
- pickup points: [specific file:line or step for each task]
2. **Key decisions** — [N decisions made this session]
- decisions: [brief titles of the most important decisions]
- rationale preserved: [yes — in handoff note | partial | no]
3. **Resumable agents** — [N agents mid-task | none]
- agents: [agent IDs and last known state, or "none"]
4. **Open questions** — [N unresolved questions]
- questions: [component names where decisions are needed]
- blockers: [external dependencies or missing information]
5. **Risks flagged** — [N risks]
- risks: [brief list of fragile areas or timing-sensitive work]
- confidence: CONFIRMED
### Summary
[One paragraph: what work was in flight, what the highest-priority pickup point is, and what the incoming session should do first.]
npx claudepluginhub tyevans/tackline --plugin tacklineGenerates a structured handoff document capturing progress, open tasks, key decisions, and resume context when ending a session or planning to continue later.
Generates a structured session handoff summary with current status, completed/remaining tasks, decisions, pitfalls, and next steps for context resumption.
Coordinates cross-session handoffs by snapshotting open work, writing a status doc, and generating a goal prompt for a fresh session to continue.