Files
meta/tools/delegate-spec.tsv
T
jiantw83 d6bd022920 docs(delegate): 清單檔頭寫明哪三個事件名一定要帶參數
檔頭把七個事件名列成同一種形狀,但待辦簿的登錄那一步要求其中三個一定要帶參數。照檔頭的寫法填一列,登錄會回欄位不合法,那支技能於是靜靜沒有內建項——少了什麼要看種入回報那幾行才發現。

分成帶參數與不帶參數兩組列出來,並寫明為什麼那三個非帶不可:它們問的是「哪一個工作包合併了」而不是「有工作包合併了」,少了參數就指不到特定的一件事。

只改註解,一列資料都沒動。
2026-09-03 19:03:40 +08:00

9.1 KiB

1# delegate-spec.tsv — jsc 技能組的委派判定清單。一支技能一列,記「這一支能不能交給背景助理」。
2#
3# 判準本身寫在 references/delegate-criteria.md,四支技能異動技能(skill-new、skill-update、
4# skill-delete、skillset-update)共用那一份。這張表只放判定結果,不放判準。
5#
6# 判定結果只放這裡,不寫進 SKILL.md 的 frontmatter:name 與 description 之外的自訂欄位,
7# 有被各 CLI 的技能驗證擋掉的風險。新增或刪除技能時同時補上或刪掉這一列,
8# tools/check-delegate.sh 才對得起來;缺列的技能,助理永遠不知道它存在。
9#
10# 欄位:domain<TAB>name<TAB>verdict<TAB>way<TAB>slice<TAB>human<TAB>trigger<TAB>recur<TAB>next<TAB>version<TAB>origin
11# domain 技能所屬 domain,去掉開頭的 jsc-。形狀比照 list-skills.sh 第一欄
12# name 技能名。形狀比照 list-skills.sh 第二欄,兩欄合起來就是一支技能的身分
13# verdict full=全交 slice=切片交 cond=條件式交 none=不交
14# way 交出方式,多個用半形逗號隔開:invoke=觸發 patrol=巡檢 remind=提醒;不交寫 -
15# slice 交出的那一段。全交寫 -,整支都交;條件式交要把條件與條件不成立時的行為
16# 一起寫進來;不交寫 -
17# human 留在人手上的那一半。切片交與條件式交必填——少了它,助理下一輪會把整支技能
18# 當成可交的一路跑完。不交填不交的理由,否則下次分不出「判過決定不交」與
19# 「還沒判」。全交寫 -
20# trigger 第一次什麼時候到期:at:{ISO 時間},立刻要做寫 at:now;或 after:{事件名}。
21# 事件名只認固定詞彙,其中三個一定要帶參數,少了參數會被擋下:
22# 不帶參數:worklog-written、hook-error、session-start、session-end
23# 要帶參數:wp-merged:{工作包代號}、stage-entered:{階段}、
24# analyze-completed:{HASH}
25# 為什麼要寫明參數形狀:那三個事件是「哪一個工作包合併了」而不是「有工作包
26# 合併了」,少了參數就指不到特定的一件事。寫成不帶參數的形狀,登錄那一步會
27# 回欄位不合法,那支技能於是靜靜沒有內建項——少了什麼要看種入回報的 bad=
28# 那幾行才發現。不交寫 -
29# recur 做完之後還要不要再排:once、every:{間隔}、cron:{式子}。事件型 trigger 配
30# every:{間隔} 時,間隔讀作重新武裝的最短間隔。不交寫 -
31# next 跑完之後建議接哪一支,寫成 jsc-{domain}:{name}。每一列都要填,不交的也要填
32# ——不交講的是助理不代跑,跟「跑完之後該接什麼」無關
33# version 判定當下該 domain 的 plugin 版本號。落後現行版本代表要複判,那只是提示,
34# 不算稽核缺失:版本號是 domain 層級,同 domain 改一支技能其餘技能也會被標到,
35# 當成缺失的話每次發版整個 domain 都亮紅,提示很快就被當雜訊忽略
36# origin seed=依既有盤點種入、待複核 judged=正式走過決策樹判定。
37# seed 只印成待複核提示,不算缺失;技能有異動時就地走一次決策樹,轉成 judged
38#
39askaskslicepatrol唯讀查 QUESTION_CONTENTS,確認要交辦的事是不是早就有答案問答本身。助理在背景問不到人,沒有人在場就收不到答案at:nowevery:1djsc-gitea:wiki0.1.3seed
40assistassistantnone--助理本身。讓它自我發動,一輪巡檢會在背景又叫起另一輪,誰都停不下來--jsc-log:stats0.1.6seed
41clidelegatecondinvoke條件是這一項任務唯讀:唯讀巡檢可以委派給別支 CLI,省當前 CLI 的額度。條件不成立,也就是會改檔案的任務,一律不委派;委派失敗就退回自己跑判斷哪一項算唯讀、額度要不要省,還有委派給哪一支 CLIat:nowevery:1djsc-log:stats0.3.4seed
42clideploysliceremind遠端有新版就提醒安裝、更新、卸除、要求重啟at:nowevery:1djsc-hooks:hooks-install0.3.4seed
43clidoctorcondinvoke條件式:只有在 doctor 呼叫自家 tools/ 與 templates/ 的路徑不再帶版本號之後才可以交。交出的那一段是定期整輪健檢、寫 CHECK_{HASH}。條件不成立時的行為:一律不交,維持人在現場叫用修——那是 jsc-cli:setup,逐項確認。另外,條件沒滿足之前整支都留在人手上:doctor 自家腳本走的是 CLI 載入技能時給的外掛基底目錄,那條路徑帶版本號、進不了允許清單,無人值守的每一輪都會無聲卡在第一支腳本at:nowevery:7djsc-cli:setup0.3.4seed
44climodelssliceinvoke定期跑 model-tags.sh sync 重建能力標籤表,並盤點各 CLI 可用模型換模型、改設定at:nowevery:7djsc-cli:doctor0.3.4seed
45clisetupnone--改設定與接線,要逐項確認--jsc-cli:doctor0.3.4seed
46gitcommitnone--對外不可逆--jsc-git:pr0.1.5seed
47gitprnone--對外不可逆--jsc-log:worklog0.1.5seed
48giteahtml-exportnone--要人指定是哪一頁或哪一個議題。助理在背景猜不到,猜錯就匯出別人的頁--jsc-gitea:html-style0.2.5seed
49giteahtml-stylenone--版型與樣式是使用者的偏好,要逐項確認才寫得下去--jsc-gitea:html-export0.2.5seed
50gitearepo-syncslicepatrol盤點哪些存取庫落後遠端、哪些還沒同步下來clone 與 update——會動工作目錄at:nowevery:1djsc-git:pr0.2.5seed
51giteawikinone--助理的手腳,不獨立排程。助理所有 wiki 讀寫都經過它,一律附加--jsc-gitea:html-export0.2.5seed
52giteawiki-to-issuenone--對外不可逆--jsc-sdlc:analyze0.2.5seed
53hookshooks-installslicepatrolwire-cli.sh status 唯讀盤點接線重新接線at:nowevery:1djsc-hooks:repair0.4.4seed
54hooksrepairsliceinvoke巡檢抓到 hook 錯誤就發動修復診斷、改哪一支、開 PR,全照 repair 自己的流程after:hook-errorevery:1hjsc-git:pr0.4.4seed
55loglearnslicepatrol發動技能前先查過去教訓,也就是 consult 那一段記錄教訓的判斷。哪一次值得留下來要人說at:nowevery:1djsc-log:worklog0.1.9seed
56logreportsliceinvoke週期到了就產週報、月報、年報報告要不要改寫、要不要送人看at:nowevery:7djsc-log:learn0.1.9seed
57logstatsfullinvoke--at:nowevery:7djsc-log:report0.1.9seed
58logworklogslicepatrol,remind任務結束時收口計時與 token,補進 worklog-pending;該寫沒寫就催寫日誌本體——狀態、細節、難處要人給after:session-endevery:1hjsc-log:learn0.1.9seed
59metaskill-checkcondinvoke條件是只交機械檢核那一段:腳本語法、manifest 版本一致、README 技能清單與實際技能對得上。條件不成立的那一段,也就是語意審查與流程效率判斷,一律不交,那要讀完整份 SKILL.md語意審查、流程與成本效率判斷,還有要不要套用建議at:nowevery:7djsc-meta:skill-update0.3.1seed
60metaskill-deletenone--改技能組本身,等於助理改自己--jsc-meta:skill-check0.3.1seed
61metaskill-newnone--改技能組本身,等於助理改自己--jsc-meta:skill-check0.3.1seed
62metaskill-updatenone--改技能組本身,等於助理改自己--jsc-meta:skill-check0.3.1seed
63metaskillset-updatenone--改技能組本身,等於助理改自己--jsc-meta:skill-check0.3.1seed
64metaste100-syncslicepatrol,remind定期比對上游版本,落後就提醒套用上游變更at:nowevery:7djsc-meta:skill-check0.3.1seed
65metatooling-guidefullinvoke--at:nowevery:7djsc-meta:skill-check0.3.1seed
66pkgpkg-updateslicepatrol用 list-packages.sh、latest-version.sh 唯讀盤點落後最新穩定版的套件升版、跑建置與測試at:nowevery:7djsc-review:code-review0.1.0seed
67reviewapi-docnone--審查要判斷,判準要讀完整份文件與程式碼;助理在背景判不出來--jsc-git:pr0.1.3seed
68reviewcode-reviewnone--審查要判斷,而且要不要照著改由呼叫端決定--jsc-review:api-doc0.1.3seed
69reviewcomment-cleanupnone--會改專案檔案--jsc-git:commit0.1.3seed
70sdlcanalyzeslicepatrol,remind盤點 ANALYZE_CONTENTS 未完成的分析並先把選項清單備好;另巡檢分析頁勾選與工作包議題狀態對不對得上分析本體全部要決策。勾選與議題對不上時要對齊哪一邊,是真實來源衝突,也要人判at:nowevery:1djsc-sdlc:implement0.3.2seed
71sdlcimplementslicepatrol,remindwp-gate.sh check-deps 盤點哪些工作包可以開始;階段鎖殘留就提醒挑工作包、寫程式碼、開 PR。鎖檔不自己刪at:nowevery:1djsc-log:worklog0.3.2seed
72sdlcmaintainnone--核心是決策與寫程式碼--jsc-log:worklog0.3.2seed
73sdlcplanslicepatrol,remind盤點 PLAN_CONTENTS 還沒分析的計畫,先把選項清單備好規劃本體全部要決策at:nowevery:1djsc-sdlc:analyze0.3.2seed