コンテンツにスキップ

HANDOFF-COWORK Stage 2 Phase 1 移行

項目
発行日 2026-05-22
発行元 Code Claude(本セッション)
実行先 Cowork セッション(WorkFlowy MCP + scheduled-tasks MCP 稼働環境)
起点 ADR ~/KUDO-Vault/memory/decisions/2026-05-22-stage-2-phase1-complete.md(完遂時に Code が配置予定)
環境マトリクス検証済 ✅ §16-3 準拠 / 必要 MCP: workflowy + scheduled-tasks(両 MCP は Cowork 専用)
本 HANDOFF が Code セッション不可な理由 Watchlist Entry #20 永続化済(指示書設計時の環境非対称性見落とし)

§0 ファイル配置マップ(着手前に必ず実在検証)

同梱物(なし):本 HANDOFF.md のみ。

外部参照物:

参照先 状態 検証方法
~/KUDO-Vault/.claude/skills/kudo/kudo-workflowy-double-save/SKILL.md v3.4 ✅ 配置済(Code commit c5d35d3) head -5version: 3.4 確認
~/KUDO-Vault/.claude/skills/kudo/kudo-project-state-recovery/SKILL.md v1.6 ✅ 配置済(Code commit 350ebf0) head -5version: 1.6 確認
~/KUDO-Vault/.claude/skills/kudo/kudo-triple-store-write/SKILL.md v1.1 ✅ 配置済(Code commit 700dd3c) head -5version: 1.1 確認
~/KUDO-Vault/logs/README.md ✅ 配置済(Code commit be0e000) logs/ サブフォルダ階層含めて存在
~/KUDO-Vault/.claude/skills/kudo/kudo-ai-error-watchlist/SKILL.md(Entry #20) ✅ 配置済(Code commit 0595626) Entry #20 が §4 末尾に存在

§1 環境前提

  • 実行環境:Cowork セッション(Claude.ai / Cowork plugin or 該当 MCP セッション)
  • 必要 MCP:
  • mcp__workflowy__*(全件・読み取り中心)
  • mcp__scheduled-tasks__*(read + update)
  • Read / Write / Bash(ローカル FS アクセス)
  • git(commit + push)
  • Code セッションでは実行不可な理由:
  • WorkFlowy MCP → auto mode classifier denial(Entry #20 検証済)
  • scheduled-tasks MCP → Code から見た scope = 0(§16-3 環境マトリクス通り)

§2 Cowork 実行タスク詳細

Stage 2-A:WorkFlowy 過去ダイジェスト一括取込

目的:WorkFlowy「過去生成ログ」配下の全ダイジェストを Vault logs/YYYY/MM/ に複製。WorkFlowy 側は変更しない。

実装手順

  1. WorkFlowy「過去生成ログ」ノードの全件取得:

    mcp__workflowy__workflowy_get(
      id="54f53941-7c30-350f-1845-6e5a536ad348",
      depth=-1,
      method="export"
    )
    
    全サブツリー(数百のダイジェストノード想定)を一気に取得。

  2. 各ダイジェストノードの抽出:

  3. ノード名パターン:📝 YYYY-MM-DD #デイリーダイジェスト または 📝 YYYY-MM-DD #案件名-ダイジェスト
  4. 子ノード:【要点】【議論トピック】【決定事項】【未決事項】【次のアクション】【詳細】の 4 項目構造

  5. Vault Markdown への変換: 各ダイジェストノードに対し、以下の frontmatter + 本文を持つ Markdown を生成:

---
type: daily-digest
date: YYYY-MM-DD
project: ミツカン                    # ノード名から抽出
project_slug: mitsukan              # kebab-case 変換
source: workflowy-import            # 取込であることを明示
source_node: <workflowy-node-id>    # 元 WorkFlowy ノードのID
verbatim: false                     # 安全側に false
---

## 要点

[WorkFlowy ノードの【要点】子ノードから]

## 議論トピック

[子ノード階層を Markdown 入れ子に変換]

## 決定事項
...
  1. 配置先:
  2. ~/KUDO-Vault/logs/YYYY/MM/YYYY-MM-DD-{案件名 kebab-case}.md
  3. 同日複数案件は別ファイル(2026-04-22-mitsukan.md / 2026-04-22-snkrdunk.md)
  4. 必要なら新規 YYYY/MM/ 階層を作成(mkdir -p)

  5. 案件別 #project ノード配下のダイジェスト(カテゴリ C)も取込対象:

  6. 「[1日1新およびToDo]」傘下の各案件 #project ノードを workflowy_search で列挙
  7. 各 #project ノード配下のダイジェストノードも上記と同じロジックで Vault に複製
  8. frontmatter に source: workflowy-import-from-project-node を記録

  9. 取込スクリプトの永続化:

  10. ~/.claude/scripts/workflowy_to_vault_logs.py として保存(再実行可能)
  11. スクリプト本体は Cowork 側で起草(変換ロジック含む)
  12. 主要関数:extract_digest_nodes() / convert_to_markdown() / write_to_vault()

  13. 取込完了レポート:

  14. 配置先:~/working/_claude_workspace_global/reports/stage2a-workflowy-import-2026-05-22.md
  15. 含める内容:

    • 取込総件数(年月別の集計表)
    • 案件別の取込件数(ミツカン:N 件 / SNKRDUNK:M 件 ...)
    • 取込失敗・スキップ件数(例:frontmatter 抽出失敗)
    • 取込スクリプトのバージョン
  16. 重要な制約:

  17. WorkFlowy 側を 変更しない(workflowy_update / workflowy_create を本タスク内で使わない)
  18. 既存 Vault ファイルとの衝突時:既存を保持し、{filename}-imported.md 末尾に新規ファイルを作成

commit メッセージ案:

add: Stage 2-A WorkFlowy 過去ダイジェスト一括取込 — Vault logs/ に N 件複製


Stage 2-B:scheduled-tasks dry-run draft 出力

目的:WorkFlowy 書込を含む scheduled-tasks の prompt 書き換え案を作成し、Chat 承認を受ける段階の中間成果物を生成。この時点で実機反映はしない

実装手順

  1. 全 scheduled-tasks の取得:

    mcp__scheduled-tasks__list_scheduled_tasks()
    
    各タスクの taskId / description / cronExpression / 現在の prompt を取得。

  2. WorkFlowy 書込タスクの抽出: prompt 本文に以下のキーワードが含まれるタスクを抽出:

  3. workflowy_create / workflowy_update / workflowy_search
  4. 「過去生成ログ」/「[1日1新およびToDo]」
  5. daily-chat-digest-2330 / daily-chat-digest-0800-backup / weekly-review-sunday-2100 の名称マッチ

  6. 各タスクの prompt 書き換え案:

  7. 旧 prompt(WorkFlowy 書込のみ):そのまま保持
  8. 新規追加:Vault 書込部分の追記(dual-write)
  9. 具体例(daily-chat-digest-2330 の場合):
旧 prompt(抜粋):
各案件のダイジェストを「[1日1新およびToDo]」傘下の該当 #project ノード配下に書き込む。
フォーマットは kudo-workflowy-double-save §運用ルール SSOT §1.2 命名規則 準拠。

新 prompt 追加部分(dual-write):
さらに、各案件のダイジェストを Vault `~/KUDO-Vault/logs/YYYY/MM/YYYY-MM-DD-{案件名 kebab-case}.md` にも書き込む。
- frontmatter: type: daily-digest / date / project / project_slug / source: cowork-batch
- 本文:WorkFlowy と同じ 4 項目構造(要点 / 議論トピック / 決定事項 / 未決事項 / 次のアクション / 詳細)
- 詳細仕様は `~/KUDO-Vault/logs/README.md` 参照
- dual-write 期間(2026-05-22〜)中は WorkFlowy 書込も継続。Phase 2 移行時に WorkFlowy 書込を停止判定。
  1. dry-run draft の出力:
  2. 配置先:~/working/_claude_workspace_global/handoffs/scheduled-tasks-phase1-rewrite-dry-run.md
  3. 各タスクごとに「旧 prompt(verbatim)」「新 prompt(verbatim)」「差分サマリ」をセットで記載
  4. 対象タスク件数 / 書き換え行数 / dual-write 終了時の予定変更箇所 も明記

  5. 重要な制約:

  6. この時点で mcp__scheduled-tasks__update_scheduled_task は呼ばない(Chat 承認待ち)

commit メッセージ案:

add: Stage 2-B scheduled-tasks dual-write 書き換え案 (dry-run draft)


Stage 2-C:scheduled-tasks prompt 本番反映(Chat 承認後)

目的:Chat 承認後、scheduled-tasks の prompt を実機反映。

実装手順

  1. Chat 承認の確認:
  2. Chat から「2-B 承認・本番反映へ」の明示発言を受領
  3. 発言がない場合、待機(自動反映禁止)

  4. 各タスクの prompt 更新:

    mcp__scheduled-tasks__update_scheduled_task(
      taskId="<taskId>",
      prompt="<新 prompt 全文>"
    )
    
    対象タスク全件に対して順次実行(エラー時は即停止)。

  5. 更新ログの配置:

  6. 配置先:~/KUDO-Vault/memory/decisions/2026-05-22-stage-2-scheduled-tasks-rewrite.md
  7. ADR 形式(frontmatter:type: decision / status: completed)
  8. 含める内容:
    • 反映済タスク一覧(taskId + 旧 prompt 抜粋 + 新 prompt 抜粋)
    • 反映時刻
    • 反映後の nextRunAt 予測
    • rollback 手順(旧 prompt verbatim 保存込み)

commit メッセージ案:

update: Stage 2-C scheduled-tasks prompt 本番反映 (N 件)


Stage 2-E:Phase 1 移行完了確認

目的:翌朝以降、scheduled-tasks の実行結果を検証し、dual-write が機能しているか確認。

実装手順

  1. scheduled-tasks の lastRunAt 確認:

    mcp__scheduled-tasks__list_scheduled_tasks()
    
    各タスクの lastRunAt更新後の予測時刻と一致しているか 確認。

  2. Vault logs/ への新規書込確認:

    ls -la ~/KUDO-Vault/logs/2026/05/2026-05-{N+1}-*.md
    
    翌日の日付ファイルが存在するか確認。

  3. WorkFlowy 「過去生成ログ」への並行書込確認:

  4. workflowy_search で同日付のダイジェストノードを検索
  5. 両方に存在することを確認(dual-write 成功)

  6. 整合性検証:

  7. Vault 側と WorkFlowy 側の同日同案件のダイジェストが 内容的に同等 であることを確認
  8. 不整合があれば原因調査(Cowork バッチの prompt エラー / 部分書込 等)

  9. 異常検出時のアクション:

  10. WorkFlowy 単独書込(Vault 欠落):新 prompt の Vault 書込ロジックを再確認
  11. Vault 単独書込(WorkFlowy 欠落):dual-write が片方失敗→ rollback 検討
  12. 両方欠落:Cowork バッチ全体の失敗(#failure-detection プロトコル発動)

commit メッセージ案:

verify: Stage 2-E Phase 1 移行完了確認 — dual-write 動作確認済


§3 Cowork → Code への完了報告

全タスク完了後、以下を Drive _claude_workspace_global/reports/ に配置:

ファイル:stage2a-c-e-cowork-complete-2026-05-22.md

含める内容:

セクション 内容
Stage 2-A 取込結果 年月別件数表 / 案件別件数表 / 取込失敗件数 / ~/.claude/scripts/workflowy_to_vault_logs.py のバージョン
Stage 2-B dry-run draft 対象タスク数 / 書き換え行数 / draft 配置確認
Stage 2-B → Chat 承認 → Stage 2-C 実行 Chat 承認発言の引用 / Stage 2-C 反映済タスク数 / ADR 配置確認
Stage 2-E 翌朝検証結果 lastRunAt 確認結果 / Vault 書込確認結果 / WorkFlowy 並行書込確認結果 / 整合性検証結果
問題があれば詳細 不整合発見時の原因分析・rollback 判断

§4 Code セッションへの引き継ぎ

Cowork 完遂報告を受領した Code セッション(または翌日の Code セッション)が以下を実行:

Stage 2-F:Stage 2 完遂 ADR + 個人設定 v5.3 差分提示

  1. ADR 配置:
  2. ~/KUDO-Vault/memory/decisions/2026-05-22-stage-2-phase1-complete.md
  3. frontmatter:title: Stage 2 完遂 — WorkFlowy → Vault Phase 1 移行完了 / status: completed
  4. 内容:Stage 2-A〜2-E の各タスク完遂サマリ + dual-write 期間運用方針 + Phase 2 移行判定基準

  5. 個人設定 v5.3 差分起草:

  6. ~/working/_claude_workspace_global/handoffs/personal-settings-v5.3-draft.md
  7. 項目 4:Vault logs/ を最優先に格上げ反映
  8. 項目 14:主要スキル直接参照リストの version 番号最新化(v3.4 / v1.6 / v1.1)
  9. 冒頭ヘッダー:[個人設定 v5.3(2026-05-22)]

  10. 最終総括報告:

  11. ~/working/_claude_workspace_global/reports/stage2-complete-2026-05-22.md
  12. Stage 1 + Stage 2 累計 commit 数
  13. Phase 1 移行で確立した新運用フロー

§5 並走 / 連動する SKILL

  • kudo-workflowy-double-save v3.4#read-priority / #3-x Phase 1 dual-write 期間中の運用
  • kudo-project-state-recovery v1.6#read-priority(優先度 2 = Vault logs/)
  • kudo-triple-store-write v1.1#migration-roadmap(Phase 1 進行中)
  • kudo-cowork-code-handoff-protocol v1.13#environment-asymmetry(本 HANDOFF の環境前提根拠)
  • kudo-ai-error-watchlist#section-4 Entry #20(本 HANDOFF の存在理由)

§6 Cowork 着手前の最終チェックリスト

  • 本 HANDOFF を read し、§0 ファイル配置マップで全外部参照物の実在を確認
  • WorkFlowy MCP / scheduled-tasks MCP が稼働している環境か確認(tool_search で実機確認)
  • Stage 2-A 着手前に、~/KUDO-Vault/logs/ 階層が存在することを確認(Code 配置済)
  • Stage 2-B の dry-run 完了時、Chat 承認発言を待ってから Stage 2-C に進む(自動反映禁止)
  • 完了報告フォーマット(§3)を着手前に把握

本 HANDOFF は Stage 2 Phase 1 移行の Cowork 担当範囲を完全に規定する。Code セッションは並行して Stage 2-D(スキル改訂)+ logs/ フォルダ + 本 HANDOFF 起草を完遂済。Cowork 完遂後、Code が Stage 2-F で全体を締める。