docs(wiki skills): 禁止覆蓋目錄頁內容
This commit is contained in:
@@ -28,6 +28,7 @@ argument-hint: "[--wiki-repo <owner/repo>] [--index CONTENTS] [--project <計畫
|
||||
- 目錄頁 title 預設固定為 `CONTENTS`,不詢問使用者;只有使用者明確提供 `--index` 時才覆蓋預設值。
|
||||
- 計畫頁 title 預設固定為 `PLAN-{yyyyMMdd}-{HASH}`,不詢問使用者;`yyyyMMdd` 使用 Asia/Taipei 當日日期,`HASH` 由已確認的計畫內容、計畫名稱或需求摘要產生穩定短雜湊並轉成全大寫。
|
||||
- 加入目錄頁時,先從計畫內容尋找系統名稱;若無明確系統名稱,依計畫目標產生一個精簡系統名稱。目錄標題使用 `{系統名稱}-計畫`,並連結到計畫頁。
|
||||
- 目錄頁禁止整頁覆蓋:不存在時才新建;存在時必須保留既有內容,只修改本計畫既有列或在既有表格附加新列。
|
||||
- **不落地絕對規則**:不得建立本機 `plan.md`、`todo.md`、`.md` 草稿、暫存 JSON body、wiki clone、或任何用來傳遞中間成果的檔案;中間成果只存在於對話內容與 Gitea wiki API request body。不得使用 `curl --data @file`。
|
||||
- 使用者已用參數指定 `--wiki-repo`、`--index`、`--project`、`--page` 時跳過對應詢問。
|
||||
- 每一輪使用者回答後都要同步 wiki。同步失敗時停止下一輪詢問,先回報錯誤與待使用者處理的點。
|
||||
@@ -60,11 +61,11 @@ argument-hint: "[--wiki-repo <owner/repo>] [--index CONTENTS] [--project <計畫
|
||||
1. 依 `spec-gitea` 分頁讀取 `GET /repos/<owner>/<repo>/wiki/pages`。
|
||||
2. 以 title 查表取得目錄頁與計畫頁的 `sub_url`,不得自行猜測轉義規則。
|
||||
3. 讀取頁面:`GET /repos/<owner>/<repo>/wiki/page/<sub_url>`,將 `content_base64` 解成 UTF-8 Markdown。
|
||||
4. 目錄頁不存在時在記憶中組出符合「目錄頁格式」的內容;計畫頁不存在時在記憶中組出目前計畫草稿。不得先寫成本機檔案。
|
||||
4. 目錄頁不存在時在記憶中組出符合「目錄頁格式」的新頁內容;目錄頁存在時不得用預設格式覆蓋整頁,只能保留原內容後修改或附加本計畫目錄列。計畫頁不存在時在記憶中組出目前計畫草稿。不得先寫成本機檔案。
|
||||
|
||||
## 目錄頁格式
|
||||
|
||||
目錄頁必須維持下列結構;更新時保留既有列,只新增或更新本計畫相關列:
|
||||
目錄頁不存在時建立下列結構;更新既有目錄頁時禁止整頁覆蓋,必須保留既有標題、說明、表格與其他內容,只新增或更新本計畫相關列:
|
||||
|
||||
```markdown
|
||||
# CONTENTS
|
||||
@@ -78,7 +79,7 @@ argument-hint: "[--wiki-repo <owner/repo>] [--index CONTENTS] [--project <計畫
|
||||
產出日期:yyyy-MM-dd
|
||||
```
|
||||
|
||||
若目錄頁已存在且不是單一計畫專用目錄,仍以同一張 `| 頁面 | 內容 |` 表格為準:保留原標題與說明,只在表格中 upsert 本計畫頁面列。連結文字固定為 `<系統名稱>-計畫`;連結 target 用 `encodeURIComponent(title).replace(/%20/g, "%20")` 的結果,不使用 API `sub_url` 反推人工連結。
|
||||
若目錄頁已存在且不是單一計畫專用目錄,仍以同一張 `| 頁面 | 內容 |` 表格為準:保留原標題與說明,只在表格中 upsert 本計畫頁面列。若既有目錄頁沒有 `| 頁面 | 內容 |` 表格,附加一段新的目錄表格到頁面末尾,不得刪除或重排既有內容。連結文字固定為 `<系統名稱>-計畫`;連結 target 用 `encodeURIComponent(title).replace(/%20/g, "%20")` 的結果,不使用 API `sub_url` 反推人工連結。
|
||||
|
||||
## 計畫頁格式
|
||||
|
||||
@@ -127,7 +128,7 @@ argument-hint: "[--wiki-repo <owner/repo>] [--index CONTENTS] [--project <計畫
|
||||
每輪同步順序固定:
|
||||
|
||||
1. 更新計畫頁。
|
||||
2. 更新目錄頁,確保表格中有本計畫頁連結與摘要;目錄列標題使用 `<系統名稱>-計畫`。
|
||||
2. 更新目錄頁:不存在才建立;存在時禁止整頁覆蓋,只修改既有 `<系統名稱>-計畫` 列,或在既有表格/頁末附加新列,確保有本計畫頁連結與摘要。
|
||||
3. 再次讀回兩個頁面確認內容已更新。
|
||||
|
||||
API 寫入方式:
|
||||
|
||||
@@ -35,6 +35,7 @@ argument-hint: "[--source <需求描述|檔案路徑|議題編號>] [--impl-mode
|
||||
- TODO 頁 title 預設固定為 `TODO-{yyyyMMdd}-{HASH}`,不詢問使用者;`yyyyMMdd` 使用 Asia/Taipei 當日日期,`HASH` 由需求彙整、關聯計畫或系統名稱產生穩定短雜湊並轉成全大寫。
|
||||
- 必須詢問使用者是否需要把本 TODO 連結到計畫;使用者回答不需要時,不更新目錄頁,也不要把 TODO 加到目錄。
|
||||
- 需要加入目錄頁時,目錄標題使用 `{關聯計畫的系統名稱}-代辦`,並連結到 TODO 頁。系統名稱優先從關聯計畫取得;若沒有關聯計畫,從需求內容尋找或產生系統名稱。
|
||||
- 目錄頁禁止整頁覆蓋:不存在時才新建;存在時必須保留既有內容,只修改本 TODO 既有列或在既有表格附加新列。
|
||||
|
||||
## 參數
|
||||
|
||||
@@ -123,7 +124,7 @@ scope: <階段 2 產出的 scope>
|
||||
1. 依 `spec-gitea` 決定 host 與 token,不輸出 token。
|
||||
2. 確認 `--wiki-repo`;缺少就詢問。`--wiki-index` 未帶時固定使用 `CONTENTS`,`--wiki-page` 未帶時固定使用 `TODO-{yyyyMMdd}-{HASH}`。
|
||||
3. 詢問使用者是否需要把本 TODO 連結到計畫。若不需要,記錄為「不更新目錄頁」;若需要,確認或產生關聯計畫的系統名稱,用於目錄列標題。
|
||||
4. 分頁讀取 `GET /repos/<owner>/<repo>/wiki/pages`,以 title 查表取得 todo 頁 `sub_url`;若需要連結到計畫,也取得目錄頁 `sub_url`。不得為了找頁面自行猜測 title 轉義規則。
|
||||
4. 分頁讀取 `GET /repos/<owner>/<repo>/wiki/pages`,以 title 查表取得 todo 頁 `sub_url`;若需要連結到計畫,也取得目錄頁 `sub_url`。目錄頁不存在時才建立;目錄頁存在時必須讀取原內容並保留,不得用新目錄內容整頁覆蓋。不得為了找頁面自行猜測 title 轉義規則。
|
||||
5. 讀取既有 todo 頁;若不存在,策略為「建立」。
|
||||
6. 既有 todo 頁存在時解析 frontmatter:
|
||||
|
||||
@@ -141,7 +142,7 @@ scope: <階段 2 產出的 scope>
|
||||
同步順序固定:
|
||||
|
||||
1. 寫入 todo 頁。
|
||||
2. 若使用者確認需要連結到計畫,upsert 目錄頁表格列;若使用者回答不需要,跳過目錄頁更新。
|
||||
2. 若使用者確認需要連結到計畫,upsert 目錄頁表格列:目錄頁不存在才建立;存在時禁止整頁覆蓋,只修改既有 `<關聯計畫的系統名稱>-代辦` 列,或在既有表格/頁末附加新列。若使用者回答不需要,跳過目錄頁更新。
|
||||
3. 讀回 todo 頁確認內容已更新;有更新目錄頁時也讀回目錄頁確認。
|
||||
|
||||
目錄頁表格列格式:
|
||||
@@ -150,6 +151,8 @@ scope: <階段 2 產出的 scope>
|
||||
| [<關聯計畫的系統名稱>-代辦](<todo page title percent-encoded>) | todo wiki:<關聯計畫的系統名稱> 代辦——執行規則、需求彙整、分群任務與驗收條件 |
|
||||
```
|
||||
|
||||
若既有目錄頁沒有 `| 頁面 | 內容 |` 表格,附加一段新的目錄表格到頁面末尾,不得刪除或重排既有內容。
|
||||
|
||||
API 寫入方式:
|
||||
|
||||
- 建立新頁:`POST /repos/<owner>/<repo>/wiki/new`,body 帶 `title`、`content`、`message`。
|
||||
|
||||
Reference in New Issue
Block a user