-
v0.7.0 — 抓得到「一直在查、但主線沒動」 Stable
released this
2026-08-27 12:32:19 +00:00 | 62 commits to main since this release這一版補上一道以前抓不到的破口:總管整個回合都在查東西、卻沒推進任何主線。
你會看到什麼不一樣
- 以前兩支閘一支判「有沒有動作」、一支判「有沒有說出下一步」——只要不說那句話又一直查東西,兩支都放行。現在多一支判「主線動了沒」
- 它判的是結果不是工具名:工作區指紋變了就算推進,所以 heredoc、sed 改檔也認得
- 不會懲罰誠實對話:門檻拿 1965 個真實回合重放量出來,誤攔 1 次;≤2 個動作的回合完全不計;擋過一次就門檻加倍,不可能鎖死
Downloads
-
v0.6.1 — 盤點表對得上,測試不再偽造待裁決 Stable
released this
2026-08-27 10:40:01 +00:00 | 64 commits to main since this release這一版讓「有哪些閘在管我」這件事,不用點開任何 .sh 就看得到。
你會看到什麼不一樣
- 盤點表補回漏掉的兩支:
milestone-due-guard.sh(建里程碑沒填期限就擋,填9999-01-01一樣擋)與isep-presence-beacon.sh(對話開頭那行「🟢 ISEP 已載入」——它是唯一能證明這個 session 真的有閘的東西) - 跑測試不會再偽造出「有一筆推 main 在等你裁決」——之前那兩支測試會把待裁檔真的寫進工作區,真的請求會淹在假件裡
總管自己驗過的:跑測試前後
git status都是空的(13/13、19/0 通過);盤點表的標頭 48 對上實際 48 支 .sh。Downloads
- 盤點表補回漏掉的兩支:
-
v0.6.0 — 棒子交給 Gitea 原生欄位記得 Stable
released this
2026-08-27 10:13:42 +00:00 | 69 commits to main since this release這一版把「棒子交出去之後會不會掉」從靠人記得,改成 Gitea 原生欄位記得。
你會看到什麼不一樣
- 子任務交回時會用相依、標籤、指派三格接手,不再靠一份會重生的本機清單
- 移除了自造的待驗單機制:它今天在同一個 session 裡重生三次——同一批東西驗過了還會回來擋,因為那個機制沒有「已處理」這個狀態
- 派工單寫成規範裡的合格格式(帶全形括號的
(→ comment M))不會再被閘自己擋下來 - 想繞過
scripts/ticket在 Gitea 上新增東西的側門封上了——舊閘只認大寫POST,打不中 urllib 的隱式 POST
已知還紅的(不是這版造成的):
main-and-prod-push-guard/prod-write-guard/stage-before-prod-guard三支測試在 main 上本來就紅,另案處理。Downloads
-
ISEP v0.5.0 —— 派工單只剩票號 Stable
released this
2026-08-27 03:55:24 +00:00 | 81 commits to main since this release派工單只剩票號——閘從驗「有沒有票號」改成驗「是不是只有票號」。
leo 2026-08-27:「這些話票上都沒有,你根本沒照規則做事,你的 hook 讓你這樣搞?」
任務只活在派工單裡,那條線被停掉或換人接手就消失。所以票號以外的東西一律要先寫上票。
dispatch-format-guard.sh— 派工單多寫任何一行都擋,並印出多餘的內容方便直接貼上票 19/19reply-identity.sh— subagent 交件回覆要表明身份 11/11- 兩支都涵蓋「該擋」與「不該擋」兩側;訊息點得出違反哪一條規則,不是籠統的「格式不對」
🔴 有一格是 report 不是 deliver:「新 session 真的會叫它」要併版後開新 session 才驗得了。
📌
inkstone/ISEP#30|版本 0.3.9 → 0.5.0
⚠️ 這兩個 release 是 2026-08-27 下午補建的。 tag 早就推上來了,
但沒有人建 release ⇒ releases 頁停在 v0.3.9 ⇒ 對 leo 等於這兩版不存在。
總管當天甚至查過claude plugin list顯示0.3.8,看到落差卻沒去追為什麼。
leo:「你看到版本不對不會發現你沒推版本嗎?」
⇒ 記在這裡:tag 不是 release。打了 tag 只是 commit 有了名字,不是交貨。Downloads
-
ISEP v0.4.0 —— 被打擾的那一刻,閘要在場 Stable
released this
2026-08-26 14:43:34 +00:00 | 83 commits to main since this releaseleo 被打擾的那一刻,閘要在場。
以前那些警察都掛在「收工」那一刻(Stop hook)——可是 leo 是在被問到的當下被打擾的,
等收工才提醒,人早就被叫住了。這一版把攔截點搬到那一刻本身。- 掛點:
PreToolUse/ matcherAskUserQuestion - 封動作不封文字:整支 261 行零個判擋用的正則,決定擋不擋的只有判官的 verdict;
判官掛掉/回空/不在 PATH 一律 fail-open(不會因為它自己壞掉而卡住工作) - 測試 14/14,含「樹要不要捲」那種真人閘必須放行的案例
🔴 有一格是 report 不是 deliver:「新 session 真的會叫它」驗不到——
AskUserQuestion 官方明載 subagent 不可用,它撞不到自己這道閘。那一格要開新 session 才驗得了。📌
inkstone/InkStoneCo#55|版本 0.3.9 → 0.4.0(產物按版本號分資料夾,不升版新閘不會被載入)Downloads
- 掛點:
-
ISEP v0.3.9 Stable
released this
2026-08-23 13:03:38 +00:00 | 85 commits to main since this release修了什麼
開場信標現在會自己講「這一份是誰」。
同一台機器上 ISEP 可能有兩份——marketplace 裝的 plugin 快取,與 repo 裡 vendor 進去的複製本。兩份都會印信標,版本號一樣時分不出誰在說話。而「閘從哪一份走」正是決定「另一份能不能拆」的唯一判準。
🟢 ISEP v0.3.9 已載入(42 支閘|來源:plugin(marketplace 裝的)|/root/.claude/plugins/cache/...) 🟢 ISEP v0.3.9 已載入(42 支閘|來源:vendor(repo 裡的複製本)|/home/user/inkstoneco/.claude/isep)順帶更正一個壞掉的判準
上一版建議用
env | grep CLAUDE_PLUGIN_ROOT分辨——那個探針從一開始就答不了這題:那個變數是 hook 呼叫當下才注入的,在 Bash 工具的 env 裡本來就看不到 ⇒ 空輸出不代表沒載入。實測三向
/root/.claude/plugins/cache/inkstone/isep/0.3.9 → 來源:plugin(marketplace 裝的) /home/user/inkstoneco/.claude/isep → 來源:vendor(repo 裡的複製本) 其他路徑 → 來源不明(不假裝知道)Downloads
-
ISEP v0.3.8 Stable
released this
2026-08-23 09:58:54 +00:00 | 87 commits to main since this release修了什麼
factory-idle-guard改成擋「宣告」而不是「提到宣告」。舊版對「下一步」三個字無條件命中——三個群組全 optional、
\s*吃換行、negative lookahead 只擋字面「不是宣告」四個字。結果它連續咬了三種本來就不該咬的東西:- 「那句是等你,不是我的下一步」──在否認自己有下一步
- 「這不是『下一步我要做 X』」──引用閘自己的訊息來說明沒在做
- 貼出閘自己的正則原始碼來舉報這個 bug
而它訊息裡教人走的「選項③:改寫那句話說明它在等什麼」,程式碼裡根本沒有對應分支——訊息與行為不一致。
這一版的改法
- 主詞檢查:「你下一步…」是在交代 leo 該做什麼,不是我的宣告 ⇒ 放行
- 出路③ 真的存在了:用
⏸ 等:標記說明在等什麼即放行;拿掉標記就照樣擋(不准靠刪掉那句話矇混) - 票號放行改回 locality:等長哨兵替換,位移能對回原文 ⇒ 不再「整篇任何地方有票號就放行」
- 出路④:這個回合收尾在動作上(最後一個工具呼叫之後沒有文字)
實測(總管從遠端 clone 出 PR head 自己跑,不是收工方的工作目錄)
新版 v0.3.8 通過 33 / 失敗 0 舊版 v0.3.6 通過 24 / 失敗 9 ← 反向對照組,證明測試有能力變紅Downloads
-
ISEP v0.3.6 Stable
released this
2026-08-23 09:30:25 +00:00 | 90 commits to main since this release修了什麼
開場信標改數「真的被註冊的閘」。舊版用
ls hooks/*.sh | wc -l,把pre-write-guard.template.sh(樣板,不是閘)與兩支沒掛註冊的輔助檔算進去 ⇒ 報 45,hooks.json實際註冊 42。🔴 那一行是判斷「這個 session 到底有沒有閘」的唯一介面——多報就是假綠。
實測兩向:正向 42(與註冊數一致)/反向(假根目錄含一個
.template.sh)報 2 不是 3。Downloads
-
ISEP v0.3.5 Stable
released this
2026-08-23 09:30:25 +00:00 | 92 commits to main since this release修了什麼
推 main 的戳記改綁「push 真正的目標 repo」,不再綁 hook 自己的 cwd——站在 A repo 要推 B repo 的 main 時,舊版無論如何都過不了。
順手補掉一個真的洞:
(git push origin HEAD:main)只要包一層括號,舊版就整段放行。實測(含反向對照組):══ 0.3.4 ══ ══ 0.3.5 ══ git push … HEAD:main 擋住 擋住 (git push … HEAD:main) 放行←洞 擋住 git push … feat/x 放行 放行 ← 沒變嚴Downloads
-
released this
2026-08-20 17:12:07 +00:00 | 100 commits to main since this release雲端環境這條線通了。 leo 在雲端 session 實測看到
🟢 ISEP v0.3.2 已載入(44 支閘)——那個 session 不是零閘狀態。這一版換掉了整條路線
不再走 marketplace,改成把 ISEP 整份複製進薄殼 repo(leo 2026-08-21 拍板:「你應該把 Plugin 直接裝進 Github repo,從本地直接複製就好了」)。
為什麼換:查官方文件查出兩件事,兩件都是前一版蓋在錯誤假設上——
假設 官方原文 後果 setup script 讀得到 Environment variables 「Each session copies the environment's values once, at startup」,而 setup script 是「before Claude Code launches」跑的 永遠讀不到 token,token 放錯地方 失敗就 exit 1大聲喊「Exit zero: if the script exits non-zero, the session fails to start」 直接把 leo 鎖在門外 ⇒ 走 marketplace 要同時處理憑證、repo 可見性、環境快取三件事,這三件當天各失敗過一次。
複製進 repo 之後,clone 下來就有,零前置條件。內容
- 新增
scripts/vendor-to-shell.py:複製 hooks/skills/commands/scripts 到.claude/isep/,54 條 hook 註冊改寫成絕對路徑 docs/cloud-setup-script.sh一律exit 0,ls-remote加timeout 45TESTING.mdB4 的探針換掉——舊的用/tmp/x.md,而credential-only-guard刻意豁免.md⇒ 實撞 exit 0,閘完全沒反應- 修
wiki-first-search.sh:python3 -c用雙引號,註解裡的反引號被 shell 當指令替換 ⇒ 這支閘每次觸發都在偷跑bge-m3與head changelog.md
驗過什麼
薄殼 clone 裡 54 條註冊全跑 → 0 條路徑壞掉 違規 workflow.yaml 帶佔位符 → exit 2 🔒 credential 鐵律攔截 信標 → 🟢 ISEP v0.3.2 已載入 雲端真 session(leo 實測) → 有信標、44 支閘、非零閘 sdd-guard 三向(另一條線) → 兩份 active exit 2/一份 exit 0/零份 exit 2一則自省
當天同一個病發作五次:在保證會成功的條件下驗證。三個假綠探針/在自己 HOME 測安裝/「隔離 HOME」沒隔離系統層 keychain/B4 用被豁免的副檔名/用非 git 目錄測 sdd-guard。
最後一次在下結論前抓到了,靠的是同一招:先讓測試失敗一次,證明它有能力變紅,再看它變綠才算數。
Downloads
- 新增