身為每天開新 session 的人,我要一開場就知道這台機器缺什麼,我才不會做完一整條線才發現跑不了 #115

Open
opened 2026-08-31 11:07:25 +00:00 by claude-code · 0 comments
Member

目標

leo 2026-08-31 原話:「這是問題,包括應該有的 credential 不在,把它寫進 ISEP 的 issue

一個 session 開場時,沒有任何東西檢查「這台機器上該有的東西在不在、該讀的規約有沒有互相打架」
ISEP 有 58 支閘,全部都在檢查我要做的動作對不對;沒有一支檢查我站的地方對不對

今天一個 session 內撞到三次,形狀相同:

① 該有的 credential 不在,而我到要用的那一刻才知道

Arcrun#192 要清空 youlin,需要 CLOUDFLARE_API_TOKEN_YOULIN_CC_USE
雲端這台機器:env | grep -ciE 'cloudflare|^CF_|wrangler'0
InkStoneCo/.env 不存在、~/.wrangler 不存在。

憑證地圖(wiki/credentials-map.md)明明寫著那把 token 該在 InkStoneCo/.env——
但那份 .env 是 gitignore,不隨 repo clone,所以雲端永遠拿不到。
地圖說「有」,機器上「沒有」,而兩者從不對帳。

更貴的是它發生在流程末端:我派了工人寫完清空腳本、寫完測試,
到要真的跑的那一刻才發現跑不了。這件事在 session 第一秒就能知道。

⚠️ 附帶查定(wiki/ops-facts.md 同日):雲端 session 的環境變數在 container 啟動那一刻凍結
leo 事後去後台設 Environment 變數,這個 session 讀不到
⇒ 「你去設一下我再查」在同一個 session 裡永遠是 0。這一點也該在開場就講明白
否則每次都會浪費一輪往返(今天就浪費了一輪)。

② 一支 skill 的格式,教我違反現行鐵律

/isep:wiki-update 要我把「正在做/下次 session 第一件事/待負責人確認」寫進 status.md
那是進度,而 D52+D72 寫死「進度一律去 Gitea 撈,不要在任何檔案裡另養一份,它一定會漂
——開場 hook 自己每次都印這句。

同一套系統的兩個部位互相打架:hook 印的規約 vs skill 教的動作。
我這次是自己看出來才沒照做;下一個 session 未必——而照做的後果正是那條鐵律要防的:
養出第二份會漂的進度。

③ 閘教了一行不存在的指令(已另立 inkstone/ISEP#112

comment-carries-task-guard.sh 教人跑 scripts/ticket subtask,那個子命令不存在。


三件的共同形狀規約、工具、環境三者各自更新,而沒有任何一處在對帳。
每一次都是「當事人自己撞到才知道」,而撞到的時機一次比一次晚
(③在動作當下、②在寫檔當下、①在整條線做完之後)。

驗收條件

  • session 開場就能知道這台機器缺什麼——至少涵蓋憑證地圖上列著、但這台機器實際沒有的項目
    (只報名字不報值;報「這裡沒有」而不是「不存在」)
  • 缺東西時說得出替代路徑,不要只報壞消息
    (例:雲端拿不到 .env ⇒ 貼在對話裡/設 Environment 後開新 session,
    且要講明「這個 session 讀不到後來設的變數」)
  • skill/command 與現行鐵律衝突時被抓出來——/isep:wiki-update 這一支要修好
    (它該教的是「進度去 Gitea、wiki 只收事實」)
  • 說明白怎麼保證這三者往後不再各自漂
    (是誰定期對帳、還是讓它們共用同一份真相源)

⚠️ 不要為此造一支「每次開場掃描全世界」的重閘——開場成本要小。
判準是「這個 session 待會會用到的東西」,不是「所有可能的東西」。

deliverable 類型

code


🔎 為什麼另開一張票而不是貼進既有的(開票時聲明):ISEP#30「讓閘擋對東西」講的是閘的判準準不準(誤攔/漏攔)、#112 講的是閘印出來的解法能不能執行——兩者都在講「閘本身」。這張講的是完全沒有閘的那一塊:沒有任何東西檢查「我站的地方對不對」(該有的憑證在不在、規約與工具有沒有互相打架)。leo 2026-08-31 當場指定要寫進 ISEP。
當時搜尋:session 開場 環境 不完整 credential 缺 skill 格式 過時 → 命中 125 張。

## 目標 > leo 2026-08-31 原話:「**這是問題,包括應該有的 credential 不在,把它寫進 ISEP 的 issue**」 一個 session 開場時,**沒有任何東西檢查「這台機器上該有的東西在不在、該讀的規約有沒有互相打架」**。 ISEP 有 58 支閘,全部都在檢查**我要做的動作**對不對;**沒有一支檢查我站的地方對不對**。 今天一個 session 內撞到三次,形狀相同: ### ① 該有的 credential 不在,而我到要用的那一刻才知道 `Arcrun#192` 要清空 youlin,需要 `CLOUDFLARE_API_TOKEN_YOULIN_CC_USE`。 雲端這台機器:`env | grep -ciE 'cloudflare|^CF_|wrangler'` → **0**、 `InkStoneCo/.env` 不存在、`~/.wrangler` 不存在。 **憑證地圖(`wiki/credentials-map.md`)明明寫著那把 token 該在 `InkStoneCo/.env`**—— 但那份 `.env` 是 gitignore,**不隨 repo clone**,所以雲端永遠拿不到。 ⇒ **地圖說「有」,機器上「沒有」,而兩者從不對帳。** 更貴的是它**發生在流程末端**:我派了工人寫完清空腳本、寫完測試, 到要真的跑的那一刻才發現跑不了。**這件事在 session 第一秒就能知道。** ⚠️ 附帶查定(`wiki/ops-facts.md` 同日):**雲端 session 的環境變數在 container 啟動那一刻凍結**。 leo 事後去後台設 Environment 變數,**這個 session 讀不到** ⇒ 「你去設一下我再查」在同一個 session 裡永遠是 0。**這一點也該在開場就講明白**, 否則每次都會浪費一輪往返(今天就浪費了一輪)。 ### ② 一支 skill 的格式,教我違反現行鐵律 `/isep:wiki-update` 要我把「正在做/下次 session 第一件事/待負責人確認」寫進 `status.md`。 **那是進度**,而 D52+D72 寫死「**進度一律去 Gitea 撈,不要在任何檔案裡另養一份,它一定會漂**」 ——開場 hook 自己每次都印這句。 ⇒ **同一套系統的兩個部位互相打架**:hook 印的規約 vs skill 教的動作。 我這次是自己看出來才沒照做;**下一個 session 未必**——而照做的後果正是那條鐵律要防的: 養出第二份會漂的進度。 ### ③ 閘教了一行不存在的指令(已另立 `inkstone/ISEP#112`) `comment-carries-task-guard.sh` 教人跑 `scripts/ticket subtask`,那個子命令不存在。 --- **三件的共同形狀**:**規約、工具、環境三者各自更新,而沒有任何一處在對帳。** 每一次都是「當事人自己撞到才知道」,而撞到的時機一次比一次晚 (③在動作當下、②在寫檔當下、①在整條線做完之後)。 ## 驗收條件 - [ ] session 開場就能知道**這台機器缺什麼**——至少涵蓋憑證地圖上列著、但這台機器實際沒有的項目 (只報名字不報值;報「這裡沒有」而不是「不存在」) - [ ] 缺東西時說得出**替代路徑**,不要只報壞消息 (例:雲端拿不到 `.env` ⇒ 貼在對話裡/設 Environment 後開新 session, 且要講明「這個 session 讀不到後來設的變數」) - [ ] skill/command 與現行鐵律衝突時被抓出來——`/isep:wiki-update` 這一支要修好 (它該教的是「進度去 Gitea、wiki 只收事實」) - [ ] 說明白怎麼保證這三者往後不再各自漂 (是誰定期對帳、還是讓它們共用同一份真相源) ⚠️ **不要為此造一支「每次開場掃描全世界」的重閘**——開場成本要小。 判準是「**這個 session 待會會用到的東西**」,不是「所有可能的東西」。 ## deliverable 類型 code --- > 🔎 **為什麼另開一張票而不是貼進既有的**(開票時聲明):ISEP#30「讓閘擋對東西」講的是閘的判準準不準(誤攔/漏攔)、#112 講的是閘印出來的解法能不能執行——兩者都在講「閘本身」。這張講的是完全沒有閘的那一塊:沒有任何東西檢查「我站的地方對不對」(該有的憑證在不在、規約與工具有沒有互相打架)。leo 2026-08-31 當場指定要寫進 ISEP。 > 當時搜尋:`session 開場 環境 不完整 credential 缺 skill 格式 過時` → 命中 125 張。
claude-code added the
p
high
s
todo
labels 2026-08-31 11:07:36 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: inkstone/ISEP#115