5d00e71275
頂層 D22 決策(leo 2026-07-03 拍板):推什麼由開發環境歸屬決定, Gitea private=除機敏值/build 產物/.github 外全 push。 解 T1.5 卡點:雲端工人 clone 拿得到 credential-store-migration.md,可就地改寫 SDD。 機敏掃描兩輪通過(新增 189 檔約 2.1MB,node_modules/dist/wasm 照舊排除)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
57 lines
4.1 KiB
Markdown
57 lines
4.1 KiB
Markdown
# thin-shell-alignment — Tasks
|
||
|
||
> **狀態**:方向待確認,**尚未實作**(全 `[ ]`)。確認後才動 code。
|
||
> 對應 `design.md`。每完成一個立刻標 `[x]`,不批次。
|
||
> 建立:2026-06-27(issue #11)
|
||
|
||
---
|
||
|
||
## Phase 0:方向確認(前置)
|
||
|
||
- [x] 0.1 SDD 三件式寫好,核實總管盤點(P0 CLI run 死端點屬實 + 挖到第三漂移:CLI list key 前綴對不上 + 直連 KV)
|
||
- [x] 0.2 回報 issue #11 comment(署名 [arcrun CC])— leo 2026-06-27 全拍定,4 點照 SDD
|
||
- [x] 0.3 確認 validate 對齊狀態 — **總管核實揭第四漂移:CLI `acr validate` 純本機(validate.ts:44 不打端點)、MCP `arcrun_validate_yaml` 打 server /validate → 需收斂**(Phase 3.1 處理)
|
||
|
||
## Phase 1:P0 死端點(R1)
|
||
|
||
- [x] 1.1 CLI `run.ts:102` 改打 `/webhooks/named/:name/trigger`(真端點)— headers 已含 X-Arcrun-API-Key、body 已就緒,只改路徑一行。tsc 綠
|
||
- [ ] 1.2 驗證:leo21c 部署 workflow → `acr run <name>`(本機無 YAML 走玩法二)→ 觸發 200 非 404
|
||
- [ ] (MCP deploy 死端點不在本 SDD,歸 #8 ①-a / #10 ①-b)
|
||
|
||
## Phase 2:P1 list 來源統一(R2)
|
||
|
||
- [x] 2.1 CLI `list.ts` 停 `CfKvClient` 直連 KV,改 `GET /webhooks/named`(X-Arcrun-API-Key)— 整段改寫,tsc 綠
|
||
- [x] 2.2 MCP `u6u_list_workflows` 改讀 `GET /webhooks/named`(取代讀 KBDB record,tag 過濾仍走 resource_tag)— registry 簽名加 partnerToken,tsc 綠。⚠️ tag resource_id 語意債(UUID vs name)記 design §4,待總管確認 tag 收斂
|
||
- [x] 2.3 確認 `GET /webhooks/named` 回欄位夠 list 用(#8 1.3b 已補 description/created_at/cron_expr)— CLI/MCP 都讀 name/description/created_at
|
||
- [ ] 2.4 驗證:CLI list 與 MCP list 對同帳號回**同一組** workflow(同源、欄位齊);key 前綴 bug 消失(列得到新部署的)
|
||
- [ ] 2.5 驗證:self-hosted 用戶不需 CF API token 即可 list(走 cypher 不直連 KV)
|
||
|
||
## Phase 3:P2 單邊能力(R3)
|
||
|
||
- [⏸] 3.1 validate:核實完成——**真漂移且依賴 #10**。CLI 本機驗 YAML(loadWorkflowYaml+parseTriplets+validateRelations);MCP 打 server /validate 但傳的是已解析的 `{nodes,edges}` graph(graphSchema.safeParse)。兩邊**輸入不同層**(YAML vs graph),與 deploy 的 YAML→graph 編排債同根。乾淨收斂依賴 #10 編排下沉(YAML→graph 變 API 能力後 validate 才能統一吃 YAML)。**標記依賴 #10,記對照清單,不在本 SDD 強收**
|
||
- [ ] 3.2 creds push:記明「刻意單邊」於能力對照清單(含原因:含加密+本機檔,AI 不代傳 credential)
|
||
- [ ] 3.3 search:CLI `acr workflow search` 對稱補(次階段,同 #8 Phase 5)
|
||
|
||
## Phase 4 ⭐:防複發機制(R4,治本)
|
||
|
||
- [x] 4.1 能力對照清單 `docs/4-guides/cli-mcp-capability-matrix.md`(能力×CLI端點×MCP端點×route存在?×同源?)— 13 能力盤好,標 3 個已知債連 SDD
|
||
- [x] 4.2 本機 smoke test `scripts/thin-shell-smoke.sh`:對每能力打真端點斷言非 404(本機手動跑,非 CI/cron/輪詢)— 跑 prod 通,死端點 exit 1
|
||
- [x] 4.3 機制自驗:注入故意死端點 `/this-route-does-not-exist-xyz` → smoke 當場攔下列入死端點清單、exit 1(證明能攔)✅
|
||
- 📌 **副產品實證**:smoke 對 prod 跑揭出 `search_workflow`/`backfill` 報 404 — 非 bug,是「#8 code 已寫但 prod cypher 未部署」的假綠被當場揭出(正是 #11 治本要點)
|
||
|
||
## Phase 5:收尾
|
||
|
||
- [ ] 5.1 tsc 全綠(cli / mcp / cypher 受影響者)
|
||
- [ ] 5.2 leo21c 端到端:對齊後的能力 CLI/MCP 都真打通(200 非 404)、防複發機制驗收可攔死端點
|
||
- [ ] 5.3 issue #11 comment 回報端到端證據;由實證決定結案
|
||
|
||
---
|
||
|
||
## 鐵律提醒
|
||
|
||
- 能力落 API、薄殼讀同一源、不直碰儲存(rule 07)。
|
||
- 完成=leo21c 端到端客觀證據非 tsc 綠(mindset §7,這正是 #11 要治的假綠)。
|
||
- smoke test 本機手動跑,非 CI 高頻(flag 紅線)。
|
||
- deploy 那條不重複改(#8/#10 處理)。
|
||
- 跨 repo comment 署名 [arcrun CC]。
|