異常目錄頁改成 H2 區塊條列,寫入語意委派共用工具 #79

Merged
admin merged 5 commits from feat/contents-list/main into develop 2026-09-07 01:22:56 +00:00
Member

摘要

  • 需求描述:所有 wiki 目錄頁的呈現格式從 markdown 表格改成「大標題加條列式」——一筆紀錄一個 H2 區塊,H2 標題就是這一筆的鍵,欄位是標題底下的一層條列 - {欄位名}:{值},目錄頁上不留任何 markdown 表格。本存取庫負責異常目錄頁那一份:範本轉條列,失敗回報腳本改成委派 jsc-gitea/tools/wiki-contents.sh,目錄頁的版面與寫入語意收回一份正本。內容頁維持原本的圖表優先,不在這一輪的範圍。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
templates/error-contents.md 示範列改成示範區塊:H2 標題就是異常頁頁名,時間、頁名、存取庫名稱、觸發 hook、退出碼、摘要六個欄位改成標題底下的一層條列,引言的寫入語意跟著從「一列」改成「一個區塊」
tools/report-error.sh 目錄頁不再由本腳本自己讀回、附加、整頁寫回:改成只組出自己那一個 H2 區塊,交給 jsc-gitea/tools/wiki-contents.sh upsert 做讀回、比對與整頁寫回,目錄頁格式與「讀得回舊內容才寫」的判斷收回一份正本。同時移除目錄專用存取庫的解析(改由那支工具自己解),摘要不再替換半形豎線而是把換行併成一行,降級路徑補上「那支工具不在磁碟上」這一種
skills/hooks-install/SKILL.md 步驟三的失敗回報敘述改寫成 H2 區塊條列,row、cell 一律換成 block、bullet,補上目錄頁交給 wiki-contents.sh upsert 這一段與新的降級原因
references/behaviors.md hooks-install 的關鍵步驟、外部呼叫、完成條件、可驗證跡象四列同步:外部呼叫補上 wiki-contents.sh upsert,跡象改成「索引目錄頁補一個 H2 區塊、六條條列、『頁名』那一條帶連結、頁上不會有表格」
README.md 工具表與範本表的說明、JSC_WIKI_REPO_CONTENTS 那一列的說明同步改成區塊條列與新的委派關係
plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三份 manifest 版號由 0.4.1 同步升到 0.4.2,版本閘門才擋得下落後的安裝端

設計重點

  • 目錄頁的版面只留一份正本。十幾個目錄頁原本各自在自己的腳本裡寫一套「讀回舊頁、比對、整頁寫回」的判斷,錯一次就少一筆紀錄,每一頁長出來的樣子也不一樣。本存取庫這一支改成只組出自己那一個區塊,其餘全部交給 jsc-gitea/tools/wiki-contents.sh。
  • 傳給那支工具的 2 是 key-col:舊表格版目錄頁裡持有內容頁連結的那一欄的序號。舊版第 2 欄是頁名,舊頁自動轉條列時要靠它取 H2 標題;頁面已經是條列格式時這個參數用不到。
  • 降級語意一字不變:異常頁的存取庫解不出來就整支安靜降級;只有目錄頁那邊出問題——那支工具回 3,或那支腳本不在磁碟上——就只寫異常頁、跳過目錄頁、仍回 exit 0。一份寫得成的異常紀錄,不該因為索引沒地方放就整份丟掉。其餘非零結束碼一律以 exit 4 回報。
  • H2 標題不放連結也不放網址,只寫頁名。頁名由存取庫名稱、hook 與時間決定,換主機或改存取庫都動不到它,比對鍵才找得到既有那一筆。
  • 摘要改成把換行併成一行,不再替換半形豎線:條列不像表格欄位會被半形豎線切斷,但換行會把一條拆成兩行。

測試結果

  • sh -n tools/report-error.sh — exit 0
  • sh /root/plugins/meta/tools/ste100-lint.sh — exit 0
  • sh /root/plugins/meta/tools/lint-scripts.sh — exit 0,20 支通過(1 支判定為函式庫)
  • sh /root/plugins/meta/tools/check-link-format.sh — exit 0,7 份文件連結全部合格
  • sh /root/plugins/meta/tools/lint-frontmatter.sh — exit 0,2 支通過
  • sh /root/plugins/meta/tools/sync-skill-manifest.sh — exit 0,三份 manifest 升到 0.4.2,README 技能目錄無新增或移除
  • STDIN_JSON="" sh hooks/comment-scope.sh sweep — exit 0
  • sh /root/plugins/meta/tools/check-behaviors.sh — exit 1,唯一一項是 repair 那一節的「可驗證跡象」沒寫到收尾事件。這一項在本分支的基底上就已經是這個結果(把基底整棵樹取出來單獨跑,回報一字不差),與本次改動無關,修它屬於另一支在飛的變更的範圍,這裡不動。

前置 Push Request

  • plugins/gitea 的目錄頁工具改寫 必須先合。實際的轉檔與 upsert 邏輯全部在 gitea/tools/wiki-contents.sh,本存取庫只改敘述、範本與委派呼叫。前置沒合就先部署這一支,範本組出來的 H2 區塊會被舊版工具當成表格列附加到表格後面。已以 gitea.sh pr-depend 掛上依賴。
  • 另外要注意:本存取庫另有一支尚未合併的 PR #78 改到同一批檔案——references/behaviors.md 與 skills/hooks-install/SKILL.md 兩份都在兩邊的變更範圍內。本支的改動是在 develop 上手動重做的,並非從那條分支挑揀,所以 PR #78 之後合併時這兩份檔案需要解衝突。
## 摘要 - 需求描述:所有 wiki 目錄頁的呈現格式從 markdown 表格改成「大標題加條列式」——一筆紀錄一個 H2 區塊,H2 標題就是這一筆的鍵,欄位是標題底下的一層條列 `- {欄位名}:{值}`,目錄頁上不留任何 markdown 表格。本存取庫負責異常目錄頁那一份:範本轉條列,失敗回報腳本改成委派 `jsc-gitea/tools/wiki-contents.sh`,目錄頁的版面與寫入語意收回一份正本。內容頁維持原本的圖表優先,不在這一輪的範圍。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `templates/error-contents.md` | 示範列改成示範區塊:H2 標題就是異常頁頁名,時間、頁名、存取庫名稱、觸發 hook、退出碼、摘要六個欄位改成標題底下的一層條列,引言的寫入語意跟著從「一列」改成「一個區塊」 | | `tools/report-error.sh` | 目錄頁不再由本腳本自己讀回、附加、整頁寫回:改成只組出自己那一個 H2 區塊,交給 `jsc-gitea/tools/wiki-contents.sh upsert` 做讀回、比對與整頁寫回,目錄頁格式與「讀得回舊內容才寫」的判斷收回一份正本。同時移除目錄專用存取庫的解析(改由那支工具自己解),摘要不再替換半形豎線而是把換行併成一行,降級路徑補上「那支工具不在磁碟上」這一種 | | `skills/hooks-install/SKILL.md` | 步驟三的失敗回報敘述改寫成 H2 區塊條列,`row`、`cell` 一律換成 `block`、`bullet`,補上目錄頁交給 `wiki-contents.sh upsert` 這一段與新的降級原因 | | `references/behaviors.md` | `hooks-install` 的關鍵步驟、外部呼叫、完成條件、可驗證跡象四列同步:外部呼叫補上 `wiki-contents.sh upsert`,跡象改成「索引目錄頁補一個 H2 區塊、六條條列、『頁名』那一條帶連結、頁上不會有表格」 | | `README.md` | 工具表與範本表的說明、`JSC_WIKI_REPO_CONTENTS` 那一列的說明同步改成區塊條列與新的委派關係 | | `plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` | 三份 manifest 版號由 0.4.1 同步升到 0.4.2,版本閘門才擋得下落後的安裝端 | ## 設計重點 - 目錄頁的版面只留一份正本。十幾個目錄頁原本各自在自己的腳本裡寫一套「讀回舊頁、比對、整頁寫回」的判斷,錯一次就少一筆紀錄,每一頁長出來的樣子也不一樣。本存取庫這一支改成只組出自己那一個區塊,其餘全部交給 `jsc-gitea/tools/wiki-contents.sh`。 - 傳給那支工具的 `2` 是 key-col:舊表格版目錄頁裡持有內容頁連結的那一欄的序號。舊版第 2 欄是頁名,舊頁自動轉條列時要靠它取 H2 標題;頁面已經是條列格式時這個參數用不到。 - 降級語意一字不變:異常頁的存取庫解不出來就整支安靜降級;只有目錄頁那邊出問題——那支工具回 3,或那支腳本不在磁碟上——就只寫異常頁、跳過目錄頁、仍回 exit 0。一份寫得成的異常紀錄,不該因為索引沒地方放就整份丟掉。其餘非零結束碼一律以 exit 4 回報。 - H2 標題不放連結也不放網址,只寫頁名。頁名由存取庫名稱、hook 與時間決定,換主機或改存取庫都動不到它,比對鍵才找得到既有那一筆。 - 摘要改成把換行併成一行,不再替換半形豎線:條列不像表格欄位會被半形豎線切斷,但換行會把一條拆成兩行。 ## 測試結果 - `sh -n tools/report-error.sh` — exit 0 - `sh /root/plugins/meta/tools/ste100-lint.sh` — exit 0 - `sh /root/plugins/meta/tools/lint-scripts.sh` — exit 0,20 支通過(1 支判定為函式庫) - `sh /root/plugins/meta/tools/check-link-format.sh` — exit 0,7 份文件連結全部合格 - `sh /root/plugins/meta/tools/lint-frontmatter.sh` — exit 0,2 支通過 - `sh /root/plugins/meta/tools/sync-skill-manifest.sh` — exit 0,三份 manifest 升到 0.4.2,README 技能目錄無新增或移除 - `STDIN_JSON="" sh hooks/comment-scope.sh sweep` — exit 0 - `sh /root/plugins/meta/tools/check-behaviors.sh` — exit 1,唯一一項是 `repair` 那一節的「可驗證跡象」沒寫到收尾事件。這一項在本分支的基底上就已經是這個結果(把基底整棵樹取出來單獨跑,回報一字不差),與本次改動無關,修它屬於另一支在飛的變更的範圍,這裡不動。 ## 前置 Push Request - [plugins/gitea 的目錄頁工具改寫](https://gitea.jsc.idv.tw/plugins/gitea/pulls/52) 必須先合。實際的轉檔與 upsert 邏輯全部在 `gitea/tools/wiki-contents.sh`,本存取庫只改敘述、範本與委派呼叫。前置沒合就先部署這一支,範本組出來的 H2 區塊會被舊版工具當成表格列附加到表格後面。已以 `gitea.sh pr-depend` 掛上依賴。 - 另外要注意:本存取庫另有一支尚未合併的 [PR #78](https://gitea.jsc.idv.tw/plugins/hooks/pulls/78) 改到同一批檔案——`references/behaviors.md` 與 `skills/hooks-install/SKILL.md` 兩份都在兩邊的變更範圍內。本支的改動是在 `develop` 上手動重做的,並非從那條分支挑揀,所以 PR #78 之後合併時這兩份檔案需要解衝突。
jiantw83 added 2 commits 2026-09-02 10:03:47 +00:00
What:
異常目錄頁的版面從 markdown 表格改成一筆異常一個 H2 區塊,標題就是那一筆的異常頁頁名,時間、頁名、存取庫名稱、觸發 hook、退出碼、摘要六個欄位改成標題底下的一層條列,頁上不再留任何表格。失敗回報腳本不再自己讀回舊頁、附加新列、整頁寫回,改成只組出自己那一個區塊,交給 jsc-gitea 的目錄頁工具做讀回、比對與整頁寫回。範本、技能敘述、行為清單與說明文件一併對齊。

Why:
目錄頁有十幾份,各自在自己的腳本裡寫一套「讀得回舊內容才寫」的判斷,錯一次就少一筆紀錄,而且每一頁長出來的樣子都不一樣。版面與寫入語意收回一份正本之後,改一次全部跟著改。表格欄位遇到換行或半形豎線還會被切斷,條列沒有這個問題。

How:
失敗回報腳本移除目錄專用存取庫的解析與整頁組裝,改為組出區塊檔之後呼叫共用工具的 upsert,並依它的結束碼分流:3 是目錄頁的存取庫沒設定,找不到那支腳本也走同一條,兩者都只寫異常頁、跳過目錄頁、仍回 0;其餘非零一律以 4 回報。摘要不再替換半形豎線,改成把換行併成一行。傳進去的欄位序號 2 指舊表格版持有內容頁連結的那一欄,只供舊頁自動轉條列時取標題用。

Who:
使用 jsc-hooks 失敗回報流程的操作者,以及所有讀異常目錄頁追問題的人。
What:
三份 plugin manifest 的版號由 0.4.1 同步升到 0.4.2,README 的技能目錄確認沒有新增或移除小節。

Why:
版本閘門比對相依版本時看的是 manifest 版號。改了內容卻不升版,安裝端拿到新檔案卻還是舊版判定,落後的一方擋不下來。

How:
以 jsc-meta 的技能清單同步工具一次改三份,結束碼 0,避免三份版號各自手改而對不起來。

Who:
安裝或更新 jsc 技能組的操作者。
admin closed this pull request 2026-09-07 00:52:38 +00:00
admin reopened this pull request 2026-09-07 00:53:03 +00:00
jiantw83 added 2 commits 2026-09-07 01:11:24 +00:00
三份 manifest 取 develop 的版號再往上升一版:分支停在一個比 develop 舊的版號。

行為清單那一節四列兩邊都改過,但改的是不同層面:分支改「目錄頁怎麼寫」——索引
從表格列變成一個報告一個大標題區塊、寫入語意委派給共用工具;develop 改「根目錄
怎麼解」——前置步驟解出兩條字面絕對路徑再拿去叫工具。逐列用差異區間比對過,
兩邊在共同基底上動到的位置完全不重疊,所以照基底的座標把兩組改動一起套回去,
不是取其中一邊。

技能本文那一段同理:分支把整段改寫成區塊語意,develop 只在指令路徑前面補了
根目錄前綴。取分支那一版再補上前綴。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0.4.6 讓給另一張同時要合併的。兩張都動到行為清單同一節,順序定下來之後
這一張排第二,版號跟著讓開。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
jiantw83 added a new dependency 2026-09-07 01:11:35 +00:00
jiantw83 added 1 commit 2026-09-07 01:16:25 +00:00
三份 manifest 取 develop 的版號再往上升一版。

行為清單那一節第二次解:另一張同樣動這一節的先合併了,所以基底換過,重新
比對一次。這一次 develop 那一邊多了收尾事件的說明,分支這一邊還是「目錄頁
從表格列改成大標題區塊」。逐列用差異區間比對過,兩邊在共同基底上動到的位置
仍然完全不重疊,所以照基底的座標把兩組改動一起套回去。

合完之後三方的內容都在:這張的區塊語意、另一張的收尾事件、develop 的根目錄
解析。技能本文這一次自動合併就過了,沒有衝突。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
admin merged commit 248bc90fc2 into develop 2026-09-07 01:22:56 +00:00
admin deleted branch feat/contents-list/main 2026-09-07 01:22:56 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Reference: plugins/hooks#79