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 技能,以及技能驗證流程。
2.1 KiB
2.1 KiB
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} 時無寫入跡象,只有回報內容。 |