Files
Arcrun/system-dev/docs/4-guides/cli-mcp-capability-matrix.md
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

48 lines
4.1 KiB
Markdown
Raw Permalink 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.
# CLI / MCP 能力對照清單(薄殼防漂移)
> **來源**thin-shell-alignment SDDissue #11R4 防複發機制層 1。
> **用途**:每新增一個薄殼能力(CLI 命令 / MCP 工具)**必填一行**PR review 對照。
> **治什麼**:① 打不存在的 server 端點(死端點假綠)② CLI/MCP 同能力不同源(漂移)。
> **配套**`scripts/thin-shell-smoke.sh`(層 2,對真端點打、斷言非 404)。
> **建立**2026-06-27
>
> **填寫規則**
> 1. 「server 端點」必須在 cypher-executor route 清單裡**存在**(用 `grep -rE "Router\.(post|get)\('/xxx'" cypher-executor/src/routes/` 驗)。
> 2. 「同源?」= CLI 與 MCP 是否打**同一個** server 端點。不同源 = 漂移(除非刻意單邊,記明原因)。
> 3. 標 ⚠️ 的是已知債/待收斂項,連到 SDD 對應段。
---
## 對照表
| 能力 | CLI | MCP | server 端點 | route 存在? | 同源? | 備註 |
|------|-----|-----|------------|:---:|:---:|------|
| 部署 workflow | `acr push` | `u6u_deploy_workflow` | `POST /webhooks/named` | ✅ | ⚠️ | MCP 現打死端點 `/workflows/deploy`404)→ 待 #8 ①-a + #10 編排下沉。CLI 走 4 步介面層編排(#10 待下沉)|
| 執行 workflow(已部署)| `acr run <name>` | `u6u_execute_workflow` | `POST /webhooks/named/:name/trigger` | ✅ | ✅ | **#11 P0 已修**CLI 原打死端點 `/webhooks/<name>` → 改打 trigger 真端點 |
| 執行 workflow(本機 YAML| `acr run <file>` | — | `POST /cypher/execute` | ✅ | — | CLI 本機 YAML 直跑;MCP `u6u_execute_workflow` 同打 /cypher/execute |
| list workflow | `acr list` | `u6u_list_workflows` | `GET /webhooks/named` | ✅ | ✅ | **#11 P1 已修**:兩邊原不同源(CLI 直連 KV `workflow:` 前綴對不上 / MCP 讀 KBDB record)→ 收斂到 `GET /webhooks/named`KV 源)|
| get workflow | — | `u6u_get_workflow` | KBDB record / KV| — | — | MCP onlyCLI 無對應(次要,可不補)|
| search workflow | (次階段 `acr workflow search`| `u6u_search_workflows` | `GET /workflows/search` | ✅ | — | **#8 新增**;CLI 對稱補列次階段(R3.3)|
| 驗證 YAML | `acr validate`(本機)| `arcrun_validate_yaml`server /validate| `POST /validate` | ✅ | ⚠️ | **真漂移,依賴 #10**CLI 本機驗 YAML、MCP 傳 graph 打 /validate,輸入不同層。乾淨收斂依賴 #10 編排下沉(SDD §4 表 + tasks 3.1|
| 搜尋零件 | `acr parts` | `u6u_search_components` | `GET /components/search`registry| ✅ | ✅ | 同打 registry search(註:目前是 KV substring 非真語意,registry Phase 2 另案)|
| recipe6 能力)| `acr recipe *` | `arcrun_recipe_*` | `/recipes/*` `/public-recipes/*` | ✅ | ✅ | 已對齊 |
| credential 上傳 | `acr creds push` | — | `POST /credentials` | ✅ | — | **刻意單邊**(非疏漏):含 client 端加密 + 本機檔路徑,AI 不代傳 credentialmindset §6/§7|
| KBDB 資料層(template/record/query/search| `acr kbdb *` | `kbdb_*`6 工具)| `/kbdb/*` | ✅ | ✅ | 已對齊(#8 前批)|
| tagcreate/list/delete/tag/untag| — | `u6u_*_tag` / `u6u_tag_resource` | KBDB resource_tag| — | — | MCP only。⚠️ tag resource_id 語意債(UUID vs name),待方向①收斂(SDD §4.1)|
| whoami | `acr whoami` | `arcrun_whoami` | `GET /me` | ✅ | ✅ | 已對齊 |
---
## 已知債(連 SDD
- ⚠️ **MCP deploy 死端點**`/workflows/deploy` 不存在 → #8 ①-a(先擋)+ #10(編排下沉)。
- ⚠️ **validate 漂移**:依賴 #10 編排下沉後才能統一吃 YAML。
- ⚠️ **tag resource_id 語意**UUID vs name 不明確,待方向①收斂統一為 name。
## 防複發檢查點(新增能力時)
1. 新 CLI 命令 / MCP 工具 → **本表加一行**
2. 填「server 端點」前,`grep` 確認該 route 在 cypher-executor 裡**存在**(否則就是死端點)。
3. 同能力兩介面 → 確認「同源」打同一端點;刻意單邊 → 備註記明原因。
4. 宣稱「對齊/完成」前 → 跑 `scripts/thin-shell-smoke.sh`(對真端點斷言非 404)。