五個階段目錄頁範本改成大標題加條列,四支技能的讀寫敘述同步 #60

Merged
admin merged 3 commits from feat/contents-list/main into develop 2026-09-02 10:00:55 +00:00
Member

摘要

  • 需求描述:所有 wiki 目錄頁(*_CONTENTS)的呈現格式從 markdown 表格改成大標題加條列。一筆紀錄一個 H2 區塊,H2 標題就是這一筆的鍵,欄位是標題底下的一層條列 - {欄位名}:{值},目錄頁上不留任何 markdown 表格。內容頁維持原本的圖表優先,不在本輪範圍。本存取庫有五個目錄頁要轉:計畫、分析、盤點、交付、維護;四支階段技能的讀取與寫入敘述跟著同步。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
templates/plan-contents.md 版面從表格改成一筆一個 H2 區塊,標題寫成計畫頁的實際頁名,欄位改成標題底下一層條列;引言補上版面段與鍵欄語意
templates/analyze-contents.md 同上,標題寫成分析頁的實際頁名
templates/repo-contents.md 同上,標題寫成盤點頁的實際頁名
templates/deliver-contents.md 同上,標題寫成交付頁的實際頁名
templates/maintain-contents.md 同樣轉條列,但這一型沒有內容頁,H2 標題改用該存取庫的 {owner}/{repo};引言寫明鍵欄是「存取庫」欄、第四個引數是區塊檔
skills/plan/SKILL.md 計畫目錄的寫入從「單列 upsert」改成單一 H2 區塊 upsert,鍵補上計畫頁的實際頁名
skills/analyze/SKILL.md 讀取敘述改成從 H2 區塊取值;分析目錄、計畫目錄與盤點目錄的寫入都改成單一區塊 upsert
skills/implement/SKILL.md 交付目錄與維護目錄的寫入改成單一區塊 upsert
skills/maintain/SKILL.md 維護目錄的讀取與回寫都改成 H2 區塊,鍵用該存取庫的 {owner}/{repo}
references/behaviors.md 四支技能的關鍵步驟、外部呼叫與可驗證跡象同步,跡象從「留下那一列」改成留下那一個 H2 區塊
references/consensus.md 查已答問題那一條補上問答目錄頁也是條列式版面,要從區塊取值而不是表格列
references/stage-report.md 目錄頁也算寫入那一段補上「改動一個區塊也算寫過那一頁」,並統一用 CONTENTS 這個型別餵進去
README.md 四支技能的流程敘述同步;wiki 規則段補上五個目錄頁的版面規則、鍵的落點與各頁鍵欄的正確序號
plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 版本號同步提升一個修訂號,安裝端才判得出手上的快取是舊的

設計重點

  • MAINTAIN 是唯一的例外,H2 標題用 {owner}/{repo} 而不是頁名。 其餘四型(計畫、分析、盤點、交付)的標題一律寫成該筆對應內容頁的實際頁名,也就是技能自己剛寫的那一頁;但 MAINTAIN 整個型別只有目錄頁、沒有內容頁——implement 只往那一頁附加登記、maintain 只讀那一頁再回寫前次維護時間,兩支都沒有產生 MAINTAIN_{HASH} 的步驟,templates/ 也沒有對應範本。所以這一型的鍵改用該存取庫的 {owner}/{repo}:存取庫名不會漂移,當鍵一樣穩;反過來硬造一個 MAINTAIN_{HASH} 式的標題,等於指向一個不存在的頁,點進去只會拿到空頁。
  • 五個頁型的鍵欄序號照線上那一頁實際的欄位排法寫定:計畫與分析在第 2 欄、交付在第 5 欄、盤點在第 2 欄、維護在第 1 欄(維護那一欄是「存取庫」,沒有連結欄,轉檔時取格子純文字)。本輪稽核抓到計畫、分析、交付、盤點四型原本填錯,已逐頁對回線上實際欄位。填錯的後果是靜默的:轉出來的標題跟鍵對不上,既有那一筆被當成新的附加到頁尾,同一筆變兩個區塊,舊區塊從此再也更新不到,而且不會有任何錯誤訊息。
  • 讀取端與寫入端要一起改。只改寫入敘述,技能還是會拿表格的解析方式去讀一頁條列,既有紀錄一筆都認不出來,等於每次都新增。
  • 本存取庫只改範本與敘述,一支腳本都沒動。舊表格頁的自動轉檔與單一區塊 upsert 的實作全部在前置那一支 PR 的 wiki-contents.sh。

測試結果

  • jsc-meta/tools/ste100-lint.sh:對本存取庫全部改動檔案退出 0,無中國用語、中文句內半形標點、AI 套話、簡體字與中文並列斜線。
  • jsc-hooks/hooks/comment-scope.sh sweep:退出 0,工作區沒有夾帶文件追蹤資訊的註解。
  • 未跑線上寫入驗證:實際的轉檔與 upsert 邏輯不在本存取庫,端到端驗證要等前置那一支合併並部署後才做得準。本存取庫這一輪只有 markdown,沒有可執行的單元測試。

前置 Push Request

  • plugins/gitea:wiki 目錄頁改成大標題加條列,舊表格讀到就自動轉檔
  • 那一支必須先合,本支才能部署。 實際的轉檔與單一區塊 upsert 邏輯全部在那一支的 wiki-contents.sh;那一支沒合就先部署本存取庫,本輪範本組出來的 H2 區塊會被舊版工具當成表格列直接附加到表格後面,線上目錄頁會變成半表格半條列。相依已用 gitea.sh pr-depend 掛上。
## 摘要 - 需求描述:所有 wiki 目錄頁(`*_CONTENTS`)的呈現格式從 markdown 表格改成大標題加條列。一筆紀錄一個 H2 區塊,H2 標題就是這一筆的鍵,欄位是標題底下的一層條列 `- {欄位名}:{值}`,目錄頁上不留任何 markdown 表格。內容頁維持原本的圖表優先,不在本輪範圍。本存取庫有五個目錄頁要轉:計畫、分析、盤點、交付、維護;四支階段技能的讀取與寫入敘述跟著同步。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `templates/plan-contents.md` | 版面從表格改成一筆一個 H2 區塊,標題寫成計畫頁的實際頁名,欄位改成標題底下一層條列;引言補上版面段與鍵欄語意 | | `templates/analyze-contents.md` | 同上,標題寫成分析頁的實際頁名 | | `templates/repo-contents.md` | 同上,標題寫成盤點頁的實際頁名 | | `templates/deliver-contents.md` | 同上,標題寫成交付頁的實際頁名 | | `templates/maintain-contents.md` | 同樣轉條列,但這一型沒有內容頁,H2 標題改用該存取庫的 `{owner}/{repo}`;引言寫明鍵欄是「存取庫」欄、第四個引數是區塊檔 | | `skills/plan/SKILL.md` | 計畫目錄的寫入從「單列 upsert」改成單一 H2 區塊 upsert,鍵補上計畫頁的實際頁名 | | `skills/analyze/SKILL.md` | 讀取敘述改成從 H2 區塊取值;分析目錄、計畫目錄與盤點目錄的寫入都改成單一區塊 upsert | | `skills/implement/SKILL.md` | 交付目錄與維護目錄的寫入改成單一區塊 upsert | | `skills/maintain/SKILL.md` | 維護目錄的讀取與回寫都改成 H2 區塊,鍵用該存取庫的 `{owner}/{repo}` | | `references/behaviors.md` | 四支技能的關鍵步驟、外部呼叫與可驗證跡象同步,跡象從「留下那一列」改成留下那一個 H2 區塊 | | `references/consensus.md` | 查已答問題那一條補上問答目錄頁也是條列式版面,要從區塊取值而不是表格列 | | `references/stage-report.md` | 目錄頁也算寫入那一段補上「改動一個區塊也算寫過那一頁」,並統一用 `CONTENTS` 這個型別餵進去 | | `README.md` | 四支技能的流程敘述同步;wiki 規則段補上五個目錄頁的版面規則、鍵的落點與各頁鍵欄的正確序號 | | `plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` | 版本號同步提升一個修訂號,安裝端才判得出手上的快取是舊的 | ## 設計重點 - **`MAINTAIN` 是唯一的例外,H2 標題用 `{owner}/{repo}` 而不是頁名。** 其餘四型(計畫、分析、盤點、交付)的標題一律寫成該筆對應內容頁的實際頁名,也就是技能自己剛寫的那一頁;但 `MAINTAIN` 整個型別只有目錄頁、沒有內容頁——`implement` 只往那一頁附加登記、`maintain` 只讀那一頁再回寫前次維護時間,兩支都沒有產生 `MAINTAIN_{HASH}` 的步驟,`templates/` 也沒有對應範本。所以這一型的鍵改用該存取庫的 `{owner}/{repo}`:存取庫名不會漂移,當鍵一樣穩;反過來硬造一個 `MAINTAIN_{HASH}` 式的標題,等於指向一個不存在的頁,點進去只會拿到空頁。 - 五個頁型的鍵欄序號照線上那一頁實際的欄位排法寫定:計畫與分析在第 2 欄、交付在第 5 欄、盤點在第 2 欄、維護在第 1 欄(維護那一欄是「存取庫」,沒有連結欄,轉檔時取格子純文字)。本輪稽核抓到計畫、分析、交付、盤點四型原本填錯,已逐頁對回線上實際欄位。填錯的後果是靜默的:轉出來的標題跟鍵對不上,既有那一筆被當成新的附加到頁尾,同一筆變兩個區塊,舊區塊從此再也更新不到,而且不會有任何錯誤訊息。 - 讀取端與寫入端要一起改。只改寫入敘述,技能還是會拿表格的解析方式去讀一頁條列,既有紀錄一筆都認不出來,等於每次都新增。 - 本存取庫只改範本與敘述,一支腳本都沒動。舊表格頁的自動轉檔與單一區塊 upsert 的實作全部在前置那一支 PR 的 `wiki-contents.sh`。 ## 測試結果 - `jsc-meta/tools/ste100-lint.sh`:對本存取庫全部改動檔案退出 0,無中國用語、中文句內半形標點、AI 套話、簡體字與中文並列斜線。 - `jsc-hooks/hooks/comment-scope.sh sweep`:退出 0,工作區沒有夾帶文件追蹤資訊的註解。 - 未跑線上寫入驗證:實際的轉檔與 upsert 邏輯不在本存取庫,端到端驗證要等前置那一支合併並部署後才做得準。本存取庫這一輪只有 markdown,沒有可執行的單元測試。 ## 前置 Push Request - [plugins/gitea:wiki 目錄頁改成大標題加條列,舊表格讀到就自動轉檔](https://gitea.jsc.idv.tw/plugins/gitea/pulls/52) - **那一支必須先合,本支才能部署。** 實際的轉檔與單一區塊 upsert 邏輯全部在那一支的 `wiki-contents.sh`;那一支沒合就先部署本存取庫,本輪範本組出來的 H2 區塊會被舊版工具當成表格列直接附加到表格後面,線上目錄頁會變成半表格半條列。相依已用 `gitea.sh pr-depend` 掛上。
jiantw83 added 3 commits 2026-09-02 09:26:02 +00:00
What
- `templates/plan-contents.md`、`templates/analyze-contents.md`、`templates/repo-contents.md`、`templates/deliver-contents.md`、`templates/maintain-contents.md` 的版面從 markdown 表格改成一筆一個 H2 區塊,欄位改成標題底下的一層條列。
- 四個有內容頁的型別,H2 標題寫成該筆對應內容頁的實際頁名;`MAINTAIN` 沒有內容頁,標題改用該存取庫的 `{owner}/{repo}`。
- 各範本的引言補上版面段,並把寫入語意從「單列 upsert」改寫成單一區塊 upsert,末端的示範資料改成一個完整的 H2 區塊。
- 引言裡寫明鍵欄的語意與各頁的正確序號,並點出填錯的靜默後果。

Why
- 目錄頁是全部使用者共用的索引。表格一寬就得橫向捲、欄位一多就對不上表頭,而且併行寫入時只要有人少打一根豎線,整張表就散掉,別人那一筆跟著看不見。
- 條列式一筆一個區塊,寫入端只換自己那一塊,壞掉也只壞自己那一塊。
- `MAINTAIN` 整個型別只有目錄頁,硬套內容頁頁名當標題會指向一個不存在的頁;存取庫名不會漂移,當鍵一樣穩。
- 鍵欄填錯時工具不會報錯,既有那一筆會被當成新的附加到頁尾,同一筆變兩個區塊,舊區塊從此再也更新不到,所以範本要把序號寫死。

How
- 一頁固定三段:H1 頁名、`>` 引言、然後每一筆一個 H2 區塊;欄位格式 `- {欄位名}:{值}`,全形冒號,順序照原本的欄位從左到右,鍵那一欄照樣留一條。
- 寫入示例統一成 `wiki-contents.sh upsert {TYPE} {鍵欄} "{鍵}" {區塊檔} [{本範本}]`,並註明第四個引數是整個 H2 區塊的 markdown,不是列檔。
- 頁上不留任何 markdown 表格;內容頁範本不在本輪範圍,維持圖表優先。

Who
- 影響照這五個範本寫目錄頁的四支階段技能。
- 舊表格頁的自動轉檔與單一區塊 upsert 的實作不在本存取庫,本存取庫只提供範本與敘述。
What
- `skills/plan`、`skills/analyze`、`skills/implement`、`skills/maintain`:目錄頁的讀取敘述改成從 H2 區塊取值,寫入敘述從「單列 upsert」改成單一 H2 區塊 upsert,鍵補上內容頁頁名這個引數,並註明第四個引數是區塊檔。
- `skills/maintain`:讀寫的鍵改成該存取庫的 `{owner}/{repo}`,因為這個型別沒有內容頁。
- `references/behaviors.md`:四支技能的關鍵步驟、外部呼叫與可驗證跡象同步,跡象從「留下那一列」改成留下那一個 H2 區塊。
- `references/consensus.md`:查已答問題那一條補上問答目錄頁也是條列式版面、要從區塊取值而不是表格列。
- `references/stage-report.md`:目錄頁也算寫入那一段補上「改動一個區塊也算寫過那一頁」,並統一用 `CONTENTS` 這個型別餵進去。
- `README.md`:四支技能的流程敘述與 wiki 規則段同步,並補上五個目錄頁的版面規則、鍵的落點與各頁鍵欄的正確序號。

Why
- 範本已經改成條列版面,技能內文還寫著「那一列」,執行時就會照舊敘述組出表格列,跟工具的單一區塊 upsert 對不上。
- 讀取端的敘述沒跟著改,技能會拿表格的解析方式去讀一頁條列,既有紀錄一筆都認不出來。
- 呼叫少帶鍵這個引數,工具無從判斷要換掉哪一個區塊,同一筆會被當成新的附加上去。
- 行為清單是稽核與驗證的比對基準,敘述沒跟上,稽核會拿舊描述判合規。

How
- 四支技能的呼叫一律寫成 `wiki-contents.sh upsert {TYPE} {鍵欄} "{鍵}" {區塊檔} [{範本}]`,各頁的鍵欄序號照線上那一頁實際的欄位排法寫定。
- 完成條件與可驗證跡象改用區塊的說法,連結範例改成 `- {欄位名}:[{頁名}]({連結})` 的形態。
- 只改敘述與說明,不動任何腳本;轉檔與 upsert 的實作在別的存取庫。

Who
- 本存取庫四支階段技能,以及讀這幾份說明檔決定共識判定與階段回報寫法的流程。
- 稽核與驗證流程改拿新的行為清單比對。
What
- `plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 的版本號同步提升一個修訂號。

Why
- 本輪改了五個範本與四支技能的內文,安裝端要靠版本號才判得出手上的快取是舊的。
- 三份資訊檔的版本號必須一致,任一份沒跟上,不同 CLI 會各自認到不同版本。

How
- 三份檔案只動版本號那一個欄位,其餘內容不變。

Who
- 各支 CLI 的安裝與更新流程,以及版本守門檢查。
admin merged commit 24f4d5e4a7 into develop 2026-09-02 10:00:55 +00:00
admin deleted branch feat/contents-list/main 2026-09-02 10:00:55 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Reference: plugins/sdlc#60