W1 — LANE a/2: KIỂM KÊ MÁY-ĐỌC-TÊN (G1-M2, đảo trước G1-M1)
- Phiên: S180 · Vai: investigator-codebase · Ngày: 2026-08-07
- Chế độ: READ-ONLY. Ngoài tệp này KHÔNG ghi/sửa tệp nào khác. KHÔNG đổi tên. KHÔNG ký chuẩn.
- Ghi đĩa liên tục (chống #53): mỗi đoạn máy xác minh xong append ngay.
- Đầu vào:
sub-n3-lane-a-gd01.md §3.4 (11 đoạn máy · 9 nhóm / 21 họ) · wave-plan-S180.md W1 (:40-53) · thư gốc broadcasts/inbox/ai_infra/2026-08-04-…-phu-luc-spec-pitfall.md §GĐ-1.
- Luật tự áp: mọi 0-hit kèm control-dương · mọi tỉ lệ kèm mẫu số ·
KHÔNG ĐO ĐƯỢC hợp lệ, bịa thì không · bác lane A thì nói thẳng.
§1 — XÁC MINH TỪNG ĐOẠN MÁY (mở mã, không tin danh sách)
Bảng ký hiệu mức
- 🔴 vỡ-câm — đổi tên ⇒ máy vẫn chạy, vẫn in kết quả, nhưng kết quả sai / mù mà không ai biết. Hạng nguy nhất.
- 🟡 vỡ-ồn — đổi tên ⇒ throw / flag / dừng. Đau nhưng thấy được.
- 🟢 tự thích nghi — đọc cả tên cũ lẫn tên mới, hoặc đọc động từ nguồn sống.
M-01 · .claude/workflows/hmw.js:22-51 — VALID_ROLES (🟡 vỡ-ồn) — XÁC NHẬN, sửa số dòng
| Trường |
Đo được |
| Đọc tên gì |
26 chuỗi cứng tên vai kebab-case, mảng const VALID_ROLES = [...] |
| Số dòng thật |
:22-51 (lane A ghi :22-55 — dòng :51 là ] đóng mảng; :53+ đã sang khối TIER2_EXPECTED_FULL_ID). Bác nhẹ số dòng, giữ nguyên nội dung. |
| Máy chặn |
hmw.js:171-186 — badRoles filter + throw new Error('… DỪNG HẲN (STOP-HARD) …') |
| Vỡ thế nào |
Đổi tên vai mà quên sửa mảng ⇒ throw ngay tại chỗ, fan-out chết, thông báo in đủ danh sách hợp lệ |
| Sắc thái quan trọng |
:180 — x.raw != null && x.raw !== '' ⇒ role rỗng/null KHÔNG throw (backward-compat H6.2 role-less). Nghĩa là STOP-HARD chỉ bắt tên SAI, không bắt tên THIẾU |
| Mức |
🟡 vỡ-ồn |
🔴 Ràng buộc cho lane b: đây là máy chặn duy nhất trong cả kiểm kê thật sự dừng-hẳn. Nhưng nó chặn theo danh sách liệt kê, không theo hình dạng tên. Chuẩn nào quy định "tên vai phải theo dạng X" sẽ không được máy này thi hành — nó chỉ thi hành "tên vai phải nằm trong 26 giá trị này".
M-02 · scripts/governance-detectors.ps1:1102 — bộ lọc tệp con H25 (🔴 vỡ-câm) — XÁC NHẬN
| Trường |
Đo được |
| Đọc tên gì |
$_.Name -match '^(sub-.+|.+-return)\.md$' — quét đệ quy toàn .claude\workflows\runs |
| Vỡ thế nào |
Tệp con đặt tên ngoài hai họ này ⇒ biến mất khỏi tầm quét, vai bị coi là chưa chạy, detector vẫn in bình thường |
| Bằng chứng đây là bệnh THẬT, không phải giả thuyết |
Chú thích ngay trên đầu (:1093-1099) tự khai ca S159: bộ lọc cũ là glob 'sub-*.md' ⇒ 3 lượt trả của bộ ba harness-*-return.md VÔ HÌNH; đo trên bookend S159: "9 spawns ran, the glob saw 6 — it dropped exactly the 3 most expensive lanes" |
| Mức |
🔴 vỡ-câm — đã vỡ câm một lần thật, đã vá, và bản vá vẫn là một danh sách hai họ |
M-03 · scripts/governance-detectors.ps1:1104-1107 — suy vai từ tên tệp, 3 nấc tham lam (🔴 vỡ-câm) — XÁC NHẬN, sửa số dòng
| Trường |
Đo được |
| Số dòng thật |
:1104-1107 (lane A ghi :1105-1106 — thiếu nấc 3 -return). Bác nhẹ. |
| Đọc tên gì |
Suy tên vai từ tên tệp, ba nấc, nấc sau nuốt nấc trước |
| Vỡ thế nào |
Suy sai ⇒ rơi vào $unmapped ⇒ LIỆT KÊ, KHÔNG cờ (:1109 — if ($rosterSet.ContainsKey($cand)) {...} else { $unmapped[$cand] = $true }). Vai thật đã chạy nhưng tên tệp lệch ⇒ vai bị coi là chưa chạy, và chỗ lệch chỉ được liệt chứ không cờ |
| Mức |
🔴 vỡ-câm — thiết kế CỐ Ý không-đoán-tên (S122 "đo NỘI DUNG không đo TÊN"), nhưng hệ quả là lệch tên = im lặng theo thiết kế |
🔴 Đây là chỗ luật S122 và TC-11 kéo ngược nhau: S122 cấm đoán tên (đúng), nên detector chọn im lặng khi tên lạ. Chuẩn lane b nếu đòi "tên lệch phải kêu" thì phải sửa chính chỗ này, và sửa nó là đi ngược một luật đã có. Phải khai xung đột, đừng vá âm thầm.
M-04 · scripts/governance-detectors.ps1:1762 — regex tên vai H24 (🔴 vỡ-câm) — BÁC SỐ DÒNG của lane A
| Trường |
Đo được |
| Lane A ghi |
:1679 |
| Sự thật |
:1679 là DÒNG CHÚ THÍCH, nguyên văn: # (a) FLAG-khuon: every H24 auditor sub-file (name carries lead-stale|lead-gap|ring2-audit). Mã sống nằm ở :1762: $roleNameRx = '(?i)(lead-stale|lead-gap|ring2-audit)', dùng ở :1774 if ($sm.Name -match $roleNameRx) |
| Đọc tên gì |
Tên tệp phải chứa một trong ba chuỗi vai |
| Vỡ thế nào |
Đổi tên ba vai đó ⇒ luật FLAG-khuôn ngừng áp, biến $c11Measured không bao giờ bật ⇒ khối in ra "đã đo, 0 cờ" trong khi thật ra chưa đo gì |
| Mức |
🔴 vỡ-câm |
M-05 · scripts/governance-detectors.ps1:1771 — bộ lọc tệp con lần 2 (🔴 vỡ-câm) — BỔ SUNG (lane A không liệt riêng)
:1771 lặp lại y nguyên '^(sub-.+|.+-return)\.md$' trong vòng C11. Cùng regex, hai chỗ, không dùng chung hằng số ⇒ vá một chỗ quên chỗ kia là kịch bản có thật (S159 đã phải vá cả hai, chú thích :1769-1770 xác nhận: "mirror of the C11(b) filter fix above"). Mức 🔴 vỡ-câm + nợ kỹ thuật: 1 luật / 2 bản sao.
M-06 · scripts/governance-detectors.ps1:1716 — BÁC HẲN: KHÔNG PHẢI ĐOẠN MÁY
| Trường |
Đo được |
| Lane A ghi |
":1716 đọc sub-h24-audit-*.md", xếp cùng hạng máy với :1679 |
| Sự thật |
:1716 là CHÚ THÍCH, nguyên văn: # this calendar day but wrote a COMBINED sub-h24-audit-*.md that matches NONE of the. Nó mô tả một điểm mù đã biết (tệp S148 khớp KHÔNG mẫu nào ⇒ "scanned-but-inert"), chứ không đọc tên gì |
| Hệ quả cho lane b |
Chuỗi sub-h24-audit không phải một tên mà máy phụ thuộc ⇒ không cần đưa vào chuẩn như tên phải giữ. Ngược lại nó là bằng chứng có sẵn rằng bộ lọc M-04 đã từng bỏ sót một tệp thật |
| Mức |
— (loại khỏi kiểm kê máy) |
🔴 Đây là 1 trong 2 mục tôi bác hẳn. Giữ nó trong danh sách "máy đọc tên" sẽ khiến lane b đi bảo tồn một cái tên mà không máy nào đọc, đồng thời làm phồng mẫu số.
M-07 · scripts/governance-detectors.ps1:1050 (+:1044) — đường dẫn docs/changelog/sessions/ (🔴 vỡ-câm) — XÁC NHẬN, bổ sung 1 dòng
| Trường |
Đo được |
| Đọc tên gì |
:1044 git log --diff-filter=A --name-only … '--' 'docs/changelog/sessions/' (đường dẫn cứng trong lệnh git) · :1050 chuỗi báo lỗi cùng đường dẫn |
| Vỡ thế nào |
Dời chỗ nhật ký phiên ⇒ $newSess.Count -eq 0 luôn đúng ⇒ cờ MED bắn sai mỗi phiên (dương-giả), chứ không phải im lặng |
| Sửa mức so lane A |
Lane A xếp "mất một chân" (hàm ý im). Đo thật: nó bắn cờ sai liên tục ⇒ đúng ra là 🟡 vỡ-ồn… NHƯNG cờ này nằm trong khối closeout-ritual in ra 4 sổ, người đọc rất dễ đọc thành "phiên này quên viết session-log". ⇒ giữ 🔴 vỡ-câm về NGHĨA: máy ồn ào, nhưng nội dung thông điệp sai lệch — nó tố người dùng thay vì tố chính nó |
| Mức |
🔴 vỡ-câm-về-nghĩa (cờ nổ đúng chỗ, lời buộc tội sai đối tượng) |
| Bổ sung |
:1882 cùng bệnh: Write-Host ' [skip] docs/changelog/sessions not found' — nhánh skip im lặng ở một detector khác. Dời thư mục ⇒ detector đó skip sạch, in DarkGray, ai lướt qua đọc thành "không có gì bất thường" |
M-08 · scripts/governance-detectors.ps1:1624+:1639+:1648+:1649 — C10 logic-session (🔴 vỡ-câm một phần, 🟡 phần còn lại) — XÁC NHẬN NỘI DUNG, BÁC SỐ DÒNG
| Trường |
Đo được |
| Lane A ghi |
:1605,1633 |
| Sự thật |
:1605 và :1611-1612 là chú thích; :1632-1633/:1642/:1652-1653/:1663 là chuỗi thông điệp. Mã sống: :1624 $sessRoot = Join-Path $RepoRoot '.claude\sessions' · :1639 if ($d.Name -notmatch '^session-(\d+)$') · :1648 $ctx = Join-Path $d.FullName ("_context-s-{0}.md" -f $n) · :1649 -Filter 'pause-*.md' · :1660 Test-Path (Join-Path $topDir '_end') + 'closed.md' |
| Đọc tên gì |
5 tên khác nhau trong một khối: thư mục .claude\sessions · hình dạng ^session-\d+$ · tệp _context-s-<N>.md · họ cũ pause-*.md · dấu đóng _end hoặc closed.md |
| Vỡ thế nào — nhánh ỒN |
Đổi hình dạng thư mục phiên ⇒ :1639 cờ INFORM ngay, kèm câu "tooling scans this pattern". 🟡 |
| Vỡ thế nào — nhánh CÂM |
:1622 if (-not (Test-Path $sessRoot)) { … '[skip] .claude/sessions not found' } ⇒ đổi tên thư mục gốc = detector skip trọn khối, $c10Measured giữ $false, 0 cờ. 🔴 |
| Vỡ thế nào — nhánh CÂM 2 |
:1660 dấu đóng phiên chấp hai tên (_end ⟂ closed.md) — đổi sang tên thứ ba ⇒ phiên đã đóng bị đọc là đang mở ⇒ cờ "BUOC 0.8 bị bỏ" không bao giờ bắn. 🔴 |
| Mức |
🔴 vỡ-câm (2 nhánh) + 🟡 (1 nhánh) |
| 🟢 Điểm sáng |
:1648+:1649 đọc được cả hai họ (_context-s-<N>.md hub-form ⟂ pause-*.md cũ) ⇒ đây là tiền lệ đúng sách G1-M3 thứ hai, ngoài session_ctx.py mà lane A đã nêu |
M-09 · scripts/session_ctx.py — 7 vùng đọc tên (🟢 phần lõi · 🔴 phần rìa) — XÁC NHẬN, mở rộng
| Dòng |
Đọc tên gì |
Vỡ thế nào |
Mức |
:110 |
Path(session_dir).glob('_snapshot-*') |
Đổi tiền tố ⇒ snaps rỗng ⇒ last_snapshot_mtime trả None ⇒ mốc --since tụt về nhánh dự phòng mà không báo |
🔴 câm |
:116 |
.claude / "WAL.md" cứng |
Đổi tên WAL ⇒ runid = None, dòng tường thuật mất mã lượt chạy, không throw |
🔴 câm |
:133 |
sessions_root / f"session-{session_n}" |
Đổi hình dạng thư mục ⇒ đường dẫn không tồn tại |
🟡 |
:180 |
session_dir.rglob('*') |
KHÔNG lọc theo tên — điểm 🟢: quét trọn thư mục nên tên mới tự vào |
🟢 |
:349-358 |
_count_pause_on_disk: glob('_pause-*.md') + glob('pause-*.md') |
Đọc CẢ HAI họ (hub-form S148+ ⟂ legacy ≤S147). Chú thích :351-353 khai vì sao không đếm trùng: "The glob pause-* does NOT match _pause-1.md (leading underscore)" |
🟢 tiền lệ đúng sách G1-M3 |
:530 :548 :549 |
_context-s-%d.md · _mind-s-%d.md · _end |
Thiếu tệp ⇒ SKIP/CO có báo |
🟡 |
:594 |
session_dir.glob('*mind*') — quét rộng rồi liệt ứng viên khi tệp chuẩn vắng |
🟢 mẫu tốt thứ hai: không thấy tên chuẩn thì in ra những tên đang có, thay vì im lặng |
|
🔴 Điểm giòn nhất, chính chú thích tự khai (:53-56): cơ chế dò ts: không lọc theo tên tệp ⇒ nếu _mind-s-<N>.md lỡ chứa một dòng ts: thì nó bị đọc thành mốc thời gian của marker. Nghĩa là quy ước NỘI DUNG đang gánh việc mà quy ước TÊN đáng lẽ phải gánh. Chuẩn lane b cần một mục riêng cho lớp này.
M-10 · scripts/session-scaffold.ps1 ⟂ scripts/session_scaffold.py — cặp sinh đôi (🟡) — XÁC NHẬN CÓ FORK, BÁC HỆ QUẢ
| Trường |
Đo được |
| Fork có thật? |
CÓ — session-scaffold.ps1 (6785 B, 2026-07-24 23:53) ⟂ session_scaffold.py (6092 B, 2026-07-24 17:44). Hai quy ước tên tệp cho MỘT khái niệm (kebab ⟂ snake) |
| Lane A khai hệ quả |
"sửa một bản quên bản kia là đẻ ra họ thứ ba" |
| Đo thật |
Hai bản HIỆN SINH RA TÊN GIỐNG HỆT NHAU: .ps1:116-117 → session-$targetN + _context-s-$targetN.md; .py:105-106 → f"session-{n}" + f"_context-s-{n}.md". .py:13 còn tự khai path HARD-PIN … KHONG configurable |
| ⇒ |
Bác một phần: đây chưa phải fork tên đầu ra, mới là fork tên chính nó. "Đang đẻ họ thứ ba" là giả thuyết tương lai, không phải trạng thái hiện có — nói vậy là thổi phồng |
| Nguy cơ thật, đo được |
Hai bản cùng hard-pin, không dùng chung nguồn. Đổi hình dạng session-<N> phải sửa cả hai, cộng governance-detectors.ps1:1639, cộng session_ctx.py:133 ⇒ 4 chỗ, 0 nguồn chung |
| Mức |
🟡 vỡ-ồn (lệch nhau ⇒ COLLISION exit 4 ở .ps1:137, thấy được) |
M-11 · .claude/hooks/wal-flush.ps1 — hook tự bị neo bằng tên (🔴 vỡ-câm) — XÁC NHẬN, nặng hơn lane A khai
| Trường |
Đo được |
| Neo ở đâu |
.claude/settings.json:9 — "command": "powershell.exe -ExecutionPolicy Bypass -File .claude/hooks/wal-flush.ps1" |
| Đổi tên tệp ⇒ |
PowerShell không tìm thấy tệp ⇒ việc (commit WAL) DỪNG HẲN. Hook tự khai Fail-open MOI nhanh: exit 0 ke ca loi — nhưng exit 0 đó nằm TRONG tệp; tệp không chạy thì không ai exit 0 hộ. Mã thoát thật của nhánh này KHÔNG ĐO ĐƯỢC trong lượt read-only |
| 🔴 Neo thứ hai — SỐ DÒNG bị neo |
wal-flush.ps1:16-17 nguyên văn: "!! GIU $paths O DUNG DONG 13: nhieu doc trich-dan "wal-flush.ps1:13" (tiep.md :23, spec, memory). Chen dong TREN day = lao-hoa het cac trich-dan do" ⇒ tệp bị neo cả bằng TÊN lẫn bằng SỐ DÒNG, và số dòng chỉ được canh bằng một dòng chú thích |
| Nội dung dòng 13 |
$paths = @(".claude/WAL.md", ".claude/agent-memory/", ".claude/workflows/runs/", ".claude/sessions/") — 4 đường dẫn cứng. Đổi tên bất kỳ thư mục nào ⇒ git add trượt im lặng (2>$null), $cand không nhận path ⇒ thư mục đó thôi được commit tự động, 0 báo |
| Mức |
🔴 vỡ-câm ×2 (tên tệp · 4 đường dẫn nội dung) + 1 neo-số-dòng chỉ canh bằng chữ |
🔴 Ràng buộc cho lane b: chuẩn phải có mục riêng cho "tên bị neo NGOÀI kho mã" (settings.json là cấu hình runtime — không ai grep nó khi đổi tên script), và phải cấm hẳn lối "giữ nguyên số dòng" — quy ước không máy nào thi hành được.
§1b — NĂM KỊCH BẢN LANE A KHAI CHƯA ĐO — nay đã đo từng dòng
M-12 · scripts/closeout-sentinel.ps1 (247 dòng) — 🔴 vỡ-câm, ca nặng
| Dòng |
Đọc tên gì |
Vỡ thế nào |
:118 |
$COUNTER = '.claude/governance/.session-counter.json' |
Đổi ⇒ tín hiệu phụ WARN … not touched (non-gating) — ồn nhẹ |
:119 |
$MEMROOT = '.claude/agent-memory' |
Đổi ⇒ vị-từ-1 (delta thư mục vai) mất trọn nguồn |
:160 |
$runsDir = … '.claude/workflows/runs' |
Đổi ⇒ nhánh else: $auditSource = 'auto-detect: no session token in subject / runs/ missing' |
:163 |
**`$h24Marker = '(?i)h24 |
lead-(view |
:168 |
$c.Name -match '(?i)h24' khớp TÊN THƯ MỤC lượt chạy |
🔴 cùng hậu quả |
:165 |
$_.Name -match $sessRe — lọc thư mục lượt chạy theo mã phiên trong tên |
🔴 Thư mục lượt chạy không mang S<n> ⇒ vô hình với sentinel |
🔴 Đúng hình dạng "vắng-mặt trông giống ổn": đổi tên ⇒ máy chuyển SKIP, và SKIP đọc y hệt "phiên này không cần kiểm". Cộng :165: 18/88 thư mục lượt chạy hiện KHÔNG mang S<n> (§2 nhóm 3) ⇒ vị-từ này đã đang mù một phần kho hôm nay, không cần ai đổi tên gì.
M-13 · scripts/mfe-eval.ps1 (334 dòng) — 🔴 vỡ-câm
| Dòng |
Đọc tên gì |
Vỡ thế nào |
:44 |
.claude\agent-memory\memory-budget.json |
vắng ⇒ hỏng sớm (ồn) |
:52-54 |
.claude\governance\ACTIVE-MARKS.md · docs\governance\error-ledger.md · docs\gotchas.md |
3 tên sổ cứng. Đổi ⇒ bộ phân tích đọc 0 dòng ⇒ điểm vẫn tính, mẫu số về 0 |
:243 |
Get-ChildItem '.claude\agents\*.md' | Where Name -ne 'README.md' ⇒ $role = $rf.BaseName |
Roster suy từ tên tệp |
:264 |
".claude\agent-memory\$role\MEMORY.md" — ghép tên vai vào đường dẫn |
🔴 Tên thư mục nhật ký lệch tên tệp vai ⇒ :265-267 in N/A (no persistent diary -> ephemeral/unspawned) rồi continue. Vai bị LOẠI khỏi phép đo, và lời giải thích in ra là một lời nói dối có thiện chí |
:302 |
Tự khai [SUB-WORKFLOW] N/A by design … hmw.js sub-<role>-<i> |
🟢 trung thực về phạm vi |
🔴 Bất biến ngầm chưa ai viết ra: .claude/agents/<role>.md BaseName phải bằng .claude/agent-memory/<role>/ tên thư mục. Hai chỗ, không nguồn chung, không máy kiểm. Lệch ⇒ im ở M-13; ở governance-detectors.ps1:1109 thì rơi $unmapped (liệt, không cờ).
M-14 · scripts/memory-selfimprove-audit.ps1 (346 dòng) — 🔴 vỡ-câm + BỆNH ĐÃ VÁ NƠI KHÁC CÒN SỐNG Ở ĐÂY
| Dòng |
Đọc tên gì |
Vỡ thế nào |
:122-124 |
.claude\agents · .claude\agent-memory · .claude\workflows\hmw.js |
3 neo cứng |
:189 |
Join-Path $agentsDir ("{0}.md" -f $role) |
ghép tên vai → tệp |
:211 |
'scripts\governance-detectors.ps1' |
script neo tên script khác |
:230-231 |
docs\rules.md · docs\governance\harness-11-engine.md |
2 tên sổ cứng |
:252 :257 :258 |
MEMORY.md · archive\_INDEX.md · *.gist.md |
3 tên artefact bộ nhớ |
🔴 :298 |
-Filter 'sub-*.md' |
CHÍNH XÁC bộ lọc mà governance-detectors.ps1 ĐÃ VÁ @S159 (:1093-1099 khai ca thật: glob này bỏ sót 3 lượt trả *-return.md, "dropped exactly the 3 most expensive lanes"). Bản vá KHÔNG nhân sang đây. Hệ quả: :300-301 in "latest run … has no sub-*.md (return-delta-only mode) - proxy N/A" ⇒ N/A đọc thành "không áp dụng", không đọc thành "máy mù" |
:299 |
-Filter '*-synthesis.md' |
họ tên thứ hai, cùng lớp |
🔴 PHÁT HIỆN NẶNG NHẤT §1b. Một lỗi tên đã được chẩn đoán, đặt tên (C11(b) filter), vá và ghi chú kỹ ở tệp A — tệp B cùng kho, cùng đọc cùng thư mục, vẫn dùng bản lỗi. Đúng lớp "được-chỉ-1-chỗ ⇒ grep cùng-lớp", tái diễn, đo được, chưa ai bắt.
M-15 · scripts/crystallized-backfill.ps1 (254 dòng) — 🟡 vỡ-ồn (có nhãn MISSING), số dẫn xuất sai câm
| Dòng |
Đọc tên gì |
Vỡ thế nào |
:54-55 |
.claude\agent-memory + memory-budget.json |
vắng ⇒ Write-Error + exit 1 — 🟡 ồn thật |
:73-78 |
$defaultHotload = 4 tên sổ cứng (docs/STATUS.md · docs/HANDOFF.md · .claude/governance/ACTIVE-MARKS.md · docs/changelog/migration-todos.md) |
dùng khi cấu hình vắng |
:106-114 |
Test-Path $full → state='ok' / state='MISSING' |
Đổi tên sổ ⇒ in MISSING từng dòng (🟡) NHƯNG $totalBytes không cộng ⇒ $measuredHeadroom = $leadCap - $tokHigh to hơn thực tế ⇒ kết luận "còn nhiều chỗ trống" sai câm |
| Mức |
🟡 ở lớp hiển thị · 🔴 ở lớp con số dẫn xuất. Ghi 🟡 có caveat vì nhãn MISSING có in ra |
|
M-16 · scripts/applied-eval-nokey.ps1 (362 dòng) — BÁC HẲN: KHÔNG ĐỌC TÊN NÀO
| Trường |
Đo được |
| Phép đo |
grep -cE "Join-Path|Get-ChildItem|Test-Path|-Filter|Resolve-Path|Get-Content|Set-Content|Out-File|\[IO\.|ConvertFrom-Json" scripts/applied-eval-nokey.ps1 = 0 |
| Control-dương (cùng thước) |
Cùng mẫu trên scripts/mfe-eval.ps1 = 14 ⇒ mẫu chạy được, 0 là 0 thật |
| 4 hit tên tệp duy nhất |
:103 :104 :105 :361 — chuỗi hướng-dẫn-chạy in ra màn hình, tức nó nhắc tên của chính nó |
| ⇒ |
Bác hẳn. Script không có bất kỳ thao tác tệp nào; là khối tự-kiểm + văn bản. Đưa vào kiểm kê máy-đọc-tên là phồng mẫu số. Dây duy nhất: tên của chính nó bị nhắc trong 4 chuỗi in + trong tài liệu |
| Mức |
— (loại khỏi kiểm kê) |
§1c — TỔNG KIỂM KÊ
| Kết luận |
Số |
| Đoạn máy xác minh có đọc tên |
14 (M-01…M-05, M-07…M-15) |
| BÁC HẲN (không phải máy đọc tên) |
2 — M-06 detectors:1716 (chú thích) · M-16 applied-eval-nokey.ps1 (0 file-IO) |
| 🔴 vỡ-câm |
10 — M-02 · M-03 · M-04 · M-05 · M-07 · M-08 · M-09(rìa) · M-11 · M-12 · M-13 · M-14 → (đếm theo ĐOẠN MÁY, M-09 tính 1 dù có cả nhánh 🟢) = 11 đoạn có ít nhất 1 nhánh câm; 10 đoạn câm-thuần |
| 🟡 vỡ-ồn |
3 — M-01 (STOP-HARD) · M-10 (COLLISION) · M-15 (MISSING) |
| 🟢 tự thích nghi |
0 đoạn máy trọn vẹn; chỉ 3 NHÁNH 🟢 nằm bên trong đoạn khác: session_ctx.py:349-358 (đọc-2-họ) · session_ctx.py:594 (in ứng viên khi vắng) · detectors:1648-1649 (đọc-2-họ) |
🔴 Con số phải nói ra: 0/14 đoạn máy tự thích nghi được với tên mới. Ba nhánh 🟢 đều là xử lý tay cho một cặp cụ thể (_pause ⟂ pause), không phải cơ chế tổng quát. Chuẩn lane b không được giả định có bất kỳ máy nào sẽ tự nuốt tên mới.
Sửa số so lane A: lane A khai 11 đoạn; đo lại ra 14 xác minh + 2 bác. Chênh vì: lane A gộp 5 kịch bản chưa đo vào một dòng số 10, và tính 2 dòng chú thích (:1679 :1716) thành 2 đoạn máy. Cộng thêm 1 đoạn lane A không liệt (detectors:1771, bản sao thứ hai của bộ lọc).