Files
Arcrun/system-dev/docs/3-specs/thin-shell-alignment/tasks.md
T
uncle6me-web 5d00e71275 chore: D22 落地——docs/SDD/wiki/CLAUDE.md 進 repo(Gitea private 預設全 push)
頂層 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>
2026-07-03 07:13:33 +08:00

57 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# thin-shell-alignment — Tasks
> **狀態**:方向待確認,**尚未實作**(全 `[ ]`)。確認後才動 code。
> 對應 `design.md`。每完成一個立刻標 `[x]`,不批次。
> 建立:2026-06-27issue #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 1P0 死端點(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 2P1 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 recordtag 過濾仍走 resource_tag)— registry 簽名加 partnerTokentsc 綠。⚠️ 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 3P2 單邊能力(R3
- [⏸] 3.1 validate:核實完成——**真漂移且依賴 #10**。CLI 本機驗 YAMLloadWorkflowYaml+parseTriplets+validateRelations);MCP 打 server /validate 但傳的是已解析的 `{nodes,edges}` graphgraphSchema.safeParse)。兩邊**輸入不同層**YAML vs graph),與 deploy 的 YAML→graph 編排債同根。乾淨收斂依賴 #10 編排下沉(YAML→graph 變 API 能力後 validate 才能統一吃 YAML)。**標記依賴 #10,記對照清單,不在本 SDD 強收**
- [ ] 3.2 creds push:記明「刻意單邊」於能力對照清單(含原因:含加密+本機檔,AI 不代傳 credential
- [ ] 3.3 searchCLI `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]。