# 卡在人類閘前的產物(`Arcrun#89` / `#90` / `#91`) > **為什麼這個資料夾存在**:這三樣東西都做完並實測過了,但落地的最後一步是 > **終端機裡等人親手打字的互動閘**,AI 打不進去。 > 2026-08-11 它們原本只存在於某個 session 的暫存目錄——**那種目錄一關就沒了**。 > 先搶進版控,等人有空時再落地。 --- ## 一、兩份 recipe(`#89`/`#90`) `recipes/gitea_put_file.yaml` — 把檔案寫回 Gitea repo。**出貨線有 7 站等它。** `recipes/cf_worker_deploy_simple.yaml` — 部署單檔 Worker(classic 格式)。 **落地指令**(一份跑一次): ``` acr recipe push pending-human-gate/recipes/gitea_put_file.yaml ``` 跑的時候會停下來要你**親手輸入資源名確認**——那是「把資源變成可被外部呼叫」的暴露同意閘, 不是卡住,是設計如此。 ⚠️ **`cf_worker_deploy_simple.yaml` 先別急著推**:`#90` 查出一件結構性的事—— recipe 引擎的 body 一律 JSON,而 Cloudflare 上傳 Worker 的 API 要的是原始 JS 或 multipart。 ⇒ **classic 版只適用於沒有 bindings 的簡單情形**。而實查安裝器那站有 9 把 KV + 一顆 D1, **classic 版幫不上它**。詳見 `Leo/Arcrun#90`。 ### 金鑰(D36) 兩份 recipe 都只寫名字(`gitea_token`/`cf_api_token`),真身由 credential 中心在執行前回填。 對應的 auth-recipe **已經註冊在 leo21c 上**,可以直接查證: ``` curl -s https://arcrun-cypher-executor.leo21c.workers.dev/auth-recipes/gitea ``` --- ## 二、`hash` 零件(`#91`) `hash-component/` — sha256/sha1/md5,hex/base64。出貨線的版本號機制與成品指紋核對都要它。 **已實測**(tinygo 編出來、wasmtime 真跑,三種演算法都跟系統原生指令**逐位元一致**)。 `.wasm` 是 1.3 MB 編譯產物,**沒有進版控**——要驗自己重編: ``` cd pending-human-gate/hash-component && tinygo build -target=wasi -o /tmp/hash.wasm main.go echo '{"algorithm":"sha256","input":"hello"}' | wasmtime /tmp/hash.wasm printf 'hello' | shasum -a 256 # 兩者應該一致 ``` **落地要走零件投稿流程**(D27/D28):`docs/component-pr-review-standard.md` 的 checklist + 人在終端機互動跑 `scripts/component-arm.sh`。 🔴 `registry/components/` 底下有機械閘(`component-guard.sh`)擋著 AI 直接寫入——**那是刻意的**, 所以這份放在 `pending-human-gate/`,不是放在它最終該去的位置。 --- ## 落地之後 三樣都上去之後,`Arcrun#89`/`#91` 才能從 **◐ 半通** 變 **✅**—— 而判準是**貼一次真實的執行輸出**(recipe 對某個測試檔案回 2xx、零件在真端點上跑出正確雜湊), 不是「推上去了」。