agentleFS
jctotsjctots/thinkpad-fedora-agent/.claude/skills/handover/SKILL.md

handover

Skill0 starsChanged 3 months agoMITView on GitHub

Write or read .claude/handover.md, a session-continuity snapshot used instead of `claude -c` around a reboot-triggering action. Use in write mode proactively before anything likely to end the session (systemctl reboot, rpm-ostree rebase, anything requiring a restart); use in read mode whenever the session's first turn is the literal message "I'm back" — sent automatically by scripts/session-autostart.sh on every launch, not typed by the human — or when the user says they're back after a reboot by hand.

53 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use harness-init, brainstorm and 7 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • steptianSkill

    harness-init

    初始化 .harness 开发框架,集成代码修改影响范围评估和测试覆盖建议功能。触发词:'初始化新项目'、'harness init'、'更新 harness'、'分析影响范围'、'评估修改影响'

    Also in 3 projects that use this

  • nicolasestremSkill

    brainstorm

    Structured idea generation and solution exploration with systematic analysis.

    Also in 3 projects that use this

  • GoogleSkill

    to-tickets

    Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker — edges as text in one file per ticket locally, or native blocking links on a real tracker.

    Also in 3 projects that use this

  • BlockSkill

    plan

    Draft a TDD, PRD, or lightweight plan in the conversation without committing it.

    Also in 3 projects that use this

  • MicrosoftSkill

    caveman

    Ultra-compressed response style that reduces output token count while preserving technical accuracy, with intensity levels and auto-clarity safety rules

    Also in 3 projects that use this

  • GoogleSkill

    grilling

    Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

    Also in 3 projects that use this

  • +2 more from google

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 0 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 40 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Start a new session — no -c.

    line 50
  2. Very specific:

    Check whether .claude/handover.md exists.

    line 52
  3. Very specific:

    Absent: no resume needed. Give a plain, short greeting — who you are and an invitation to start, no recap of prior work unless asked — and …

    line 60
  4. Very specific:

    Check local/session-launch-failures.log (gitignored, may not exist).

    line 65
  5. Very specific:

    If it has content, each line is a prior launch attempt that never reached a model turn — session-autostart.sh logs these itself (no …

    line 66

“Common” is measured: kept by at least 6 in 10 of the 40 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Normally reached via /end-session, which checks whether a reboot is actually pending and invokes this skill's write mode only if so — don't make the user track which mechanism applies. Invoke this skill directly when you already know a reboot is imminent and want the snapshot written without going through that check.

Formalizes the standing practice already recorded in this project's memory (feedback-handover-over-dash-c): claude -c replays the entire prior transcript as input tokens on every subsequent turn, including large one-time outputs like full rpm-ostree install dumps — on a long bootstrap-style session that cost compounds every turn for the rest of the session. A bounded handover file plus memory gives the same continuity for a fixed, small cost instead.

Write mode — before a session-ending action

Trigger proactively, without being asked, before systemctl reboot, rpm-ostree rebase, or anything else that requires a restart.

  1. Snapshot: what's confirmed done, what's staged-but-unverified, known blockers, and the exact next step.
  2. Explicitly check and record uncommitted/pending git state — git status / git diff --cached across any repo touched this session. This is a recurring near-miss; don't skip it.
  3. Overwrite .claude/handover.md wholesale (gitignored, repo root) — never append. It's working state, not a log; once consumed and the phase it described has moved on, the next write replaces it rather than piling up. Durable narrative belongs in incidents/ or the vault's _inbox/, not here.
  4. Cross-reference what to read alongside it (this project's memory index, incidents/index.md, the relevant host README) rather than duplicating that content into the handover file itself.

Read mode — "I'm back" / after a reboot

scripts/session-autostart.sh sends the literal trigger "I'm back" as the CLI prompt argument on every launch — unconditionally, whether or not a handover is actually pending. That's a deliberate simplification (see "Why the trigger is unconditional" below): the branching happens here, not in bash.

On receiving that trigger (or an equivalent manual "I'm back" from the user):

  1. Start a new session — no -c. Don't assume the old transcript is available or needed.
  2. Check whether .claude/handover.md exists.
    • Present: rename it to .claude/handover.consumed.md (mv, so consumption is atomic — a hang mid-session can't reprocess the same file on the next launch), then read it plus this project's memory files. Surface the "Immediately next" step as the first thing said back to the user, not buried after a recap. Flag if the file looks stale — references a reboot that's now old, or contradicts current git log / rpm-ostree status — rather than trusting it blindly.
    • Absent: no resume needed. Give a plain, short greeting — who you are and an invitation to start, no recap of prior work unless asked — and close it with a quote picked via shuf -n1 scripts/quotes.txt (zero-token random pick; don't generate or web-search a quote yourself). Don't recite "there's nothing pending" as a status report.
  3. Check local/session-launch-failures.log (gitignored, may not exist). If it has content, each line is a prior launch attempt that never reached a model turn — session-autostart.sh logs these itself (no network, or claude exited non-zero) since a script-level failure like that can't be caught by anything running inside a session. Surface each line's timestamp and reason as part of the "Immediately next" report, then truncate the file (: > local/session-launch-failures.log) so it isn't re-reported next time. This is a distinct signal from reset-triage below: the machine didn't necessarily crash here, the agent just failed to launch — suggest filing it as an incident with tally n/a — agent unavailable per CLAUDE.md, rather than treating it as resolved just by reporting it.
  4. Either way — present or absent — invoke the reset-triage skill next. It checks whether the previous boot ended cleanly, independent of whether a handover was staged: a crash can happen outside any planned reboot. It stays silent when the last boot was clean, so this doesn't add noise to the plain-greeting path.

Why the trigger is unconditional

An earlier design (see incidents/I009, incidents/I010) tried to do the handover check and rename silently via a SessionStart hook's additionalContext, specifically to avoid a visible synthetic first turn. That doesn't work: additionalContext only feeds the next model call — Claude Code never calls the model until the user submits a prompt, so nothing appeared until the human typed something first, at which point any resume context looked stale. There is no supported way to get an invisible proactive first turn today (tracked upstream: anthropics/claude-code#69750, proposing an autoPrompt hook field).

Given that, session-autostart.sh doesn't try to inspect the filesystem at all — it just always sends the same visible trigger, and this skill does the branching once the model is actually running. That keeps the script trivial (no bash logic that can drift out of sync with what this skill expects) and means both outcomes — resume, or plain greeting + quote — go through the exact same code path.

Because the rename happens here, not in the script, a handover file written before a plain /exit (no autostart launch expected right after) just sits there until the next session-autostart.sh run actually reaches this skill. Prefer only writing one when another autostarted or scripted session is actually expected next; a manually-launched claude -c won't trigger this skill at all.

When not to use this

A fresh bootstrap phase with no reboot pending doesn't need this — a plain new session re-deriving from docs/bootstrap.md checkboxes, git log, and incidents/ is already the cheaper default. This is specific to sessions expecting a mid-task reboot.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.