refactor(spec-wiki-contents): 目錄頁 check 欄改用 ●/○,取代 [ ]/[x]

GFM 任務清單語法只在 Markdown 清單項目生效,放進表格儲存格只會被渲染成字面
文字,改用 ●(已完成/已產生)/○(未完成/未產生)避免這個問題;
plan-wiki/todo-wiki/do-wiki 三個消費端同步更新描述,計畫頁/代辦頁自己的
checklist(- [ ]/- [x])不受影響、原樣保留。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 15:12:06 +08:00
co-authored by Claude Sonnet 5
parent 1224fd8ab7
commit e83b4ff4f3
4 changed files with 16 additions and 15 deletions
+4 -4
View File
@@ -1,6 +1,6 @@
---
name: do-wiki
description: 讀取 `todo-wiki` 產生、帶鎖定模型 frontmatter 的 Gitea wiki TODO 頁並逐項執行:開工前先讀目錄頁挑一份「已完成」為未勾選的代辦(沒有就直接結束);檢查頁面 `## 0.` 的六條強制規則並比對當前模型,不符就停止;讀取需求彙整與既有 checklist(已勾選視為完成不重做);逐項執行——完成一項就地把 `- [ ]` 改 `- [x]` 並補上完成時間,立即回寫該 wiki 頁並讀回確認成功才能繼續下一項,任一步失敗立刻停止;全部項目完成後回目錄頁把該代辦列「已完成」改為 `[x]`。當使用者說要執行 wiki TODO、跑 do-wiki、依 wiki 清單實作、接手某份 Gitea wiki 代辦、或提到 do-wiki skill 時觸發。不適用於:把需求分析並產生 TODO 清單同步到 wiki(用 `/jsc-shared:todo-wiki`)、逐步建立計畫並同步 wiki(用 `/jsc-shared:plan-wiki`)。
description: 讀取 `todo-wiki` 產生、帶鎖定模型 frontmatter 的 Gitea wiki TODO 頁並逐項執行:開工前先讀目錄頁挑一份「已完成」為未勾選的代辦(沒有就直接結束);檢查頁面 `## 0.` 的六條強制規則並比對當前模型,不符就停止;讀取需求彙整與既有 checklist(已勾選視為完成不重做);逐項執行——完成一項就地把 `- [ ]` 改 `- [x]` 並補上完成時間,立即回寫該 wiki 頁並讀回確認成功才能繼續下一項,任一步失敗立刻停止;全部項目完成後回目錄頁把該代辦列「已完成」改為 `●`。當使用者說要執行 wiki TODO、跑 do-wiki、依 wiki 清單實作、接手某份 Gitea wiki 代辦、或提到 do-wiki skill 時觸發。不適用於:把需求分析並產生 TODO 清單同步到 wiki(用 `/jsc-shared:todo-wiki`)、逐步建立計畫並同步 wiki(用 `/jsc-shared:plan-wiki`)。
argument-hint: "[--wiki-repo <owner/repo>] [--wiki-index CONTENTS] [--wiki-page <既有 TODO 頁 title>] [--yes]"
---
@@ -15,7 +15,7 @@ argument-hint: "[--wiki-repo <owner/repo>] [--wiki-index CONTENTS] [--wiki-page
| 2. 檢查強制規則 | 解析 `## 0.` 區塊六條規則,比對當前模型 | 相符才繼續,不符則停止 |
| 3. 了解需求彙整 | 讀 frontmatter `scope` 與需求段落,盤點既有 checklist | 待執行項目清單 |
| 4. 逐項執行並即時回寫 | 單項循環:執行 → 勾選 → 回寫 → 讀回確認 | 全部項目完成的 TODO 頁 |
| 收尾 | 回目錄頁把該代辦列「已完成」改 `[x]` | 讀回確認成功的目錄頁 |
| 收尾 | 回目錄頁把該代辦列「已完成」改 `●` | 讀回確認成功的目錄頁 |
## 共用規範(必要前置)
@@ -38,7 +38,7 @@ argument-hint: "[--wiki-repo <owner/repo>] [--wiki-index CONTENTS] [--wiki-page
1. 依 `spec-gitea` 決定 host 與 token;確認 `--wiki-repo`,缺少就詢問使用者,不臆測。
2. `--wiki-page` 已帶(或使用者已於對話明確指定頁面)時,依 `spec-ask-user`「已知答案時跳過詢問」直接查表取得該 title 對應的 `path`,跳過本階段其餘步驟進入階段 1;只有查表找不到該 title 時,才回頭走本階段清單並提示原指定值無效,不得臆測頁面。
3. 依 `spec-gitea` 分頁查表讀取目錄頁(title 預設 `CONTENTS`,或 `--wiki-index` 指定值),依 `spec-wiki-contents`〔目錄頁格式〕掃描**所有系統的 `## ` 段落**,取出每個段落中所有「`代辦`欄非空、`是否已完成`為 `[ ]`」的列,記下其所屬系統(該段落標題)供候選標示用。
3. 依 `spec-gitea` 分頁查表讀取目錄頁(title 預設 `CONTENTS`,或 `--wiki-index` 指定值),依 `spec-wiki-contents`〔目錄頁格式〕掃描**所有系統的 `## ` 段落**,取出每個段落中所有「`代辦`欄非空、`是否已完成`為 `○`」的列,記下其所屬系統(該段落標題)供候選標示用。
4. **沒有未完成代辦就直接結束**:目錄頁不存在、目錄頁沒有任何系統段落、或所有段落的候選列皆為空,一律輸出 `[yyyy/MM/dd HH:mm:ss][代辦盤點][INF]: 目錄頁沒有未完成的代辦,本次不進行任何修改。` 後結束,不讀取任何 TODO 頁、不修改任何檔案或 wiki。
5. 有未完成代辦時,依 `spec-ask-user` 以**單選**呈現,候選標示為「{系統名稱}:{代辦內容摘要}」(候選 ≤4 用 `AskUserQuestion` 並含「其他」,>4 改文字編號列出);選定列`代辦`欄連結的 `path` 直接作為階段 1 的讀取目標,不得再自行推導轉義。
@@ -77,7 +77,7 @@ argument-hint: "[--wiki-repo <owner/repo>] [--wiki-index CONTENTS] [--wiki-page
## 收尾:全部完成後回寫目錄頁「已完成」
1. 只有本次 TODO 頁**所有**項目皆為 `- [x]` 時才可進行;只要還有未勾項目就不得勾選目錄頁。
2. 依 `spec-wiki-contents`〔回寫規則〕,回目錄頁把該 TODO 列的「已完成」由 `[ ]` 改為 `[x]`。
2. 依 `spec-wiki-contents`〔回寫規則〕,回目錄頁把該 TODO 列的「已完成」由 `○` 改為 `●`。
3. 讀回目錄頁確認寫入成功;失敗則停止並回報,不得視為已完成。
## 呼叫方式