#yamato-site-管理 で @yamato-site管理 をメンション| # | 論点 | 決定 |
|---|---|---|
| 1 | Claudeの振る舞い | C型ハイブリッド:デフォルト実行、禁則に触れたら止める/私が哲学・SoT判断層を持つ |
| 2 | 禁則の定義 | 粗2+細2:削除・リネーム・構造変更で止まる + Otake/それ以外の2層(将来の権限拡張枠を先に作る) |
| 2.5 | 他メンバー依頼の判定 | 明らかOK=即実行/明らかNG=差戻し(理由つき)/曖昧=Otakeへ通知 |
| 3 | アーキテクチャ | 案④:scheduled-task + GSheetキュー + 即「受け付けました」返信 + 完了リプライ(URL付) |
| 4-A | チャンネル | 単一 #yamato-site-管理、1依頼=1スレッド運用 |
| 4-B | 依頼フォーマット | 完全自然言語 + 私の確認返し。Otakeは明確時スキップ |
| 5 | キューDB | GSheet YAMATO_Slack依頼ログ.gsheet(Notion不使用)/status 7値 |
| 6 | 失敗時挙動 | 自己修復2回まで。修復で内容変わる場合は依頼者確認。それ以上は要対応+Otakeメンション |
| 7 | 進捗通知 | 開始+完了の2点のみ(途中通知なし) |
| 8 | 他経路併用 | Slack + 既存Claude Code対話(CLI)併用 |
| 9 | 完了通知 | テキスト + 変更要約 + before/afterサムネ + 更新URL |
| 10 | Slack App | 新規Appを作る(既存review_monitor用とは分離)。ヤマト本体ワークスペース、本番直で開始 |
| 11 | 実装フェーズ | P0・P1・P2 を本日中/P3以降は別日 |
受信 ├─ 依頼者 == Otake? │ ├─ YES → アクション種別チェック │ │ ├─ 追加・差替 → 即実行 │ │ └─ 削除・リネーム・構造変更 → スレッドで「実行していい?」確認 │ │ │ └─ NO(他メンバー)→ 私が内容を判定 │ ├─ 明らかにOK(哲学・SoT・運営情報と整合) │ │ └─ アクション種別チェック │ │ ├─ 追加・差替 → 即実行 │ │ └─ 削除・リネーム・構造変更 → Otakeへエスカレ │ ├─ 明らかにNG(哲学違反・施設情報の誤りなど) │ │ └─ 差戻し(理由つきで丁寧にスレッド返信) │ └─ 曖昧(判断つかない) │ └─ Otakeへ通知+判断仰ぐ
判定材料: その場で関連する哲学MD・SoT・memory feedback だけを引く(重い全件Readはしない)。
例: 画像差替なら design_refs/member_guide_photos.md + scripts/build_member_guides.py の該当施設エントリだけ。
YAMATO_Slack依頼ログ.gsheet(My Drive直下/タイトル要相談)
| 列 | 名前 | 例 |
|---|---|---|
| A | 受信時刻 | 2026-05-24 15:23:10 |
| B | 依頼者 | Otake / 森下 / 他 |
| C | Slack URL | https://yamato.slack.com/archives/.../p... |
| D | 本文 | 館山ガイドの到着の章の写真を添付のに差し替えて |
| E | 対象サイト | tateyama-guide |
| F | アクション種別 | 差替 / 追加 / 削除 / リネーム / 構造変更 / 文言修正 |
| G | 関連ファイル | arrival_v2.jpg(Slack添付URL) |
| H | status | 新規→確認待ち→承認済→処理中→完了/差戻し/要対応 |
| I | 完了時刻 | 2026-05-24 15:27:48 |
| J | 結果URL | https://yamato-tateyama-guide.pages.dev/arrival/ |
| K | before | =IMAGE(...) |
| L | after | =IMAGE(...) |
| M | 備考 | 自己修復1回(リサイズ)等 |
新規 ← Worker が行追加した直後 ↓ 確認待ち ← 他メンバー依頼で曖昧→Otake通知中/確認返し中 ↓ 承認済 ← Otake判断 or 確認返しに対する依頼者OK ↓ 処理中 ← 私がファイル編集・ビルド・デプロイ実行中 ↓ 完了 ← Slackに完了報告済み 別系列: 差戻し ← 明らかNGで差し戻したケース(理由は備考列) 要対応 ← 自己修復2回失敗 or 構造変更系で停止中
scheduled-task は「status=新規 の行を取得 → 最初に status=処理中(or 確認待ち)に書き換え → 処理開始」の順で動かす。書き換えがアトミックなら二重処理を回避できる。
Slackスレッドへの完了報告は下記テンプレート。
✅ 完了しました 【変更要約】 館山ガイド > 到着の章 > メイン写真 旧: arrival_old.jpg 新: arrival_v2.jpg(添付いただいたもの) 【確認URL】 https://yamato-tateyama-guide.pages.dev/arrival/ 【before / after】 (画像2枚をSlackに直接アップロード)
注: 文言修正など画像差分が成立しない依頼の場合は before/after を省略し、変更要約だけリッチに書く。
YAMATO Site Manager / メンション表示は @yamato-site あたり| スコープ | 用途 |
|---|---|
app_mentions:read | @yamato-site メンションを拾う |
chat:write | スレッドへ返信投稿 |
files:read | 依頼者がアップロードした画像・ファイルをダウンロード |
files:write | before/afterサムネをSlackにアップロード |
channels:history | スレッド内の前後文脈を読む(追加情報の解釈用) |
reactions:read | 👍リアクションでの承認検知(将来用) |
app_mention(必須), message.channels(スレッド内追加発言用・必要に応じて), reaction_added(将来用)#yamato-site-管理 に bot を招待.env に SLACK_SITE_BOT_TOKEN として追加。既存 SLACK_BOT_TOKEN は review_monitor 用なのでそのまま)YAMATO_Slack依頼ログ.gsheet 作成(私が gspread で生成)ClaudeAuto_site_slack_poll(5分おき)SCHEDULED_TASKS.md 更新app_mention イベントを受信この時点でまだ実処理はしない。GSheetが正しく埋まり、Slack返信が出ることだけ確認する。
P2運用ログから「依頼の8割パターン」を抽出して、P3の自動化設計に活かす。
YAMATO_Slack依頼ログ.gsheet 仮。命名規約に合わせて変更可output/slack_queue/ 直下でも可。長期保管が必要なら GDrive| 種類 | パス/URL | 用途 |
|---|---|---|
| 既存Slack push実装 | scripts/review_monitor/slack_notifier.py | chat.postMessage 呼び出しの実装例 |
| 環境変数 | .env の SLACK_BOT_TOKEN | 既存(review_monitor用)。新Appのトークンは SLACK_SITE_BOT_TOKEN として別途追加 |
| SoT(施設定義) | scripts/build_member_guides.py FACILITIES dict | 11施設のフィールド・theme・photo_picks |
| 写真選定哲学 | design_refs/member_guide_photos.md | 5スロット・ステータス4段階 |
| デプロイ先マップ | DEPLOY_TARGETS.md | Cloudflare/Netlify使い分け |
| スケジューラ規約 | SCHEDULED_TASKS.md | ClaudeAuto_<cat>_<slug> 命名 |
| 前段の引き継ぎ | 2026-05-24-slack-bot-architecture.html | 論点提示の元資料 |
#yamato-site-管理 作成・bot招待.env へ追加)YAMATO_Slack依頼ログ.gsheet 作成(gspread)ClaudeAuto_site_slack_poll を登録SCHEDULED_TASKS.md 更新