feat(ask): 匯入 jsc-ask 技能組並統一 marketplace 為 jsc #2

Merged
admin merged 10 commits from develop into master 2026-08-21 06:40:43 +00:00
3 changed files with 51 additions and 0 deletions
Showing only changes of commit bc0fcd767a - Show all commits
+29
View File
@@ -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 只確認寫入成功。
+7
View File
@@ -0,0 +1,7 @@
# 問詢目錄
> 由 `jsc-ask:ask` 維護。每個存取庫一列;`QUESTION_{HASH}` 的 `{HASH}` 為 `{owner}/{repo}` 的 SHA-1 前 8 碼(大寫)。
| 存取庫名稱 | 問詢紀錄 | 最後更新 |
| --- | --- | --- |
| {owner}/{repo} | [[QUESTION_{HASH}]] | {yyyy-MM-dd HH:mm} |
+15
View File
@@ -0,0 +1,15 @@
# 問詢紀錄 — {owner}/{repo}
> 由 `jsc-ask:ask` 維護。新問答**附加**在文末,不覆蓋舊紀錄。相同問題再次出現時,直接採用此處答案,不再詢問。
## {yyyy-MM-dd HH:mm} {問詢主題}
### Q1: {問題}
| 選項 | 影響範圍 |
| --- | --- |
| {選項 A} | {影響範圍} |
| {選項 B} | {影響範圍} |
- **答案**: {使用者答案}
- **時間**: {yyyy-MM-dd HH:mm}