⚠️ 内部資料 / 社外配布禁止
⚡ Active: 0 セッション
CHAPTER 01 / ACCOUNTS

アカウント一覧

8 つのメールアカウントの役割・所有・スコープ
担当: トラジ(社内開発・自動化担当)

全 8 アカウント一覧

会社の AI 業務を支える全 Google アカウントの役割分担。実メールアドレスはチャット・ファイル・ログに一切書かず、{{xxx_email}} プレースホルダで参照する運用。

プレースホルダ 用途 カテゴリ 主管
{{connect8_email}} 会社事業メイン Workspace 主アカウント 会社業務 CEO(飯塚)
{{connect8_contact_email}} 会社への問い合わせ窓口(contact@ エイリアス) 会社業務 ターちゃん(A09)
{{connect8_ai_email}} 会社全体用 AI 作業拠点(CAC 以外) AI 拠点 ターちゃん(A09)/ 白石(A08)/ 三宅
{{cac_ai_email}} CAC 業務専用 AI 作業拠点 AI 拠点 黒柳(A05_cac)
{{ai_email}} 個人 AI 関連(モーニング・買い物等) 個人 CEO 個人
{{rim_email}} 夫婦共有(メール・スケジュール管理) 個人 CEO 夫婦
{{finance_email}} 投資・金融サービス用(2026-05-22 AI スコープから完全切断、Personal_finance Drive オーナー) 個人(AI 非接続) CEO 個人
{{finance_ai_email}} 個人金融 AI 作業用ロボット(2026-05-24 新設、drive + spreadsheets スコープ、Personal_finance 編集者) 個人(ロボット) CEO 個人
{{shop_email}} EC・ショッピング通知用 — AI スコープから完全切断済(アカウント自体は残置) 個人(AI 非接続) CEO 個人
絶対ルール: 上記プレースホルダ以外の実メアドをチャット・ファイル・ログに書かない。env 外の取引先メアドは abc***@domain 形式で部分マスク。CEO 厳格運用中(2026-05-14 ルール策定、再発履歴あり)。

2 つの AI 拠点(最重要)

会社の AI 操作はすべて以下 2 アカウントに集約。個人アカウントには AI 経由の書き込み権限を与えない。

{{cac_ai_email}} — CAC 専管

呼称CAC AI エージェント
主管黒柳さん(CAC リーダー)
GCP プロジェクトcac-ai-agent(既存)
token 配置2_Areas/A05_cac/_credentials/token_cac_ai.json
スコープForms / Sheets / Slides / Drive / Docs / Script / Calendar / Gmail compose(9 スコープ)
主な業務
  • 日本株・米国株 銘柄管理シート自動更新(平日 16:00、4 ジョブ)
  • CAC 統合会員マスター v2.4(35 列、フォーム連携・onEdit 自動入力)
  • 日曜通信 Slides 生成(週次)
  • CAC セミナーアンケート Form / 集計
  • Notion CAC ページ生成・更新

{{connect8_ai_email}} — CAC 以外全部

呼称connect8 AI エージェント
主管ターちゃん(A09 BPO)/ 白石(A08)/ 三宅
GCP プロジェクトconnect8-ai-ops(2026-05-15 新設)
GCP オーナー{{connect8_email}} Workspace(組織継承可能)
token 配置~/_credentials/google_oauth/token_connect8_ai.json
スコープgmail.readonly / gmail.send / drive / forms.body / spreadsheets / presentations / script.projects(7 スコープ)
主な業務
  • contact@ 一次応対(受信 → 分類 → 下書き作成、B モード)
  • コンサル先成果物の Drive 格納(リード・リアルエステート / Hi-co / 松林組 / コンマラム / ES Thailand 他)
  • クライアント向け Slides / Sheets / Docs 自動生成
  • Notion 連携(無料枠維持、重い画像は Drive 経由)
  • Forms 申込フォーム生成・受付番号採番

GCP プロジェクト構成(現状 AS-IS)

⚠️ 重要な現状認識(2026-06-09 検証時点): 理想設計では「個人/会社/CAC の 3 GCP 分離」だが、実態は personal-ai-ops に全アカウントが集約されている。 OAuth 同意画面で「morning-routine」表記が出るのはこの理由。完全分離は後日 TASKS.md 案件として実施予定。

実在する GCP プロジェクト

GCP プロジェクト オーナー 役割 状態
personal-ai-ops
ID: morning-routine-493707(永続)
番号: 51573263290
{{ai_email}}(個人 / 組織なし) 個人 AI 全般 + cac_ai(歴史的経緯) + connect8_ai(実態として) 稼働中 全 OAuth client がここに集約
connect8-ai-ops
ID: connect8-ai-ops
{{connect8_email}}(connect8.cc 組織) 本来は connect8_ai 業務用 準備済・未稼働 client_secret 発行済だが token は使われていない
cac-ai-agent
番号: 733608998705
未確認(おそらく {{ai_email}} 個人 or CAC オーナー) CAC 業務のメイン token(銘柄管理 / 会員マスター / 日曜通信 / Notion 等) 稼働中 token_cac_ai.json はここ。
ただし CAC Calendar 系の補助 token は personal-ai-ops に間借り(歴史的経緯)
sheet-test {{ai_email}}(個人) テスト用 テスト

ローカル OAuth ファイル実態

ファイル 所属プロジェクト 用途
~/_credentials/google_oauth/client_secret.json personal-ai-ops 全 token の生成元として実際に使われている(connect8_ai 含む)
~/_credentials/google_oauth/client_secret_connect8_ai_ops.json connect8-ai-ops 準備済だが現状未使用(移行後の本命)

token ↔ アカウント ↔ プロジェクト 対応表(現状実態)

token ファイル アカウント OAuth client_id 系統 スコープ 主用途
token.json {{ai_email}} personal-ai-ops gmail.readonly 個人モーニング
2_Areas/A05_cac/_credentials/
token_cac_ai.json
{{cac_ai_email}} cac-ai-agent(733608998705) 10 スコープ(Forms / Sheets / Slides / Drive / Docs / Script / Calendar / Gmail compose 等) CAC 業務メイン(銘柄管理 / 会員マスター v2.4 / 日曜通信 / Notion 連携)
~/_credentials/google_oauth/
token_cac_ai_calendar.json
{{cac_ai_email}} personal-ai-ops(歴史的経緯) calendar CAC Calendar 連携(補助)
~/_credentials/google_oauth/
token_cac_schedule.json
{{cac_ai_email}} personal-ai-ops(歴史的経緯) calendar.readonly CAC スケジュール参照
token_connect8_ai.json {{connect8_ai_email}} personal-ai-ops(本来は connect8-ai-ops が望ましい) drive / forms.body / spreadsheets / script.projects / script.deployments / script.scriptapp 業務 AI(フォーム生成・GAS 編集・Drive 操作)
token_finance_ai.json {{finance_ai_email}} personal-ai-ops drive / spreadsheets 個人金融 AI(Personal_finance 編集)
token_shared.json {{rim_email}} personal-ai-ops gmail.readonly 夫婦共有メール監視
token_work.json {{connect8_email}} 別系統(244826068116-...) gmail.readonly 会社メール監視
備考: token_finance.jsontoken_shopping.json は 2026-05-22 / 2026-05-24 廃止フローで削除済(finance_ai に統合)。

理想設計(SHOULD-BE)

  • blast radius 分離: 1 GCP が侵害されても他に波及しない
  • オーナー権限分離: 個人 / 会社 / CAC それぞれ独立
  • 課金分離: 会社業務系は Workspace 契約と紐付き、税務対応に有利
  • 監査分離: 業務操作ログが個人ログに混入しない
  • 組織継承: connect8-ai-ops は Workspace 主オーナーなので人事変更時も継承可能

移行 TODO(後日まとめて実施)

項目 影響範囲 リスク 所要
connect8_ai を connect8-ai-ops プロジェクトに正式移行 新規 token 発行、既存業務(フォーム生成・GAS 編集)切替 中(数日のサービス影響可能性) 30 分(移行)+ 1 日(モニタリング)
cac_ai を cac-ai-agent に正式移行 銘柄管理 4 ジョブ / 統合会員マスター / 日曜通信 / Notion 連携 全部に影響 🔴 高(誤れば CAC 業務停止) Phase 1 棚卸し数時間 + Phase 2-4 で 1-4 週間
関連: OAuth トークン詳細・スコープ別管理は 5. アーキテクチャ § GCP プロジェクト構造 を参照。

既知のバグと対処

2026-06-09: token scope 縮小バグ(修正済)

症状: token_connect8_ai.json のスコープが約 1 時間ごとに 6 件 → 1 件(drive のみ)に縮小されていた。 結果として Apps Script 編集等が突然認可エラーで止まる。
原因A10 経理パイプライン他 32 ファイルで Credentials.from_authorized_user_file(path, narrow_scopes) + creds.to_json() 書き戻しにより、refresh 後にスコープが narrow_scopes に縮小されて保存される
誘発タイミング15 分毎の com.connect8.upan.poller LaunchAgent が、access_token 失効後の refresh + 書き戻しを行うと発火
修正Credentials.from_authorized_user_file(path, scopes)scopes 引数を全 32 ファイルから削除 → ファイル元のスコープを保持
影響範囲A10 経理パイプライン(29 ファイル)+ drive_io / drive_ops / drive_move_folder(3 ファイル)
バックアップ/tmp/a10_token_fix_backup_20260609_113638/ + /tmp/non_a10_token_fix_20260609_113822/
対策(恒久)新規スクリプトでは Credentials.from_authorized_user_file(path) のみ使用、scope は token ファイル側に保持

同種バグ予防チェックリスト

  • 新規スクリプトで Credentials.from_authorized_user_file を使う時は scopes 引数を渡さない
  • scopes を渡したい場合は、ロード後の token 書き戻し(to_json())を しない
  • code review 時、上記パターンが混ざっていないか目視確認
  • 定期チェック: ~/_credentials/google_oauth/token_connect8_ai.json のスコープ数が 6 件未満になっていないか

個人系アカウントの位置づけ

{{ai_email}}, {{connect8_email}}, {{shop_email}}, {{rim_email}} の 4 アカウントは Gmail/Calendar 読み取り専用 のみが OAuth トークンに記録されており、AI/スクリプト経由の書き込み操作は技術的に不可能{{finance_email}} は 2026-05-22 に AI スコープから完全切断(トークン archived)。Drive 編集が必要な個人金融作業は {{finance_ai_email}}(独立ロボット)に分離。

仕組み: Google API はトークンに記録されたスコープを超えた呼び出しを insufficient scope エラーで拒否する。各 token のスコープは ~/_credentials/google_oauth/token_*.jsonscopes フィールドで確認可能(中身は読まない方針なので、専用スクリプトで JSON の scopes キーのみ抽出して確認)。

個人系アカウントが担うこと

アカウント 用途 スコープ
{{ai_email}} モーニングルーティン(朝刊配信)の主アカウント gmail.readonly + calendar.readonly
{{connect8_email}} 会社メール監視(30 分巡回)、Workspace 管理 gmail.readonly + calendar.readonly
{{finance_email}} 2026-05-22 AI スコープから完全切断(Drive 等は人間操作のみ、Personal_finance フォルダのオーナーとして保持) 切断済み(archived)
{{finance_ai_email}} 個人金融 AI 作業用ロボット(Personal_finance 編集、立替管理・医療費レシート集計等 5 機能) drive + spreadsheets
{{shop_email}} EC 通知の監視 gmail.readonly
{{rim_email}} 夫婦共有スケジュール参照 gmail.readonly + calendar.readonly
意義: 個人系トークンは「読むだけ」なので、漏洩時の被害が「メール内容を見られる」までに限定される。送信・削除・編集ができないため、勝手に外部に何かを送る攻撃は不可能。

エイリアス構造({{connect8_email}} 配下)

{{connect8_email}} Workspace アカウントには、業務上の宛先別エイリアスを設定。すべて同一受信箱に届く。

エイリアス 用途 受信先
info@ 既存・汎用 {{connect8_email}} 受信箱
contact@ = {{connect8_contact_email}} お問い合わせ窓口(AI 一次応対対象) {{connect8_email}} 受信箱 → フィルタで {{connect8_ai_email}} 自動転送
各スタッフ名@ スタッフ個人宛 {{connect8_email}} 受信箱、ラベル仕分け
差出人偽装の仕組み: {{connect8_ai_email}}(外部 Gmail)から contact@ 名義で送信できる。Workspace SMTP リレー(smtp.gmail.com:587)経由で認証は {{connect8_email}} のアプリパスワードを使う構成。受信者には正規の connect8.cc ドメイン送信として届く(SPF / DKIM / DMARC 全 pass、2026-05-14 DNS 整備済)。