15 Commits
Author SHA1 Message Date
jiantw83 e8294f3891 feat(ask): 問詢目錄頁改條列式並修正 key-col 參數
What:
把問詢目錄頁 `QUESTION_CONTENTS` 的呈現格式從 markdown 表格改成條列式——每個存取庫一個 H2 區塊,H2 標題就是該存取庫問詢紀錄頁的頁名 `QUESTION_{HASH}`,欄位改成標題底下一層條列 `- {欄位名}:{值}`,順序維持存取庫名稱、問詢紀錄、最後更新,整頁不再留任何 markdown 表格。同一輪把 `wiki-contents.sh upsert QUESTION` 的呼叫參數從 `1 {owner}/{repo}` 改成 `2 QUESTION_{HASH}`。改動落在 `templates/question-contents.md` 的版面與參數語意、`skills/ask/SKILL.md` 與 `references/behaviors.md` 的步驟敘述與可驗證跡象,以及 `README.md` 的技能描述。

Why:
表格版面一列塞滿所有欄位,欄位一長就難讀,每一筆的鍵也埋在儲存格裡;改成一筆一個 H2 區塊之後,鍵就是標題文字,人與工具都直接看得出哪一筆對應哪一個內容頁。`key-col` 原本填 `1`,指到的是純文字的存取庫名稱欄:舊表格自動轉條列時,工具會拿那一欄的連結產生 H2 標題,填 `1` 只會做出 `## plugins/meta` 這種標題,比不到鍵 `QUESTION_{HASH}`,既有那一筆會被當成新的附加上去,同一個存取庫在頁面上出現兩個區塊,舊區塊從此再也更新不到。

How:
`templates/question-contents.md` 的範本主體從表頭加資料列換成 `## QUESTION_{HASH}` 加三條 bullet,引言補上版面段與參數語意段,寫明 `{key}` 是 H2 標題文字、第四個參數帶的是整個區塊的 markdown 而不是單列。`skills/ask/SKILL.md` 把目錄頁那幾條的 row 敘述全部改成 block,呼叫式改為 `upsert QUESTION 2 QUESTION_{HASH} {block-file} templates/question-contents.md`,並說明 `key-col` 為什麼固定是 `2`、填 `1` 會壞成什麼樣,另外在 `wiki-contents.sh` 退 1 的分支補上「頁面上還沒有自己那個區塊不算失敗,那是附加的情形」。`references/behaviors.md` 的關鍵步驟補上區塊檔的組法與參數語意,外部呼叫改成單一 H2 區塊的讀取、合併、寫回,可驗證跡象改成檢查該區塊三條 bullet 的齊全度、順序、全形冒號與整頁不留表格,並補上舊表格轉條列後 H1 與 `>` 引言原樣保留、原有資料一筆不少。`README.md` 的技能描述同步改成條列式的說法。實際的轉檔與 upsert 邏輯在另一個存取庫的 `gitea/tools/wiki-contents.sh`,本存取庫只調整敘述與範本。

Who:
屬於 wiki 目錄頁一律改條列式呈現的需求,`ask` 這一支負責 `QUESTION_CONTENTS` 的範本與敘述。`key-col` 修正是同一個需求能正確落地的必要條件,且與版面敘述改在同一段文字上,無法拆成獨立提交。
2026-09-02 17:24:49 +08:00
jiantw83 df317adad8 feat(狀態回報): 收尾寫一筆 skill-end 事件
現行紀錄只記「被叫用」,沒有成敗也沒有結束碼。跑完整輪的技能與開場就
中止的技能,在紀錄裡長得一模一樣。

start 由技能用量 hook 順手發,不必改技能文件。end 只能由技能自己在收尾
步驟寫——hook 接在技能工具呼叫上,而實際工作發生在之後的模型輪次,它在
原理上看不到成敗。有 start 沒有配對的 end,就是那一輪中止了。

status 五選一,每支技能各自寫明什麼情況選哪一個。找不到回報腳本就安靜
跳過,回報失敗一律不改變技能自己的結論。
2026-09-02 16:01:12 +08:00
jiantw83 6bb37e5b11 feat(link): 連結一律寫成 [文字](絕對網址),寫入前先驗證連得到
取消 [[頁名]] 與 [[顯示文字|頁名]] 兩種同 wiki 寫法,不再分「同存取庫」與
「跨存取庫」兩條規則。那種寫法只在自己那個 wiki 內解析,寫錯不報錯,畫面上
看起來像普通文字或死連結,巡不到也修不了。

連結寫進頁面前先過 jsc-gitea 的 link-check.sh,結束碼 0 才寫。驗證一律走 API,
不看網頁狀態碼:私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把
好連結判成壞的。認證失敗回 7,與死連結的 1 分開,免得金鑰一過期就把還在的頁
整批判死。
2026-09-02 14:27:18 +08:00
jiantw83 682cc9cf02 feat(wiki): 目錄頁改走專用存取庫,HASH 改為完整 40 碼
What:QUESTION_CONTENTS 改由 wiki-repo CONTENTS 解析並透過 wiki-contents.sh
upsert 寫入,QUESTION_{HASH} 仍走 wiki-repo QUESTION。頁名雜湊改為完整 40 碼
大寫,不截短、不加前綴。目錄頁指向紀錄頁的連結改用 wiki-url 的絕對網址。

Why:目錄頁的用途是索引,散在各型別的存取庫就得逐庫翻。集中之後兩頁不再同庫,
[[...]] 只在同一個 wiki 內解析,所以連結必須改絕對網址。

How:目錄頁寫入失敗不再吞掉答案——JSC_WIKI_REPO_CONTENTS 在設定規格表是
fix=ask,只能靠這支技能問到值,答案掉了就永遠問不到,變數也永遠設不起來。
wiki-url 的 4、5、7、8 各自分流,取不到網址就整列不寫。

Who:jsc-ask
2026-09-02 11:00:12 +08:00
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
jiantw83andClaude Opus 5 8409da7bda fix(ask): 補齊稽核缺失並修掉護欄失效
What:依 jsc-meta:skill-check 的稽核結果修正技能與工具——補上每個步驟的可檢核完成條件、
把留在內文的標準輸入輸出流程下放 tools/、修正查表與退碼路由造成的誤判。

Why:稽核發現這些缺失會讓技能在實際執行時走錯分支或靜默通過。
完成條件缺漏是最常被違反的一項;退碼誤判與查表錯誤則會讓良性狀況被當成失敗。

How:逐項對照 references/guidelines.md 的審核檢查清單修正,新增的工具都有
documented exit codes,並以真實執行驗證每條路徑。

Who:jsc-meta:skill-check 例行稽核(2026-08-25)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 14:58:54 +08:00
jiantw83 f40b374342 fix(ask): 修正 skill-check 不合規項並升版至 0.0.3
What:修剪 SKILL.md 的 frontmatter description 至 5 句內並補上明確的排除
觸發語句;將 SKILL.md 與兩份範本中重述的 wiki hash 演算法說明,改為指向
canonical 的 `jsc-gitea/tools/hash-id` 工具;同步更新 README.md 的 Skills
目錄描述;三份 manifest 版本號自 0.0.2 升至 0.0.3。

Why:jsc-meta:skill-check 稽核發現 SKILL.md 的 description 超過 5 句且缺少
明確排除觸發語句,且 SKILL.md 與 question-contents.md、question-record.md
重複描述同一套 wiki hash 演算法,違反「委派 canonical 工具、不重複邏輯」
的準則。

How:改寫 skills/ask/SKILL.md 的 description 為精簡版並加入排除語句;三處
重述 hash 演算法的段落,統一改寫為呼叫 `jsc-gitea/tools/hash-id`(演算法
細節見 guidelines.md);README.md 的 ask 技能描述同步調整;plugin.json、
.claude-plugin/plugin.json、.codex-plugin/plugin.json 版本號 0.0.2 → 0.0.3。

Who:ask 技能本身(skills/ask/SKILL.md 與其範本、manifest)。
2026-08-24 14:46:37 +08:00
jiantw83andClaude Sonnet 5 ec44ec9201 merge: 合併 develop(統一 wiki hash 規則)到 feat/ask-question-record-intent
同時保留兩邊變更:develop 的共用 wiki hash 規則說明,與本分支的意圖欄讀寫規則。
README.md 與 skills/ask/SKILL.md 的衝突段落合併成單一句子,不遺漏任一邊的規則。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-24 01:52:50 +00:00
jiantw83 d922820451 fix(wiki): 統一 QUESTION wiki 命名與 hash 規則 2026-08-21 16:53:17 +00:00
jiantw83andClaude Fable 5 f8981d08ea feat(ask): 意圖欄供 AI 判斷使用者選擇動機並決定舊答案適用性
What:
補上意圖欄的讀取端行為。SKILL.md「Before asking」第 3 步要求 AI 取用舊答案時同時讀該節意圖,判斷答案是否適用當下情境、可否延伸到類似決策;意圖不符就重新詢問。「After asking」第 2 步點明意圖是給後續讀者判斷選擇動機用。範本佔位說明與 README 的 ask 段落同步。

Why:
上一輪只加了寫入端的意圖欄。使用者補充:意圖欄的目的是讓 AI 讀紀錄時能判斷使用者如此選擇的動機。缺了讀取端規則,AI 仍可能把舊答案硬套到情境不同的新決策上。

How:
SKILL.md 第 3 步句尾補兩句英文讀取規則,第 2 步「After asking」補半句呼應;templates/question-record.md 意圖欄佔位說明點出「供 AI 判斷選擇動機與答案適用性」;README.md ask 段落加一句「AI 取用舊答案時依意圖判斷適用性,意圖不符就重新問」。版本不變(0.0.2 尚未發布,同一條 PR)。

Who:
使用者於 jsc-ask 技能維護時提出;影響所有透過 jsc-ask:ask 取用舊答案的 jsc 技能。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 09:41:47 +00:00
jiantw83andClaude Fable 5 500890909a feat(ask): 問詢紀錄每節開頭必記使用者意圖
What:
templates/question-record.md 在每節標題下新增「意圖」欄。
skills/ask/SKILL.md 的 After asking 第 2 步補上 MUST 句,要求每節以使用者原始意圖開頭。
README.md 的 Skills 目錄同步更新 ask 技能描述。

Why:
使用者回顧 QUESTION_* wiki 頁時,只看得到選項與答案。
紀錄缺少提問動機,事後看不出當初為什麼問。
補上意圖欄,讓每輪問詢的來龍去脈一目了然。

How:
範本在「## {時間} {問詢主題}」下加一行「- **意圖**: {使用者的原始需求與目的,一句話}」。
SKILL.md 以 MUST 強制套用範本時填寫意圖。
README 描述加註「每節開頭記錄使用者意圖」。

Who:
所有透過 jsc-ask:ask 問詢並寫紀錄的 jsc 技能(skill-new、skill-update、sdlc 各階段等);wiki 讀者從此看得到每輪問詢的動機。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 09:36:29 +00:00
jiantw83andClaude Fable 5 d2def4abb9 docs(ask): translate SKILL.md into English per guidelines
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 14:28:17 +08:00
jiantw83andClaude Fable 5 bc0fcd767a feat(ask): 匯入 jsc-ask 技能組
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 13:08:43 +08:00
jiantw83andClaude Fable 5 dbbd226a43 chore(ask): 修正範本 manifest 與移除 hello 範例符合 ask 領域
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 13:08:17 +08:00
jiantw83 6b40e713db Initial commit 2026-08-21 04:42:37 +00:00