Skip to content

Handoff should ask the user whether to save in /tmp or the current working directory #1219

Description

@LedzZm

Before filing

  • I've read SCOPE.md and checked .out-of-scope/, and this isn't covered by either.

Skill

handoff

What went wrong

/tmp could be kinda awkward to work with manually if longer time passes before picking up the skill again.

Proposed change

The handoff skill might as well be used for intentional compaction but also for an actuall task handoff to another agent.... (Another time) or another human.

I think it would be beneficial for it to make a quick prompt to the user to ask what the case is. This skill has it's model invocation disabled anyway so it won't hurt AFKing, since it is not meant for such use.

Something along the lines of

Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save it to the user's OS temporary directory ($TMPDIR, or /tmp if unset; %TEMP% on Windows). Alternatively, save it to the current workspace only if the user explicitly asks for this.

Just a thought.

Activity

  1. xg-gh-25 commented on Oct 8, 2026

    @xg-gh-25

    Agree the destination needs to be addressed, but I'd push back on asking the user — the handoff skill has model-invocation disabled precisely so it can run AFK, and an interactive prompt reintroduces the human round-trip the design removed. You'd be trading one papercut for a worse one.

    The cleaner split is to make the destination deterministic by handoff type, not by a question:

    • Self-compaction (same agent, same workspace, resuming shortly) → ephemeral is correct: $TMPDIR, /tmp if unset, %TEMP% on Windows. It's scratch, it's fine if the OS reaps it.
    • Durable handoff (fresh agent later, or a human) → write into the repo, e.g. a git-ignored-or-tracked .handoffs/ dir in the cwd. This survives /tmp reaping and travels with the project, which is the whole point when "longer time passes before picking up."

    The skill can infer type from context (is there an active task/branch?) or take an explicit flag (--durable / --scratch), which keeps it composable and scriptable without blocking on input. We run a many-skill agent OS and this user-invoked-vs-model-invoked boundary is where we draw the line: a skill that must stay AFK-safe should encode the decision as a rule, not surface it as a prompt.

    One concrete suggestion: default to the durable path when a git repo is detected and the prompt text already mentions a task handoff, since that's the case where losing the doc to /tmp hurts most.


    We run a single-orchestrator, many-skill agent OS and keep AFK-safe skills decision-encoded rather than interactive — destination by handoff type, not by prompt. More context on SwarmAI. Discussion: T-MvS

  2. mattpocock commented on Oct 8, 2026

    @mattpocock
    Owner

    This was generated by AI during triage.

    /handoff writes to the OS temp directory on purpose, so handoff docs never land in the workspace or in a commit. The same request (save to .scratch/) was closed in #1030. If you want a durable copy, say so when you invoke it ("/handoff save it in the repo") or add a line to your CLAUDE.md/AGENTS.md. Closing.

    See: https://github.com/mattpocock/skills/blob/main/SCOPE.md#the-bar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageMaintainer needs to evaluate

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions