收尾寫一筆 skill-end 事件,執行狀態才回報得到助理 #12

Merged
admin merged 2 commits from feat/status-report into develop 2026-09-02 08:04:03 +00:00
Member

摘要

  • 需求描述:所有 skill 與 hook 的執行狀態都要回報給助理。本 PR 是本域的收尾回報。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
tools/patrol.sh 新增巡檢項目:排空、輪替、彙整、跨輪配對
tools/schedule.sh 權限白名單放行回報腳本的三種呼叫形式
skills/assistant/SKILL.md 事件流列為第五個資料來源,巡檢步驟與結束碼表補齊
templates/monitor-page.md 新增執行狀態事件一節
templates/monitor-contents.md 說明為什麼不加欄
references/behaviors.md、README.md 隨變更對齊
三份 manifest 隨變更升版

設計重點

  • start 由技能用量 hook 順手發,不必改技能文件。end 只能由技能自己寫:hook 接在技能工具呼叫上,而技能的實際工作發生在之後的模型輪次,它在原理上看不到成敗。
  • 有 start 沒有配對的 end,就是那一輪中止了。這正是現行紀錄分不出來的那一種。
  • 回報一律先寫本機事件流,不直接寫 wiki。hook 每次提示都跑,網路寫入會拖垮宿主 CLI;失敗的 hook 自我回報還會疊出迴圈。助理巡檢時排空、彙整、寫監控頁。
  • 找不到回報腳本就安靜跳過,腳本自己的寫入失敗也被吞掉。回報機制壞掉,不可以讓被回報的東西跟著壞。
  • status 五選一,每支技能各自寫明什麼情況選哪一個。不是每支都只有 ok 與 failed——擋下、部分達成、根本沒東西可做,三者的處置完全不同。

測試結果

  • check-behaviors.sh、check-link-format.sh、ste100-lint.sh 全部結束碼 0。其中 check-behaviors.sh 帶著本輪新增的第 7 項斷言(「可驗證跡象」必須寫到 skill-end 或 events.jsonl)。
  • sh -n tools/patrol.sh、sh -n tools/schedule.sh 通過,lint-scripts.sh 結束碼 0。
  • 整合實測:暫時的 JSC_HOME 造 7 筆事件(含兩筆未配對的 start),第一輪挑出 3 筆非 ok;補一筆跨輪的 end 之後第二輪只剩真正未配對的那 1 筆。另驗 drain 回 3 的空輪次與腳本不存在的降級,兩者都不中止巡檢。
  • 排空是消耗性讀取,所以整段放在 patrol.sh,不讓模型讀進對話再處理。
  • 配對鍵是 session 加 name:只用名稱的話,五支 CLI 併發時一個工作階段的 end 會消掉另一個的 start。
  • 配對跨輪保留:沒有跨輪的話,任何跑得比一輪巡檢久的技能都會每輪被報成中止,包含巡檢自己。

前置 Push Request

  • 依賴 plugins/hooks 的事件流實作。該 PR 未合併前,本域的收尾步驟找不到腳本會安靜跳過,技能行為不受影響。
## 摘要 - 需求描述:所有 skill 與 hook 的執行狀態都要回報給助理。本 PR 是本域的收尾回報。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `tools/patrol.sh` | 新增巡檢項目:排空、輪替、彙整、跨輪配對 | | `tools/schedule.sh` | 權限白名單放行回報腳本的三種呼叫形式 | | `skills/assistant/SKILL.md` | 事件流列為第五個資料來源,巡檢步驟與結束碼表補齊 | | `templates/monitor-page.md` | 新增執行狀態事件一節 | | `templates/monitor-contents.md` | 說明為什麼不加欄 | | `references/behaviors.md`、`README.md` | 隨變更對齊 | | 三份 manifest | 隨變更升版 | ## 設計重點 - `start` 由技能用量 hook 順手發,不必改技能文件。`end` 只能由技能自己寫:hook 接在技能工具呼叫上,而技能的實際工作發生在之後的模型輪次,它在原理上看不到成敗。 - 有 `start` 沒有配對的 `end`,就是那一輪中止了。這正是現行紀錄分不出來的那一種。 - 回報一律先寫本機事件流,不直接寫 wiki。hook 每次提示都跑,網路寫入會拖垮宿主 CLI;失敗的 hook 自我回報還會疊出迴圈。助理巡檢時排空、彙整、寫監控頁。 - 找不到回報腳本就安靜跳過,腳本自己的寫入失敗也被吞掉。回報機制壞掉,不可以讓被回報的東西跟著壞。 - `status` 五選一,每支技能各自寫明什麼情況選哪一個。不是每支都只有 `ok` 與 `failed`——擋下、部分達成、根本沒東西可做,三者的處置完全不同。 ## 測試結果 - `check-behaviors.sh`、`check-link-format.sh`、`ste100-lint.sh` 全部結束碼 0。其中 `check-behaviors.sh` 帶著本輪新增的第 7 項斷言(「可驗證跡象」必須寫到 `skill-end` 或 `events.jsonl`)。 - `sh -n tools/patrol.sh`、`sh -n tools/schedule.sh` 通過,`lint-scripts.sh` 結束碼 0。 - 整合實測:暫時的 `JSC_HOME` 造 7 筆事件(含兩筆未配對的 start),第一輪挑出 3 筆非 ok;補一筆跨輪的 end 之後第二輪只剩真正未配對的那 1 筆。另驗 `drain` 回 3 的空輪次與腳本不存在的降級,兩者都不中止巡檢。 - 排空是**消耗性讀取**,所以整段放在 `patrol.sh`,不讓模型讀進對話再處理。 - 配對鍵是 `session` 加 `name`:只用名稱的話,五支 CLI 併發時一個工作階段的 end 會消掉另一個的 start。 - 配對**跨輪保留**:沒有跨輪的話,任何跑得比一輪巡檢久的技能都會每輪被報成中止,包含巡檢自己。 ## 前置 Push Request - 依賴 `plugins/hooks` 的事件流實作。該 PR 未合併前,本域的收尾步驟找不到腳本會安靜跳過,技能行為不受影響。
jiantw83 added 2 commits 2026-09-02 08:02:24 +00:00
現行紀錄只記「被叫用」,沒有成敗也沒有結束碼。跑完整輪的技能與開場就
中止的技能,在紀錄裡長得一模一樣。

start 由技能用量 hook 順手發,不必改技能文件。end 只能由技能自己在收尾
步驟寫——hook 接在技能工具呼叫上,而實際工作發生在之後的模型輪次,它在
原理上看不到成敗。有 start 沒有配對的 end,就是那一輪中止了。

status 五選一,每支技能各自寫明什麼情況選哪一個。找不到回報腳本就安靜
跳過,回報失敗一律不改變技能自己的結論。
admin merged commit 6fd987fc0e into develop 2026-09-02 08:04:03 +00:00
admin deleted branch feat/status-report 2026-09-02 08:04:03 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/assist#12