Claude Code
|
672439bd95
|
把 main(v0.15.0,派工紀律三件 #105)併進來,逐支點名複驗過 hooks.json
## hooks.json:這次 git 自動合成功了,而那正是最危險的情況
`hooks.json` 是 JSON——**合錯了語法照樣合法、閘卻不見了,不會有任何東西喊一聲。**
所以「沒有衝突」不等於「沒掉東西」,一律再做兩件事:
① 逐支點名(指令已寫進 README「裝什麼」那段)→ 82 條,60 支各自幾條全部列出
② 跟**兩個父節點**做集合對照:
merged 82 = main 79 + 我的 3
從 main 掉了:0 條
從我這邊掉了:0 條
兩邊都沒有卻冒出來的:0 條
`#105` 三支與我的兩支同時在,位置也對:
roster-guard.sh PreToolUse Agent / Task
diagnosis-evidence-guard.sh PreToolUse Bash
investigate-first-stamp.sh PostToolUse Agent|Task / SendMessage
overdue-nag-guard.sh SessionStart
wiki-size-guard.sh SessionStart / PreToolUse Write|Edit|MultiEdit
(總管提醒的 `roster-guard` vs `mainline-focus-guard` 那種「同一陣列位置兩邊各一支」
這次沒有再發生衝突,但兩支都在,各 2 條。)
## 三處文字衝突:兩邊都留,數字重數
- plugin.json 版本吃 main 的 **0.15.0**(總管已定版,**我沒有動它**);
描述欄補上 main 新增的「7 位有名字的工人」,三個數字重數
- README.md 吃 main 的新表格結構(多了 agents/commands/skills/scripts 四列),
數字重數;並把累積成**四列**的 `hooks/` 收成一列
- hooks-inventory 標頭被貼成兩份、「一句話結論」被貼成**三份**(數字還互相打架),
各收成一份;版本註記兩邊都留
## 盤點(全部在合併後的樹上實數,不是加減推的)
ls hooks/*.sh | wc -l 58 → 60
grep -c '"command":' hooks/hooks.json 79 → 82
ls agents/*.md | wc -l 7
ls -p scripts | grep -v / | wc -l 48
未掛進 hooks.json 的 .sh 3(與本頁原本寫的一致,重數過)
📌 抓到的漂移(每次併都有一個,這次三個):
① hooks-inventory 的標頭 ×2、一句話結論 ×3
② README 的 `hooks/` 列 ×4,其中兩列是舊數字
③ plugin.json 描述欄寫「49 支腳本」,而用本頁寫死的那道指令實數是 48
## 測試(合併後全部重跑,帶對參數)
hooks/tests 23 支全綠:ask-user-question 14、countdown 20、diagnosis-evidence 26、
dispatch-format 52、factory-idle 33、gate-ok 17、gitea-arm-check 16、
presence-beacon 14、cross-repo 19、main-and-prod-push 10、mainline-focus 24、
mainline-idle 61、milestone-account 22、**overdue-nag 36**、pr-verdict 52、
prod-write 37、reply-identity 11、roster 24、sdd 8、search-is-not-proof 31、
stage-before-prod 16、unpushed-police 10、**wiki-compress 25**
scripts/test-* 13 支全綠。
claude plugin validate . ✔ passed;check-version-consistency ✅ 0.15.0 = v0.15.0。
兩支新 SessionStart hook 併完實跑過,閘判定探針對 v0.15.0 的 prod-write-guard 回 pass。
🔴 跑之前清 `CLAUDE_CODE_CHILD_SESSION`;四支要帶參數
(三支帶 hook 絕對路徑、cross-repo 帶 hook 絕對路徑、gitea-arm-check 帶 repo 根目錄)
——不帶會紅,而那是假紅。
|
2026-08-28 01:25:49 +00:00 |
|
Claude Code
|
79ee9e62d6
|
把 main(v0.14.0,五批)併進來,解 5 處衝突,盤點數字在合併後的樹上重數
衝突全部**兩邊都留**,沒有丟掉任何一側:
- hooks.json main 的 `scripts/mainline refresh` + 我的兩支,同一個
SessionStart 陣列裡並存
- plugin.json 版本吃 main 的 0.14.0(**沒有自己決定版本**),描述欄的
三個數字在合併後的樹上重數
- README.md main 那格被貼成兩列(54 支/69 條 與 54 支/71 條,互相矛盾),
收成一列並填上實數
- hooks-inventory main 的 `mainline refresh` 那列 + 我的兩列;標頭與
「一句話結論」的數字重數
- TESTING.md 兩邊各自新增的格子都留。**我的兩格改號成 A21/A22**——
併之前兩邊都叫 A16/A17,撞號(這一頁本來就已經有
三組重複的 A14–A18,這次至少沒有再加一組)
盤點(`ls hooks/*.sh | wc -l`、`grep -c '"command":' hooks/hooks.json`、
`ls -p scripts | grep -v / | wc -l`,都在**合併後**的樹上跑):
55 → 57 支 .sh
72 → 75 條註冊
47 支腳本
📌 順手抓到一個漂移:main 的 plugin.json 描述欄寫「48 支腳本」,
而用 hooks-inventory 自己寫死的那道指令實數是 44(main)/47(合併後)。
已記在 hooks-inventory 的版本註記裡——**同一個病,第 N 次,只是換一欄。**
📌 TESTING.md 的「已知斷點」那段補上總管用 MCP 查到的更廣範圍:
不只 notify_leo 不見了,那台實例的工作流定義是**整批失效**;
而且修它要寫 leo 的個人帳號 ⇒ `leo21c-write-guard.sh` 明文禁止
⇒ **那是真人閘,總管也不能解**。
測試(合併後全部重跑,帶對參數):
我的兩套 overdue-nag 36/36、wiki-compress 25/25
hooks/tests/* ask-user-question 14、countdown 20、dispatch-format 33、
factory-idle 33、gate-ok 17、presence-beacon 14、
mainline-focus 24、mainline-idle 61、milestone-account 22、
pr-verdict 52、reply-identity 11、sdd 8、
search-is-not-proof 31、unpushed-police 10、
prod-write 37、stage-before-prod 16、
main-and-prod-push 10、cross-repo 19、gitea-arm-check 16
scripts/test-* 13 支全綠(含 release-manifest 21、milestone-account 23、
debt-worklist 47、ticket-handoff-writeback 49)
claude plugin validate . 通過;check-version-consistency 通過(0.14.0 = v0.14.0)
|
2026-08-28 01:15:54 +00:00 |
|
Claude Code
|
156d339308
|
退路留言要帶「為什麼發不出去」,不是只帶閘的判定(inkstone/ISEP#93)
2026-08-28 第一版漏了這一格,而它剛好就在實測時咬到:
閘判定 pass、Telegram 卻 404(實例上找不到 notify_leo 工作流),
退路留言貼上票之後**只看得到 pass**——真正的斷點一個字都沒進票。
⇒ 下一個人會去修閘,而斷點根本不在那裡。
把留言內文抽成 fallback_body()(獨立成一支就是為了測得到),
測試從「看原始碼有沒有那個字串」改成**真的產一份留言出來檢查**:
斷點原因、原文、身份欄三格都要在。36 條全綠。
|
2026-08-28 01:06:52 +00:00 |
|
Claude Code
|
da9bd53cae
|
沒人會叫的事會自己叫+讀不完的必讀檔要被整理(inkstone/ISEP#93、inkstone/ISEP#89)
兩張票放同一條分支:都是「該發生卻不會自己發生的事」,觸發點都在 session 邊界。
## inkstone/ISEP#93 —— 逾期和掛著沒人接的事會主動叫
- scripts/isep-nag 撈三種沒人會叫的事(逾期 milestone/等 leo 的票/掉在地上的棒子)
- scripts/isep-notify 發 Telegram,而且**發不出去的時候不會安靜**
- hooks/overdue-nag-guard.sh SessionStart 跑一次(不輪詢、不 fan-out、不掛 Actions)
- hooks/tests/overdue-nag.test.sh 35 條,全程離線
實跑撈得出票上點名的那五個逾期 milestone(08-24 三個、08-26 兩個)。
沒東西可報時會說「查過了,沒有」——安靜跟壞掉長得一模一樣。
🔴 工單補的那個限制(今天實測出來的)已經處理:
「能不能發得出去」取決於這個 session 載到的 ISEP 是哪一版
(prod-write-guard v0.10.0 才認得出 notify_leo 不是部署,而 hook 註冊路徑
在 session 啟動當下就寫死了)。所以 isep-notify 會**先拿真的要送的那一則
去問這個 session 註冊的那支閘**,把判定寫成檔(誰都查得到),然後:
· 放行 ⇒ 送,並驗內層 data.data.ok(外層 200 不算送到)
· 會擋 ⇒ **不繞路**,改貼回票上並把原文印在眼前
用 git 歷史裡的真跡(c263866 那一版閘)測過「會擋」那條路。
⛔ 實測發現通道本身現在是斷的:實例上找不到 notify_leo 工作流(404)。
不是閘、不是網路、不是金鑰。詳情與修法寫在 docs/TESTING.md 最後一段。
退路兩次都走通了(inkstone/ISEP#93 comment 5182、5184)。
## inkstone/ISEP#89 —— wiki 太長時有人整理
- scripts/wiki-compress audit/plan/apply/verify/bench 五個動詞
- hooks/wiki-size-guard.sh SessionStart 點名太長的檔;寫檔時擋「沒走流程的壓縮」
- hooks/tests/wiki-compress.test.sh 25 條,全程離線、不碰真的 wiki
設計上最重要的一條:**只搬不改**,正文一個字都不動。
「合併同類、濃縮成一行」要重寫正文,而重寫的當下沒有人會發現弄丟了什麼。
所以機器只做「搬 + 目錄 + 標 ×N/↻」,合併留給人。
拿現在的 mistakes.md 複本實壓過(不動真的 wiki):
7,681 行 → 1,199 行
260 條一條都沒少(verify 用內文雜湊逐條對帳)
80 個查詢命中率 80/80,定位成本 2,956 → 131 行,**快 22.5 倍**(bench)
verify 反向測過:真的弄丟一條時它抓得到(抓不到的對帳表比沒有更糟)。
## 盤點數字
在這棵樹上當場數的,不是拿上一版加減推的:
ls hooks/*.sh | wc -l → 55(was 53)
grep -c '"command":' hooks.json → 71(was 68)
plugin.json/README/hooks-inventory 三處同步改。
**版本號沒動**(0.11.0),待總管定版。
|
2026-08-28 01:04:16 +00:00 |
|