Files
ISEP/docs/governance/worker-roster.md
T
Leo d2f706a16c 新 repo 的工人不再靠人記得:課程工人 course-hand+開場點名「有票卻沒工人」(inkstone/ISEP#118)
- agents/course-hand.md:管 inkstone/ax-courses、course_gen、llm-wiki-template(c7358 leo「你可以製作一個」)
  假設:llm-wiki-template 也歸課程工人(同為課程素材),總管不同意就把它拆出去
- hooks/lib/roster.py:`負責 repo` 可列多個(、或逗號),新增 which()/uncovered();find() 與閘本身未動
- scripts/roster which 改走 roster.which
- scripts/isep-nag 第④類:org 裡有開著的票、名單上卻沒人負責的 repo,只進開場長版、不進 Telegram
- 測試:roster-guard 25→31、overdue-nag 36→43;兩種突變(拿掉票數條件/只認第一個 repo)都會紅
- 文件:worker-roster.md 回答「新 repo 的工人誰在什麼時候加」;README/plugin.json 工人 8、scripts 65(樹上實數)

待總管定版(改了 agents/scripts,要升版才裝得上)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:13:12 +08:00

3.3 KiB
Raw Blame History

agents/ — 工人名單(inkstone/ISEP#86

leo 派工時派給的不能是「一個 agent」,要派給有名字的人。 「票上看不出來這件事是誰做的」是這張票的來由。

一個檔案 一個工人。 每個檔案只回答四件事:

問題 為什麼一定要有
**負責 repo** 它管哪個(或哪幾個)repo 派工時挑人的唯一判準;也是【身份】欄第二格。同一件事的幾個 repo 用「、」隔開(例:course-hand
## 開工前先讀 它要先讀什麼 這是每個工人各自不同的部分——共通規定補不了
## 紅線 它不准做什麼 全機共通的紅線在共通規定裡;這裡只寫這個 repo 特有的
frontmatter description 一句話它是誰 scripts/roster list 印的就是這一行

為什麼是這個形狀,不是自己造一套

agents/ 是 Claude Code plugin 原生的 subagent 目錄,檔名(frontmatter 的 name 就是 Task 工具的 subagent_type。⇒ 「指名派給誰」不必發明新欄位、不必改派工單格式 (派工單仍然只有 【工單】 一行,dispatch-format-guard.sh 的行為一個字都沒變)。

怎麼用

python3 scripts/roster list            # 名單:有哪幾個工人、各自管什麼
python3 scripts/roster show isep-hand  # 一個工人的全文(它開工前會讀到的東西)
python3 scripts/roster names           # 只印名字,給腳本用

派工時把名字放進 Tasksubagent_type;名字不在名單上, hooks/roster-guard.sh 會擋下來並說「沒有這個人」,同時把名單印出來。

加一個工人

在這個目錄新增一個 .md(照既有檔案的四段),然後:

python3 scripts/roster list                       # 新的名字要出現
bash hooks/tests/roster-guard.test.sh             # 全綠

不必改任何 hook——名單是資料,閘讀的是這個目錄。

新開一個 repo 之後,工人是誰在什麼時候加的(inkstone/ISEP#118

以前的答案是「靠人記得」,所以一定會忘。 實查 2026-09-14org 裡 20 個 repo 名單只蓋到 6 個;llm-wiki-template09-01 建)與 ax-courses09-07 建) 都是第一次派工撞上 roster-guard.sh 才發現沒人,而那一刻最省事的出路是 開 /tmp/.roster-ok-* 例外閘繞過去——繞過去之後,下一次還是會撞。

現在的答案

  • 什麼時候:建 repo 之後,開第一張票後的下一個 session 開場
  • 誰叫scripts/isep-nag(掛在 overdue-nag-guard.sh 上,開場跑一次)的第 ④ 類 「有票卻沒有工人的 repo」——拿 org 的 repo 清單比對本目錄的 負責 repo
  • 誰加:總管。在這個目錄加一個工人檔,或把 repo 寫進既有工人的 負責 repo

判準只有兩個事實:名單上沒有人負責它、它有開著的票。 沒票的 repo 不叫(封存、投影用、還沒開張的——沒有工可派,就不是缺人), 所以這一段不會變成每天念一串不相干東西的噪音。 只進開場給總管看的長版,不進 Telegram——補工人是總管的事,不吵 leo。

手動看一次:python3 scripts/isep-nag--json 裡的 repos_without_worker)。