PickSkill
← Back

cron-daily-report

生成昨日 OpenClaw cron 執行日總結(成功/失敗次數、主要錯誤類型),並發送摘要到 Telegram 群組。

SKILL.md
Rendered from GitHub raw
View raw ↗

name: cron-daily-report version: 0.1.0 description: 生成昨日 OpenClaw cron 執行日總結(成功/失敗次數、主要錯誤類型),並發送摘要到 Telegram 群組。 user-invocable: true

Cron Daily Report(昨日日總結)

目標

  • 讀取「所有 OpenClaw cron jobs」與「昨日(Asia/Hong_Kong 00:00-23:59)」的 runs。
  • 統計每個 job:成功/失敗次數。
  • 額外分類失敗原因(特別係:
    • 429 overload
    • gateway timeout
    • path /workspace 不存在
    • read-only file system
    • tool validation failed
    • Telegram send failed / chat not found(屬於通知層,唔一定係工作本體失敗) )。
  • 產出一份精簡報告,寫入:{baseDir}/../../reports/YYYY-MM-DD.md(YYYY-MM-DD = 昨日日期)。
  • 另外用 message tool 將「摘要」發到 Telegram 群組:-5162606720

可用工具

  • 使用 cron 工具:
    • cron.status()(可選)
    • cron.list(includeDisabled:true)
    • cron.runs(jobId)
  • 使用 write/edit:寫 report 檔
  • 使用 message.send:發送摘要到群組(只發摘要,唔好貼長 log;目標必須係數字 chat id)

操作步驟(建議)

  1. cron.list(includeDisabled:true) 取得 job 清單。
  2. 對每個 job 呼叫 cron.runs(jobId),取足夠多 entries(例如最近 200 次),然後用時間範圍過濾到「昨日 00:00-23:59」(Asia/Hong_Kong)。
  3. 逐 job 統計:
    • runs_total、success、error
    • error 類型 top(可從 error / summary 字段做 keyword 分類)
  4. 匯總全局:總 runs、成功、失敗、成功率。
  5. 寫入 report 檔(Markdown)。
  6. 組裝 10~20 行摘要並發到 Telegram 群組 -5162606720

Telegram 發送規則(必讀)

  • 只可以用 message.send
  • channeltelegram
  • to 必須係字面值 -5162606720(唔好用 "cron-watch"、唔好用群組名、唔好用 @username)。
  • message.send 失敗:
    • 仍然要把報告檔寫入成功;
    • 在 report 內加一段「通知層失敗」說明(含錯誤字串,但唔好貼 token)。

檔案層日誌(必做,用於追查)

除咗寫 reports/YYYY-MM-DD.md,你必須同時寫一份「執行日誌」到:

  • logs/daily-report-YYYY-MM-DD.log(YYYY-MM-DD = 昨日日期)

日誌內容最少包含:

  • 開始/結束時間(含時區 Asia/Hong_Kong)
  • cron.status / cron.list / 每個 cron.runs(jobId) 是否成功
  • 若工具調用失敗(例如 gateway timeout),必須原樣記錄錯誤字串
  • 成功寫 report 檔、以及 message.send 成功/失敗結果

注意:

  • 日誌只寫到檔案,唔好整段貼去 Telegram。
  • 唔好寫入任何 secrets/token。

報告格式(Markdown 建議)

  • 標題:# Cron 日總結:YYYY-MM-DD(昨日)
  • 資料完整性聲明(必備)
    • cron.list 是否成功取得 job 清單
    • cron.runs 是否能取得足夠 runs(若 runs 記錄量太少,必須明確寫明「昨日可能未被覆蓋」,避免把「0 runs」誤判成故障)
  • 昨日新增 Cron Jobs(必備)
    • createdAtMs 落在昨日(Asia/Hong_Kong 00:00-23:59)為準
    • 列出:name、jobId、schedule、sessionTarget、enabled
  • 總覽:總 runs / 成功 / 失敗 / 成功率
  • 失敗原因 Top(分「通知層」同「工作本體層」)
  • Job 列表(只列:昨日有 run 的 job;失敗 job 放前面)
    • job name (id)
    • success x / fail y
    • 最近一次失敗時間 + 一行錯誤摘要(最多 1-2 條 sample)

注意

  • 全程使用繁體中文。
  • 唔好輸出任何敏感 token。
  • 唔好嘗試自動修復 cron;只提出建議。