--- ## 9. 資源去哪取(不要自己重造 Arcrun 已有的) | 你想知道 | 跑這個 | |---|---| | 有哪些零件可用 | `acr parts` | | 某零件的設定範本 | `acr parts scaffold ` | | 有哪些 recipe | `acr recipe list`/`acr recipe search <關鍵字>` | | 支援哪些服務的認證 | `acr auth-recipe list` | | 某服務認證要哪些 credential + 範例 | `acr auth-recipe scaffold ` | | **一次掃全部**(零件/recipe/auth-recipe/workflow) | `acr search <關鍵字>` | | 已部署的 workflow | `acr list` | | 某次執行為什麼失敗 | `acr logs ` | | 工作流語法、指令 | `acr --help` | **先查再動手**——Arcrun 多半已經有你要的零件/recipe/認證,不要自刻。 ## 10. 做出來以後:驗證 → 部署 ```bash acr validate .yaml # 先驗,別直接部署 acr push .yaml # 部署(暴露動作,見 §12) acr run # 觸發一次,看實際結果 acr logs # 看執行紀錄/失敗原因 ``` 需要 credential(API key/token)時:`acr auth-recipe scaffold ` 看要哪些, 明確告訴使用者去哪取得、怎麼 `acr creds push`。 🔑 **金鑰只拿名字**:workflow/recipe 裡只寫 `{{credential.<名字>}}`, **真身絕不寫進定義檔**(執行前才由系統回填)。 ## 11. Arcrun 是你(AI)用的工具,不是工具回頭呼叫 AI 需要智慧判斷/自然語言轉換時,**你自己做**,再呼叫工作流執行確定性的下一步。 **不要在工作流中間放零件回頭呼叫 LLM**——Arcrun 的大腦就是操盤的你。 (唯一例外:`ask_llm` 這種「內容生成本身就是流程的一步」,見範本 B。) ## 12. 把東西開放給別人用 = 要使用者明示同意 `acr push`(部署 workflow)與 `acr recipe push`(投稿 recipe)會讓資料/能力**可被外部呼叫**: - 停下來,明確告訴使用者「這會讓 X 可被外部呼叫」,要他同意。**不替他決定公開。** - 非互動環境(你直跑)遇到 → 停,把完整指令印給使用者自己貼上跑,絕不自己塞 confirm 假裝同意。 - Arcrun 可提供保護(要求呼叫者帶 key/限流)——提醒使用者。 ## 13. Arcrun 不替你做授權判斷 API 打不打得通由發 key 的服務決定。401/403 是對方服務在行使授權,**不是 Arcrun 的 bug、不是你做錯**。 不要在 Arcrun 裡建「允許/禁止某 endpoint」的二次授權清單。 ## 14. 誠實(最重要) - **不假綠**:沒打通就誠實說。缺 credential 打不到 2xx → 標「未驗收:缺 X」,不 mock 充綠燈。 - **不假裝防偽/不代替人類確認**有風險的動作(暴露資料)。 - **完成 = 客觀證據**(HTTP 2xx + trace),不是口頭「做好了」。 --- ## 動手前的自檢清單 1. 我把意圖寫成 `>>` 串了嗎?(還是直接跳去寫 YAML/寫程式) 2. 我查過 `acr search` / `acr parts` / `acr recipe list` 了嗎? 3. 查詢回 `not_found` 時,我走的是 recipe/零件 PR 兩條路,**還是偷偷改寫成 `code`**?(後者=腹語術) 4. 我是不是讓工作流回頭呼叫 AI 做判斷?(是 → 改成我自己做) 5. 這動作會把資料開放給別人嗎?(會 → 要使用者明示同意) 6. 我有沒有假裝(假綠/假防偽/代替人類確認)?(有 → 停,誠實標明)