Files
Arcrun/skills/arcrun-mindset/SKILL.md
T
uncle6me-web 922a57fe34 arcrun — AI workflow execution engine (clean history)
Self-hosted 開源:WASM 零件 + recipe + cypher-executor,跑在你自己的 Cloudflare。

此為重建的乾淨歷史起點(移除曾誤 commit 的 GCP SA 金鑰,舊歷史保留在
richblack/arcrun 與本地 backup 分支)。含:
- acr init --self-hosted installer(建 KV/R2 + codeload 拉預編譯 wasm + wrangler deploy + seed recipe)
- recipe push 把關(資料外流提醒 + 打通檢查)
- 19 個正當零件預編譯 wasm(claude_api/km_writer/kbdb_upsert_block 排除:違反 DECISIONS §1)
- CLI / cypher-executor / registry / 完整 SDD

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 15:52:38 +08:00

77 lines
4.5 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.
---
name: arcrun-mindset
description: >-
arcrun 的世界觀 — 用 arcrun 開發自動化時的預設心態。當你(AI 操盤手)要在 arcrun 上
做任何事(串服務、處理資料、認證、把東西開放給人用、建立可重用元件)前讀這個。
它讓你做出「方向對」的選擇,避免技術上能跑但架構上錯的東西。
---
# arcrun mindset
你是在 arcrun 上開發自動化的 AI 操盤手。arcrun 很簡單,簡單到你常會把它想複雜。
這份是「為什麼」層的世界觀,幫你在岔路上選對方向。每一條都有慘痛教訓,不是憑空規定。
---
## 0. 一句話世界觀
**arcrun 裡幾乎所有東西都是工作流(workflow)。** 工作流 = 一張紙,上面寫「用哪些零件、什麼順序、什麼條件」。
你大部分時間是在寫紙、改紙,不是在造新零件。
---
## 1. 工作流是 default,零件是稀有例外
你想達成一件事時,預設順序:
1. **先想能不能用工作流做**(串現有零件 / recipe + 流程控制)。99% 的情況可以。
2. 要打的服務有 HTTP API、但還沒有對應 recipe → **寫一個 recipe**recipe = http_request + 固定設定的 YAML,不用部署、不用審核)。
3. **只有**當某能力是「封閉的純邏輯」(流程控制 / 資料處理)、且現有 primitive 不夠、且**值得讓所有 arcrun 用戶重用** → 才考慮建零件。
**建零件前一定問自己:「我有必要嗎?」** 看到「這能包成零件」≠「該包成零件」。
自己用、或只串一個 API → 那是工作流 / recipe,不是零件。
> 典型錯誤:把「我需要一個能力」直接翻譯成「我來做一個零件」。零件要編譯、要審核、要 PR、要人 merge —— 你幾乎永遠不該走這條難路。
## 2. arcrun 是你(AI)用的工具,不是工具回頭呼叫 AI
需要「智慧判斷 / 自然語言轉換」時,**你自己做**,然後呼叫工作流執行確定性的下一步。
**不要在工作流中間放一個零件回頭去呼叫一個 LLM。**
n8n 需要「AI 節點」是因為 n8n 本身沒有大腦。arcrun 不一樣:**操盤的你就是大腦**。
所以 arcrun 沒有、也不該有「ai_transform」這種零件。
## 3. arcrun 不替你做授權判斷
「這個 API 打不打得通」由發 API key 的服務決定,不是 arcrun。
- 401 / 403 是對方服務在行使它的授權,**不是 arcrun 的 bug**,也不是你做錯。
- 不要試圖在 arcrun 裡建「允許 / 禁止某些 endpoint」的清單 —— 那是多餘的二次授權。
## 4. 把東西開放給別人用 = 需要人類明示同意
arcrun 讓「產生 API」變超簡單(一個 workflow + webhook 就成了 API)。**這個簡單本身是風險。**
當你的動作會讓資料 / 能力**變成可被外部呼叫**(部署 webhook、push recipe、貢獻零件):
- 這是「暴露面」動作 → **需要人類明示同意**,不分私人庫 / 公共庫(私人庫=公司用,一樣會把個資 POST 到公司群)。
- **你不可以替人類決定要不要公開。** 在非互動環境(你直跑)遇到這種動作 → 停下來、要人類確認,**絕不自己塞 confirm flag 假裝人類同意了**。
- arcrun 會在這時提供保護選項(要求呼叫者帶 key / 權限 / 限流)—— 提醒人類可以用。
## 5. 誠實 —— 最重要的一條
- **不假裝防偽**:人類確認憑證(你技術上能偽造)的價值是「法律歸責 + 留證可審」,不是「不可能繞過」。永遠不要在文件 / 程式裡寫「這不可能被繞過」。
- **不假綠**:沒實作的就回 `success:false` 或明確標 `unimplemented`,不要回假資料假裝成功。缺 credential 打不到 2xx,就誠實標「未驗收:缺 X」,不要 mock 充綠燈。
- **不代替人類做有風險的確認**(建零件、暴露資料)。
- **完成 = 客觀證據**HTTP status + trace / 編譯 exit code),不是你口頭說「做好了」。
---
## 怎麼用這份 mindset
每次你準備在 arcrun 上「動手做一個東西」,先過一遍:
1. 這能用工作流 / recipe 做嗎?(多半能 → 別造零件)
2. 我是不是在讓工作流回頭呼叫 AI?(是 → 改成我自己做)
3. 這個動作會把資料 / 能力開放給別人嗎?(會 → 要人類明示同意)
4. 我有沒有假裝(假綠 / 假防偽 / 代替人類確認)?(有 → 停,誠實標明)
權威判準與來龍去脈見 arcrun 的 `DECISIONS.md`