jiantw83andClaude Fable 5 97fdeb9211 fix(hooks): 移除 manifest 重複的 hooks 設定並升版至 0.0.2
What(改了什麼):
刪除 .claude-plugin/plugin.json 中的 "hooks": "./hooks/hooks.json" 欄位,
並將 plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json
三份 manifest 的版本號從 0.0.1 升到 0.0.2。

Why(為什麼改):
claude plugin list 回報 jsc-hooks 載入失敗(Hook load failed:
Duplicate hooks file detected)。Claude Code 會自動載入標準路徑
hooks/hooks.json,manifest 再宣告同一份檔案就造成重複載入,
manifest.hooks 只該用來宣告額外的 hook 檔。

How(怎麼改):
移除多餘的 manifest.hooks 欄位,讓 hooks/hooks.json 只透過標準
自動載入機制載入一次;同步升版三份 manifest 以觸發各 CLI 的
plugin update,並以 python3 -m json.tool 驗證三份 JSON 格式正確。

Who(影響哪個功能/使用者):
影響 jsc-hooks 外掛的所有使用者。修正後外掛可在 claude CLI 正常
載入,STE100 語言強制、工時計時、技能用量記錄等 hooks 恢復生效。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 08:31:12 +00:00
2026-08-21 04:42:09 +00:00
2026-08-21 14:29:45 +08:00

jsc-hooks — 跨 CLI Hooks

jsc 技能組的 hooks domain:所有 hook 只放在這個 repo(技能準則)。腳本為 POSIX shell,同時支援 stdin JSON(Claude 格式)與環境變數輸入,適用 claude / codex / copilot / antigravity / kiro。

安裝、更新、移除

Marketplace 統一為 jsc(https://gitea.jsc.idv.tw/plugins/jsc.git),安裝 token 為 jsc-hooks@jsc。每個指令一行:

CLI 安裝 更新 移除
claude claude plugin marketplace add https://gitea.jsc.idv.tw/plugins/jsc.git && claude plugin install jsc-hooks@jsc claude plugin marketplace update jsc && claude plugin update jsc-hooks@jsc claude plugin uninstall jsc-hooks@jsc
codex codex plugin marketplace add https://gitea.jsc.idv.tw/plugins/jsc.git && codex plugin add jsc-hooks@jsc codex plugin marketplace upgrade jsc codex plugin remove jsc-hooks@jsc
copilot copilot plugin marketplace add https://gitea.jsc.idv.tw/plugins/jsc.git && copilot plugin install jsc-hooks@jsc copilot plugin marketplace update jsc && copilot plugin update jsc-hooks@jsc copilot plugin uninstall jsc-hooks@jsc
antigravity git clone https://gitea.jsc.idv.tw/plugins/hooks.git ~/plugins/hooks && agy plugin install ~/plugins/hooks git -C ~/plugins/hooks pull && agy plugin uninstall jsc-hooks && agy plugin install ~/plugins/hooks agy plugin uninstall jsc-hooks
kiro kiro-cli plugin marketplace add https://gitea.jsc.idv.tw/plugins/jsc.git && kiro-cli plugin install jsc-hooks@jsc kiro-cli plugin marketplace update jsc && kiro-cli plugin update jsc-hooks@jsc kiro-cli plugin uninstall jsc-hooks@jsc

antigravity 不支援 gitea URL 安裝,改用本地 clone 路徑。批次操作五個 CLI:使用 /jsc-cli:deploy。

Hooks

腳本 事件 作用
hooks/ste100-guard.sh UserPromptSubmit 注入 STE100 繁體中文輸出規則(hook > prompt 強制層)
hooks/session-timer.sh SessionStart / Stop / SessionEnd 記錄工作階段起訖;report 子指令供 jsc-log:worklog 取花費時間
hooks/skill-usage.sh PostToolUse(Skill) 記錄技能使用與呼叫鏈到 $JSC_HOME/usage/*.jsonl,供 jsc-log:stats 統計

Claude 由 hooks/hooks.json 自動接線;其他 CLI 用 hooks-install 技能接線或降級為規則檔。

Skills 目錄

呼叫方式:Claude / Antigravity /jsc-hooks:{name};Codex ${name};Copilot / Kiro 描述需求自動觸發。

hooks-install

把三支 hook 接線到所有已安裝的 CLI:偵測 CLI 後逐一套用原生 hook 設定,無 hook 系統的 CLI 降級為規則檔(以 <!-- jsc-hooks --> 標記整段取代,不重複追加)。

環境變數

變數 用途 未設定時
JSC_HOME Hook 資料目錄 預設 ~/.jsc
JSC_CLI / JSC_SESSION_ID / JSC_SKILL 非 Claude CLI 接線時由 wrapper 設定 安靜降級

相關 domain

  • jsc-cli:CLI 偵測(tools/detect-clis.sh)
  • jsc-log:讀取本 domain 產出的工時與用量資料
S
Description
No description provided
Readme
2.4 MiB
Languages
Shell 100%