#!/usr/bin/env bash # 貼進 claude.ai → Cloud environments → 你的環境 → Setup script 欄位。 # # 🔴 2026-08-21:這支腳本從「要 token」變成「不要 token」,因為查文件查出兩件事—— # # ① **setup script 讀不到 Environment variables。** # 官方原文:「Each session copies the environment's values once, **at startup**, # into ordinary environment variables」,而 setup script 是 # 「**before Claude Code launches**」跑的 ⇒ 注入發生在它之後。 # ⇒ 舊版把 token 放進 Environment variables 再要這裡讀,永遠讀不到。 # # ② **非零結束會讓整個 session 開不起來。** # 官方原文:「**Exit zero**: if the script exits non-zero, the session fails to start.」 # ⇒ 這裡一律 exit 0。任何失敗只記錄,不擋門。 # # 解法是拿掉憑證需求本身:`inkstone` org 與 `inkstone/ISEP` 都改成 Public # ⇒ 匿名 clone 得到(2026-08-21 實測:匿名 git-upload-pack HTTP 200、 # 真隔離環境(無憑證、GIT_CONFIG_NOSYSTEM=1)ls-remote 成功) # ⇒ **雲端不再需要任何金鑰就能裝 ISEP。** # # 真正讓 plugin 生效的是薄殼 repo 的 .claude/settings.json # (extraKnownMarketplaces + enabledPlugins)——官方文件: # 「Installed at session start from the marketplace you declared.」 # 下面兩行是備援,讓 marketplace 在 session 啟動前就已經在快照裡。 set -uo pipefail claude plugin marketplace add https://git.uncle6.me/inkstone/ISEP.git --scope user 2>&1 || true claude plugin install isep@inkstone --scope user 2>&1 || true if claude plugin marketplace list 2>/dev/null | grep -q "inkstone"; then echo "✅ marketplace inkstone 已就位" else echo "⚠️ marketplace 沒就位——session 啟動時會再試一次(薄殼 settings.json 宣告的那條路)。" echo " 若 session 開頭看不到「🟢 ISEP v… 已載入」,就是這條也失敗了。" fi exit 0