admin
|
f047bdd49d
|
Merge pull request '新增 WP-01 十項定案規格與 TODO.md 校正清單文件' (#79) from docs/wp01-baseline-decisions/delivery-spec into docs/wp01-baseline-decisions/main
Reviewed-on: #79
|
2026-09-08 01:24:13 +00:00 |
|
jiantw83
|
b8b5737bc3
|
docs(wp01-baseline): 新增定案規格與待辦校正兩份參考文件
What:新增兩份文件。wp01-baseline-decisions.md 收錄十項技術定案(雜湊分隔符、計畫名稱正規化、跨存取庫工作包編號起算、PLAN_CONTENTS 存取庫欄格式、工作日誌週次雜湊、舊日誌拆頁、輸出原則 lint 化範圍、CPM 圖涵蓋範圍、不監看時的相依判定、PR 疊包上限),並補上五個未註冊存取庫(code、doc、persona、shared、code-review)去向決議:全部不納入 marketplace 正本,維持獨立系統。wp01-todo-corrections.md 收錄 TODO.md 十五項狀態過期校正與五項數字更新。
Why:分析階段裁定的規格內容原本只寫在分析頁全文裡,後續工作包每次要引用都得回頭翻找。整理成獨立文件,附出處與具體例子,工作包可以直接引用,不必重新確認脈絡。另外,TODO.md 本身不在任何 git 存取庫底下,沒有分支也沒有 PR 可走,校正意見沒有地方能落地,只能整理成清單交使用者手動核對。
How:定案文件逐項附出處(對應分析頁或測試計畫段落)與可驗證的具體例子,方便日後照抄核對。待辦校正文件依「狀態過期」與「數字更新」分兩節整理,開頭寫明無法走 PR 的原因,並註明資料來源是同一輪盤點、以各存取庫 origin/develop 為準逐一核對得出。
Who:WP-01 定案規格交付包。
|
2026-09-08 09:08:36 +08:00 |
|
admin
|
fd6aa6f45c
|
Merge pull request '唯讀盤點那一欄補一條結束碼規則,並換掉一個用結束碼帶狀態的指令' (#77) from fix/probe-exit-code-must-mean-pass-or-fail into develop
Reviewed-on: #77
|
2026-09-04 10:09:54 +00:00 |
|
 jiantw83andClaude Opus 5
|
5fcfc16dd1
|
fix(delegate): 唯讀盤點那一欄補一條結束碼規則,並換掉一個用結束碼帶狀態的指令
那一欄的合約規定了路徑形狀、代入點、不准有金錢符號與波浪號,卻從來沒定義
結束碼該怎麼解讀。漏了那一條就踩過一次。
填進來的那一支用結束碼帶三種狀態:接好、接好但這支 CLI 做不到、有東西沒接。
那是給人看的三分法,本身沒有錯。但讀的那一邊照非零判失敗,於是有先天限制的
那一支 CLI 每一輪讓那一筆失敗一次、一天 96 次,而沒有人修得動——那支 CLI
擋不下技能叫用是它的架構限制,不是接線缺漏,16 個接線項目全部就位。
失敗次數存在的理由是指出「有一筆壞掉的項目每輪重試而沒人知道」。被一個修不動
的數字填滿,就等於用假的壞掉把真的壞掉蓋掉。
所以補上那一條:這一欄的結束碼只准表示過與不過,不准用來編碼狀態。而且明寫
遇到用結束碼帶狀態的腳本時該怎麼做——去那一邊加一個只回過與不過的模式,不要
在這一欄將就。上游那一支已經加了那個旗標,這一列跟著換過去。
那一列的交出描述與判定版本號一併對齊:描述本來只寫子命令名,現在補上「先天
限制不算失敗」;版本號帶到上游加旗標的那一版,因為這一列的判定跟著它走。
三份 manifest 版號 0.3.7 升到 0.3.8。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 18:06:01 +08:00 |
|
admin
|
58413ab808
|
Merge pull request '例行稽核新增腳本路徑檢核,判文件裡寫的路徑解不解得出來' (#74) from feat/check-skill-script-paths-resolve into develop
Reviewed-on: #74
|
2026-09-04 03:33:15 +00:00 |
|
 jiantw83andClaude Opus 5
|
9df303a377
|
Merge develop
三份 manifest 取分支上的較高版號:develop 那邊到 0.3.6,這條分支本來就是為了
讓開那一號才升到 0.3.7,取低的等於把版號往回退。
行為清單第 10 行兩邊各改了同一行的不同地方,合起來留:develop 加的是委派
清單檢核多判一種填錯的 probe、以及修法要回該技能的存取庫核對過再改寫;這條
分支加的是第一組多跑一項腳本路徑檢查。兩件事互不相干,取任一邊都會弄丟另
一邊。外部呼叫那一行 develop 沒動過,直接取分支上的。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 11:29:00 +08:00 |
|
admin
|
619800e10c
|
Merge pull request '唯讀盤點那一欄改掉一個不存在的子命令,補送上一輪沒趕上的修正' (#75) from feat/probe-column-for-readonly-patrol-commands into develop
Reviewed-on: #75
|
2026-09-04 03:26:30 +00:00 |
|
 jiantw83andClaude Opus 5
|
2ab643c6bd
|
chore(plugin): 版號讓到 0.3.7
0.3.6 讓給另一張還沒合併的清單修正。那一張要緊——它拿掉一個會讓內建項每輪
失敗的值,該先走;這一張是新增檢核,晚一步沒有代價。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 11:17:12 +08:00 |
|
 jiantw83andClaude Opus 5
|
4fd9a52559
|
chore(plugin): 三份 manifest 升版至 0.3.6
上一輪的清單修正沒趕上合併,這一筆帶著它重新送出。清單是隨外掛一起發佈的
資料檔,助理讀它決定要種哪幾筆內建項,所以內容變了版號就要動——安裝端靠
版號才知道要重新取一次。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 11:16:36 +08:00 |
|
jiantw83
|
07d04c4d0c
|
Merge develop
|
2026-09-04 11:16:11 +08:00 |
|
 jiantw83andClaude Opus 5
|
99871cd24f
|
feat(skill-check): 例行稽核第一組接上腳本路徑檢核
檢核腳本沒人叫等於不存在,所以同一批把它接進第一組、接進步驟六的複跑,也
接進完成條件。
它擺在原本那一項的前面,而原本那一項正是抓不到這類缺失的理由:那一項要人
確認「本文點名的每一支腳本,呼叫端有沒有分流它宣告的每一個結束碼」,前提
寫著「lint-scripts.sh 已經證明腳本存在」。人照著讀,就會去看目錄底下有沒有
那個檔名,而不會去問那條路徑解不解得出來。這一段理由寫進了新那一項的本文,
免得下一輪有人把兩項看成重複的而刪掉一項。
unrooted 與 unknown 兩種提示明寫不得升級成決策樹項目。整套技能組有三百多處
不帶 domain 名的寫法,一次全變成待決議項會把真的缺失蓋掉——比照委派清單檢核
的待複核與版本落後那兩種提示,同樣的處置。
三份 manifest 版號從 0.3.4 升到 0.3.6,跳過中間那一號留給還沒合併的另一張。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 10:55:30 +08:00 |
|
 jiantw83andClaude Opus 5
|
763709ed7b
|
feat(檢核): 新增腳本路徑檢核,判文件裡寫的路徑解不解得出來
lint-scripts.sh 掃的是 tools/ 與 hooks/ 目錄裡的檔案,它證明得了「這個存取庫
裡有這支腳本」,卻證明不了「文件裡寫的那條路徑解得出那支腳本」。兩件事差
很遠,而中間那道縫剛好放得下一整類缺失。
2026-09-04 實際踩到:一份技能本文把自家腳本寫成不帶前綴的相對路徑,而那支
技能的基底目錄是 skills/{名稱}/,照字面解出來的位置沒有那個檔案,結束碼 127。
人工覆核看的是「tools/ 底下有沒有這支」,有,於是每一輪都過。覆核的問題本身
問錯了,所以錯幾次都不會被發現。
三種判定:指到不存在的檔案算缺失;不帶 domain 名但檔案在這個存取庫底下只算
提示;跨 domain 而那個存取庫不在這台機器上也只算提示。中間那一種為什麼不算
缺失——全套技能組有三百多處那樣寫,判成缺失會讓每個存取庫同時亮紅,而一份
全紅的報告跟沒有報告一樣。先量出來、指得出是哪幾行,改不改由人決定。
跨 domain 的路徑靠 plugins-root.sh 找別的存取庫,推不出來的那幾筆印成提示,
不當缺失:這台機器沒裝,跟路徑寫錯,是兩件事。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 10:55:14 +08:00 |
|
 jiantw83andClaude Opus 5
|
e47da3104c
|
fix(delegate): 唯讀盤點那一欄改掉一個不存在的子命令
實測跑過那一行才發現 worklog-pending.sh 沒有 orphans 這個子命令,跑起來
是用法錯誤、結束碼 2。那支腳本七個子命令全部要先給工作階段雜湊,沒有不帶
參數的盤點入口,掃不出「該寫沒寫」的那幾筆,所以改填 pending 並寫明理由。
檔頭補一句:這一欄填之前一定要真的跑一次,不能照技能文件的措辭抄。同一份
清單上已經踩過兩次——一次是子命令根本不存在,一次是子命令會在標準輸入沒人
關閉時無限等待。兩種都不會在種入那一刻報錯,要等無人值守那一輪才發作,而
那一輪沒有人在看。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-04 10:40:43 +08:00 |
|
admin
|
5a86f33d02
|
Merge pull request '委派清單加一欄記唯讀盤點的實際指令,19 項逐項回存放庫核對' (#73) from feat/probe-column-for-readonly-patrol-commands into develop
Reviewed-on: #73
|
2026-09-04 02:02:54 +00:00 |
|
jiantw83
|
f2332f965c
|
feat(delegate): 清單加一欄記唯讀盤點的實際指令
切片交的那幾支,助理現在只會提醒不會動手,因為沒有東西記得下「那一段唯讀盤點到底要跑什麼」。清單加第十二欄記具體指令,種入那一支有值就拿它當動作、沒值才退回只提醒。
只認三種寫法。一行指令,路徑一律寫成代入點開頭,由種入那一支代進字面絕對根目錄;指令裡不可以出現金錢符號或波浪號,那兩種在無人值守那一輪解不出來也進不了允許清單,會被靜靜擋掉。要標未接線就寫理由,留白的話下一輪分不出是刻意還是漏填。沒有唯讀入口的寫減號。
觸發型與不交的列一律填減號。觸發的意思是呼叫整支技能,這一欄填了指令會讓種入那一支改拿指令當動作,於是整支交出降級成只跑一支腳本,該寫的頁一頁都不會寫,而且看起來完全正常。這條由檢核腳本擋。
逐項回各存放庫核對,不照抄既有盤點的措辭,因而抓到五處對不上實際腳本的地方。
最要緊的一處:既有盤點點名的那支工具腳本要三個參數,其中兩個無人值守那一輪根本拿不到,而且它是唯一會去問遠端的一方。改用同一件事的本機那一半,而那個子命令剛好在閘門腳本「免讀標準輸入」的清單裡。這一點非確認不可:同一支腳本的另一個子命令不在那份清單上,標準輸入是管線又沒人關閉時會一直等,實測會無限卡住。腳本自己的註解就記著這個坑,說工具腳本轉呼叫時曾經整支卡死——那正是先前心跳斷掉的同一種死法。
另一處:既有盤點點名的同步子命令會寫檔,不是唯讀。那一列剛好是觸發型所以填減號、衝突沒落地,但措辭本身是錯的。
七項標成未接線,理由都是要連網要金鑰。連網那一種一過期就讓那一項每輪失敗,或每輪靜靜回報沒事——後者更難查;而純本機讀取本來一輪都不會失敗。先填會連網的,等於用一批每輪報錯的項目把真的發現蓋掉。
還記下一件接線那天要注意的事:查遠端版本那一支永遠回成功,查不到就安靜放行,所以金鑰失效時它會靜靜回報沒有新版。接線要用另一個子命令,那個有「查不出來」這第三種結論。
檢核腳本從四項檢查改成五項。填錯欄位、指到不存在的腳本、用了認不得的代入點都算缺失;標未接線只印提示,那是判過知道還沒接,不是漏填;指到的 domain 本機沒裝也只提示,那是機器少裝一套不是清單填錯,算缺失會讓半套機器每輪亮紅。
五支技能異動流程一併改:寫清單時要問到並寫下這一欄,重判時要一併重問,刪除時要檢查別列有沒有指到一起刪掉的腳本,一次改多支時要注意跨存放庫搬腳本是這一欄最容易過期的地方。
|
2026-09-04 09:56:55 +08:00 |
|
admin
|
54e77a8da9
|
Merge pull request '清單檔頭寫明哪三個事件名一定要帶參數,避免技能靜靜沒有內建項' (#71) from docs/event-name-parameter-shape-in-delegate-spec into develop
Reviewed-on: #71
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
|
2026-09-04 01:03:19 +00:00 |
|
jiantw83
|
cb8123faa0
|
chore(plugin): 三份 manifest 升版至 0.3.4
清單檔頭的修正要靠版號才傳得到機器端。
三份 manifest 由 sync-skill-manifest.sh 同步,只動版本欄位。
|
2026-09-03 19:03:40 +08:00 |
|
jiantw83
|
d6bd022920
|
docs(delegate): 清單檔頭寫明哪三個事件名一定要帶參數
檔頭把七個事件名列成同一種形狀,但待辦簿的登錄那一步要求其中三個一定要帶參數。照檔頭的寫法填一列,登錄會回欄位不合法,那支技能於是靜靜沒有內建項——少了什麼要看種入回報那幾行才發現。
分成帶參數與不帶參數兩組列出來,並寫明為什麼那三個非帶不可:它們問的是「哪一個工作包合併了」而不是「有工作包合併了」,少了參數就指不到特定的一件事。
只改註解,一列資料都沒動。
|
2026-09-03 19:03:40 +08:00 |
|
admin
|
9877e19bbd
|
Merge pull request '委派判定接進五支技能異動流程,清單不再會與實際技能脫節' (#69) from feat/wire-delegate-spec-into-change-skills into develop
Reviewed-on: #69
|
2026-09-03 07:24:28 +00:00 |
|
jiantw83
|
f1825fd653
|
chore(plugin): 三份 manifest 升版至 0.3.3
委派判定的接線要靠版號才傳得到機器端。
三份 manifest 由 sync-skill-manifest.sh 同步,只動版本欄位。
|
2026-09-03 14:43:15 +08:00 |
|
jiantw83
|
1a34529231
|
feat(meta): 委派判定接進五支技能異動流程
上一輪建好了判準文件、清單與檢核腳本,但沒有任何一支技能會去用它。清單不接進流程,過幾天就跟實際技能脫節,回到手工盤點的老問題。
新增技能要走完決策樹五題加接續技能那一題,產出判定結果寫進清單,沒有那一列不算建立完成。修改技能動到流程或描述就重判,只改文案可沿用舊結論但要更新版本號。刪除技能要刪掉那一列。一次改多支要逐支重判,一支都不能跳。例行稽核把清單一致性排進第一組檢查。
檢核腳本的四個結束碼在五支裡逐一路由。特別寫清楚「回 0 但帶提示」那一種:版本落後與待複核的種入列都回 0,那是提示不是缺失,不能因為看到輸出就判成失敗。版本號是 domain 層級,改一支會標到整個 domain,當成缺失看每次發版整片紅,提示很快就沒人看。
接線時撞到四個原本沒看到的問題,一併處理:
清單放在技能組的中樞存放庫,但改的技能常在別的存放庫,所以四支異動技能各加一條「不在中樞時另開一條清單 PR」,並把「技能 PR 開了、清單 PR 沒開」列進部分完成。不加的話清單改動沒有落地路徑。
一次改多支那一支是平行處理,每個 sub agent 改自己的存放庫。那個設計在各改各的檔案時正確,一加入全技能組共用的單一清單就變成資料競爭。改成 sub agent 只回傳判定列,主 agent 收齊後一次併檔。
技能改名或刪除時,別列指過來的接續欄會變成指向不存在的技能,那正是檢核腳本會抓出來的一種缺失。修改與刪除兩支都加了連動處理。
刪除那一支的參照盤點會撈到清單那一列,盤點步驟與刪除步驟都可能去改它。明寫留給刪除步驟,盤點步驟的完成條件多一種合法結論。
清單十一欄沒有備註欄,多寫一欄會被檢核擋下,所以「沿用前一輪判定」寫進 PR 描述與異動報告,列上只動版本號。
刪除技能還要「移除待辦簿裡引用它的內建項」,但待辦簿本身還不存在,那一半據實寫成尚未接線,並要求帶進異動報告,免得日後被讀成已經清乾淨。
委派清單沒有加進審核檢查清單。那份清單每一項都是逐 domain 判定,委派清單是整輪一份、只存在於中樞存放庫;加進去會讓每個 domain 的 sub agent 各判一次同一個檔。改成在例行稽核裡明寫它不是那幾項之一。
|
2026-09-03 14:43:15 +08:00 |
|
admin
|
737e3560f3
|
Merge pull request '技能委派判定的地基:判準文件、機器可讀清單與檢核腳本' (#68) from feat/skill-delegation-spec-and-checker into develop
Reviewed-on: #68
|
2026-09-03 06:28:17 +00:00 |
|
jiantw83
|
ca062e37a8
|
chore(plugin): 三份 manifest 升版至 0.3.2
委派判定的地基要靠版號才傳得到機器端。
三份 manifest 由 sync-skill-manifest.sh 同步,只動版本欄位。
|
2026-09-03 14:00:36 +08:00 |
|
jiantw83
|
8bb1effb93
|
feat(delegate): 技能委派判定的判準文件、清單與檢核腳本
助理要知道每一支技能能不能交給它代跑,但那份盤點目前只存在於一份待辦文件的表格裡。技能組每天在動,手工盤點只會過期,而且過期得無聲無息——今天就有三件事栽在這上面:照舊版資訊列的待辦白列了、一份文件寫著「8 碼」而工具早就改用 40 碼、一份技能文件描述的路徑家族已經不存在。
判準寫成 references 一份文件,四支技能異動技能共用。內容是判定決策樹的五題與四種結論各自的必填欄位。
判定結果寫成 tools 底下一份 TSV,一支技能一列,十一個欄位。作法沿用設定規格表那一套:註解檔頭說明每一欄的意思與可填值、TAB 分隔、空值寫短橫。技能名分成 domain 與 name 兩欄,形狀跟技能清單工具的輸出一致,比對時直接取前兩欄就好。
初始 35 列依既有盤點種入,來源欄標 seed,代表還沒正式走過決策樹、待複核。技能有異動時就地走一次決策樹再轉成 judged。
檢核腳本比對清單與實際技能:缺列或多列算缺失,必填欄位空著也算缺失——切片交與條件式交沒填「留在人手上的那一半」,助理下一輪會把整支技能當成可交的一路跑完。版本號落後與來源是 seed 都只印提示、不影響結束碼,理由寫進腳本註解:版本號是 domain 層級,同 domain 改一支技能其餘技能也會被標到,當成缺失的話每次發版整個 domain 都亮紅,提示很快就會被當成雜訊忽略。
種入時有一支改判。體檢那一支在既有盤點裡是無條件的切片交,實測確認它呼叫自家腳本走的是帶版本號的路徑,那種路徑進不了允許清單,無人值守的每一輪都會無聲卡在第一支腳本,所以改判條件式交,把條件與條件不成立時的行為都寫進去。留成切片交的話,下一個實作定期健檢的人會看到一列寫著可以交,然後重演一次。
這一輪只建地基。四支技能異動技能還沒引用這份判準與這支腳本,例行稽核也還沒把它排進檢查群組,接線另外一輪做。
|
2026-09-03 14:00:36 +08:00 |
|
admin
|
06979128d9
|
Merge pull request '技能準則新增目錄頁條列與內容頁圖表優先的區分,兩個目錄頁範本與六支技能同步' (#67) from feat/contents-list/main into develop
Reviewed-on: #67
|
2026-09-02 10:00:50 +00:00 |
|
jiantw83
|
fb72d564d1
|
chore(manifest): 三份 plugin 資訊檔的版本號提升一階
What
- `plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 的版本號同步提升一個修訂號。
Why
- 本輪改了範本、準則與六支技能的內文,安裝端要靠版本號才判得出手上的快取是舊的。
- 三份資訊檔的版本號必須一致,任一份沒跟上,不同 CLI 會各自認到不同版本。
How
- 三份檔案只動版本號那一個欄位,其餘內容不變。
Who
- 各支 CLI 的安裝與更新流程,以及版本守門檢查。
|
2026-09-02 17:21:02 +08:00 |
|
jiantw83
|
15fdb7e140
|
docs(skills): 五支技能與盤點技能的目錄頁呼叫敘述同步條列版面
What
- `skills/skill-new`、`skills/skill-update`、`skills/skill-delete`、`skills/skillset-update`、`skills/skill-check`:目錄頁寫入步驟的呼叫從「單列 upsert」改成單一 H2 區塊 upsert,鍵補上內容頁頁名這個引數,並註明第四個引數是區塊檔而不是列檔。
- `skills/tooling-guide`:盤點結果寫回目錄頁的敘述照同一套改寫,並寫明鍵是內容頁頁名。
- `references/behaviors.md`:六支技能的關鍵步驟、外部呼叫與可驗證跡象三列同步,跡象從「留下自己那一列」改成留下自己那一個 H2 區塊,區塊內的連結寫成一條欄位。
Why
- 範本與準則已經改成條列版面,技能內文還寫著「那一列」,執行時就會照舊敘述組出表格列,跟工具的區塊 upsert 對不上。
- 呼叫少帶鍵這個引數,工具無從判斷要換掉哪一個區塊,同一筆會被當成新的附加上去。
- 行為清單是稽核與驗證的比對基準,敘述沒跟上,稽核會拿舊描述判合規。
How
- 六支技能的呼叫一律寫成 `wiki-contents.sh upsert {TYPE} {鍵欄} "{內容頁頁名}" {區塊檔} [{範本}]`,並在旁邊點明目錄頁一律大標題加條列。
- 完成條件與可驗證跡象改用區塊的說法,連結範例改成 `- {欄位名}:[{頁名}]({連結})` 的形態。
- 只改敘述,不動任何腳本;轉檔與 upsert 的實作在別的存取庫。
Who
- 本存取庫六支會寫目錄頁的技能。
- 稽核與驗證流程改拿新的行為清單比對。
|
2026-09-02 17:21:02 +08:00 |
|
jiantw83
|
5541a41ff7
|
docs(guidelines): 新增目錄頁條列與內容頁圖表優先的區分準則
What
- 「目錄頁專用存取庫」從四條規則擴成五條,新增的第 5 條把版面判準定下來:目錄頁一律大標題加條列,內容頁才維持圖表優先。
- 第 5 條裡另立一段講 `<key-col>` 怎麼決定:那是舊表格裡持有內容頁連結那一欄的序號,只在自動轉檔時用得到,序號一律照線上那一頁實際的欄位排法填。
- 目錄頁與內容頁的對照表多一列「版面」。
- 稽核檢查清單新增兩項,一項查目錄頁版面與範本是否照第 5 條,一項查 `<key-col>` 的填法。
- `MAINTAIN` 沒有內容頁那一段,說法從「寫在表格裡」改成「寫在條列區塊上,一個專案一個 H2 區塊」。
- 跨存取庫沒有原子性那一段,回報對象從「未寫入的目錄列」改成「沒寫進去的目錄頁區塊」。
Why
- 這條區分是整組技能之後寫 wiki 的判準。準則裡沒有正本,每支技能各自解讀,改完的範本過一輪又會長回表格。
- `<key-col>` 填錯的後果是靜默的:標題會轉成那一欄的純文字、跟鍵對不上,既有那一筆被當成新的附加到頁尾,同一筆變成兩個區塊,舊區塊從此再也更新不到,而且不會有任何錯誤訊息。這一輪稽核就抓到六個頁型填錯。
- 範本的欄位順序與線上那一頁常常不一樣,而自動轉檔跑的是線上那一頁,所以序號不能照範本推。
- 檢查清單沒有對應項,這條準則就只剩內文約束,沒有稽核時的把關。
How
- 第 5 條寫明目錄頁的三段版面、H2 標題就是鍵且寫成內容頁頁名、欄位格式 `- {欄位名}:{值}`、頁上不留 markdown 表格也不放 mermaid,舊表格頁由工具讀到就自動轉寫回、不另跑批次搬移也不得手工搬。
- `<key-col>` 那一段要求先把線上那一頁讀回來確認連結落在第幾欄再填,並寫明填錯的靜默後果;線上是空頁、沒有舊表格要轉時照範本填即可。
- 補上「為什麼分兩種」的理由:目錄頁是索引,只給人挑一筆點進去,條列式壞也只壞一塊;內容頁一頁講一件事的全貌,流程與比較拿圖表最省讀者的力氣。
Who
- 全部十四種頁型的目錄頁與寫這些頁的每支技能都受這條準則約束。
- 稽核技能多兩項要判的檢查項。
|
2026-09-02 17:21:02 +08:00 |
|
jiantw83
|
5db1d8a608
|
docs(templates): 兩個目錄頁範本改成大標題加條列
What
- `templates/skillset-contents.md`:`SKILLSET_CONTENTS` 的版面從 markdown 表格改成一筆一個 H2 區塊,標題寫成該筆對應內容頁的實際頁名,欄位改成標題底下的一層條列。
- `templates/tooling-contents.md`:同樣轉條列,原本說明用的 `## ` 區段併進 `>` 引言,正式頁上才不會被讀成一筆假紀錄。
- `templates/skillset-page.md`、`templates/tooling-page.md`:引言補上目錄頁與內容頁的版面差別,內容頁本身維持圖表優先、不改版面。
- `README.md`:兩份目錄頁範本的說明同步改寫,兩份 `TOOLING` 範本語意相反那一段補上「版面也相反」。
Why
- 目錄頁是全部使用者共用的索引。表格一寬就得橫向捲、欄位一多就對不上表頭,而且併行寫入時只要有人少打一根豎線,整張表就散掉,別人那一筆跟著看不見。
- 條列式一筆一個區塊,寫入端只換自己那一塊,壞掉也只壞自己那一塊。
- 三個範本原本除了示範區塊之外還留著說明用的 `## ` 區段,轉條列後那種區段會在正式頁上被當成一筆紀錄讀進去。
How
- 一頁固定三段:H1 頁名、`>` 引言、然後每一筆一個 H2 區塊;區塊之間空一行,H2 與第一條之間空一行。
- 欄位在標題底下一行一條,格式 `- {欄位名}:{值}`,全形冒號,順序照原本的欄位從左到右,鍵那一欄照樣留一條。
- 寫入示例改成 `wiki-contents.sh upsert {TYPE} {鍵欄} "{內容頁頁名}" {區塊檔}`,並註明鍵欄是舊表格裡持有內容頁連結那一欄的序號、只供自動轉檔用、要照線上那一頁實際的欄位排法填。
- 頁上不留任何 markdown 表格,也不放 mermaid。
Who
- 影響照這兩個範本寫目錄頁的技能:`skill-new`、`skill-update`、`skill-delete`、`skillset-update`、`skill-check` 與 `tooling-guide`。
- 舊頁的轉檔與單一區塊 upsert 的實作不在本存取庫,本存取庫只提供範本與說明。
|
2026-09-02 17:21:02 +08:00 |
|
admin
|
6de2aa9321
|
Merge pull request '收尾寫一筆 skill-end 事件,執行狀態才回報得到助理' (#66) from feat/status-report into develop
Reviewed-on: #66
|
2026-09-02 08:04:08 +00:00 |
|
jiantw83
|
2fa8d86045
|
chore(plugin 版本): 三份 manifest 升版至 0.3.0
|
2026-09-02 16:01:16 +08:00 |
|
jiantw83
|
b87dbb12cd
|
feat(狀態回報): 收尾寫一筆 skill-end 事件
現行紀錄只記「被叫用」,沒有成敗也沒有結束碼。跑完整輪的技能與開場就
中止的技能,在紀錄裡長得一模一樣。
start 由技能用量 hook 順手發,不必改技能文件。end 只能由技能自己在收尾
步驟寫——hook 接在技能工具呼叫上,而實際工作發生在之後的模型輪次,它在
原理上看不到成敗。有 start 沒有配對的 end,就是那一輪中止了。
status 五選一,每支技能各自寫明什麼情況選哪一個。找不到回報腳本就安靜
跳過,回報失敗一律不改變技能自己的結論。
|
2026-09-02 16:01:16 +08:00 |
|
admin
|
03188837d3
|
Merge pull request '連結一律寫成 [文字](絕對網址),並在寫入前驗證連得到' (#65) from feat/link-verification/main into develop
Reviewed-on: #65
|
2026-09-02 06:46:18 +00:00 |
|
jiantw83
|
c987d237e4
|
chore(plugin 版本): 三份 manifest 升版至 0.2.9
|
2026-09-02 14:27:18 +08:00 |
|
jiantw83
|
651ddb3a6f
|
feat(link): 連結一律寫成 [文字](絕對網址),寫入前先驗證連得到
取消 [[頁名]] 與 [[顯示文字|頁名]] 兩種同 wiki 寫法,不再分「同存取庫」與
「跨存取庫」兩條規則。那種寫法只在自己那個 wiki 內解析,寫錯不報錯,畫面上
看起來像普通文字或死連結,巡不到也修不了。
連結寫進頁面前先過 jsc-gitea 的 link-check.sh,結束碼 0 才寫。驗證一律走 API,
不看網頁狀態碼:私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把
好連結判成壞的。認證失敗回 7,與死連結的 1 分開,免得金鑰一過期就把還在的頁
整批判死。
|
2026-09-02 14:27:18 +08:00 |
|
admin
|
3c9137a81d
|
Merge pull request 'feat(wiki): 目錄頁專用存取庫入準則,skill-check 加入優化建議流程' (#63) from feat/wiki-contents-repo/main into develop
Reviewed-on: #63
|
2026-09-02 03:28:05 +00:00 |
|
jiantw83
|
f13724cb79
|
feat(wiki): 目錄頁專用存取庫入準則,skill-check 加入優化建議流程
What:準則的環境變數表與命名總表加入 JSC_WIKI_REPO_CONTENTS 與目錄頁專用存取庫
一節,HASH 規則改為完整 40 碼。skill-check 的 Group 3 先讀上一輪決議,建議表加上
決議與決議日期兩欄,新增步驟 8 把稽核結果寫進 SKILLSET 頁。新增 check-page-name.sh
與兩份 SKILLSET 範本。
Why:優化建議原本每輪產出後就散掉,決議為延後的項目下一輪會重新掃、重新問一次,
正是 skill-check 自己第三個面向點名的毛病。SKILLSET_CONTENTS 是 14 個目錄頁裡
唯一沒有範本的,四支技能都被要求寫它,卻沒有欄位定義可套。
How:Group 1 補進三支現成但沒人呼叫的檢查腳本——ste100-lint.sh、check-wiki-rules.sh
與新增的 check-page-name.sh。讀不到上一輪決議時只停掉 Group 3,不再中止整輪:那兩組
完全不碰 wiki,金鑰失效就會鎖死整組技能唯一的稽核路徑。另外四支 meta 技能原本把目錄頁
寫進 SKILLSET 存取庫,一併改走 CONTENTS。
|
2026-09-02 11:02:48 +08:00 |
|
admin
|
e8539ecfb2
|
Merge pull request '釋出 jsc-meta 0.2.7:助理運行閘門的準則' (#61) from docs/assistant-gate/main into develop
Reviewed-on: #61
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
|
2026-09-01 07:51:35 +00:00 |
|
admin
|
bb26c73504
|
Merge pull request 'docs/assistant-gate/guideline-section' (#60) from docs/assistant-gate/guideline-section into docs/assistant-gate/main
Reviewed-on: #60
|
2026-09-01 07:41:28 +00:00 |
|
jiantw83
|
7b6b9076ea
|
docs(guidelines): 補上助理運行閘門與 fail-closed 閘門的專屬規則
What:
- 新增「助理運行閘門」一節:規格表、心跳判定的六碼處置、豁免清單十一支。
- 節內另立「fail-closed 閘門的專屬規則」四條,那是準則現在完全沒有的東西。
- 環境變數表補上閘門開關與心跳門檻兩列。
- 三份 manifest 的版本一起提升。
Why:
- 整組 hook 的通則是資料不足就放行,這一道相反。例外不點名,後來的人會以為可以隨便再開一道 fail-closed 的閘門,而那種閘門開錯就是整組技能鎖死。
- 豁免清單與腳本檔頭是同一件事實。準則沒有那張表,兩邊就會各走各的,改一支忘了另一支。
How:
- 四條專屬規則裡有兩條是這一輪實作時才想清楚的。逃生門的判斷要擺在載入共用函式庫之前——函式庫讀不到時 sh 會就地結束並回擋人的那個碼,逃生門也跟著跑不到,人就繞不過去;這一條只對 fail-closed 成立。豁免清單只收解鎖路徑,方向與重啟閘門相反,那一道解鎖靠閘門外的動作,這一道解鎖靠跑一支技能。
- 「清單認技能名不認呼叫鏈」那一條補了一個更狠的實例:巡檢要先把結果寫上監控頁才寫心跳,只豁免助理自己會做出自咬環。所以新增豁免技能時不只要想它會呼叫誰,還要想那條呼叫鏈上有沒有一步是解鎖條件本身的前置。
- 心跳判定回「檔案系統問不出來」時放行不擋,理由與代價都寫進去了。那一碼與「時間戳壞掉」的差別在有沒有出路。
Who:
助理閘門實作完之後,把當中的判斷收進準則,讓下一道同類閘門有依據。
|
2026-09-01 15:27:06 +08:00 |
|
admin
|
3beca714fc
|
Merge pull request '放行 jsc-assist 的 marketplace 條目到預設分支' (#58) from chore/marketplace-assist-registry/main into develop
Reviewed-on: #58
|
2026-09-01 04:55:27 +00:00 |
|
admin
|
a4df38d974
|
Merge pull request 'chore/marketplace-assist-registry/sync-copies' (#57) from chore/marketplace-assist-registry/sync-copies into chore/marketplace-assist-registry/main
Reviewed-on: #57
|
2026-09-01 04:53:43 +00:00 |
|
jiantw83
|
06f530d589
|
chore(marketplace): 把 jsc-assist 登錄進統一 marketplace
What:
- 兩份 marketplace 檔各加一個 jsc-assist 條目,來源網址指向 assist 存放庫。
Why:
- 準則要求每個 domain 存放庫都帶同一份 marketplace 檔,任何一個存放庫都能當註冊入口。副本之間只要有一份沒跟上,稽核就會報出不一致。
- 正本少了這個條目,各 CLI 的安裝指令就找不到 jsc-assist,這個 domain 等於發佈不出去。
How:
- 條目由 meta 的 sync-marketplace.sh 產生,同時寫進正本與每個 domain 存放庫的副本,寫完逐檔比對位元組。這一支存放庫的兩份副本就是那一輪的產物。
- 條目依名稱排序,縮排與非 ASCII 描述的處理都交給同一支腳本,不手改 JSON。
- 這一批是從最新的預設分支重新產生的。前一輪的分支基底早於監控頁型別那批改動,直接合併會把那些改動回退掉,所以整批重做而不是解衝突。
Who:
助理 domain 落地的註冊步驟在這個存放庫的同步。
|
2026-09-01 12:50:04 +08:00 |
|
admin
|
e3054961ec
|
Merge pull request '釋出 jsc-meta 0.2.6:命名總表新增 MONITOR' (#55) from feat/monitor-wiki-page-type/main into develop
Reviewed-on: #55
|
2026-09-01 04:42:55 +00:00 |
|
admin
|
9c7e192f33
|
Merge pull request 'feat/monitor-wiki-page-type/naming-table' (#54) from feat/monitor-wiki-page-type/naming-table into feat/monitor-wiki-page-type/main
Reviewed-on: #54
|
2026-09-01 04:28:06 +00:00 |
|
jiantw83
|
970b7a4f71
|
docs(guidelines): 命名總表加入 MONITOR 頁型別
What:
- Wiki 頁命名總表新增 MONITOR 一列,擁有者是技能助理。
- 表下補三段說明:雜湊來源、為什麼不帶工具名稱、寫入語意。
- CHECK 那一段拿掉「是唯一例外」的斷言,改成指向新的機器層規則。
- 三份 manifest 的版本一起提升。
Why:
- 總表是所有 wiki 頁命名的唯一來源。新型別沒登錄進來,各技能就沒有依據,只能各自猜。
- CHECK 原本寫著「是唯一例外」,指的是雜湊來源取主機名與帳號而不是存放庫。加了第二個同樣取法的型別之後,這句話就不成立了,留著會讓讀的人以為只有一個。
How:
- MONITOR 的雜湊來源比照 CHECK,取主機名與登入帳號。助理巡檢的是一台機器,不是一個存放庫。
- 刻意不帶工具名稱,這一點與 TOOLING 相反。TOOLING 一支 CLI 一頁,因為每支 CLI 各有自己的已安裝 plugin 與 hook 接線;助理看的是整台機器一份心跳、一本待辦簿,不分 CLI。
- 監控頁一律附加,不覆寫。助理的寫入是背景行為,覆寫錯了沒人在現場。TOOLING 內容頁是每次盤點覆寫整頁,兩者語意相反,所以各自寫明白。
- 只動總表那一節,其餘章節不碰。
Who:
技能助理落地帶出來的頁型別需求,四個存放庫同一批改。
|
2026-09-01 12:10:55 +08:00 |
|
jiantw83
|
06fe739070
|
Merge pull request '收攏 frontmatter 檢查與五支 CLI 的 hook 接線準則改寫' (#51) from feat/cli-hook-rewire/main into develop
|
2026-09-01 00:58:42 +00:00 |
|
jiantw83
|
c4fdd8b2d8
|
Merge pull request '新增 frontmatter 解析檢查,改寫五支 CLI 的 hook 接線準則' (#50) from feat/cli-hook-rewire/frontmatter-lint-and-guidelines into feat/cli-hook-rewire/main
|
2026-09-01 00:56:11 +00:00 |
|
jiantw83
|
7894fa073e
|
chore(manifest): 三份 manifest 版本號提升到 0.2.5
What:
- plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 的 version 由 0.2.4 提升到 0.2.5。
Why:
- 準則要求改動連帶提升三份 manifest 的 version,README 的「Skills 目錄」與 manifest 同步。
- 版本前置檢查靠 manifest 版本判定本機載入版本有沒有落後遠端發佈版本。版本號不動,這批新增的 frontmatter 檢查與改寫過的 hook 準則就發不出去,各機器也擋不到舊版。
How:
- 由主流程的 sync-skill-manifest.sh 同步三份,只動 version 欄,其餘欄位不變。
- 三份的 name 與 description 逐位元一致,避免各 CLI 讀到不同內容。
Who:
屬 CLI hook 接線修正(jsc-hooks 0.3.4)在 meta 這一側的發版收尾。
|
2026-08-31 19:13:03 +08:00 |
|
jiantw83
|
4a741071e5
|
docs(frontmatter-lint): 同步 README 與行為清單的 frontmatter 檢查
What:
- README 的 skill-check 段落,第一組稽核補上 lint-frontmatter.sh。
- README 的工具表新增 tools/lint-frontmatter.sh 一列,寫明五項檢查、不相依 YAML 套件、四種結束碼、退出 3 不等於通過。
- references/behaviors.md 的 skill-check 表改寫四列:關鍵步驟、外部呼叫、完成條件、可驗證跡象。
Why:
- 準則要求該 domain 的 behaviors.md 與 skills/ 相符,check-behaviors.sh 才會退出 0;README 的「Skills 目錄」也要跟著改動同步。
- 文件沒跟上,稽核就查不到這支新腳本,也不知道退出 3 是什麼都沒掃。這支腳本擋的正是靜默失效,文件本身先靜默漏掉它,等於白做。
How:
- 照 skills/skill-check/SKILL.md 的新流程改寫,關鍵步驟寫明第一組平行跑腳本檢查、frontmatter 檢查、行為清單檢查與 hook smoke。
- 外部呼叫清單依實際呼叫順序插入 tools/lint-frontmatter.sh。
- 完成條件補上「frontmatter 檢查退出 3 是什麼都沒掃,不算通過」,可驗證跡象補上「每個 domain 的 lint-frontmatter.sh 退出 0」。
- 第二組留白項目由四項改五項,同步寫進關鍵步驟的合併說明。
Who:
屬 CLI hook 接線修正(jsc-hooks 0.3.4)在 meta 這一側的文件同步。
|
2026-08-31 19:13:03 +08:00 |
|