Files
Arcrun/system-dev/wiki/cards/decisions/自力救濟階梯-缺能力怎麼補.md
uncle6me-web 558e80b4da chore(wiki): wiki-init 補骨架 + system-dev-template 安裝/更新腳本
wiki 已初始化過(push 檔活躍維護),本次補從沒建的 pull 層 + arcrun 化範本:
- cards/decisions/ 14 張決策原子卡(含 gloss/實體/typed-edge 三元組):
  從 decisions-summary 全量改寫 13 + 新增「薄殼規則晚於實作-MCP漂移是歷史債」1
- TAXONOMY 從 PKM 範本換成 arcrun 軸(子系統 零件架構/cypher/credential/recipe/kbdb/
  薄殼/部署/平台原則 + 形態 架構決策/踩坑/機制說明/禁令/案例經驗)
- principles 填 13 條跨全局原則(從 rules/ + mindset 蒸餾)
- INDEX 真實視圖(子系統角度 + 決策角度,指向 cards)
- system-dev/scripts/ + scripts/ install/update 安裝腳本(template 接入)

純基建/文檔,無業務 code(功能 code 見前一 commit)。
raw source(docs/)0 異動、wiki 卡際連結無斷鏈。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 17:53:37 +08:00

49 lines
3.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.
---
tags: [平台原則, 架構決策]
gloss: 缺能力的補救階梯:自家 API 缺→補進 API;第三方 API 缺→workflow/code-node 補丁;純計算→code-node;才建零件。
---
# 自力救濟階梯 — 缺能力怎麼補
← [[decisions/00-INDEX]]
**來源**`system-dev/wiki/decisions-summary.md`(自力救濟階梯)、`.claude/rules/07-thin-shell.md §3.5`
**最後更新**2026-06-27
## 摘要
缺一個能力時的補救路徑分級。主問「那個 API 你能改嗎」:能改→補 API;改不了(第三方)→走 workflow/code-node 補丁;不入任何 API 的純計算→code-node;真需新穩定能力(極少)→零件 PR。
## 重點
- **階梯概覽**
| 情況 | 正解 | 為何 |
|---|---|---|
| 能打既有 API | **recipe**(無則建) | 單一 API 呼叫的封裝 |
| 自家 API 缺能力 | **補進 API** + 可同時發 issue | 你能改,能力該長在 API |
| 第三方 API 缺能力 | **可投稿的 workflow 補丁** | 改不了第三方,用資料方式自救 |
| 純計算(如文本轉大寫) | **code-node**(空白零件寫 JS) | 不該為此建一堆專用零件 |
| 真需新穩定能力(極少) | 自建零件 → PR | 維持零件庫最小 |
- **第三方 API 缺能力的實例**Google Sheets 一次只能倒全部、輸出前無法 filter;原廠不開此 API → arcrun 補不進去 → 正解是投稿一個 workflow 補丁「倒出後自己篩」。
- **Upsert 範例**(區分自家/第三方):
- Stripe 原廠提供 upsert API → recipe 直打
- Notion 沒 upsert API → 做一個 upsert workflow(先 GET 找、有則 PATCH 無則 POST),不是建零件
- **Hook 無法防守的**:§3.1 禁的是「介面層 TS 拼裝」(hook 7.x 擋),不是禁「資料方式補丁」。workflow/code-node 是 YAML/空白零件內的 JS,非介面層 TS → hook 範圍外、合法不被擋。
- **補丁轉正**:原廠出 API 後,補丁 workflow 因效能較差自然淘汰;不需特別移除。
## 實體
- **自家 API**arcrun-owned API)— arcrun 官方開發的 API(如 cypher-executor 端點、KBDB 基本盤),改動權掌握在 arcrun。
- **第三方 API**third-party API)— 外部服務提供的 APIGoogle Sheets、Stripe、Notion),改不了。
- **Workflow 補丁**workflow patch)— 用戶投稿的 workflow YAML,用來補第三方 API 缺的能力,可被多人重用。
- **Code-node**(代碼節點)— 空白 zero-logic 零件內直接寫 JavaScript,用於純計算。
- **零件庫污染**component bloat)— 為了單一功能、改不了的第三方 API 新建零件,長期難維護。
## 關聯
### 內文知識關係
- 自家 API 缺 >> 正解是 >> 補進 API
- 第三方 API 缺 >> 無法補 API >> 走 workflow 補丁
- 純計算 >> 應該 >> code-node
- 零件庫污染 >> 來自 >> 為第三方缺口建零件
- 補丁 workflow >> 因效能差 >> 自然淘汰
### 卡片關係
- [[自力救濟階梯-缺能力怎麼補]] >> 補充 >> [[工作流是default零件是例外]]
- [[自力救濟階梯-缺能力怎麼補]] >> 關聯 >> [[薄殼原則-能力長在API]]