Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 69e0adce1b | |||
| 47c73cdaa3 | |||
| 92a008fd28 | |||
| 1f05bc2134 | |||
| cb310e9c72 | |||
| 6f37772a40 | |||
| 766375cd95 |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "isep",
|
||||
"description": "InkStone Environment Plugin —— leo 的 Claude Code 環境唯一真相源:61 支機械閘(84 條註冊,白話盤點見 docs/hooks-inventory.md)、7 支 slash command、2 支 skill、7 位有名字的工人(agents/,見 docs/governance/worker-roster.md)、49 支腳本,外加治理規範與標籤真相源。本機與雲端裝同一份,沒有子集。",
|
||||
"version": "0.18.0",
|
||||
"version": "0.20.0",
|
||||
"keywords": [
|
||||
"inkstone",
|
||||
"guardrails",
|
||||
|
||||
+2
-2
@@ -568,7 +568,7 @@ bash hooks/tests/sdd-guard-retired.test.sh
|
||||
```
|
||||
bash scripts/test-make-cloud-env.sh
|
||||
```
|
||||
**該看到**:`11/11 通過,跳過 0 條`(清單現在是 8 把)。**全程只印變數名字與值的長度,一個字元的值都不印。**
|
||||
**該看到**:`11/11 通過,跳過 0 條`(清單現在是 10 把——兩台全給 + 機器帳號 + uncle6 出貨 + 出貨取座標)。**全程只印變數名字與值的長度,一個字元的值都不印。**
|
||||
A 段用假的 `.env` 隔離跑(不碰真金鑰、不碰 `~/.claude/cloud-env`);
|
||||
B 段拿這台機器真正的 `.env` 對帳——**`.env` 不在的機器(雲端就是)會印 `⏭️ SKIP`**,
|
||||
不算失敗,但也不算驗過。
|
||||
@@ -875,7 +875,7 @@ B2(信標那行)/B3(setup 輸出)/B4(閘的訊息)三個畫面
|
||||
| **A12 留言身份欄(兩道門)** | 總管 | ✅ 11/11(2026-08-27) |
|
||||
| **A23 同時跑的線有上限** | isep-guard | ✅ 33/33(2026-08-29,inkstone/ISEP#109) |
|
||||
| **A24 一條線要有自己的工作目錄** | isep-guard | ✅ 35/35(2026-08-29,inkstone/ISEP#109→5391) |
|
||||
| **A26 雲端憑證清單這台拿得到** | isep-hand | ✅ 11/11(2026-09-01,inkstone/ISEP#115→5526/5541/5542)+兩條「該紅」方向實跑 |
|
||||
| **A26 雲端憑證清單這台拿得到** | isep-hand | ✅ 11/11(2026-09-01,inkstone/ISEP#115→5526/5541/5542/5577/5610)+兩條「該紅」方向實跑 |
|
||||
| **A16 放行的門真的打得開** | 總管 | ✅ 17/17(2026-08-28,inkstone/ISEP#90) |
|
||||
| **A17 未推警察不誤攔雲端分支** | 總管 | ✅ 10/10(2026-08-28,inkstone/ISEP#90) |
|
||||
| **A18 信標會報雲端接線缺陷** | 總管 | ✅ 14/14(2026-08-28,inkstone/ISEP#90) |
|
||||
|
||||
@@ -11,9 +11,23 @@ set -euo pipefail
|
||||
|
||||
# ── 雲端需要哪些變數(只有名字。要加就加在這裡)──────────────────
|
||||
#
|
||||
# 範圍=**youlin(stage)與 geek6688(測試 prod & 出貨機)兩台全給**。
|
||||
# 範圍=**youlin(stage)與 geek6688(測試 prod & 出貨機)兩台全給**,
|
||||
# **外加 uncle6**——出貨的三個站實際部署到的是那個帳號。
|
||||
# leo 2026-09-01:「youlin 和 geek6688 都全給,因為這兩個都是讓 CC 操作
|
||||
# 一個 stage 一個 test prod,**不給所有的就是受阻**。」
|
||||
# uncle6 是同一句話的延伸(inkstone/ISEP#115 → comment `5577`):
|
||||
# `products/arcrun-rag/installer/ship.targets.json` 六處 accountId 去重後只有一個值
|
||||
# `58309bb90fd93ad6d0fe0aae99170e9d`,而本機出貨靠的是家目錄裡的 OAuth 登入態
|
||||
# (`~/.wrangler/config/default.toml`)——**那個檔不隨 repo clone 走,雲端永遠拿不到**。
|
||||
# ⚠️ 這把「是 uncle6 的、而且 active」是驗過的;「它有沒有 Workers Scripts:Edit
|
||||
# =真的部署得動」**沒驗**(驗它必須寫入,那是紅線)。缺這格會在部署當下才知道。
|
||||
#
|
||||
# 📌 `ARCRUN_NS_YOULIN` 是同一族的病、不同的家(inkstone/ISEP#115 → comment `5610`):
|
||||
# `inkstone/Arcrun#195` 把實例座標拆成「網址隨 repo 走/namespace 走環境變數」之後,
|
||||
# 一台乾淨機器只要有這一個環境變數就取得到座標——而它原本只住在
|
||||
# `~/.arcrun/config.yaml` 的 `api_key`,**家目錄的東西不隨 repo clone 走**。
|
||||
# 🔎 這一族的共同形狀:**能力其實有,只是它住在「不會跟著 clone 走」的地方**
|
||||
# (uncle6 是 `~/.wrangler` 的 OAuth 登入態,這把是 `~/.arcrun`)。
|
||||
NEEDED=(
|
||||
# ── 機器帳號 ──
|
||||
GITEA_TOKEN_CLAUDE_CODE # claude-code 的 Gitea token;bootstrap 與 plugin 安裝都靠它
|
||||
@@ -24,10 +38,14 @@ NEEDED=(
|
||||
YOULIN_MCP_OWNER_SECRETS # youlin 那台 MCP 的 owner secret
|
||||
STAGE_USERNAME_YOULIN # ⚠️ 密碼類,見下面那條限制
|
||||
STAGE_PASSWORD_YOULIN # ⚠️ 密碼類,見下面那條限制
|
||||
ARCRUN_NS_YOULIN # 出貨線取座標那兩站要它;原本只住在 ~/.arcrun/config.yaml 的 api_key(家目錄,不隨 clone 走)
|
||||
|
||||
# ── geek6688 = 測試 prod & 出貨機 ──
|
||||
CLOUDFLARE_API_TOKEN_CC_SHIPPING_CORE # 出貨線寫入用
|
||||
CLOUDFLARE_ACCOUNT_ID_GEEK6688 # 上面那把的配對 account id
|
||||
|
||||
# ── uncle6 = 出貨三站真正部署到的帳號(installer/docsSite/mailRelay,stage 與 prod 都是)──
|
||||
UNCLE6_CF_API_KEY # 住在 products/arcrun-rag/.env;本機是靠 ~/.wrangler 的 OAuth 登入態出貨,那個檔不隨 clone 走
|
||||
)
|
||||
#
|
||||
# 🔴 這份清單的邊界——加一把之前先問「這把打得到哪個實例」,不是「這把方便嗎」
|
||||
|
||||
@@ -201,9 +201,20 @@ leo 當場:「**這些為什麼不寫到票裡?**」
|
||||
他會去找繞過去的方法。所以「出路能不能跑」要跟「判準準不準」一樣被測。
|
||||
## ⚠️ MISTAKE: 「雲端該有哪些憑證」的清單是唯一真相源,卻沒有任何東西在跟機器對帳
|
||||
|
||||
票: `inkstone/ISEP#115`(→ comment `5522`/`5526`)
|
||||
票: `inkstone/ISEP#115`(→ comment `5522`/`5526`/`5541`/`5542`/`5577`/`5610`)
|
||||
日期: 2026-09-01
|
||||
|
||||
📍 repo:`inkstone/ISEP`(`scripts/make-cloud-env.sh`/`scripts/test-make-cloud-env.sh`)
|
||||
+`InkStoneCo`(`.env`/`system-dev/wiki/credentials-map.md`——清單的值真身與那張索引)
|
||||
+`products/arcrun-rag`(`.env` 的 `UNCLE6_CF_API_KEY`/`installer/ship.targets.json`)
|
||||
+`inkstone/Arcrun`(`shared/instance-coordinates/`——`ARCRUN_NS_YOULIN` 的用處)
|
||||
|
||||
三元組:
|
||||
- `雲端該有哪些憑證 >> 唯一清單在 >> inkstone/ISEP:scripts/make-cloud-env.sh 的 NEEDED`
|
||||
- `NEEDED >> 值真身在 >> InkStoneCo/.env 等六個 .env(只有名字進版控)`
|
||||
- `這份清單 >> 被誰逼著跟機器對帳 >> scripts/test-make-cloud-env.sh 的 B7/B8/B9`
|
||||
- `A 段 8 個 >> 從未併進 >> inkstone/ISEP:main(只活在 fix/cloud-env-parity-14/PR #43)`
|
||||
|
||||
症狀: 雲端 session 要清空 youlin,`env | grep -ciE 'cloudflare|^CF_|wrangler'` → **0**。
|
||||
而 `credentials-map.md` 明明寫著那把 token 在 `InkStoneCo/.env`。
|
||||
|
||||
@@ -229,3 +240,20 @@ leo 當場:「**這些為什麼不寫到票裡?**」
|
||||
|
||||
⇒ **推廣**:repo 裡任何「這台機器該有什麼」的清單,都要有一支東西定期拿它去問機器。
|
||||
清單自己不會知道它漏了什麼。
|
||||
|
||||
### 後續(同日 comment `5577`/`5610`):漏掉的那幾把有共同形狀
|
||||
|
||||
清單從 1 把補到 10 把的過程中,後面兩把不是「忘了寫」,是**同一族的病**:
|
||||
|
||||
```
|
||||
uncle6 出貨 能力住在 ~/.wrangler/config/default.toml 的 OAuth 登入態
|
||||
ARCRUN_NS_YOULIN 能力住在 ~/.arcrun/config.yaml 的 api_key
|
||||
```
|
||||
|
||||
⇒ **能力其實有,只是它住在「不會跟著 clone 走」的地方**(家目錄)。
|
||||
本機因此永遠是綠的,而雲端永遠是紅的——**兩邊都不會有人發現**,
|
||||
直到某條線做到最後一步要用它。
|
||||
|
||||
📌 判準:看到「本機做得到、雲端做不到」時,先問
|
||||
**「這個能力的真身住在 repo 裡,還是住在家目錄裡?」**
|
||||
住在家目錄 ⇒ 它一定要有一個具名的環境變數,並且進這份清單。
|
||||
|
||||
Reference in New Issue
Block a user