From bc0fcd767a8f8fbf806f8dddf8ad9a7de9c8e319 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Fri, 21 Aug 2026 13:08:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(ask):=20=E5=8C=AF=E5=85=A5=20jsc-ask=20?= =?UTF-8?q?=E6=8A=80=E8=83=BD=E7=B5=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- skills/ask/SKILL.md | 29 +++++++++++++++++++++++++++++ templates/question-contents.md | 7 +++++++ templates/question-record.md | 15 +++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 skills/ask/SKILL.md create mode 100644 templates/question-contents.md create mode 100644 templates/question-record.md diff --git a/skills/ask/SKILL.md b/skills/ask/SKILL.md new file mode 100644 index 0000000..9cdd8c5 --- /dev/null +++ b/skills/ask/SKILL.md @@ -0,0 +1,29 @@ +--- +name: ask +description: Decision-tree questioning until no doubt remains. Check wiki QUESTION_CONTENTS and QUESTION_{HASH} first and never re-ask answered questions. Every option must state its impact scope. After each answer, save the record back to the wiki. Use whenever a jsc skill needs user input; skip recording when no {owner}/{repo} is known. +--- + +# ask — 決策樹問詢 + +所有 jsc 技能需要問使用者時,一律依本技能的規則進行。 + +## 問前檢查 + +1. 確認目前工作的存取庫名稱 `{owner}/{repo}`;沒有就跳過第 2、3 步,直接問但**不紀錄**。 +2. 計算 `HASH`:`printf '%s' "{owner}/{repo}" | sha1sum | cut -c1-8 | tr a-f A-F`。 +3. 經由 `jsc-gitea:wiki` 讀取 `QUESTION_CONTENTS` 與 `QUESTION_{HASH}`;**問詢紀錄已有答案的問題不得再問**,直接採用紀錄的答案。 + +## 問詢規則 + +1. 問題採決策樹的**選項方式**呈現(AskUserQuestion 或等效選單),一次一個決策點。 +2. 一題只含**一個概念**,不問複合題;重要的決策點先問(可能只有一次問答機會)。 +3. 每個選項都必須告知**影響範圍**(選了會發生什麼、影響哪些檔案或流程);容易被誤讀的問題加一行「為什麼重要」。 +4. 依上一題答案決定下一題,直到沒有疑慮;只要還有未決事項就繼續問。 +5. 只問使用者才能回答的事;程式碼、設定檔、環境變數可查到的答案自己查。 + +## 問後紀錄 + +1. 沒有存取庫名稱就不紀錄,結束。 +2. 每次問答完成,套用 `templates/question-record.md` 建立或更新 `QUESTION_{HASH}`(附加新問答,不覆蓋舊紀錄)。 +3. 套用 `templates/question-contents.md` 建立或更新 `QUESTION_CONTENTS`(該存取庫的列不存在就新增,存在就更新最後更新時間)。 +4. 以上 wiki 寫入**必須以 sub agent 執行**,主 agent 只確認寫入成功。 diff --git a/templates/question-contents.md b/templates/question-contents.md new file mode 100644 index 0000000..4305303 --- /dev/null +++ b/templates/question-contents.md @@ -0,0 +1,7 @@ +# 問詢目錄 + +> 由 `jsc-ask:ask` 維護。每個存取庫一列;`QUESTION_{HASH}` 的 `{HASH}` 為 `{owner}/{repo}` 的 SHA-1 前 8 碼(大寫)。 + +| 存取庫名稱 | 問詢紀錄 | 最後更新 | +| --- | --- | --- | +| {owner}/{repo} | [[QUESTION_{HASH}]] | {yyyy-MM-dd HH:mm} | diff --git a/templates/question-record.md b/templates/question-record.md new file mode 100644 index 0000000..496065c --- /dev/null +++ b/templates/question-record.md @@ -0,0 +1,15 @@ +# 問詢紀錄 — {owner}/{repo} + +> 由 `jsc-ask:ask` 維護。新問答**附加**在文末,不覆蓋舊紀錄。相同問題再次出現時,直接採用此處答案,不再詢問。 + +## {yyyy-MM-dd HH:mm} {問詢主題} + +### Q1: {問題} + +| 選項 | 影響範圍 | +| --- | --- | +| {選項 A} | {影響範圍} | +| {選項 B} | {影響範圍} | + +- **答案**: {使用者答案} +- **時間**: {yyyy-MM-dd HH:mm}