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

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

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

74 lines
9.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# delegate-spec.tsv — jsc 技能組的委派判定清單。一支技能一列,記「這一支能不能交給背景助理」。
#
# 判準本身寫在 references/delegate-criteria.md,四支技能異動技能(skill-new、skill-update、
# skill-delete、skillset-update)共用那一份。這張表只放判定結果,不放判準。
#
# 判定結果只放這裡,不寫進 SKILL.md 的 frontmatter:name 與 description 之外的自訂欄位,
# 有被各 CLI 的技能驗證擋掉的風險。新增或刪除技能時同時補上或刪掉這一列,
# tools/check-delegate.sh 才對得起來;缺列的技能,助理永遠不知道它存在。
#
# 欄位:domain<TAB>name<TAB>verdict<TAB>way<TAB>slice<TAB>human<TAB>trigger<TAB>recur<TAB>next<TAB>version<TAB>origin
# domain 技能所屬 domain,去掉開頭的 jsc-。形狀比照 list-skills.sh 第一欄
# name 技能名。形狀比照 list-skills.sh 第二欄,兩欄合起來就是一支技能的身分
# verdict full=全交 slice=切片交 cond=條件式交 none=不交
# way 交出方式,多個用半形逗號隔開:invoke=觸發 patrol=巡檢 remind=提醒;不交寫 -
# slice 交出的那一段。全交寫 -,整支都交;條件式交要把條件與條件不成立時的行為
# 一起寫進來;不交寫 -
# human 留在人手上的那一半。切片交與條件式交必填——少了它,助理下一輪會把整支技能
# 當成可交的一路跑完。不交填不交的理由,否則下次分不出「判過決定不交」與
# 「還沒判」。全交寫 -
# trigger 第一次什麼時候到期:at:{ISO 時間},立刻要做寫 at:now;或 after:{事件名}。
# 事件名只認固定詞彙,其中三個一定要帶參數,少了參數會被擋下:
# 不帶參數:worklog-written、hook-error、session-start、session-end
# 要帶參數:wp-merged:{工作包代號}、stage-entered:{階段}、
# analyze-completed:{HASH}
# 為什麼要寫明參數形狀:那三個事件是「哪一個工作包合併了」而不是「有工作包
# 合併了」,少了參數就指不到特定的一件事。寫成不帶參數的形狀,登錄那一步會
# 回欄位不合法,那支技能於是靜靜沒有內建項——少了什麼要看種入回報的 bad=
# 那幾行才發現。不交寫 -
# recur 做完之後還要不要再排:once、every:{間隔}、cron:{式子}。事件型 trigger 配
# every:{間隔} 時,間隔讀作重新武裝的最短間隔。不交寫 -
# next 跑完之後建議接哪一支,寫成 jsc-{domain}:{name}。每一列都要填,不交的也要填
# ——不交講的是助理不代跑,跟「跑完之後該接什麼」無關
# version 判定當下該 domain 的 plugin 版本號。落後現行版本代表要複判,那只是提示,
# 不算稽核缺失:版本號是 domain 層級,同 domain 改一支技能其餘技能也會被標到,
# 當成缺失的話每次發版整個 domain 都亮紅,提示很快就被當雜訊忽略
# origin seed=依既有盤點種入、待複核 judged=正式走過決策樹判定。
# seed 只印成待複核提示,不算缺失;技能有異動時就地走一次決策樹,轉成 judged
#
ask ask slice patrol 唯讀查 QUESTION_CONTENTS,確認要交辦的事是不是早就有答案 問答本身。助理在背景問不到人,沒有人在場就收不到答案 at:now every:1d jsc-gitea:wiki 0.1.3 seed
assist assistant none - - 助理本身。讓它自我發動,一輪巡檢會在背景又叫起另一輪,誰都停不下來 - - jsc-log:stats 0.1.6 seed
cli delegate cond invoke 條件是這一項任務唯讀:唯讀巡檢可以委派給別支 CLI,省當前 CLI 的額度。條件不成立,也就是會改檔案的任務,一律不委派;委派失敗就退回自己跑 判斷哪一項算唯讀、額度要不要省,還有委派給哪一支 CLI at:now every:1d jsc-log:stats 0.3.4 seed
cli deploy slice remind 遠端有新版就提醒 安裝、更新、卸除、要求重啟 at:now every:1d jsc-hooks:hooks-install 0.3.4 seed
cli doctor cond invoke 條件式:只有在 doctor 呼叫自家 tools/ 與 templates/ 的路徑不再帶版本號之後才可以交。交出的那一段是定期整輪健檢、寫 CHECK_{HASH}。條件不成立時的行為:一律不交,維持人在現場叫用 修——那是 jsc-cli:setup,逐項確認。另外,條件沒滿足之前整支都留在人手上:doctor 自家腳本走的是 CLI 載入技能時給的外掛基底目錄,那條路徑帶版本號、進不了允許清單,無人值守的每一輪都會無聲卡在第一支腳本 at:now every:7d jsc-cli:setup 0.3.4 seed
cli models slice invoke 定期跑 model-tags.sh sync 重建能力標籤表,並盤點各 CLI 可用模型 換模型、改設定 at:now every:7d jsc-cli:doctor 0.3.4 seed
cli setup none - - 改設定與接線,要逐項確認 - - jsc-cli:doctor 0.3.4 seed
git commit none - - 對外不可逆 - - jsc-git:pr 0.1.5 seed
git pr none - - 對外不可逆 - - jsc-log:worklog 0.1.5 seed
gitea html-export none - - 要人指定是哪一頁或哪一個議題。助理在背景猜不到,猜錯就匯出別人的頁 - - jsc-gitea:html-style 0.2.5 seed
gitea html-style none - - 版型與樣式是使用者的偏好,要逐項確認才寫得下去 - - jsc-gitea:html-export 0.2.5 seed
gitea repo-sync slice patrol 盤點哪些存取庫落後遠端、哪些還沒同步下來 clone 與 update——會動工作目錄 at:now every:1d jsc-git:pr 0.2.5 seed
gitea wiki none - - 助理的手腳,不獨立排程。助理所有 wiki 讀寫都經過它,一律附加 - - jsc-gitea:html-export 0.2.5 seed
gitea wiki-to-issue none - - 對外不可逆 - - jsc-sdlc:analyze 0.2.5 seed
hooks hooks-install slice patrol wire-cli.sh status 唯讀盤點接線 重新接線 at:now every:1d jsc-hooks:repair 0.4.4 seed
hooks repair slice invoke 巡檢抓到 hook 錯誤就發動修復 診斷、改哪一支、開 PR,全照 repair 自己的流程 after:hook-error every:1h jsc-git:pr 0.4.4 seed
log learn slice patrol 發動技能前先查過去教訓,也就是 consult 那一段 記錄教訓的判斷。哪一次值得留下來要人說 at:now every:1d jsc-log:worklog 0.1.9 seed
log report slice invoke 週期到了就產週報、月報、年報 報告要不要改寫、要不要送人看 at:now every:7d jsc-log:learn 0.1.9 seed
log stats full invoke - - at:now every:7d jsc-log:report 0.1.9 seed
log worklog slice patrol,remind 任務結束時收口計時與 token,補進 worklog-pending;該寫沒寫就催 寫日誌本體——狀態、細節、難處要人給 after:session-end every:1h jsc-log:learn 0.1.9 seed
meta skill-check cond invoke 條件是只交機械檢核那一段:腳本語法、manifest 版本一致、README 技能清單與實際技能對得上。條件不成立的那一段,也就是語意審查與流程效率判斷,一律不交,那要讀完整份 SKILL.md 語意審查、流程與成本效率判斷,還有要不要套用建議 at:now every:7d jsc-meta:skill-update 0.3.1 seed
meta skill-delete none - - 改技能組本身,等於助理改自己 - - jsc-meta:skill-check 0.3.1 seed
meta skill-new none - - 改技能組本身,等於助理改自己 - - jsc-meta:skill-check 0.3.1 seed
meta skill-update none - - 改技能組本身,等於助理改自己 - - jsc-meta:skill-check 0.3.1 seed
meta skillset-update none - - 改技能組本身,等於助理改自己 - - jsc-meta:skill-check 0.3.1 seed
meta ste100-sync slice patrol,remind 定期比對上游版本,落後就提醒 套用上游變更 at:now every:7d jsc-meta:skill-check 0.3.1 seed
meta tooling-guide full invoke - - at:now every:7d jsc-meta:skill-check 0.3.1 seed
pkg pkg-update slice patrol 用 list-packages.sh、latest-version.sh 唯讀盤點落後最新穩定版的套件 升版、跑建置與測試 at:now every:7d jsc-review:code-review 0.1.0 seed
review api-doc none - - 審查要判斷,判準要讀完整份文件與程式碼;助理在背景判不出來 - - jsc-git:pr 0.1.3 seed
review code-review none - - 審查要判斷,而且要不要照著改由呼叫端決定 - - jsc-review:api-doc 0.1.3 seed
review comment-cleanup none - - 會改專案檔案 - - jsc-git:commit 0.1.3 seed
sdlc analyze slice patrol,remind 盤點 ANALYZE_CONTENTS 未完成的分析並先把選項清單備好;另巡檢分析頁勾選與工作包議題狀態對不對得上 分析本體全部要決策。勾選與議題對不上時要對齊哪一邊,是真實來源衝突,也要人判 at:now every:1d jsc-sdlc:implement 0.3.2 seed
sdlc implement slice patrol,remind wp-gate.sh check-deps 盤點哪些工作包可以開始;階段鎖殘留就提醒 挑工作包、寫程式碼、開 PR。鎖檔不自己刪 at:now every:1d jsc-log:worklog 0.3.2 seed
sdlc maintain none - - 核心是決策與寫程式碼 - - jsc-log:worklog 0.3.2 seed
sdlc plan slice patrol,remind 盤點 PLAN_CONTENTS 還沒分析的計畫,先把選項清單備好 規劃本體全部要決策 at:now every:1d jsc-sdlc:analyze 0.3.2 seed