create-handoff

$npx mdskill add tobihagemann/turbo/create-handoff

Writes a handoff file capturing session state for continuity.

  • Saves session state so a fresh session can continue without re-deriving context.
  • Depends on git status and the file system to write .md files.
  • Uses date, slug from artifact or user, and avoids path collisions.
  • Creates a markdown file at .turbo/handoff/<date>-<slug>.md with task details.

SKILL.md

.github/skills/create-handoffView on GitHub ↗
---
name: create-handoff
description: "Write a handoff file at .turbo/handoff/<YYYY-MM-DD>-<slug>.md capturing current session state — task, status, open decisions, in-flight changes, next step — so a fresh session can continue without re-deriving context. Use when the user asks to \"create a handoff\", \"create handoff\", \"save handoff\", \"handoff before compact\", \"save session state\", \"handoff for next session\", or \"capture session state\"."
---

# Create Handoff

Write a session handoff file at `.turbo/handoff/<YYYY-MM-DD>-<slug>.md` so a fresh session can pick up where this one left off.

## Step 1: Resolve the Target Path

Get today's date: `date +%Y-%m-%d`.

Pick a slug for the current task:

- Lowercase
- Replace non-alphanumeric characters with hyphens
- Collapse consecutive hyphens
- Trim leading and trailing hyphens
- Truncate to 40 characters at a word boundary

If the work is anchored to an existing artifact (a plan at `.turbo/plans/<slug>.md`, a shell at `.turbo/shells/<slug>.md`, or a spec at `.turbo/specs/<slug>.md`), reuse that artifact's slug verbatim.

The user may pass an explicit slug or path; honor it.

The target path is `.turbo/handoff/<YYYY-MM-DD>-<slug>.md`. If the path already exists, append `-2`, `-3`, etc. until the path is free.

State the chosen path before continuing.

## Step 2: Gather Session State

Run `git status --short` to see uncommitted changes in the working tree.

Survey the conversation context for:

- **Current task**: what is being worked on, in one or two sentences
- **Workflow status**: where in the workflow this session is (drafting, refining iteration N, applying findings, implementing step M of K, investigating, blocked on Q, etc.)
- **Active artifact**: path to the plan, shell, spec, or other file at the center of the work, if one exists
- **Open decisions**: questions raised but not resolved, choices the user is still weighing, escalations awaiting input
- **In-flight changes**: staged or unstaged edits that are not yet committed; what each change is doing and what is missing
- **Next step**: the first concrete action the new session should take

When something is genuinely unclear and would leave a gap in the handoff, use `AskUserQuestion` to resolve it. Default to inferring quietly when the conversation makes the answer clear.

## Step 3: Write the Handoff File

Create `.turbo/handoff/` if it does not exist. Write the file at the path picked in Step 1.

Lead with `# Handoff: <Task Title>`. Cover the items gathered in Step 2 in whatever structure fits the session — drafting, refining, implementing, and investigating sessions each have different shapes and don't all map to the same headings. Close with a clear statement of the next concrete action so the new session knows exactly what to do first.

Keep it dense. Omit anything that has no real content.

## Step 4: Confirm

Tell the user where the handoff was written and quote the next-step statement so the path forward is visible at a glance.

Then use the TaskList tool and proceed to any remaining task.

More from tobihagemann/turbo

SkillDescription
answer-reviewer-questionsFor each reviewer question on a PR, recall implementation reasoning and compose a raw answer. Use when the user asks to \"answer reviewer questions\", \"draft answers to PR questions\", or \"explain reviewer questions\".
apply-findingsApply findings by making the suggested code changes. Applies accepted verdicts, escalates ambiguous findings to the user, and offers to note genuine improvements for later. Use when the user asks to \"apply findings\", \"apply fixes\", \"apply suggestions\", \"apply accepted findings\", \"fix the findings\", or \"apply the review results\".
assess-technical-debtAssess project-wide structural technical debt: complexity hotspots, deprecated API usage, duplication clusters, and architecture rot. Ranks findings by impact and refactor effort into a report at .turbo/technical-debt.md. Use when the user asks to \"assess technical debt\", \"find technical debt\", \"review technical debt\", \"what should we refactor\", \"find refactoring candidates\", \"where is the code rot\", or \"what's our worst code\". Analysis-only — does not modify code.
changelog-rulesShared changelog conventions and formatting rules referenced by /create-changelog and /update-changelog. Not typically invoked directly.
claude-printRun a non-interactive Claude Code print-mode call from Codex. Use when the user asks to \"claude print\", \"ask claude\", \"run claude\", \"consult claude\", or when a Codex Turbo skill needs Claude as an independent peer reviewer.
code-styleEnforce mirror, reuse, and symmetry principles to keep new code consistent with surrounding code. Use when writing new code in an existing codebase, adding new features, refactoring, or making any code changes.
codex-execRun autonomous task execution using the codex CLI. Use when the user asks to \"codex exec\", \"run codex exec\", \"execute a task with codex\", or \"delegate to codex\".
commit-rulesShared commit message rules and technical constraints referenced by /stage-commit and /commit-staged. Not typically invoked directly.
commit-staged-pushCommit already-staged changes and push in one step. Use when the user asks to \"commit and push staged changes\", \"commit and push what's staged\", or \"commit staged and push\".
consult-claudeConsult Claude Code for second opinions, brainstorming, or difficult debugging from Codex. Use when the user asks to \"consult claude\", \"ask claude\", \"get claude's opinion\", \"brainstorm with claude\", or \"discuss with claude\".