What: - 新增 templates/monitor-contents.md 與 templates/monitor-page.md。 - README 的「參考與工具」表補上這兩份範本,說明欄寫出兩者相反的寫入語意。 - 三份 manifest 的版本一起提升。 Why: - 監控頁是助理巡檢結果的落點。沒有範本,每次巡檢寫出來的格式都不一樣,累積久了看不出趨勢,也對不起來。 - 兩份範本的寫入語意剛好相反,必須各自寫明白。目錄頁是共用的,一列代表一台機器,整頁覆蓋會刪掉別台機器的紀錄;內容頁只屬於一台機器,記的是歷次巡檢的軌跡,所以附加不覆寫。 How: - 目錄頁範本帶欄位說明與寫入規則:比對主機與帳號兩欄,只更新自己那一列,讀不到舊內容就中止,不硬寫。 - 內容頁範本一次巡檢附加一節,節標題帶時間戳,涵蓋心跳與閘門、使用統計、hook 錯誤、版本落差、階段鎖與工作包鎖、待辦簿到期與逾期六類結果。 - 連續失敗的項目一定要標「已連續失敗 N 次」。待辦簿的項目失敗不會自動暫停,會每輪重試,不標出來就是一個壞掉的項目一直重試而沒人知道。 - 內容以圖表優先,流程用 mermaid、結果用表格,純文字每節最多三句。 Who: 技能助理落地帶出來的頁型別需求,四個存放庫同一批改。
4.7 KiB
助理巡檢 — {主機名}/{登入帳號}
由
jsc-assist維護。這是監控頁MONITOR_{HASH}。 這頁是這台機器的巡檢軌跡:一次巡檢附加一節,節標題帶時間戳,舊的節一個字都不動。 附加是刻意的。助理的寫入是背景行為,覆寫錯了沒人在現場,軌跡被抹掉也看不出斷在哪一輪。 目錄頁MONITOR_CONTENTS只更新自己那一列,寫入語意與這頁不同,不要混用。
flowchart LR
A[巡檢一輪] --> B[收攏六類結果]
B --> C[附加一節,節標題帶時間戳]
C --> D[既有的節原樣保留]
D --> E[回頭更新 MONITOR_CONTENTS 自己那一列]
本頁基本資料
建頁時寫一次,之後不再更動。
| 項目 | 內容 |
|---|---|
| 主機 | {主機名} |
| 帳號 | {登入帳號} |
| 雜湊來源 | {主機名}/{登入帳號} |
| 狀態檔根目錄 | $JSC_HOME/assistant/($JSC_HOME 未設定就退回 ~/.jsc) |
巡檢 {yyyy-MM-dd HH:mm}
一輪巡檢就是這樣一節,最新的一節放在最下面。六個子節固定都寫;某個來源讀不到,就在那個子節寫明是哪個路徑讀不到,不要整節略過。
| 項目 | 內容 |
|---|---|
| 巡檢時間 | {yyyy-MM-dd HH:mm} |
| 觸發方式 | {排程、事件、手動 三選一} |
| 本輪判定 | {正常、警示、異常 三選一} |
| 讀不到的來源 | {路徑清單,全部讀得到就寫「無」} |
心跳與閘門狀態
| 項目 | 內容 |
|---|---|
| 心跳 | {新鮮、過期、不存在 三選一} |
| 上次心跳 | {yyyy-MM-dd HH:mm},距這次巡檢 {n} 秒 |
| cli | {claude、codex、copilot、antigravity、kiro 五選一} |
| session | {工作階段代號} |
| pid | {數字}。只給要找行程的人參考,不參與判定 |
心跳的判準只看 ts 距現在是否不到 300 秒。不看 pid 存活:五支 CLI 與容器裡的行程互相看不到彼此的 pid。閘門的判定留在 hook,助理只維持心跳。
技能與呼叫鏈使用統計
資料出自 $JSC_HOME/usage/skills.jsonl 與 $JSC_HOME/usage/chains.jsonl,由 jsc-log:stats 聚合。
| 對象 | 類別 | 本輪次數 | 累計次數 |
|---|---|---|---|
| {技能名或呼叫鏈} | {技能、呼叫鏈 二選一} | {n} | {n} |
hook 執行期錯誤
資料出自 jsc-hooks 的 tools/scan-hook-errors.sh 與 tools/scan-logs.sh。助理只記錄與發動 jsc-hooks:repair,不自己改 hook。
| 發生時間 | hook | CLI | 結束碼 | 錯誤摘要 | 已寫 ERROR 頁 |
|---|---|---|---|---|---|
| {yyyy-MM-dd HH:mm} | {腳本檔名} | {CLI 代號} | {n} | {一句摘要} | {ERROR_{HASH} 連結或「否」} |
版本落差與重啟閘門
資料出自 version-guard.sh report 與 restart-gate.sh report。
| domain | 本機版本 | 應有版本 | 判定 |
|---|---|---|---|
| {domain} | {版本字串} | {版本字串} | {相符、落後、查不到 三選一} |
| CLI | 重啟閘門 | 升起時間 |
|---|---|---|
| {CLI 代號} | {已升起、未升起 二選一} | {yyyy-MM-dd HH:mm 或「-」} |
SDLC 階段鎖與工作包鎖現況
資料出自 $JSC_HOME/sessions/{sid}.stage 與 $JSC_HOME/wp/*.pr。只讀狀態,不做判定。
| 工作階段 | 階段 | 存取庫 | 登記時間 |
|---|---|---|---|
| {工作階段代號} | {plan、analyze、implement、maintain 四選一} | {owner}/{repo} | {yyyy-MM-dd HH:mm} |
| 存取庫 | 工作包 | PR | 歸屬工作階段 |
|---|---|---|---|
| {owner}/{repo} | {WP-nn} | {PR 連結} | {工作階段代號} |
待辦簿到期與逾期
資料出自 $JSC_HOME/assistant/tasks/ 底下的每一個檔案,一筆一列。
| id | 標題 | 狀態 | 下次執行 | 到期 | 連續失敗 | 標記 |
|---|---|---|---|---|---|---|
| {id} | {title} | {pending、done、paused 三選一} | {next_run} | {due 或「-」} | {fail_count} | {已連續失敗 N 次,或「-」} |
fail_count 大於 0 的列,標記欄一律寫「已連續失敗 N 次」,N 照檔案原值抄。待辦簿的項目失敗不會自動暫停,會每輪重試;沒標出來,一個壞掉的項目會一直重試而沒人知道。
待人處理
助理只提醒,不代為執行。這一節列的是本輪要人接手的項目。
| 項目 | 來源子節 | 建議入口 |
|---|---|---|
| {一句話講完要處理什麼} | {上面六個子節之一} | {技能名或指令} |
寫入規則
- 一次巡檢附加一節,節標題帶時間戳,節名不重複。
- 既有的節原樣保留,一個字都不改。
- 禁止整頁覆寫。覆寫等於把這台機器的巡檢軌跡刪掉。
- 讀不到舊內容就中止,不附加,也不寫入。
- 附加成功之後,才回頭更新
MONITOR_CONTENTS自己那一列。