agentleFS
youhei-ushioyouhei-ushio/dotclaude-public/skills/global/handoff/SKILL.md

handoff

Skill1 starsChanged 2 months agoMITView on GitHub

作業の引き継ぎファイル(handoff)を保存・読込するスキル。セッション跨ぎの作業再開やタスク切り替えに使う。save で現在の作業状態を書き出し、load で過去のhandoffから再開する。「作業を保存して」「handoff 保存」「続きから再開」「handoff 一覧」のような自然言語で起動。

191 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use decision-mapping, setup-ts-deep-modules and 10 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.
  • FabienDehopreSkill

    decision-mapping

    Turn a loose idea into a sequenced map of investigation tickets, then drive them to resolution one at a time.

    Also in 8 projects that use this

  • liufeng1976Skill

    setup-ts-deep-modules

    Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.

    Also in 42 projects that use this

  • AWSSkill

    to-questionnaire

    Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

    Also in 93 projects that use this

  • GoogleSkill

    ask-matt

    Ask which skill or flow fits your situation. A router over the skills in this repo.

    Also in 87 projects that use this

  • RoentekSkill

    loop-me

    Grill me about specs for the workflows I want to build, within this workspace.

    Also in 51 projects that use this

  • LesaniSkill

    writing-beats

    Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.

    Also in 54 projects that use this

The file

Files
SKILL.md

作業引き継ぎ(handoff)スキル

作業状態をファイルに保存し、後で読み込んで続きから再開できるようにするスキル。 プロジェクトをまたいでグローバルに利用する。

設定

  • 保存先ディレクトリ: ~/.claude/handoff/(存在しなければ初回 save 時に自動作成する)
  • ファイル名フォーマット: YYYY-MM-DD-HHMMSS-{サニタイズ後タスク名}.md
  • テンプレート: ~/.claude/skills/handoff/template.md
  • タスク名のサニタイズ規則(ファイル名に使う際に必ず適用する。frontmatter の task には元のタスク名を保存する):
    1. 不正文字(/, \, :, *, ?, ", <, >, |, 改行)はハイフンに置換する
    2. 空白文字(半角スペース・全角スペース・タブ)はハイフンに置換する
    3. 連続するハイフンは 1 個に圧縮する
    4. 先頭・末尾のハイフンは削除する
    5. 日本語はそのまま使ってよい
  • セッション名との連携: save のデフォルトタスク名取得には、Claude Code が ~/.claude/sessions/{pid}.json に永続化するセッション名(/rename コマンドや plan 承認の自動命名で設定される name フィールド)を参照する(内部仕様のため将来バージョンで変更の可能性あり。取得失敗時は静かに fallback する)。以下いずれの場合も警告を出さず会話文脈からの推測に fallback する:
    • CLAUDE_CODE_SESSION_ID 環境変数が未定義または空
    • ~/.claude/sessions/ ディレクトリが存在しない
    • sessionId が一致するファイルが見つからない
  • load 時のセッション名設定: sessions ファイルへの直接書き込みは行わない。handoff の task 名をユーザーに提示し、/rename コマンドで手動設定するよう促す。

動作モード

引数の最初のトークンで分岐する(save / load / list)。 引数が無い、もしくは不明な場合は使い方を表示する。

save [タスク名] — 現在の作業状態を保存

  1. タスク名を決定する(優先順位):
    1. 引数で明示的に渡されたタスク名
    2. 現在のセッション名(CLAUDE_CODE_SESSION_ID 環境変数で session ID を取得し、~/.claude/sessions/ 内のファイルをスキャンして一致する sessionId を持つファイルの name フィールドを読む。Bash 例: grep -rl "\"sessionId\":\"${CLAUDE_CODE_SESSION_ID}\"" ~/.claude/sessions/ 2>/dev/null | head -1)
    3. 会話の文脈から推測したタスク名
    • 優先順位 2 の fallback: 以下いずれの場合も警告を出さず静かに優先順位 3(会話文脈から推測)に fallback する: (a)CLAUDE_CODE_SESSION_ID が未定義または空、(b)~/.claude/sessions/ が存在しない、(c)sessionId 一致ファイルが見つからない
    • セッション名と会話文脈が明らかに食い違う場合(例: セッション名が別タスクの残骸で、現在の会話は別テーマを扱っている)は、優先順位 2 と 3 が乖離するときに限りどちらを採用するかユーザーに短く確認すること。優先順位 1(引数指定)のときは確認しない。
  2. mkdir -p ~/.claude/handoff でディレクトリを確保
  3. 保存方針と引き継ぎ値を決定する(この時点ではまだファイルを作成・削除しない):
    • 同一タスク名の既存ファイルを検索: ~/.claude/handoff/ 内で、ファイル名がサニタイズ後タスク名で終わるファイルを Glob で探す。pattern 例: ~/.claude/handoff/*-{サニタイズ後タスク名}.md
    • 既存ファイルが複数ヒットした場合: ファイル名のタイムスタンプ降順で最新を上書き対象候補とし、対象ファイル名をユーザーに提示して上書き可否を確認する(勝手に複数を消さない)。
    • 既存ファイルが見つかった場合: ユーザーに「既存の handoff({ファイル名})を上書きしますか? 新規作成しますか?」と確認する
      • 上書き: 旧ファイルの frontmatter から created を読み取って保持し、updated は現在時刻にする。旧ファイル名は「新ファイル書き出し成功後に削除する対象」として控えるだけにする(ここでは削除しない)。
        • 旧ファイルに created が無い/パースできない場合は、created に現在時刻を代入する(フォールバック)。
      • 新規作成: created と updated を両方とも現在時刻に設定し、別ファイルとして作成する(旧ファイルは削除しない)。
    • 既存ファイルが無い場合: created と updated を両方とも現在時刻に設定する。
  4. 現在時刻を取得: date +%Y-%m-%d-%H%M%S
  5. 新ファイルパスを決定: ~/.claude/handoff/{YYYY-MM-DD-HHMMSS}-{サニタイズ後タスク名}.md
  6. テンプレート ~/.claude/skills/handoff/template.md を Read し、プレースホルダに現時点の会話文脈から分かる内容を埋めて新ファイルに Write する
    • {...} で囲まれたプレースホルダ・ガイダンス文(例: {今どこまで進んだか…})は最終出力には残さず、実内容で置き換える。埋める内容が無い項目は - のみの空リストにする(後から手で追記できるように)
    • frontmatter は template.md 冒頭の --- 行から始める。テンプレートにフェンス(```)は含まれていないので、そのまま書き出してよい
    • 事実に基づき、推測が入る場合は (推測) と明示する
  7. 新ファイルの書き出し成功を確認してから、手順 3 で控えた上書き対象の旧ファイルがあれば削除する(アトミック性の担保。書き出し前に旧ファイルを消さない)
  8. 書き出したファイルパスを報告する

load [番号] — 保存済みhandoffから再開

  1. ~/.claude/handoff/ 内の *.md をファイル名降順(=最終更新が新しい順)で列挙する
  2. ファイルが1つも無ければ「handoffはありません」と報告して終了
  3. 引数で番号が指定されていればその番号のファイルを使う。未指定なら以下のように一覧を提示してユーザーに番号を尋ねる:
    handoffを選んでください:
      1. 2026-05-26-140000 | タスクA(作成: 2026-04-24)
      2. 2026-04-23-101530 | タスクB
      ...
    • ファイル名のタイムスタンプ(=最終更新日時)を表示する
    • frontmatter の created と updated が異なる場合は (作成: YYYY-MM-DD) を末尾に付けて、元の作成日もわかるようにする (番号選択はユーザーの返答を待つ。load <番号> で直接指定されていればスキップ)
  4. 選ばれたファイルを Read で読み込み、内容をそのまま提示する(提示時の省略ルールは「注意事項」を参照)
  5. ユーザーにセッション名の設定を促す:
    • frontmatter の task 値を使って「セッション名を設定するには /rename {タスク名} を実行してください。」と案内する。
  6. 続けて「このhandoffの続きから作業を再開します。次のアクションから着手しますか?」と一言添える

list — 保存済みhandoff一覧を表示

  1. ~/.claude/handoff/ 内の *.md をファイル名降順(=最終更新が新しい順)で列挙する
  2. 各ファイルについて以下を表示:
    • 番号
    • 最終更新日時(ファイル名から抽出)
    • タスク名(frontmatter の task またはファイル名から抽出)
    • frontmatter の created と updated が異なる場合は (作成: YYYY-MM-DD) を末尾に付ける
  3. 件数が0なら「handoffはありません」と報告

引数なし or 不明

使い方を表示:

/handoff save [タスク名]  - 現在の作業を保存
/handoff load [番号]      - 保存済みhandoffから再開
/handoff list             - handoff一覧を表示

注意事項

  • 外部 skill への依存はない。Claude Code 標準の /rename コマンドが書き込む ~/.claude/sessions/{pid}.json の name フィールドのみを参照する。
  • save 時は会話コンテキストから積極的に情報を抽出して埋めること。空のテンプレートだけ書き出すのは避ける
  • 機微情報は保存しない: API キー・認証トークン・パスワード・秘密鍵などが会話に含まれていても handoff ファイルには書き出さず、(redacted) に置き換える(handoff は平文で ~/.claude/handoff/ に永続化されるため)
  • テンプレート内の {...} プレースホルダ・ガイダンス文は最終出力には残さず、必ず実内容で置き換える
  • load で内容を提示する際は、マークダウンの構造を保ったまま全文を出す(要約しない)。ただし極端に長い handoff(目安 200 行超)は frontmatter と主要セクションを全文提示し、残りは「(…以下省略。全文はファイル参照)」と省略してコンテキスト枯渇を避ける
  • ファイル名に使うタスク名は必ず「設定」のサニタイズ規則を適用する。サニタイズ前後で見た目が大きく変わる場合は、frontmatter の task に元のタスク名を保存しておくこと

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.