docs(cloud): 官方文件核實後修正 Plan A 假設+補完整環境變數盤點(InkStoneCo#14)

查官方文件(code.claude.com/docs/en/cloud-environments 的「What carries
over」表)發現:今天裝好的 --scope user 機制很可能不會被雲端 session 讀到
(user-scope enabledPlugins 明文寫「不會帶到雲端」);先前引用的
「Pre-populate plugins for containers」是另一個機制(CLAUDE_CODE_PLUGIN_
SEED_DIR,給自架容器用),不是 claude.ai Cloud environments 產品。

新增 docs/cloud-environment-audit-20260820.md:
- Plan A 風險(本機隔離環境重跑一次,貼新鮮輸出佐證腳本本身沒問題)
- Plan B(官方文件證實可行:把 ISEP 宣告進連線 repo 自己的 settings.json)
- Plan C(今天新查到:claude --cloud 直接從本機 checkout 打包,完全不經
  過 GitHub 薄殼,官方文件證實可行)
- 舊雲端環境變數逐一比對 credentials-map.md:八個名字(CLOUDFLARE_ACCOUNT_ID
  等)確認來自 polaris/mira/.env(leo21c 現役),與 cloud 總管工作無關,
  建議排除
- 薄殼/ISEP 共存風險分析(不會打架,除非 bootstrap.sh 重新把 InkStoneCo/
  clone 進薄殼workspace)

scripts/make-cloud-env.sh:NEEDED 從 1 個擴到 8 個,排除 leo21c 來源的
憑證,加註每個變數的出處依據。

docs/TESTING.md、docs/cloud-setup-script.sh、docs/cloud-session-bootstrap.md:
補上指向審計文件的警示與 Plan B/C 的 fallback 指引。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-20 22:04:25 +08:00
parent c48495d911
commit e255e23f01
5 changed files with 333 additions and 1 deletions
+20 -1
View File
@@ -10,9 +10,28 @@
set -euo pipefail
# ── 雲端需要哪些變數(只有名字。要加就加在這裡)──────────────────
# 2026-08-20 盤點(inkstone/InkStoneCo#14):舊雲端環境幾乎整包搬自
# polaris/mira/.env(🔴 leo21c 現役),混進了 leo21c 的 CF 帳號憑證與
# Google 服務帳號私鑰。下面這份清單是逐一對過 credentials-map.md 之後
# 篩出的「cloud 總管實際會用到、且不是 leo21c 寫入憑證」的變數。
# 刻意不收:CLOUDFLARE_ACCOUNT_IDCLOUDFLARE_API_TOKEN(無名字的)/
# PRIVATE_KEYCLIENT_EMAILNAMESPACE——這些是 mira 自己的憑證,不是
# cloud CC session 的需求,留著只會平白多一份 leo21c 暴露面。
# 完整分析見 docs/cloud-environment-audit-20260820.md §7。
NEEDED=(
GITEA_TOKEN_CLAUDE_CODE # 機器帳號 claude-code 的 Gitea tokenbootstrap 與 plugin 安裝都靠它
GITEA_TOKEN_CLAUDE_CODE # 機器帳號 claude-code 的 Gitea tokenplugin 安裝與 git push-back 都靠它
TELEGRAM_BOT_TOKEN # notify_leo 備援路徑(優先路徑是 arcrun MCP workflow,免密碼)
TELEGRAM_CHAT_ID # 同上
GEMINI_API_KEY # arcrun 工作流用(matrix/arcrun、products/arcrun-rag 兩邊 .env 都列)
NOTION_INTEGRATION_TOKEN # leo 註記「給 arcrun 用的」
UNCLE6_CF_API_KEY # uncle6 帳號(非 leo21c)的 CF 操作
N8N_UNCLE6_API_KEY # n8n MCP 用
CLOUDFLARE_API_TOKEN_YOULIN_CC_USE # D37 測試帳號,本來就是設計給 CC 用的
)
# 下面兩個不放進 NEEDED(會讓 leo 自己決定要不要開,見審計文件 §7 尾段):
# CLOUDFLARE_API_TOKEN_CC_SHIPPING_CORE CLOUDFLARE_ACCOUNT_ID_GEEK6688
# ——加了雲端就有 geek6688 出貨機的寫入能力,是否要開屬於 leo 的風險判斷。
# 要加:手動在 NEEDED 陣列補上這兩個名字即可,值一樣是這支腳本自動去 .env 撈。
# ── 去哪裡找值(credentials-map.md 記的六個 .env)────────────────
BASE="${INKSTONE_ROOT:-$HOME/Documents/tech_projects/InkStoneCo}"