Files
ask/README.md
jiantw83 e8294f3891 feat(ask): 問詢目錄頁改條列式並修正 key-col 參數
What:
把問詢目錄頁 `QUESTION_CONTENTS` 的呈現格式從 markdown 表格改成條列式——每個存取庫一個 H2 區塊,H2 標題就是該存取庫問詢紀錄頁的頁名 `QUESTION_{HASH}`,欄位改成標題底下一層條列 `- {欄位名}:{值}`,順序維持存取庫名稱、問詢紀錄、最後更新,整頁不再留任何 markdown 表格。同一輪把 `wiki-contents.sh upsert QUESTION` 的呼叫參數從 `1 {owner}/{repo}` 改成 `2 QUESTION_{HASH}`。改動落在 `templates/question-contents.md` 的版面與參數語意、`skills/ask/SKILL.md` 與 `references/behaviors.md` 的步驟敘述與可驗證跡象,以及 `README.md` 的技能描述。

Why:
表格版面一列塞滿所有欄位,欄位一長就難讀,每一筆的鍵也埋在儲存格裡;改成一筆一個 H2 區塊之後,鍵就是標題文字,人與工具都直接看得出哪一筆對應哪一個內容頁。`key-col` 原本填 `1`,指到的是純文字的存取庫名稱欄:舊表格自動轉條列時,工具會拿那一欄的連結產生 H2 標題,填 `1` 只會做出 `## plugins/meta` 這種標題,比不到鍵 `QUESTION_{HASH}`,既有那一筆會被當成新的附加上去,同一個存取庫在頁面上出現兩個區塊,舊區塊從此再也更新不到。

How:
`templates/question-contents.md` 的範本主體從表頭加資料列換成 `## QUESTION_{HASH}` 加三條 bullet,引言補上版面段與參數語意段,寫明 `{key}` 是 H2 標題文字、第四個參數帶的是整個區塊的 markdown 而不是單列。`skills/ask/SKILL.md` 把目錄頁那幾條的 row 敘述全部改成 block,呼叫式改為 `upsert QUESTION 2 QUESTION_{HASH} {block-file} templates/question-contents.md`,並說明 `key-col` 為什麼固定是 `2`、填 `1` 會壞成什麼樣,另外在 `wiki-contents.sh` 退 1 的分支補上「頁面上還沒有自己那個區塊不算失敗,那是附加的情形」。`references/behaviors.md` 的關鍵步驟補上區塊檔的組法與參數語意,外部呼叫改成單一 H2 區塊的讀取、合併、寫回,可驗證跡象改成檢查該區塊三條 bullet 的齊全度、順序、全形冒號與整頁不留表格,並補上舊表格轉條列後 H1 與 `>` 引言原樣保留、原有資料一筆不少。`README.md` 的技能描述同步改成條列式的說法。實際的轉檔與 upsert 邏輯在另一個存取庫的 `gitea/tools/wiki-contents.sh`,本存取庫只調整敘述與範本。

Who:
屬於 wiki 目錄頁一律改條列式呈現的需求,`ask` 這一支負責 `QUESTION_CONTENTS` 的範本與敘述。`key-col` 修正是同一個需求能正確落地的必要條件,且與版面敘述改在同一段文字上,無法拆成獨立提交。
2026-09-02 17:24:49 +08:00

44 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# jsc-ask — 決策樹問詢
jsc 技能組的問詢 domain:所有技能需要問使用者時的統一規則。以選項式決策樹詢問直到沒有疑慮,每個選項標明影響範圍;問前先查 wiki 問詢紀錄避免重複問,問後把答案寫回 `QUESTION_*` 頁。
## 安裝、更新、移除
Marketplace 統一為 `jsc`(https://gitea.jsc.idv.tw/plugins/meta.git),安裝 token 為 `jsc-ask@jsc`。每個指令一行:
| CLI | 安裝 | 更新 | 移除 |
| --- | --- | --- | --- |
| claude | `claude plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && claude plugin install jsc-ask@jsc` | `claude plugin marketplace update jsc && claude plugin update jsc-ask@jsc` | `claude plugin uninstall jsc-ask@jsc` |
| codex | `codex plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && codex plugin add jsc-ask@jsc` | `codex plugin marketplace upgrade jsc` | `codex plugin remove jsc-ask@jsc` |
| copilot | `copilot plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && copilot plugin install jsc-ask@jsc` | `copilot plugin marketplace update jsc && copilot plugin update jsc-ask@jsc` | `copilot plugin uninstall jsc-ask@jsc` |
| antigravity | `git clone https://gitea.jsc.idv.tw/plugins/ask.git ~/plugins/ask && agy plugin install ~/plugins/ask` | `git -C ~/plugins/ask pull && agy plugin uninstall jsc-ask && agy plugin install ~/plugins/ask` | `agy plugin uninstall jsc-ask` |
| kiro | `kiro-cli plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && kiro-cli plugin install jsc-ask@jsc` | `kiro-cli plugin marketplace update jsc && kiro-cli plugin update jsc-ask@jsc` | `kiro-cli plugin uninstall jsc-ask@jsc` |
> antigravity 不支援 gitea URL 安裝,改用本地 clone 路徑。批次操作五個 CLI:使用 `/jsc-cli:deploy`。
> 舊入口 `plugins/jsc` 已移除,marketplace 正本移到 `plugins/meta`。marketplace 名稱仍是 `jsc`(取自 marketplace.json 的 `name` 欄位,與存取庫名無關),安裝 token 不變;已從舊入口安裝過的人先執行 `claude plugin marketplace remove jsc`,再依上表重新 add。
## Skills 目錄
呼叫方式:Claude / Antigravity `/jsc-ask:{name}`;Codex `${name}`;Copilot / Kiro 描述需求自動觸發。
<!-- JSC-SKILLS:START -->
### `ask`
決策樹問詢:一題一個決策點、選項標明影響範圍、問到沒有疑慮為止。問前查 `QUESTION_CONTENTS` 與 `QUESTION_{HASH}`,其中 `{HASH}` 執行 `jsc-gitea/tools/hash-id` 產生,原樣採用它印出的完整 40 碼大寫十六進位,不截短、不加前綴;已有答案不再問;AI 取用舊答案時依意圖判斷適用性,意圖不符就重新問。兩頁分屬兩個存取庫:目錄頁 `QUESTION_CONTENTS` 走 `JSC_WIKI_REPO_CONTENTS`,紀錄頁 `QUESTION_{HASH}` 走 `JSC_WIKI_REPO_QUESTION`,兩者都退回 `JSC_WIKI_REPO`。兩頁在同一個工作階段只讀一次,之後沿用手上那份,自己寫入後就更新它;問出來的 wiki 存取庫也留在工作階段內重複使用。問後套範本寫回 wiki,紀錄頁每節開頭記錄使用者意圖,目錄頁是條列式:每個存取庫一個 H2 區塊,標題就是內容頁頁名 `QUESTION_{HASH}`,欄位一條一行,用 `jsc-gitea/tools/wiki-contents.sh upsert` 只改自己那個區塊、以絕對網址連到紀錄頁(沒有存取庫名稱就不記錄)。不適用於答案已有紀錄的情況。
<!-- JSC-SKILLS:END -->
## 範本
| 檔案 | 用途 |
| --- | --- |
| `templates/question-contents.md` | 問詢目錄 `QUESTION_CONTENTS` |
| `templates/question-record.md` | 問詢紀錄 `QUESTION_{HASH}` |
## 相關 domain
- [`jsc-gitea`](https://gitea.jsc.idv.tw/plugins/gitea):wiki 讀寫(`jsc-gitea:wiki`)
- [`jsc-meta`](https://gitea.jsc.idv.tw/plugins/meta):技能準則 `references/guidelines.md`