jiantw83 232eb36158 fix(ask): 補上失敗退出碼分流並改正規範指標
What
- 產生 HASH 的指令失敗時,依退出碼分流處理。
- 讀取問詢頁失敗時,依退出碼分流處理。
- 寫入目錄頁失敗時,依退出碼分流處理。
- 規範文件的指標改指向 jsc-meta 的 references/guidelines.md。
- 新增「Session cache」一節,兩頁在同一個工作階段只讀一次。
- wiki 存取庫在同一個工作階段只解析一次。
- 問後的三重完成條件收斂成一次確認。

Why
- 原本只寫「執行指令取得 HASH」。指令失敗時沒有指示,技能會自行硬算雜湊或猜測頁名,寫錯頁面。
- 「讀取失敗」與「頁面不存在」意義不同。不分流就把失敗當成沒有紀錄,重問使用者已經回答過的問題。
- 目錄頁由所有存取庫共用。讀不回舊內容還照樣整頁覆寫,會抹掉別的存取庫的列,而且沒有備份可救。
- 指標指向的規範檔案已經搬到 jsc-meta,舊指標讓讀者找不到來源。
- 兩頁在一個工作階段內只有本技能會寫。重複讀取只是多花往返時間。
- wiki 位置本身就是要問的問題,答案卻要寫進 wiki 才記得住。不把答案留在工作階段內,每次呼叫都得再問一次,永遠問不完。
- 完成條件重複確認同一件事,主代理得多讀兩次頁面才敢往下走。

How
- 取得 HASH 一步列明退出碼 0 與 1 的處理;其他非零退出碼一律停止執行,並回報退出碼與指令的錯誤輸出。
- 讀取一步把「頁面不存在」視為沒有紀錄,照常發問;其他失敗停止執行,並回報失敗頁名與退出碼。
- 寫入目錄頁一步依退出碼分流:正常就讀回整頁後更新單列,金鑰無效或無權限、以及其他 API 失敗都放棄寫入並回報。
- 新增「Session cache」一節,訂出首次讀取、後續沿用、寫入後更新副本、隨工作階段結束失效四個步驟。
- 解析 wiki 存取庫獨立成一步,答案留在工作階段內重複使用,收尾再建議使用者設定環境變數,永久結束追問。
- 兩份寫入交給同一個子代理,收斂成單一回報,主代理確認一次即可,不再回讀頁面驗證。
- 寫入失敗只重試該頁一次;再失敗就停止執行,回報未寫入的頁面與退出碼,答案仍交還呼叫端。
- 兩份範本的指標同步改指 jsc-meta。

Who
- 決策樹問詢技能 ask 的問前準備、問後紀錄流程,以及問詢紀錄頁範本。
2026-08-31 11:05:09 +08:00
2026-08-21 04:42:37 +00:00

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 描述需求自動觸發。

ask

決策樹問詢:一題一個決策點、選項標明影響範圍、問到沒有疑慮為止。問前查 QUESTION_CONTENTS 與 QUESTION_{HASH},其中 {HASH} 執行 jsc-gitea/tools/hash-id 產生;已有答案不再問;AI 取用舊答案時依意圖判斷適用性,意圖不符就重新問。問後套範本寫回 wiki,每節開頭記錄使用者意圖(沒有存取庫名稱就不記錄)。不適用於答案已有紀錄的情況。

範本

檔案 用途
templates/question-contents.md 問詢目錄 QUESTION_CONTENTS
templates/question-record.md 問詢紀錄 QUESTION_{HASH}

相關 domain

  • jsc-gitea:wiki 讀寫(jsc-gitea:wiki)
  • jsc-meta:技能準則 references/guidelines.md
S
Description
No description provided
Readme
183 KiB
Languages
Markdown 100%