Repository navigation
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Problem
#710 R1 verify 留下兩件 LOW,#710 本身已 verified:
- 零實例表有些列的量測沒有自證閘。 第 15、28 列,以及第 17、23、25–27 列等,量測寫的是
akashic validate 2>&1 | grep -c '…',說明卻寫「同第 13 列的自證:舊 binary 印不出東西」。少了LC_ALL=C grep -a -q '…' "$(command -v akashic)" &&那道閘,管線在舊 binary 上會印0而不是什麼都不印——正是自證要防的「沒被檢查 ≡ 檢查過且乾淨」。 - 已知缺口清單不記當時缺口的大小。 已知缺口清單收 #0;零實例列的自證 grep 在 UTF-8 locale 下比不到中文 (follow-up from #689, #690) #710 的 Expected 第 1 點建議把未覆蓋數寫進條目,缺口變大時要求重新確認。已知缺口清單收 #0;零實例列的自證 grep 在 UTF-8 locale 下比不到中文 (follow-up from #689, #690) #710 把這一半延後;缺口變大時 rc 仍為 0。
Type
enhancement
Expected
- 逐列補上自證閘,或把「同第 13 列的自證」改成實際寫出的量法。
- 決定已知缺口清單要不要記錄當時的大小;要的話,缺口變大時守衛轉紅、要求重新確認。
Source: #710 R1 verify(2026-10-01,requirements 席第 13、14 則)
Current Status
Phase: verified(b42 verify R8:HIGH 0、MEDIUM 0;收斂模式;### Blocking 的使用者裁決待處理)
Last updated: 2026-10-20 by idd-update
Blocking
- 使用者裁決:棘輪下限(目前 42;b39 照規則 5 從 41 調上來)要不要搬出它稽核的量測文件(比照
protected-ratchet.txt)?(b37 changelog:搬了讓改下限的那一行在 diff 裡更顯眼,但同一個 PR 照樣改得到兩個檔;裁決後搬,或維持並記為已裁) - 使用者裁決:三道上限的值(檔 4 MiB、fence 與段落各 1,500 行與 128 KiB、依閘去重 500 條)對不對?(b37 changelog 直接定值、沒有記使用者裁決;b41 在 docs: 把三份裁決史表移出自動載入的 .claude/rules/(移到 docs/rulings/) #736 之後的樹上重量:fence 9.9 倍、
measured-numbers-audit每行 2.36 倍、其餘十倍以上;裁決後調整常數或維持) - 使用者裁決:零實例第 100 列「讀不到
WriteGateRulings時每條akashic量測都要--library」是 b37 加的延伸,歸在 2026-10-05 裁決之下,而那次 Decision 第 2 項只談「判讀對認不出的管線寧可判紅」,接受這個延伸嗎?(裁決後改寫歸屬,或撤掉這一條) - 使用者裁決(b39 補):「三道上限的值」那一項裁決時,一併涵蓋 b39 新用到上限的兩處——跨段落接成的散文鏈,以及
measured-numbers-audit每行 128 KiB 的上限(它掃的docs/rulings/mcp-cli-parity.md最長一行 55,559 位元組,餘裕 2.36 倍,而表格的一列拆不成兩行);另外,失敗訊息要不要有則數上限(b38 第 19 列)?(裁決後改常數與說明,或維持)
Commits
a020d59atest: 零實例表的量測補自證閘並由守衛檢查;已知缺口清單記缺口大小,變大即紅 (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711)837b8541test: 自證閘要以 && 接到被量的指令、查同一支 binary,片段要在 release 版找得到、不能是負控種的 (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711)b0ba76cbtest: 量測指令只收一種寫法,fence 沒有收尾即紅,text fence 要有退場標記才不掃 (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711)1b8a919dtest: 量測的辨識補寬、條數有棘輪、退場區塊數釘住;resolve-venues 呼叫點測試比配對 (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711, resolve-venues 列表不報因正規化配對被抑制的候選 (follow-up from #559) #712)93c248a3fix: 量測的判讀改成認不出時偏向是量測、${V:?…} 移出管線、退場標記拿掉;resolve-venues 的同一拼法比位元組 (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711, resolve-venues 列表不報因正規化配對被抑制的候選 (follow-up from #559) #712)f83aa2c9refactor: zero-instance 規則檔拆分——量測腳本與歷輪補記搬到 docs/zero-instance-measurements.md,量測紀律抽成獨立規則 (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711)ecd06e67fix: 量測守衛的判讀改成線性並加上限、--library 的前置條件綁到整個引數、唯讀以外的子命令要 --library、拆分漏掉的關鍵句補回 (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711)6b3f83d9fix: measured-numbers-audit 改成線性並沿用上限、散文鏈增量維護並套上限、--library 照 shell 拆字判讀、量測可用的命令另列封閉清單 (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711)6a59e039fix: 量測可用的清單移出建 index 的命令、行的上限先於 fence、讀不到的檔與沒收尾的 fence 具名、期限涵蓋 stdout (零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711)- tag idd-711-verified
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
test: 零實例表的量測補自證閘並由守衛檢查;已知缺口清單記缺口大小,變大即紅 (#711)
test: 自證閘要以 && 接到被量的指令、查同一支 binary,片段要在 release 版找得到、不能是負控種的 (#711)
test: 量測指令只收一種寫法,fence 沒有收尾即紅,text fence 要有退場標記才不掃 (#711)
kiki830621 commentedon Oct 3, 2026
Verify R1–R3(2026-10-02~10-04):R3 HIGH 0、MEDIUM 7,進修正輪
三輪都是六席交叉驗證(四個 Claude lens、devil's advocate、Codex 跨模型)。R1 與 #712 同一次驗證。表中是 findings 的原始筆數(INFO 不列);下面把同一件事被多席提出的合併成一條,括號是席數。
837b8541b0ba76cbR1 的 MEDIUM
grep … ; 被量的指令(;後面照跑)、fence 裡較早一行的閘讓後面的計數繼承,兩者在舊 binary 上照樣印 0(codex)——閘要以&&接上被量的管線,而且查同一支 binary;較早一行的閘不再讓後面繼承;負控格 62 → 68,守衛的 7 個 mutant 各讓恰好一格紅。swift build -c release出來的akashic對這兩個片段grep -a -q回 1,閘把 release 版讀成舊 binary(requirements、logic、devil's advocate,3 席,都用 release 版實測)——兩列改用較長字面段;守衛新增selfProofNeedleIssues,要求片段落在原始碼某個 ≥16 位元組的字串字面段裡;release 版實測規則檔裡 29 個查akashic的閘片段全部找得到(837b8541)。audit-guards-mutations自己種進akashic-guards的錨字串滿足,「已退場」的說明變成假的(logic、devil's advocate,2 席)——第 71 列已退場的區塊標成text不掃;對akashic-guards的閘,片段不得出現在負控 harness 的字串裡;錨在它上面的三格負控改錨(837b8541)。R2 的 MEDIUM
.build/debug/akashic、被量的是/tmp/old/akashic照樣通過(codex 席;requirements、logic、security 在 LOW 提同一件事)。&&,前導||(true || G && M)可以跳過閘(codex 席;devil's advocate 在 LOW 提同一件事,logic 在 LOW 另提尾端的|| …)。b0ba76cb):量測指令收縮成一個固定模板(LC_ALL=C grep -a -q '<片段>' <BIN> && <BIN> <參數> 2>&1 | grep -c '<樣式>',兩處<BIN>逐字相同、不合模板即紅),不再擴充 shell 剖析器;fence 沒有收尾、檔尾還在 fence 裡都報錯並指名開頭那一行,並補上漏掉的收尾;textfence 要有退場標記才不掃;# 正對照不再讓別行繼承;負控 68 → 78,守衛的 3 個 mutant 各讓對應格紅。R3 的 MEDIUM
\接續的行、縮排區塊、blockquote 裡的 fence、多行管線、跨行 inline code 都不被辨認也不報錯,與 changelog 和規則檔「封閉的模板沒有旁路」的宣稱不符(requirements、logic、security、regression,4 席)。|、;、&,或選項放在模式之後時整個漏掉,單行的量測也能靜默跳過(codex、devil's advocate,2 席)。進下一輪修正(2026-10-04 開始)。
逐則處置見 changelog:
changelog/2026-10-02-measurement-self-proof-gate-binding.md、changelog/2026-10-02-measurement-template-only.md。test: 量測的辨識補寬、條數有棘輪、退場區塊數釘住;resolve-venues 呼叫點測試比配對 (#711, #712)
kiki830621 commentedon Oct 4, 2026
Verify R4(2026-10-04):HIGH 0、MEDIUM 6,進修正輪
R4 是六席交叉驗證(四個 Claude lens、devil's advocate、Codex 跨模型),驗的是 R3 的修正
1b8a919d。表中是 findings 的原始筆數(INFO 不列);下面把同一件事被多席提出的合併成一條,括號是席數。R4 的 MEDIUM
--library "${STORE:?…}"放在管線左側時 shell 不會停下,未設 STORE 時量測仍印0(codex、logic、regression,3 席列為 MEDIUM;security 在 LOW 提同一件事,共 4 席;logic 與 regression 在 bash 與 zsh 都重現)。R3 把--library "$STORE"換成"${STORE:?先設 STORE …}",規則檔與 changelog 寫「沒設時 shell 停下」;管線左側是子殼層,展開錯誤只終止那一層,2>&1還沒套用,錯誤訊息出在終端機,右側的grep -c或wc -l對空輸入印0。第 46、73、77 列期望0,所以未設 STORE(或 STORE 路徑打錯)與「檢查過且乾淨」分不開,第 73 列兩邊同為 0 還會互相印證;第 18 列期望 1,印 0 仍分得出來;第 49 列什麼都不印,而它自己的文字把「什麼都不印」定義成舊 binary。安全那一半有擋住(命令不會落到預設的活 store);沒擋住的是 0 冒充乾淨,正是 零實例表多列量測缺自證閘;已知缺口清單不記缺口大小 (follow-up from #710) #711 要防的形狀。建議:必要變數的檢查移到整條之前(: "${STORE:?…}" && 整條量測),自證模板與棘輪要同步改,並把散文的「shell 停下」更正為實際行為。|之後接空白行、再接下一個命令,邏輯行遇到空白行就停止接續,被切成兩個單位,兩個單位各自缺 binary 或缺計數而都被跳過。requirements:行內程式碼跨行、續行以|開頭,段落迴圈把以|開頭的行當成表格列,在那裡切斷;CommonMark 與 GFM 裡沒有表頭與分隔列的|行不是表格、不會中斷段落(#標題與-項目才會)。audit-guards-mutations沒有一格涵蓋這兩種,棘輪也擋不住,因為它只偵測既有 35 條的流失,看不到新增而認不出來的一條。建議:行尾運算子之後把狀態帶過空白行與純註解行,並補「新增而非替換既有量測」的負控。"${AKASHIC_BIN-akashic}"不帶冒號(selfProofBinaryMentionRe為了排除che-akashic,也排除了X-akashic,R3 只收:-與:=)、帶前綴的計數工具ggrep、zgrep、pcregrep、ugrep(macOS 上用 Homebrew 裝 GNU grep 就是ggrep)、rg --count-matches。對照組${AKASHIC_BIN:-akashic}、git grep -c、rg --count、uniq --count正確變紅,所以是辨識表的缺口、不是機制壞了。建議:binary 的排除只對「前一個字元是連字號、再前一個是字詞字元、且不在${…}之內」成立,計數工具改認\w*grep,每種各加一個負控記號,並把規則檔與 doc 裡「封閉的三類」改成不宣稱封閉。進下一輪修正(2026-10-05 開始)。
逐則處置見 changelog:
changelog/2026-10-04-b32-f7-fixes-711-712.md(R3 的處置)。fix: 量測的判讀改成認不出時偏向是量測、${V:?…} 移出管線、退場標記拿掉;resolve-venues 的同一拼法比位元組 (#711
kiki830621 commentedon Oct 5, 2026
Decision(2026-10-05,使用者):規則檔的體積與誤紅的取捨
zero-instance-guards.md每個 session 自動載入、約 38 萬位元組,長段落要不要搬.claude/rules/的獨立小規則。使用者原話:「要搬,有些規則可以搬進 .claude/rules」| sort、| tee要有人手動加進「已知不計數」清單第 1 項在下一輪修正處理。
refactor: zero-instance 規則檔拆分——量測腳本與歷輪補記搬到 docs/zero-instance-measure…
kiki830621 commentedon Oct 9, 2026
Verify R5(2026-10-05):HIGH 0、MEDIUM 3,進修正輪
R5 是六席交叉驗證(四個 Claude lens、devil's advocate、Codex 跨模型),與 #712 同一次驗證,驗的是 R4 的修正
93c248a3(量測的判讀改成認不出時偏向是量測),以及使用者 2026-10-05 裁決的拆分f83aa2c9。表中是 findings 的原始筆數(INFO 不列),標題沒有 issue 編號的 finding 依內容歸屬(五則 LOW 屬這一類);下面把同一件事被多席提出的合併成一條,括號是席數。R4 的 MEDIUM 怎麼修的
R4 的 6 則 MEDIUM(合併成三條:
--library "${STORE:?…}"放在管線裡停不下來、兩個形狀的量測漏過自證閘、辨識表仍有放行的寫法)由93c248a3處理。selfProofDisplayFilters:head,以及不帶計數選項的 grep 家族);接續運算子之後的空白行與純註解行照接,以|開頭的行只有在 GFM 表格裡才切段;binary 的辨識不分大小寫,${X-akashic}算。: "${V:?訊息}" && test -f "$V/store.yaml" && …,必要變數的檢查移到整條最前面,寫在管線裡即紅。退場標記拿掉,棘輪依(binary、閘的片段)去重。零實例表新增第 90 列(整合時改號)。使用者 2026-10-05 的 Decision:(1)
zero-instance-guards.md每個 session 自動載入、約 38 萬位元組,「要搬」;(2) 判讀對認不出的管線寧可判紅,接受。第 2 項即93c248a3的偏向。第 1 項由f83aa2c9做:各列的量測腳本與歷輪補記搬到不自動載入的docs/zero-instance-measurements.md,量測紀律抽成獨立規則measurement-commands-self-prove;zero-instance-guards.md405,594 → 174,465 位元組,自動載入合計 969,568 → 743,870,守衛改讀新位置。R5 的 MEDIUM
.md有二次方行為,changelog 與原始碼註解寫的「已線性」對其中一條路為假(codex、security,2 席;devil's advocate 在 LOW 校正:只有空白行那一路重現,MEDIUM 偏高)。selfProofLogicalLines在每個實體行起頭都往後掃完整段空白行或只有#的行,b34 的「接續運算子之後的空白行照接」新增了這一步;security 席在量測文件尾端加一個 bash fence,內容是echo hi加 N 個空行,真 binary 的 user 時間:基線 2.25 秒,N=5,000 為 4.3 秒、20,000 為 13.2 秒、40,000 為 41.4 秒。census-parity.yml以pull_request觸發、paths 含這份量測文件、沒有timeout-minutes,audit-guards-mutations另有 53 格各在含 PR 內容的副本上再跑一次這支守衛,security 席推估約 100 KB 的空白行就能讓一次 CI 跑到數小時(推估,沒有跑完)。security 席的第二個向量(selfProofCountOption的-[A-Za-z]*c[A-Za-z]*回溯,40,000 個c超過 80 秒)devil's advocate 用 12 種形狀都沒重現;devil's advocate 另指出需要能改 docs 的寫入權,fork PR 有首次貢獻者核准門。--library的變數名時只認空白與=當分隔,TAB 繞過(codex,1 席,靜態審查,沒有執行)。selfProofArgsPattern接受 TAB,shell 也把 TAB 當引數分隔,但取變數名的captures只收[ =];--library<TAB>"$STORE"的量測能通過「變數有保護」那一關,卻不會被要求test -f "$STORE/store.yaml"。STORE 指向不是 store 的目錄時,doctor可能建出佈局,計數照印 0,正是這一輪的前置條件要擋的情形。建議讓取參數的辨識與模板用同一組分隔字元,並補「TAB 分隔、變數有保護、沒檢查store.yaml」的負控。進下一輪修正(2026-10-09 開始)。
逐則處置見 changelog:
changelog/2026-10-05-b34-k3-fixes-711-712.md(R4 的處置)、changelog/2026-10-05-b35-m1-split-zero-instance-711.md(拆分)。fix: 量測守衛的判讀改成線性並加上限、--library 的前置條件綁到整個引數、唯讀以外的子命令要 --library、拆分漏掉的關…
kiki830621 commentedon Oct 14, 2026
Verify R6(2026-10-15):HIGH 0、MEDIUM 8(合併成 5 條),進修正輪
R6 是六席交叉驗證(四個 Claude lens、devil's advocate、Codex 跨模型),驗的是 R5 的修正
ecd06e67(b37 修正輪,2026-10-10 推上 mainf2a321e4)。六席都完成:第一次啟動(2026-10-10)撞到帳號用量上限,2026-10-12 與 2026-10-14 續跑。表中是 findings 的原始筆數(INFO 不列);下面把同一件事被多席提出的合併成一條,括號是席數。R5 的 MEDIUM 怎麼修的
b36 的 3 個 MEDIUM(守衛對 PR 改得到的
.md有二次方行為兩則、--library的前置條件只比變數名一則),ecd06e67的處置:zero-instance-rows-audit的五條二次方路徑改成線性(空白行與註解行預先算好、計數選項改 possessive、行尾空白由後往前去、相鄰 inline code 增量維護、表編號查集合),另設三道上限(檔 4 MiB、單一 fence 或段落 1,500 行與 128 KiB、依閘去重 500 條),超過即具名紅、不截斷;audit-guards-mutations多一項線性後設檢查與限時的格子。--library的前置條件綁到每一個引數的test -f路徑;唯讀以外的子命令要--library;辨識補$AKASHIC_*變數與不經管線的計數;census-parity.yml加timeout-minutes: 60;measured-numbers-audit的小節標題#NNN不再背書;拆分漏掉的七句關鍵句補回。R6 的 HIGH(已降為 MEDIUM)
measured-numbers-audit的cmdInline正規式對沒收尾的反引號超線性回溯(security,1 席列為 HIGH;logic、devil's advocate 在 MEDIUM 描述同一個向量)。hasCmd(around!)對 12 行視窗跑`[^`\n]*TOOL[^`\n]*RUNNABLE[^`\n]*`,一個沒收尾的反引號後接多個「grep | 」,加一個沒有時間錨的「實測 N」即觸發。security 把 payload 附在規則檔尾端,真 binary 單跑該守衛:400 次(2.8 KB)1.1 秒、800 次(5.6 KB)6.9 秒、2000 次(14 KB)超過 120 秒被殺;補收尾反引號、拿掉實測 3、或換掉工具字的控制組都是 0.2 秒。pull_request觸發、不帶 secrets),b37 的 60 分鐘timeout-minutes把一次 PR 的 macOS 計費上限截在 60 分鐘;b36 對同類的二次方評 MEDIUM,這裡評 HIGH 不一致,建議降為 MEDIUM。不受 timeout 保護的是本機 pre-push(見 LOW)。R6 的 MEDIUM
measured-numbers-audit讀同一批 PR 可改的檔,仍是二次方、沒有任何上限,「其餘掃描也是線性」不成立(requirements、logic、security 列為 MEDIUM;devil's advocate 另指出結構問題,共 4 席)。let anchored = lineMarked || secAnchored || hasCmd(around!)對每個無時間錨的數字各重跑一次視窗掃描。requirements:單行 N 個「實測 d 筆」,N=8,000 6.1 秒、16,000(128 KB)19.4 秒;security:同形 N=20,000 51.3 秒,每加倍 4 到 4.6 倍,行首補日期錨則 0.4 秒;logic 的 16,000 個(240 KB)14.9 秒並印出 1.8 MB 的報告。對照:同樣注入 1 MiB 單行、20 萬空行,其他六支掃描都在 2 秒內。devil's advocate 的結構判斷:三道上限與五個線性向量都沒放在這個位置,所以規則第 99 列「上限讓判讀的工作量有界」為假。pendingProse仍是二次方且無界(logic、devil's advocate,2 席;真 binary 重現)。合併後的單位被存回pendingProse,沒有physical檢查也沒有大小檢查,每步重掃並重拷整串。附加 N 個x |段落:空行隔開 16,000 個(80 KB)13.45 秒、- x |清單 16,000 個 18.0 秒、## x |標題 16,000 個 27.8 秒;devil's advocate 的 32,000 個(585 KB)303 秒,約 1.5 至 2 MB 就超過 60 分鐘 timeout。每塊都低於 1,500 行與 128 KiB,檔低於 4 MiB,三道上限一道都沒觸發,audit-guards-mutations仍 116/116 綠(後設檢查沒有這個向量)。"--library"繞過新的前置條件(codex 列為 MEDIUM,讀碼確認;devil's advocate 在 LOW 補實測,共 2 席)。selfProofLibraryArguments只認裸的--library後接空白、TAB 或=:validate "--library" "$STORE/sub"、--"library"、"--library=$STORE/sub"不被認出,唯讀子命令於是整條豁免,test -f查的是父目錄、實際跑的是$STORE/sub,不是 store 時grep -c仍印 0。devil's advocate 逐一跑過另一端:doctor "--library $STORE"、doctor --note "x --library $STORE"、./--library、--之後的--library都被當成有;validate --library= "$STORE"放行並量到預設的活 store;--libr、--library-path對唯讀命令放行。.readOnly豁免集合的語意比「唯讀」寬,又漏掉 9 格(security 列為 MEDIUM;logic、devil's advocate 在 LOW,共 3 席;真 binary 重現)。WriteGateRulings的.readOnly只表示「不開 store 寫入閘」,35 格含file use、file remove(改 registry)、web-read landing/check(刪除並改寫--out、--raw)、export-bib、export-tables、crossref-match、fulltext take等寫呼叫端指定的檔。security 在量測文件尾端放五條合模板的量測(file remove old-store、file use other-store、web-read landing --out、web-read check --out --raw、export-bib --output <任意路徑>),守衛只報其中的doctor,其餘五條不要求--library也不要求test -f;43 條現存量測都沒用到,缺口在判準。反方向:抽取的正規式字元類沒有數字,44 格只抓到 35 格,s2 author-papers等 9 格被丟掉,量測akashic s2 status被要求--library,而s2 status --library …實測是Unknown option,補救無法滿足;量測文件第 100 列用同一個正規式交叉檢查,重現了缺陷而不是偵測它。值得記的 LOW
$AKASHIC_*辨識把wc -l "$AKASHIC_GUARD_RUN_LOG"判成計數 binary 輸出,訊息要人改selfProofDisplayFilters,對變數名無從適用(regression、devil's advocate);selfProofFeedsCounterWithoutPipe無視pipes: false,表格列裡的>、->變假紅(logic、devil's advocate)。待使用者裁決
已裁決(使用者 2026-10-15):
cmdInline回溯降為 MEDIUM(同 b36 對同類問題的評法、CI 有 60 分鐘 timeout 兜底),下一輪照樣要修。仍待裁決的三項:issue 的
### Blocking原本只有「下一輪 verify」,現在各自列進 Blocking。WriteGateRulings時每條akashic量測都要--library(偏向紅)」是 b37 加的延伸,歸在「使用者 2026-10-05 裁決」之下,而那次 Decision 第 2 項只談「判讀對認不出的管線寧可判紅」(requirements、devil's advocate 在 INFO 指出):接受這個延伸嗎?進下一輪修正。
逐則處置見 changelog:
changelog/2026-10-09-b37-n3-fixes-711.md(R5 的處置)。kiki830621 commentedon Oct 14, 2026
Decision(2026-10-15,使用者):measured-numbers-audit 的回溯記為 MEDIUM
b38 verify(R6)裡 security 席把一個問題記成 HIGH:
measured-numbers-audit的cmdInline正規式遇到沒收尾的反引號會超線性回溯。fix: measured-numbers-audit 改成線性並沿用上限、散文鏈增量維護並套上限、--library 照 shell 拆…
kiki830621 commentedon Oct 18, 2026
Verify R7(2026-10-19):HIGH 0、MEDIUM 8(合併成 5 條),進修正輪(收斂模式)
R7 是六席交叉驗證(四個 Claude lens、devil's advocate、Codex 跨模型),驗的是 R6 的修正
6b3f83d9(b39 修正輪,2026-10-18 推上 main04131a49)。六席都完成。表中是 findings 的原始筆數(INFO 不列)。6b3f83d9R6 的 MEDIUM 怎麼修的
measured-numbers-audit改成線性並沿用檔與每行的上限;跨段落接成的散文鏈增量維護並套 fence/段落上限;runGuardProcess加上期限;--library先照 shell 拆字、去引號再判讀;量測可用的命令另列封閉清單selfProofMeasurementCommands。R7 的 MEDIUM(合併後 5 條)
graph有--output,可以寫任意檔(真 binary 在掃描副本上重現,守衛照樣綠);query、graph、venues會重建預設 store 的 index。這與清單自己「只讀、只印」的判準矛盾,是 b38 第 6、26 列export-bib --output的同型缺口。.claude/rules/*.md,看不到docs/rulings/*.md;最長的一行(55,559 位元組)現在在docs/rulings/mcp-cli-parity.md:136;「四個來源」現在是五個。這個餘裕數字是「三道上限的值」那項待裁決的依據。continue。runGuardProcess的期限沒有涵蓋 stdout 的讀取(Codex;security、devil's advocate 補充):子行程開出的背景行程持有 pipe 時,讀取執行緒等不到 EOF,主執行緒永遠等。measured-numbers-audit遇到非 UTF-8 的檔整份跳過,仍報「全部都有時間錨」;未收尾的 fence 同樣靜默停止判讀(devil's advocate)。值得記的 LOW
selfProofNonBinaryVariables漏了AKASHIC_REPO、AKASHIC_ROOT、AKASHIC_STORE;舊的「唯讀」措辭仍留在 enum 的文件裡(regression)。ProseChain的行數上限算錯段落,5 位元組的鏈被報成 1,501 行(devil's advocate)。收斂模式
這幾輪的 MEDIUM 大多落在前一輪新增的守衛分支與句子上。b41 改成收斂:只修這 5 條,能刪掉或收窄宣稱就不新增分支或句子;無法避免的新分支照規則各補一格負控。
待使用者裁決
### Blocking原有的項目不動;「三道上限的值」那項的餘裕數字,b41 會在整合後的樹上重量後更新。進下一輪修正。
fix: 量測可用的清單移出建 index 的命令、行的上限先於 fence、讀不到的檔與沒收尾的 fence 具名、期限涵蓋 stdou…
kiki830621 commentedon Oct 19, 2026
Verify R8(2026-10-20):HIGH 0、MEDIUM 0,verified(收斂模式)
R8 用六席交叉驗證 R7 的修正
6a59e039(b41 修正輪,2026-10-19 推上 main7ba4d695)。六席是四個 Claude lens、devil's advocate 和 Codex 跨模型,全部完成。這一輪照收斂模式審:只報既有守衛的缺陷,不提新的守衛功能。表中是 findings 的原始筆數,不含 INFO。6b3f83d96a59e039R7 的 MEDIUM 怎麼修的
query、graph、person、get-entry、venue、venues:它們會建 index,或能用--output寫檔。同時加了一個會變紅的 mutation 格。docs/rulings/*.md,原本寫的「四個來源」因此變成五個。measured-numbers-audit在進 fence 分支之前先查每行上限,超長的行不讀。runGuardProcess的期限也涵蓋讀取 stdout。逾時回 rc 124、交回已讀到的輸出,這次執行不記成如預期。devil's advocate 在掃描副本上逐一確認了這些修正:
runGuardProcess遇到exec sleep 20、背景行程握著 stdout、忽略 SIGTERM 加孫行程三種情境,分別在 1.0、1.0、5.0 秒回 rc 124。值得記的 LOW(都不擋 verified)
person或venue原樣加回去,所有格子仍綠。!big[j]」沒有會因拿掉而變紅的格子(regression、devil's advocate)。runGuardProcess呼叫點的逾時接線沒有格子釘住,只有純函式guardInvokeMet被釘(devil's advocate;另用單檔編譯驗證現行行為正確)。runGuardProcess逾時後讀取工作沒有停止(Codex,P2):背景行程若一直輸出,讀取執行緒在函式回傳後仍會累積資料。akashic-guards 是短命 CLI,目前也沒有自證命令會製造這種背景行程,所以評 LOW。unclosedFence報的是最後一次 toggle 的行,不是沒配對的開頭(logic,重現):會變紅,但指錯行。s2 status會讀 Keychain(logic、regression):兩席說它會卡在互動提示。devil's advocate 指出程式明確用interactionNotAllowed的非互動查詢,以不存在的 service 實測 0.03 秒結束,所以「卡住」那半句沒有證據;成立的只有清單理由欄低估了它讀的東西。待使用者裁決
### Blocking原有的四項不動:棘輪下限的位置、三道上限的值、失敗訊息的則數上限、第 100 列的歸屬。devil's advocate 指出第二項的尾巴「並改寫『十倍以上』的說法」已經過時,因為 b41 已改寫那句。本次一併更新這項的文字。
HIGH 與 MEDIUM 都是 0,標為 verified。關閉 issue 前,先處理
### Blocking的裁決項,再跑/idd-close。