Files
ask/references/behaviors.md
T
jiantw83 8050cf3a4e feat(behaviors): 新增 jsc-ask 技能行為清單
What:新增 `references/behaviors.md`。內含 ask 一節。該節是一張五列表,欄位為觸發時機、關鍵步驟、外部呼叫、完成條件、可驗證跡象。頁首說明這份清單的用途,並要求技能異動時在同一個 PR 內一起更新。

Why:技能驗證原本沒有共同的比對基準,驗證結果隨人而異。先盤點所有技能組,替每支技能寫下行為基準,驗證時直接比對這份清單。清單放在 jsc-ask 自己的 repo,不集中在 meta。技能改動與清單落在同一個 PR,內容才不會漂移,也不必跨 repo 開兩條 PR 互卡。

How:逐項讀過 ask 技能的現有流程,抽出五個面向填進表格。觸發時機同時寫下不叫用的情況。關鍵步驟依實際執行順序排列。外部呼叫列出腳本、技能、工具與範本。完成條件寫下成功標準與三種停止執行的情況。可驗證跡象寫成外部看得到的結果,例如 wiki 頁面多一節、內容頁時間戳更新,驗證時不必讀技能原始碼。表格格式由 `jsc-meta/tools/check-behaviors.sh` 在程式層檢查。

Who:jsc-ask 的 ask 技能,以及技能驗證流程。
2026-08-31 13:36:10 +08:00

14 lines
2.1 KiB
Markdown
Raw 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-ask 每支技能的行為基準,供技能驗證比對。技能異動時,在同一個 PR 內一起更新這一頁。
## ask
| 項目 | 內容 |
| --- | --- |
| 觸發時機 | 任何 jsc 技能需要使用者做決定時叫用。答案已經寫在 `QUESTION_{HASH}` 且意圖相符時不叫用,直接採用舊答案。答案查得到程式碼、設定檔或環境變數時不叫用,自己去查。 |
| 關鍵步驟 | 確認目前工作的 `{owner}/{repo}`、執行 `jsc-gitea/tools/hash-id {owner}/{repo}` 取得 8 碼 `HASH`、每個工作階段解析一次 `QUESTION` wiki 存取庫、讀入 `QUESTION_CONTENTS` 與 `QUESTION_{HASH}` 並留成階段副本、把這一輪每一題標成「照紀錄回答」或「要問」、以決策樹選單一次問一個決策點且每個選項標明影響範圍、依答案決定下一題直到沒有疑慮、交一個 sub agent 先寫 `QUESTION_{HASH}` 再寫 `QUESTION_CONTENTS`、寫入後同步更新階段副本、把答案交回叫用的技能 |
| 外部呼叫 | `jsc-gitea/tools/hash-id`、`jsc-gitea:wiki`(`wiki-repo`、`wiki-get`、寫入)、AskUserQuestion 或等效選單、一個負責兩次 wiki 寫入的 sub agent;範本 `templates/question-record.md`、`templates/question-contents.md` |
| 完成條件 | 這一輪每一題都有答案,來源是紀錄或使用者;答案交回叫用的技能;有存取庫名稱時,sub agent 回報兩頁都寫成功,主代理接受那一次回報。沒有存取庫名稱時,問完直接交回答案,不寫任何頁。`hash-id` 找不到 SHA-1 工具、wiki 讀取非 exit 4 的失敗、重試後仍寫不進去,這三種情況停止執行並回報,其中寫入失敗仍把答案交回並註明沒有記錄。 |
| 可驗證跡象 | wiki `QUESTION_{HASH}` 頁尾多一節,開頭是使用者意圖,底下每題一張選項與影響範圍的表,附答案與時間;wiki `QUESTION_CONTENTS` 該存取庫那一列的「最後更新」變成這次執行的時間戳,沒有該列就新增一列。沒有 `{owner}/{repo}` 時無寫入跡象,只有回報內容。 |