HANDOFF · 2026-05-24 · NEW SESSION

Slack駆動 サイト管理アーキテクチャ — 引き継ぎ

Otakeさんや他メンバーが Slack で「ここの画像を変えて」「この文言修正して」と AI bot に指示 → Claude が yamato-club/施設ご利用案内/その他デプロイ済みサイトの編集・再ビルド・再デプロイを実行 → 完了報告。この管理経路の設計を別セッションで詰めるための引き継ぎ。

1. Otakeさんの原文(目的の出所)

「この今作っていたご利用案内の各施設ページとか色々なページ、このあたりをひっくるめて管理していきたいんだけど、管理者はあなた、Claudeなんです。

ただ管理者にお願いする方法はいくつか道を整備したくて、そのうちの主力がSlackにしたいんだよね。Slackで間にAI botか何かを入れて、Slack上で私とかあるいは他の人が『ここの画像をこういうふうに変えて』とかっていうと、それをあなたに投げて、あなたが実際にそのページの交換作業とかをする。終わったら完了報告をする、みたいな感じにしたい。」

2. 解釈の幅(先に確認すべき)

「Claude が管理者」の解釈は2通りあって、どちらに振るかで実装が大きく変わる:

新セッションの最初の問い:Otakeさんに「Slackは A 型/B 型/ハイブリッド(自動はA、Otake指示時のみB)」を確認すること。

3. 現状(管理対象になっているサイト群)

NOW

Claudeが既にCloudflare Pages上で管理しているサイト

サイトURLソースデプロイ手段
yamato-club(会員ハブ)yamato-club.pages.devoutput/deploy/yamato_club/wrangler個別
施設ガイド × 11施設yamato-{slug}-guide.pages.devoutput/guides/_deploy/{slug}/(晴海のみ別系統)wrangler個別
yamato-admin(内部)yamato-admin.pages.devPostToolUseフックで自動生成同上
その他(personal-docs等)*.pages.dev / *.netlify.app各種Cloudflare / Netlify

11施設の一覧と詳細は scripts/build_member_guides.pyFACILITIES dict が事実上の SoT。哲学は design_refs/member_guide_photos.md。デプロイ先一覧は DEPLOY_TARGETS.md

4. アーキテクチャ候補(4案)

案① Slack webhook → Claude Code (headless)

構成: Slack Events API → Cloudflare Worker (薄い受け口) → Otakeさんのローカル/サーバ上の Claude Code CLI を headless モードで起動 → 結果を Slack スレッドへ返信

◎ Claude Codeの全ツール・スキル・MEMORYがそのまま使える

◎ ローカル開発環境と同等のコンテキスト

× 起動先がOtake PC依存だと、Otakeのマシンが起動していないと動かない

× サーバ常駐ならVPS/Cloud Run等の運用コスト発生

案② Anthropic Claude Agent SDK + 自前ホスト

構成: Slack Events API → Worker → Claude Agent SDK 経由でAPI呼び出し → bash/file_edit/computer toolsで作業 → gitリポにcommit/push → CIがCloudflareへデプロイ

◎ クラウドネイティブで24/7稼働

◎ 認証・履歴・並列実行が整理しやすい

× Claude Code の MEMORY/skills を再現するため初期セットアップ大

× サイトソースを Git 化して CI に乗せる前提(現状は output/ にローカル生成)

案③ Anthropic Remote Agents / Computer Use

構成: Anthropic 側の Remote Agent サービスを Slack に紐付け、リモートでブラウザ操作・ファイル操作させる

◎ 運用コスト最小

× 出たばかりのサービス、機能・料金・制限が流動的(もしかしたら2026年中に大幅に進化する可能性。新セッションで最新調査)

× ローカルファイル(G:ドライブ・H:ドライブ・素材フォルダ)に直接アクセスできないので、すべて GDrive API 経由になり遅い

案④ ScheduledTasks/CronCreate + Slack ポーリング

構成: 既存の Claude Code scheduled-tasks 機能で「Slack #yamato-管理 を5分おきに見て、未処理メンションを処理」のループを回す

◎ 既存インフラ流用、新規サーバ不要

◎ プロトタイプとして最速

× レイテンシ5分。即時返答にならない

× ポーリングは Slack API ベストプラクティスから外れる(イベント駆動の方が良い)

第一候補(Claude推奨): 案④でプロトタイプ → 案①or②に昇格
まず案④で動かして「どんな依頼がSlackで飛んでくるか・依頼のフォーマットはどうか・確認フローが必要か」を実データで把握。1〜2週間運用してから本実装に進む方が、要件の手戻りが少ない。

5. 設計で決めるべき論点(新セッションで詰める)

DECIDE
  1. 解釈の振り分け(§2): A型/B型/ハイブリッド
  2. チャンネル設計: #yamato-管理 一本 / 施設別 / プロジェクト別 / DM
  3. 依頼フォーマット: 自然言語のみ / 軽い構造(「@Claude 施設=館山 章=arrival 写真=添付」)/ スレッド/絵文字リアクションで状態管理
  4. 権限: 全員可 / Otakeさん専用 / Slack のグループ(運営チーム)単位
  5. 確認フロー: 即実行 / preview→👍で本番 / 差分URLを必ず提示
  6. 完了報告フォーマット: 「✅完了 + 差分URL + before/after サムネ」など定型化
  7. 長時間タスク(写真選定・コンタクトシート生成・全11施設再ビルド)の扱い: 「受付完了→走り出し→終わったらメンション」の3ステップ
  8. 失敗時の挙動: 自動リトライ / Otakeにエスカレ / DLQ的に保留
  9. 他の入口との併用: Slackがメインだが、Notion DBコメント/メール/既存の Claude Code 対話 もサブ経路として残す?
  10. 監査ログ: 誰がいつ何を依頼し、何が変わったか。Notion DB「Slack依頼ログ」を SoT として用意するか

6. 反対案も置いておく

「Slack bot」と決め打つ前に、これらの選択肢も俎上に乗せた上で Slack を選ぶのが健全:

Slackが第一の理由(推察): 運営チームが既に使っている/スレッド・絵文字で状態管理が楽/添付ファイル(差替画像など)を直接渡せる。これらが本当に効いてくるかを新セッションで確認すべき。

7. プロトタイプ(案④)の最小構成イメージ

1. Slack App を作成 (bot user + Events API + chat:write/files:read 権限)
2. プライベートチャンネル #yamato-管理 を作って bot を招待
3. Cloudflare Worker (or 既存 yamato-admin の Functions)で Slack Events 受信
4. 受信メッセージを Notion DB「Slack依頼キュー」に append
5. Claude Code 側で scheduled-task:5分おきに DB をポーリング
   - status="新規" の行を取得
   - 内容を解釈 → 該当サイト編集 → 再ビルド → 再デプロイ
   - 完了したら Slack スレッドへ返信+ DB 行を status="完了"
6. 失敗時は status="要対応" + Otake さんにメンション

この最小構成で1〜2週間運用してから、案①/②へ移行するかを決める。

8. 既知の関連資産(新セッションが参照すべき)

種類パス/URL用途
SoT(施設定義)scripts/build_member_guides.py FACILITIES dict11施設の全フィールド・theme・photo_picks
写真選定哲学design_refs/member_guide_photos.md5スロット・ステータス4段階・棚卸し手順
デプロイ先マップDEPLOY_TARGETS.mdCloudflare/Netlify使い分け
Notion参照マップNOTION_MAP.md各プロジェクト・施設のNotion ID
memory ルールmemory/feedback_*wrangler非ループ/写真選定全件スキャン/デプロイ無確認 等
既存scheduled-tasksscheduled-tasks MCP / CronCreate案④の土台に使える
既存LINEエージェントproject_line_ai_agent類似アーキテクチャの先例(v4.1稼働中)
既存PostToolUse hookyamato-admin 自動更新「ファイル編集→外部反映」パターンの先例
前回ハンドオフ2026-05-24-new5guides.html新5施設構築の流れ

9. 当セッション末時点の未完了タスク(参考)

引き継ぎ時点で deploy 待ちの状態 Slack管理基盤ができれば、これらの作業はSlack依頼経由でも回せるようになる ── つまり Slack 基盤と写真整理は並行で進めて良い。

10. 新セッション冒頭の動き出し例

1) このハンドオフHTMLを Read で読む
2) scripts/build_member_guides.py FACILITIES dict(11施設)と design_refs/member_guide_photos.md を Read(管理対象の現状把握)
3) Otakeさんに §2 の A/B/ハイブリッド§5 の論点①〜⑩ から優先度高そうな3点を選んで提示・確認
4) 確認結果を踏まえて、§7 の案④プロトタイプ(or 別案)の最小構成を Plan モードで設計
5) 実装は Slack App 作成→Worker→Notion キュー→scheduled-task の順で薄く立ち上げる