live-routine-reconciliationlisted
Install: claude install-skill F-e-u-e-r/opus-pack
# starledger:live routine reconciliation
(驗證日 2026-07-29/30——**外部服務行為,易變**:Anthropic routine 平台的 API 形狀與語義以
當日實測為準,再用前先小步重驗。routine 識別資訊來自 starledger 公開文件的 Identity 表。)
## 架構事實(為什麼需要這個程序)
- live routine(trigger `trig_01LGJsFiiqeBtc8rwAstqHVh`,hourly `17 * * * *` UTC,
`persist_session: false` 每輪全新 checkout)執行的是 canonical prompt 的**副本**
(`events[0].data.message.content`)。改了
`docs/routines/starledger-ai-classification.md` 的 fenced block 並合併,**live 行為不變**,
直到 reconcile——該檔案檔頭本身就要求「live routine must match this file」。
- 相對地,`docs/P3.2-executor-runbook.md`、`prompts/classify-agent-v1.md`、
`docs/P3-ai-spec.md` 是 executor **每輪開跑時讀**的,repo 修正下一輪即生效。
- 教訓(2026-07-26 實測):merged 的 runbook 警語**不可靠地**覆蓋未 reconcile 的 live
prompt——runtime 收口必須換 prompt 本體,不能指望執行器自行擇新棄舊。
## 程序(2026-07-26 與 07-29 兩次實測成功)
1. **抽 canonical**(從合併後的 main,機械抽取勿手抄):
`sed -n '/^```text$/,/^```$/p' docs/routines/starledger-ai-classification.md | sed '1d;$d' > canonical.txt`
+`shasum -a 256 canonical.txt`;重抽一次 `cmp` 確認抽取穩定。
2. **更新前記錄**:`RemoteTrigger get` 全文——記下 before `updated_at`、`cron_expression`、
`enabled`、`events[0].data.uuid` 與整份 `session_context`。
(`RemoteTrigger` 是 **owner 平台側**的 routine 管理能力,不是 starledger repo 的工具、
repo 內零蹤跡;若你的會話沒有等效的 routine 管理工具,**就此停下向 owner 要**——不要找
替代通道。)
3. **更新**:`RemoteTrigger update` **只送 `job_config`**——payload 形狀=把你在步驟 2 記錄
的整個 `job_config` 物件原樣鏡射(`ccr.environment_id`、`ccr.events[0].data.*` 含
`uuid`/`session_id`/`type`/`parent_tool_use_id`、`cc