# 用 Arcrun 完成這個自動化需求 使用者想做一個自動化。你的任務:用 Arcrun 做出來,全程不要讓使用者自己寫程式。 ⚠️ **不要上網搜 Arcrun 文件**(網路上沒有)。先讀 **arcrun-mindset** Skill,再用 `acr` 指令查現況。 ## 鐵則 - **用 Arcrun 工作流/recipe,絕不自己寫 Python/Node 腳本。** 使用者選 Arcrun 就是不想要一次性腳本。 - **打外部 API → 寫 recipe**(`acr recipe push`),不自刻 HTTP client。缺 recipe 就自己補一個,不必問人。 - **不自製零件(WASM)**——零件由 Arcrun 維護。你能用的是現有零件 + recipe + 工作流。 - **需要 AI 判斷時你自己做**,不要讓工作流回頭呼叫 LLM。 - 🔴 **查不到零件就改寫成 `code` 節點 = 腹語術**,禁止。缺 API 寫 recipe、缺能力投稿零件。 ## 步驟 ### 1. 先寫「意圖」,不要先寫 YAML 把使用者的需求寫成一串「誰接誰」(**不必是真實零件名**,用你想得到的名字即可): ``` input >> ON_SUCCESS >> fetch_rows fetch_rows >> 對每個 row >> notify ``` - 第一個節點固定是 `input` - 邊有 `ON_SUCCESS`、`對每個 <變數>`(FOREACH)、`ON_TRUE`/`ON_FALSE`(配 `if_control`)、`ON_BRANCH`+`branch:`(配 `switch`/`try_catch`);**沒有** `ON_FAILURE` - 需要判斷 → 用條件邊(`if_control` 配 `ON_TRUE`/`ON_FALSE`),不要寫 code 判斷 語法細節、四份實跑過的範本、節點命名慣例 → **arcrun-mindset** Skill。 ### 2. 丟去查,讓系統告訴你有什麼 `acr search <關鍵字>` 一次掃零件/recipe/auth-recipe/workflow; 或把意圖串丟 `/cypher/search`,逐節點拿 `found` / `resolved` / `not_found` / `unknown`。 - `found`/`resolved` → **只填 payload** - `not_found` → 照回應的 `suggestion` 走(缺 API 寫 recipe、缺計算能力投稿零件), 並看 `similar_components`/`similar_recipes` 有沒有現成能用的 - `unknown` → **不代表不存在**,別據此改寫成 code ### 3. 把意圖變成 workflow YAML 節點填上查到的真實零件/recipe + payload。 需要 credential 時:`acr auth-recipe scaffold ` 看要哪些,明確告訴使用者去哪取得、怎麼 `acr creds push`。 🔑 定義裡只寫 `{{credential.<名字>}}`,**真身絕不寫進檔案**。 ### 4. 驗證 → 部署 → 給證據 ```bash acr validate .yaml # 先驗 acr push .yaml # 部署(暴露動作,見下) acr run # 觸發一次 acr logs # 看執行紀錄 ``` 完成要給客觀證據(HTTP 2xx/trace),不要只說「做好了」。 ## 遇到要暴露資料(對外 webhook/recipe 投稿) 停下來,明確告訴使用者「這會讓 X 可被外部呼叫」,要他同意。不要替他決定公開。 非互動環境下把完整指令印給使用者自己貼上跑。 ## 還沒設定好 Arcrun? 若 `acr` 指令不存在或還沒 `acr init`:先帶使用者完成前置設定 (裝 CLI → 拿 Cloudflare 帳號的兩串憑證 → `acr init --self-hosted`)。 拿 Cloudflare 憑證時用白話照抄式引導,不要對使用者講 KV / Worker / R2 等術語。 ## 使用者的需求 (使用者打在 /arcrun 後面的文字會接在這裡)