dda4852938
在此之前 36 支閘裡只有 2 支會記錄自己擋了什麼,六種逃生口 (NOT_MY_BRANCH_OK=1/no-ticket-needed/wiki-secret-ok/credential-ok/ solo-ok/kbdb-down)用了完全不留痕 ⇒ 擋對 100 次跟擋錯 100 次在資料上 一模一樣 ⇒ 規則只會累積不會被淘汰。 機制:hooks/lib/gate-log-wrap.sh 包在每一支閘外面(hooks.json 的 82 條 gate command 全部前綴這支 wrapper;2 條 scripts/ refresher 不是閘、不包)。 它從不 exit 2,只把真正那支閘的離開碼原樣傳出去 ⇒ 記錄壞掉最多漏記一筆, 不可能誤攔(票紅線:寧可漏記,不可擋錯)。每次留一筆中繼資料: 哪支閘/何時/對什麼工具/判成什麼/(若繞過)用了哪個逃生口。 - 只記中繼資料,完全不寫入指令原文或 payload ⇒ 金鑰在結構上進不了帳本(D36) - 純 POSIX shell 記錄,不另起 python ⇒ 不讓閘變慢變脆 - 紀錄長在既有閘動作上,零輪詢/零 cron(D20) - 帳本沿用 milestone-account 慣例(不寫進會被 plugin update 換掉的目錄) 報告:scripts/gate-report all 回答票上三題(誤擋嫌疑排序/最近沒擋過的規則/ 同一 session 反覆撞同一支閘)。基線與反面驗證見票留言。 測試:hooks/tests/gate-log.test.sh 22 條(透明/留痕/反面驗證/不變脆/不外洩) + scripts/test-gate-report.sh 8 條(三題數字對不對)。 hooks 檔數 61、hooks.json 註冊 84 均不變(wrapper 住 hooks/lib,非 gate .sh)。 版本:待總管定版(改了會被載入的東西需升版才傳得到,但 tag 由總管打)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TNfNypeDaCVEZQW1Wqwfxq
24 lines
1.2 KiB
Plaintext
24 lines
1.2 KiB
Plaintext
|
||
# 含金鑰真身的雲端設定,永遠不進版控(2026-08-20 實際差點被 git add)
|
||
cloud-env*.txt
|
||
*.env
|
||
.shell-payload/
|
||
|
||
# import 共用零件時 python 自己生的,不是原始碼
|
||
__pycache__/
|
||
*.pyc
|
||
|
||
# 推 main 被擋下時留的請求(main-and-prod-push-guard.sh 寫的)。
|
||
# 這是**本機當下的狀態**,不是原始碼:一份檔案的語意是「有一筆推 main 正在等總管裁」。
|
||
# 進版控會有兩個後果(inkstone/ISEP#59 comment 4779 第 ① 條,兩個都實際發生過):
|
||
# ① `git add -A` 把它帶進 commit ⇒ 別人 clone 下來就多一筆**別人的**待裁決
|
||
# ② 被追蹤的檔每次被覆寫都變成 ` M` ⇒ `git status` 永遠是髒的
|
||
# (寫成 `目錄/*` 而不是 `目錄/`:後者連目錄本身都排除,下一行的例外就永遠生效不了)
|
||
pending-main-push/*
|
||
!pending-main-push/README.md
|
||
|
||
# 閘的動作紀錄(gate-log-wrap.sh 寫的,inkstone/InkStoneCo#48)。
|
||
# 這是**執行期狀態**不是原始碼:dogfood 這個 repo 時會在自己的 system-dev/ 底下生出來。
|
||
# 進版控=把「這台機器上發生過的閘動作」帶給每個 clone 的人,語意就錯了。
|
||
system-dev/gate-log/
|