mcpField
C
create-handoff

create-handoff

github.com/parcadeiエージェントワークフロー3.9k510 回インストール39 週間前に更新
リポジトリ

create-handoff について

create-handoff は、次のセッションのエージェントが作業を引き継げるよう、簡潔な YAML 引き継ぎ文書を作成するスキルです。文書のインデックス登録とセッション結果の記録手順も示します。

主な機能

  1. 01現在の引き継ぎフォルダーの確認
  2. 02日付入り YAML 文書の作成
  3. 03目標、調査結果、次の手順の記録
  4. 04文書の登録と結果の記録

活用シーン

  1. 01新しいセッションのエージェントへの作業引き継ぎ
  2. 02セッション終了前のプロジェクト状況の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/parcadei/continuous-claude-v3 --skill create-handoff

インストール後、Claude Code で/create-handoffを入力して読み込まれたか確認します。

同梱ファイルSKILL.v6.md

詳細

引き継ぎの作成

新しいセッションで別のエージェントに作業を引き継ぐためのドキュメントを作成してください。内容は詳細でありながら、簡潔にまとめてください。重要な情報を失わずに、作業中の内容を圧縮して要約することが目的です。

手順

1. ファイルパスとメタデータ

以下の情報を使って、ドキュメントの作成方法を確認してください。

まず、既存の引き継ぎからセッション名を特定します。

ls -td thoughts/shared/handoffs/*/ 2>/dev/null | head -1 | xargs basename

これにより、最終更新された引き継ぎフォルダーの名前が返されます(例:open-source-release)。これを引き継ぎフォルダー名として使用してください。

引き継ぎが存在しない場合は、フォルダー名に general を使用してください。

次の場所にファイルを作成します。 thoughts/shared/handoffs/{session-name}/YYYY-MM-DD_HH-MM_description.yaml。ここで:

  • {session-name} は既存の引き継ぎから取得した名前(例:open-source-release)、または引き継ぎがない場合は general です
  • YYYY-MM-DD は今日の日付です
  • HH-MM は現在時刻を24時間表記で記載したものです(秒は不要です)
  • description は簡潔なケバブケースの説明です

例:

  • thoughts/shared/handoffs/open-source-release/2026-01-08_16-30_memory-system-fix.yaml
  • thoughts/shared/handoffs/general/2026-01-08_16-30_bug-investigation.yaml
2. YAML形式の引き継ぎを作成(約400トークン。Markdown形式では約2000トークン)

重要:YAML形式は必ず以下のとおりにしてください。フィールド名を変更したり、別の形式を使用したりしないでください。

goal: と now: フィールドはステータスラインに表示されます。名前を正確に指定する必要があります。

---
session: {session-name from ledger}
date: YYYY-MM-DD
status: complete|partial|blocked
outcome: SUCCEEDED|PARTIAL_PLUS|PARTIAL_MINUS|FAILED
---

goal: {What this session accomplished - shown in statusline}
now: {What next session should do first - shown in statusline}
test: {Command to verify this work, e.g., pytest tests/test_foo.py}

done_this_session:
  - task: {First completed task}
    files: [{file1.py}, {file2.py}]
  - task: {Second completed task}
    files: [{file3.py}]

blockers: [{any blocking issues}]

questions: [{unresolved questions for next session}]

decisions:
  - {decision_name}: {rationale}

findings:
  - {key_finding}: {details}

worked: [{approaches that worked}]
failed: [{approaches that failed and why}]

next:
  - {First next step}
  - {Second next step}

files:
  created: [{new files}]
  modified: [{changed files}]

各フィールドの説明:

  • goal: と now: — 必須。ステータスラインに表示されます
  • done_this_session: — ファイル参照を含む、今回のセッションで完了した作業
  • decisions: — 重要な選択とその理由
  • findings: — 重要な知見
  • worked: / failed: — 繰り返すべきこと、避けるべきこと
  • next: — 次のセッションで行う作業

session_goal、objective、focus、current などの別のフィールド名は使用しないでください。 ステータスラインのパーサーは goal: と now: のみを正確に検索します。他のフィールド名は機能しません。

3. セッション結果を記録(必須)

重要:ユーザーに応答する前に、必ずセッションの結果について尋ねてください。

AskUserQuestion ツールを使用し、以下の選択肢をそのまま提示してください。

Question: "How did this session go?"
Options:
  - SUCCEEDED: Task completed successfully
  - PARTIAL_PLUS: Mostly done, minor issues remain
  - PARTIAL_MINUS: Some progress, major issues remain
  - FAILED: Task abandoned or blocked

ユーザーの回答後、結果をインデックス化して記録します。

# Mark the most recent handoff (works with PostgreSQL or SQLite)
# Use git root to find project, then opc/scripts/core/
PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo "${CLAUDE_PROJECT_DIR:-.}")

# First, index the handoff into the database
cd "$PROJECT_ROOT/opc" && uv run python scripts/core/artifact_index.py --file thoughts/shared/handoffs/{session_name}/{filename}.yaml

# Then mark the outcome
cd "$PROJECT_ROOT/opc" && uv run python scripts/core/artifact_mark.py --latest --outcome <USER_CHOICE>

重要: {session_name} と {filename} は手順1で取得した実際の値に置き換えてください。

これらのコマンドはデータベースを自動検出します(設定されていれば PostgreSQL、そうでなければ SQLite にフォールバックします)。

注: インデックス化に失敗した場合、記録手順で「Database marking was not available」と表示されます。最初の引き継ぎでは問題ありませんが、インデックス化の手順が省略されたことを示します。

4. 完了を確認

結果を記録した後、ユーザーに応答します。

Handoff created! Outcome marked as [OUTCOME].

Resume in a new session with:
/resume_handoff path/to/handoff.yaml

##. 追加の注意事項と指示

  • 情報は減らさず、より多く記載してください。 これは引き継ぎに含める情報の最低限を示す指針です。必要に応じて、さらに情報を追加してください。
  • 詳細かつ正確に記載してください。 最上位の目的と、必要に応じて下位レベルの詳細の両方を含めてください。
  • コードスニペットを多用しないでください。 重要な変更を説明する短いスニペットは有用ですが、大きなコードブロックや差分は避けてください。デバッグ中のエラーに関係するなど、必要な場合を除き、コードブロックは含めないでください。後でエージェントが確認できるよう、たとえば packages/dashboard/src/app/dashboard/page.tsx:12-24 のように /path/to/file.ext:line 形式の参照を優先してください。

コメント