身為在上課沒空看的人,我要逾期和掛著沒人接的事會主動叫我,我才不會下課才發現躺了三天 #93

Closed
opened 2026-08-27 14:37:16 +00:00 by claude-code · 2 comments
Member

問題

有些事情沒有人會叫:一張票掛著等 leo 三天了、一個 milestone 逾期了、一個 subagent 交回來的棒子躺著沒人接。

現在能抓到這些的只有 hook,而 hook 只在 CC 醒著的時候才會響。CC 沒在跑的那段時間(leo 在上課、session 已經結束),這些事情就只是靜靜地過期。

實查現在就有五個 milestone 逾期(08-24 三個、08-26 兩個,今天 08-27),沒有任何東西為此叫過一聲

目標

有一支自己會查、查完會講話的東西:撈出「逾期的 milestone / 交回來沒人接的票 / 掛著等 leo 很久的票」,發 Telegram 給 leo,並且在票上留言。

第一版做成手動可跑的腳本 + 開 session 時順手跑一次,不依賴 Gitea 的自動通知機制。

驗收條件

  1. 手動跑一次 → 要撈得出今天那五個逾期的 milestone,而且訊息是白話的(leo 一眼看懂、回一個詞就能處理)
  2. 沒東西可報時 → 要說「查過了,沒有」,不能默默結束
  3. 開一個新 session → 要自己跑過一次,不用有人記得下指令
  4. Telegram 真的收得到(不是「送出成功」,是 leo 手機上真的出現)

deliverable 類型

code(→ PR)


細節

這條在 SOP 裡的位置:§4 時間執法三層的強制層(SOP 原文設計成「外部 cron 每 15–30 分鐘輪詢 + Human 標籤事件 webhook → n8n → Telegram」)。

🔴 本票刻意只做腳本版,不做 SOP 原本設計的那個版本,理由兩個:

① 機器裝不了那個通知設定(總管 2026-08-27 親自撞過,這是拒絕原文):

GET /orgs/inkstone/hooks                  → 403 Must be an organization owner
GET /repos/inkstone/ISEP/hooks            → 403 user should be an owner or a collaborator with admin write
GET /repos/inkstone/ISEP/actions/runners  → 403 user should be the owner of the repo

機器帳號 claude-codebots 團隊,沒有這個權限。要走那條路得 leo 去開權限或親手裝。

② 就算能裝,第一版也不該裝:v0.6.0 §8.2 已經定過同一件事——
「所有 job 第一版都不依賴 Gitea Actions runner⋯⋯壞掉的形式是『以為有人在跑』,
比『沒人跑』貴得多。」本票沿用這個判斷,不重新討論。

腳本版的已知限制要誠實寫在交付裡:它只在 CC 醒著時會叫,補不到「CC 整個沒在跑」那一段。
那一段要等 leo 決定要不要開權限。但腳本版本身是完整可用的,不是半成品。

紅線:不准做成 Gitea Actions/webhook fan-out(CLAUDE.md 避免再被 flag 的硬規則;
issue-handle skill 明寫「有事才讀,禁止自動輪詢」,換成 Gitea 也不放寬)。
本票做的是「開 session 時查一次」+「人要看的時候手動查」,不是常駐輪詢。

已經有的、不要重造:Telegram 通道已存在(notify_leo,通道見 system-dev/wiki/agent-memory.md,署名 [總管])。本票只是多一個呼叫它的理由,不要另建通道。

白話鐵律CLAUDE.md 規則五,leo 2026-07-14):推給 leo 的文字一律白話——
標題一眼懂、代號必附一句人話、每行講「這對你意味什麼」而非系統內部狀態;
等 leo 的事要標等了幾天、每天重複催。對 leo 重複=服務,不催=這件事不會發生。

與既有票的分工InkStoneCo#52「催辦要變成會自己發生的動作」是同一條線的母題,要互相連結。
ISEP#83 管的是「每天把舊票撈出來給人領」(供給面),本票管的是「該動沒動的事要主動叫」(催辦面)。


🔎 為什麼另開一張票而不是貼進既有的(開票時聲明):InkStoneCo#52 是母題(催辦要變成會自己發生),本票是它在 ISEP 這一層的執行票,且刻意限定成腳本版(不做 webhook,因為機器沒權限裝且 v0.6.0 §8.2 已定過第一版不依賴 runner)。#83 是供給面(把舊票撈出來給人領),本票是催辦面。
當時搜尋:催辦 逾期 通知 Telegram 鬧鐘 → 命中 44 張。

## 問題 有些事情**沒有人會叫**:一張票掛著等 leo 三天了、一個 milestone 逾期了、一個 subagent 交回來的棒子躺著沒人接。 現在能抓到這些的只有 hook,而 **hook 只在 CC 醒著的時候才會響**。CC 沒在跑的那段時間(leo 在上課、session 已經結束),這些事情就只是靜靜地過期。 實查現在就有五個 milestone 逾期(08-24 三個、08-26 兩個,今天 08-27),**沒有任何東西為此叫過一聲**。 ## 目標 有一支自己會查、查完會講話的東西:撈出「逾期的 milestone / 交回來沒人接的票 / 掛著等 leo 很久的票」,發 Telegram 給 leo,並且在票上留言。 **第一版做成手動可跑的腳本 + 開 session 時順手跑一次**,不依賴 Gitea 的自動通知機制。 ## 驗收條件 1. 手動跑一次 → **要撈得出今天那五個逾期的 milestone**,而且訊息是白話的(leo 一眼看懂、回一個詞就能處理) 2. 沒東西可報時 → **要說「查過了,沒有」**,不能默默結束 3. 開一個新 session → **要自己跑過一次**,不用有人記得下指令 4. Telegram 真的收得到(不是「送出成功」,是 leo 手機上真的出現) ## deliverable 類型 code(→ PR) --- <details><summary>細節</summary> **這條在 SOP 裡的位置**:§4 時間執法三層的**強制層**(SOP 原文設計成「外部 cron 每 15–30 分鐘輪詢 + `Human` 標籤事件 webhook → n8n → Telegram」)。 🔴 **本票刻意只做腳本版,不做 SOP 原本設計的那個版本**,理由兩個: **① 機器裝不了那個通知設定**(總管 2026-08-27 親自撞過,這是拒絕原文): ``` GET /orgs/inkstone/hooks → 403 Must be an organization owner GET /repos/inkstone/ISEP/hooks → 403 user should be an owner or a collaborator with admin write GET /repos/inkstone/ISEP/actions/runners → 403 user should be the owner of the repo ``` 機器帳號 `claude-code` 在 `bots` 團隊,沒有這個權限。**要走那條路得 leo 去開權限或親手裝。** **② 就算能裝,第一版也不該裝**:v0.6.0 §8.2 已經定過同一件事—— 「所有 job 第一版都不依賴 Gitea Actions runner⋯⋯壞掉的形式是『以為有人在跑』, 比『沒人跑』貴得多。」本票沿用這個判斷,不重新討論。 ⇒ **腳本版的已知限制要誠實寫在交付裡**:它只在 CC 醒著時會叫,補不到「CC 整個沒在跑」那一段。 那一段要等 leo 決定要不要開權限。**但腳本版本身是完整可用的,不是半成品。** **紅線**:不准做成 Gitea Actions/webhook fan-out(`CLAUDE.md` 避免再被 flag 的硬規則; `issue-handle` skill 明寫「有事才讀,禁止自動輪詢」,換成 Gitea 也不放寬)。 **本票做的是「開 session 時查一次」+「人要看的時候手動查」,不是常駐輪詢。** **已經有的、不要重造**:Telegram 通道已存在(`notify_leo`,通道見 `system-dev/wiki/agent-memory.md`,署名 `[總管]`)。本票只是多一個呼叫它的理由,不要另建通道。 **白話鐵律**(`CLAUDE.md` 規則五,leo 2026-07-14):推給 leo 的文字一律白話—— 標題一眼懂、代號必附一句人話、每行講「這對你意味什麼」而非系統內部狀態; 等 leo 的事要標**等了幾天**、每天重複催。**對 leo 重複=服務,不催=這件事不會發生。** **與既有票的分工**:`InkStoneCo#52`「催辦要變成會自己發生的動作」是同一條線的母題,要互相連結。 `ISEP#83` 管的是「每天把舊票撈出來給人領」(供給面),本票管的是「該動沒動的事要主動叫」(催辦面)。 </details> --- > 🔎 **為什麼另開一張票而不是貼進既有的**(開票時聲明):InkStoneCo#52 是母題(催辦要變成會自己發生),本票是它在 ISEP 這一層的執行票,且刻意限定成腳本版(不做 webhook,因為機器沒權限裝且 v0.6.0 §8.2 已定過第一版不依賴 runner)。#83 是供給面(把舊票撈出來給人領),本票是催辦面。 > 當時搜尋:`催辦 逾期 通知 Telegram 鬧鐘` → 命中 44 張。
claude-code added this to the SOP 變成閘 milestone 2026-08-27 14:37:33 +00:00
claude-code added the
p
high
s
todo
type
governance
labels 2026-08-27 14:37:34 +00:00
Author
Member

【身份】總管/inkstone/ISEP/-

🔴 這則本來要用 Telegram 發給 leo,但這個 session 發不出去——所以貼在這裡。

🟢 這個 session 的通知閘:pass
ISEP 版本:v0.11.0
問的是哪一份:/home/user/inkstoneco/ISEP-8993/hooks/prod-write-guard.sh
來源可信度:high(SessionStart 當時記下來的那一份)
理由:閘看過這一則通知,放行


[總管] 🔔 有 33 件沒人叫的事:
5 個 milestone 逾期,最久的是「App 打開來就是 Arcrun,而且…」(Arcrun,逾期 3 天,3 張票沒關)
🙋 8 張票在等你,最久的 inkstone/Arcrun#138 等了 11 天:App 沒辦法說「我要接哪些外部事件」——通道早就…
🧤 20 張標著「有人在做」卻沒人動,最久 16 天:inkstone/arcrun-rag#38
回「看」我就把完整清單貼出來。

【身份】總管/inkstone/ISEP/- 🔴 **這則本來要用 Telegram 發給 leo,但這個 session 發不出去**——所以貼在這裡。 🟢 這個 session 的通知閘:**pass** ISEP 版本:v0.11.0 問的是哪一份:/home/user/inkstoneco/ISEP-8993/hooks/prod-write-guard.sh 來源可信度:high(SessionStart 當時記下來的那一份) 理由:閘看過這一則通知,放行 --- [總管] 🔔 有 33 件沒人叫的事: ⏰ 5 個 milestone 逾期,最久的是「App 打開來就是 Arcrun,而且…」(Arcrun,逾期 3 天,3 張票沒關) 🙋 8 張票在等你,最久的 inkstone/Arcrun#138 等了 11 天:App 沒辦法說「我要接哪些外部事件」——通道早就… 🧤 20 張標著「有人在做」卻沒人動,最久 16 天:inkstone/arcrun-rag#38 回「看」我就把完整清單貼出來。
Author
Member

【身份】總管/inkstone/ISEP/-

🔴 這則本來要用 Telegram 發給 leo,但這個 session 發不出去——所以貼在這裡。

🟢 這個 session 的通知閘:pass
ISEP 版本:v0.11.0
問的是哪一份:/home/user/inkstoneco/ISEP-8993/hooks/prod-write-guard.sh
來源可信度:low(本腳本自己所在的那一份(不一定是 session 註冊的))
理由:閘看過這一則通知,放行


[總管] 🔔 ISEP#93 催辦員通道測試——收到這則就代表 Telegram 這條路是通的。

【身份】總管/inkstone/ISEP/- 🔴 **這則本來要用 Telegram 發給 leo,但這個 session 發不出去**——所以貼在這裡。 🟢 這個 session 的通知閘:**pass** ISEP 版本:v0.11.0 問的是哪一份:/home/user/inkstoneco/ISEP-8993/hooks/prod-write-guard.sh 來源可信度:low(本腳本自己所在的那一份(不一定是 session 註冊的)) 理由:閘看過這一則通知,放行 --- [總管] 🔔 ISEP#93 催辦員通道測試——收到這則就代表 Telegram 這條路是通的。
Leo was assigned by claude-code 2026-08-28 01:10:35 +00:00
claude-code added the Human label 2026-08-28 01:10:36 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: inkstone/ISEP#93