[CLAUDE] Scripts: YC-020 5 phan quyet — fold C13/C14/C15 vao TOTAL (nen S185), H24-1 doi don-vi PHIEN (nguong owner 14, 2 flag that fire ngay), grid-c trio liveness, -Detail da cam truoc do
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@ -165,6 +165,8 @@
|
|||||||
},
|
},
|
||||||
"honest_caveat": "v2 §5: large Tier-1 = HIGHER context-rot on the always-loaded part -- an accepted, deliberate trade-off (forgetting-work judged worse than rot), NOT 'rot disappears'. Small-context-window / light-workload projects may optimally pick a SMALLER Tier-1 -- the FLOOR is the ARCHITECTURE (hot-feed large + L2/L3 on-demand no-cap), not the numbers. 'No-cap' L2/L3 = no artificial tier-limit, still within the model context window."
|
"honest_caveat": "v2 §5: large Tier-1 = HIGHER context-rot on the always-loaded part -- an accepted, deliberate trade-off (forgetting-work judged worse than rot), NOT 'rot disappears'. Small-context-window / light-workload projects may optimally pick a SMALLER Tier-1 -- the FLOOR is the ARCHITECTURE (hot-feed large + L2/L3 on-demand no-cap), not the numbers. 'No-cap' L2/L3 = no artificial tier-limit, still within the model context window."
|
||||||
},
|
},
|
||||||
|
"h24_title_freshness_sessions": 14,
|
||||||
|
"_h24_title_freshness_owner_S185": "YC-020(2) 2026-08-10 anh nguyen van: 'dong y 14 ngay. (nhung cung theo phien luon vi co ngay lam ngay ko)' => nguong 14 don-vi PHIEN (dem tick counter-history giua 2 moc, KHONG wall-clock). Reader = governance-detectors.ps1 H24-1.",
|
||||||
"h24_cadence": {
|
"h24_cadence": {
|
||||||
"_note": "Harness-24 (S121, 2026-07-15, wave adap-6-broadcast W2) lead-self-audit cadence. SINGLE-SOURCE per H24 §2(3): every cadence number is READ FROM HERE; docs/persona POINT TO THIS KEY and must NOT copy the digits. Consumer: scripts/governance-detectors.ps1 detector H24-2 carry-age (reads light_every as M). MISSING KEY => the consumer FAILS LOUD and measures nothing -- it must NEVER assume a default, because a hardcoded cadence would silently re-create the very drift single-source exists to prevent.",
|
"_note": "Harness-24 (S121, 2026-07-15, wave adap-6-broadcast W2) lead-self-audit cadence. SINGLE-SOURCE per H24 §2(3): every cadence number is READ FROM HERE; docs/persona POINT TO THIS KEY and must NOT copy the digits. Consumer: scripts/governance-detectors.ps1 detector H24-2 carry-age (reads light_every as M). MISSING KEY => the consumer FAILS LOUD and measures nothing -- it must NEVER assume a default, because a hardcoded cadence would silently re-create the very drift single-source exists to prevent.",
|
||||||
"_owner_ratified": "owner-decisions-15-07-2026 Q2 (anh chot 6/15/3 cho SE) + hub H0-LEAD-AUDIT-DECISION-CAPTURE-2026-07-14.md:105 (6/15/3/3, 'doi = anh', 2026-07-14); ratified = anh mark cong reply 2026-07-16-ai_infra-to-se-reply-adap-dot-16-07 (e50a4bd0), ngay 2026-07-17. 6/15/3 = moc khoi-dau CO Y anh chon -- KHONG phai muon so song cua hub: hub-counter DA GO per 85bf89ca, khong con moc so song. Re-tune sau chu-ky-2 CUA SE (deep-audit lan 2, xem .session-counter.json last_audit); chua ai duoc ban cau 'da chung minh hieu qua' (delta hub tu run-2 khong bao gio co -- hub go counter truoc run-2).",
|
"_owner_ratified": "owner-decisions-15-07-2026 Q2 (anh chot 6/15/3 cho SE) + hub H0-LEAD-AUDIT-DECISION-CAPTURE-2026-07-14.md:105 (6/15/3/3, 'doi = anh', 2026-07-14); ratified = anh mark cong reply 2026-07-16-ai_infra-to-se-reply-adap-dot-16-07 (e50a4bd0), ngay 2026-07-17. 6/15/3 = moc khoi-dau CO Y anh chon -- KHONG phai muon so song cua hub: hub-counter DA GO per 85bf89ca, khong con moc so song. Re-tune sau chu-ky-2 CUA SE (deep-audit lan 2, xem .session-counter.json last_audit); chua ai duoc ban cau 'da chung minh hieu qua' (delta hub tu run-2 khong bao gio co -- hub go counter truoc run-2).",
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
> - 🟡 **Nền = "OK" trả cho câu do LEAD đóng khung (yếu hơn — đường đảo còn mở, ghi để không đọc quá):** **(3)** P3 — **CHỐT FORWARD-ONLY @S181** (`owner-decisions…dot-2.md:48`): **KHÔNG** trục xuất 12 class đang có; 🔴 sổ tự khai *"Muốn hồi-tố về sau thì cần một lệnh **tường minh**, không suy từ 'OK'"*. · **(4)** VK-5 — **CHỐT GIỮ PHỤ LỤC @S181** (`:49`): bảng `HANDOFF:10-17` **KHÔNG** nhập khối chính sổ yêu-cầu, ở phụ lục nhãn *"suy ra, không phải nguyên văn"* (giữ sạch cột lời-nguyên-văn, luật chống-bẫy-A1).
|
> - 🟡 **Nền = "OK" trả cho câu do LEAD đóng khung (yếu hơn — đường đảo còn mở, ghi để không đọc quá):** **(3)** P3 — **CHỐT FORWARD-ONLY @S181** (`owner-decisions…dot-2.md:48`): **KHÔNG** trục xuất 12 class đang có; 🔴 sổ tự khai *"Muốn hồi-tố về sau thì cần một lệnh **tường minh**, không suy từ 'OK'"*. · **(4)** VK-5 — **CHỐT GIỮ PHỤ LỤC @S181** (`:49`): bảng `HANDOFF:10-17` **KHÔNG** nhập khối chính sổ yêu-cầu, ở phụ lục nhãn *"suy ra, không phải nguyên văn"* (giữ sạch cột lời-nguyên-văn, luật chống-bẫy-A1).
|
||||||
> 🧊 *Nguyên văn dòng cũ (giữ làm vết — bài-5):* **(1)** duyệt `bao-cao-cuoi.md` → gửi hub? · **(2)** ghép điều-kiện-3 thư hub 08-07 vào bậc-2 (`ACTIVE-MARKS §LT3`)? · **(3)** P3 = forward-only (lead đang đọc vậy) hay hồi-tố trục xuất class khỏi enum đã niêm phong? · **(4)** VK-5 — nhập bảng `HANDOFF:10-17` vào khối chính sổ yêu-cầu hay giữ phụ lục *suy ra*?
|
> 🧊 *Nguyên văn dòng cũ (giữ làm vết — bài-5):* **(1)** duyệt `bao-cao-cuoi.md` → gửi hub? · **(2)** ghép điều-kiện-3 thư hub 08-07 vào bậc-2 (`ACTIVE-MARKS §LT3`)? · **(3)** P3 = forward-only (lead đang đọc vậy) hay hồi-tố trục xuất class khỏi enum đã niêm phong? · **(4)** VK-5 — nhập bảng `HANDOFF:10-17` vào khối chính sổ yêu-cầu hay giữ phụ lục *suy ra*?
|
||||||
> 🔴 **Bài của lượt lật này:** giả-thiết lúc giao việc là *"(3) và (4) chắc chưa có phán quyết"* — đo đĩa thì **cả 4 đều đã có**, phán quyết nằm sẵn ở `owner-decisions-07-08-2026-dot-2.md` mục *"Còn treo sau đợt-2"* từ **08-07**, tức khối này **hỏi lại anh một việc đã xong suốt 2 ngày**. Đúng lớp *"sổ nói dối theo hướng BI QUAN"* (`:74`) — và lần này nó sống được vì **không máy nào đối chiếu `HANDOFF` ⟂ sổ quyết-định**.
|
> 🔴 **Bài của lượt lật này:** giả-thiết lúc giao việc là *"(3) và (4) chắc chưa có phán quyết"* — đo đĩa thì **cả 4 đều đã có**, phán quyết nằm sẵn ở `owner-decisions-07-08-2026-dot-2.md` mục *"Còn treo sau đợt-2"* từ **08-07**, tức khối này **hỏi lại anh một việc đã xong suốt 2 ngày**. Đúng lớp *"sổ nói dối theo hướng BI QUAN"* (`:74`) — và lần này nó sống được vì **không máy nào đối chiếu `HANDOFF` ⟂ sổ quyết-định**.
|
||||||
> 🔴 **NEXT-em (tự chạy, không cần anh — cập nhật @S185):** W3b mã-thoát = **CHỜ rider-jump được DỰNG** (lane2 chứng soak-vế-2 chưa thoả — rider-jump 0-hit toàn scripts, "nợ-chưa-có-chủ" F-L2-2; header tien-kiem đã flip PA-2) · ~~`OVERDUE:deep`~~ ✅ **ĐÃ TRẢ @S185** (19/15 → deep_at=59, tally ghi máy) · over-cap nay = **5 vai >25.600** (4 vai >30.720; A1 impl-be + A2 lead-stale thi hành @S185, ring2 chờ quyết C-6) · vá persona ring1 `:25` "CẤM @open" (ctx-audit F-3 hệ-hỏng-3-tầng) · addendum-2 goi-chot vế 4.4.
|
> 🔴 **NEXT-em (tự chạy, không cần anh — cập nhật @S185):** W3b mã-thoát = **CHỜ rider-jump được DỰNG** (lane2 chứng soak-vế-2 chưa thoả — rider-jump 0-hit toàn scripts, "nợ-chưa-có-chủ" F-L2-2; header tien-kiem đã flip PA-2) · ~~`OVERDUE:deep`~~ ✅ **ĐÃ TRẢ @S185** (19/15 → deep_at=59, tally ghi máy) · over-cap nay = **5 vai >25.600** (4 vai >30.720; A1 impl-be + A2 lead-stale thi hành @S185, ring2 chờ quyết C-6) · vá persona ring1 `:25` "CẤM @open" (ctx-audit F-3 hệ-hỏng-3-tầng) · ~~addendum-2 goi-chot vế 4.4~~ ✅ @S185 · **thư-kế-gửi-hub kèm 1 dòng đính-chính V5** (`bao-cao-cuoi.md:79` "chưa cắm" → máy C15 đã cắm @S185; KHÔNG sửa file đã gửi — YC-020(3)).
|
||||||
> 🔁 **RE-STAMP CARRY @S181** — đóng dấu lại **25 slug** (đếm lại @S185 theo stale-F6: 23 dòng dưới + 2 dòng CARRY-LẠI; số "20" cũ là view-stale-count) (`session-end §L.b(j)(iv)`). Bản trước rơi **4 kỳ liên tiếp**, `class_repeat.gap-carry-dropped` = **12** = 4× ngưỡng JUMP ⇒ nghi-thức này **không có răng**, không phải đãng trí:
|
> 🔁 **RE-STAMP CARRY @S181** — đóng dấu lại **25 slug** (đếm lại @S185 theo stale-F6: 23 dòng dưới + 2 dòng CARRY-LẠI; số "20" cũ là view-stale-count) (`session-end §L.b(j)(iv)`). Bản trước rơi **4 kỳ liên tiếp**, `class_repeat.gap-carry-dropped` = **12** = 4× ngưỡng JUMP ⇒ nghi-thức này **không có răng**, không phải đãng trí:
|
||||||
> `[carry:acceptance-runtime-khkk]` `[carry:account-trung]` `[carry:binh-le-decision]` `[carry:bvaau]` `[carry:ctx-t9-dogfood]` `[carry:e7-cot-chet-khkk]` `[carry:endline-sub-md]` `[carry:harvest-no-s168-s171]` `[carry:harvest-orphan-s159-tongquan]` `[carry:hmw-subfile-index-collision]` `[carry:pe-phanquyen]` `[carry:ring5-audit-gap]` `[carry:synthesis-roll-s159-s160]` `[carry:tiep-3ter-seed-unwired]` `[carry:tiep-reload-underfill]` `[carry:tools-whitelist-no-teeth]` `[carry:tra-bui-relogin]` `[carry:uat-s117]` `[carry:uat-s133-budget-freeze]` `[carry:uat-s134-luyke]` `[carry:w3b-cam-ma-thoat]` `[carry:bao-cao-cuoi-cho-duyet]` `[carry:h24-deep-overdue]`
|
> `[carry:acceptance-runtime-khkk]` `[carry:account-trung]` `[carry:binh-le-decision]` `[carry:bvaau]` `[carry:ctx-t9-dogfood]` `[carry:e7-cot-chet-khkk]` `[carry:endline-sub-md]` `[carry:harvest-no-s168-s171]` `[carry:harvest-orphan-s159-tongquan]` `[carry:hmw-subfile-index-collision]` `[carry:pe-phanquyen]` `[carry:ring5-audit-gap]` `[carry:synthesis-roll-s159-s160]` `[carry:tiep-3ter-seed-unwired]` `[carry:tiep-reload-underfill]` `[carry:tools-whitelist-no-teeth]` `[carry:tra-bui-relogin]` `[carry:uat-s117]` `[carry:uat-s133-budget-freeze]` `[carry:uat-s134-luyke]` `[carry:w3b-cam-ma-thoat]` `[carry:bao-cao-cuoi-cho-duyet]` `[carry:h24-deep-overdue]`
|
||||||
> 🔺 **CARRY LẠI @S185 — 2 slug BỊ RỚT, nay trả về danh sách trên (ADDITIVE, không sửa dòng cũ):** `[carry:eval-thamquyen]` *(2 cột thẩm-quyền eval — slot **(22)**, nhà thật `runs/2026-07-25-S149-adap-backlog/sub-apply-L5-evalcuaeval.md:37,41,59,115`; có ở carry S150-S152, **0 hit** ở khối này trước lượt vá)* · `[carry:session-model-adopt]` *(cổng (c) duyệt bảng VC-1/2/3 — có ở carry S140-S151, **0 hit** ở khối này; wire đã xảy ra de-facto, xem addendum `adap-reports/2026-07-17-…session-model-phien-logic-manifest.md §6`)*. Lệnh chứng: `grep -c "carry:eval-thamquyen" docs/HANDOFF.md` → **1** trước vá (chỉ segment cũ `:241`), control-dương `carry:ctx-t9-dogfood` = **6**.
|
> 🔺 **CARRY LẠI @S185 — 2 slug BỊ RỚT, nay trả về danh sách trên (ADDITIVE, không sửa dòng cũ):** `[carry:eval-thamquyen]` *(2 cột thẩm-quyền eval — slot **(22)**, nhà thật `runs/2026-07-25-S149-adap-backlog/sub-apply-L5-evalcuaeval.md:37,41,59,115`; có ở carry S150-S152, **0 hit** ở khối này trước lượt vá)* · `[carry:session-model-adopt]` *(cổng (c) duyệt bảng VC-1/2/3 — có ở carry S140-S151, **0 hit** ở khối này; wire đã xảy ra de-facto, xem addendum `adap-reports/2026-07-17-…session-model-phien-logic-manifest.md §6`)*. Lệnh chứng: `grep -c "carry:eval-thamquyen" docs/HANDOFF.md` → **1** trước vá (chỉ segment cũ `:241`), control-dương `carry:ctx-t9-dogfood` = **6**.
|
||||||
|
|||||||
@ -48,7 +48,8 @@ Dữ-liệu cũ (WAL · HANDOFF · auto-memory · migration-todos) **KHÔNG** đ
|
|||||||
| `YC-015` | "làm nốt cho ra giao diện luôn nhé" *(qua `/tiep` @S183)* | 2026-08-08 · S183 | đóng | — | WAL chain `[x]` cicd-4-chân | Verify deploy `706134da` cho giao diện 8 panel SỐNG trên prod — 4/4 chân PASS (bundle ×2 rotate + marker + DLL 3-hit + 8-row IsActive=1 + pin-lệch 0) | **`YC-013`** |
|
| `YC-015` | "làm nốt cho ra giao diện luôn nhé" *(qua `/tiep` @S183)* | 2026-08-08 · S183 | đóng | — | WAL chain `[x]` cicd-4-chân | Verify deploy `706134da` cho giao diện 8 panel SỐNG trên prod — 4/4 chân PASS (bundle ×2 rotate + marker + DLL 3-hit + 8-row IsActive=1 + pin-lệch 0) | **`YC-013`** |
|
||||||
| `YC-016` | "1 -> (c) THEO TAY CẦM PHIẾU -> OK nhé" | 2026-08-08 · S183 | **đóng** *(verify-DLL @S183 + RE-verify @S185 + acceptance "Tạm OK" @S185/YC-019(1) — lật cùng đợt YC-013)* | 1 | ship `72568f05` + WAL chain (TASK → WAL) | **Phán quyết slot (67)** treo từ S172: upload file-khi-duyệt KHKK theo TAY CẦM PHIẾU — phiếu Nháp/Trả-lại (tay người soạn) ⇒ NGƯỜI SOẠN up được; phiếu Chờ-duyệt ⇒ CHỈ NGƯỜI DUYỆT (thuộc workflow phiếu); guard ở API-layer (#82 2-tầng), kèm test. Slot (67) ĐÓNG | |
|
| `YC-016` | "1 -> (c) THEO TAY CẦM PHIẾU -> OK nhé" | 2026-08-08 · S183 | **đóng** *(verify-DLL @S183 + RE-verify @S185 + acceptance "Tạm OK" @S185/YC-019(1) — lật cùng đợt YC-013)* | 1 | ship `72568f05` + WAL chain (TASK → WAL) | **Phán quyết slot (67)** treo từ S172: upload file-khi-duyệt KHKK theo TAY CẦM PHIẾU — phiếu Nháp/Trả-lại (tay người soạn) ⇒ NGƯỜI SOẠN up được; phiếu Chờ-duyệt ⇒ CHỈ NGƯỜI DUYỆT (thuộc workflow phiếu); guard ở API-layer (#82 2-tầng), kèm test. Slot (67) ĐÓNG | |
|
||||||
| `YC-017` | "AI_INFRA và /adap-apply — Cho /fable-real invest và review checklist cẩn thận sau đó cho Opus 5 MAX xử lý" *(args lệnh `/check-email` @S185)* | 2026-08-09 · S185 | **đóng** *(pipeline P1→P4 trọn @S185: 0/39 nợ per-id · 21/21 item disposition; 4 câu W phát sinh → khối CHỜ-ANH riêng, không giữ YC mở)* | 1 | `runs/2026-08-09-S185-email-adap-pipeline/implement-synthesis.md` | Kéo thư AI_INFRA CẢ 2 kênh (`outbox/se` qua check-email + `outbox/all` qua adap-apply), rồi pipeline khuôn YC-013: `/fable-real investigator-codebase` soi trạng-thái thư/adopt + dựng checklist → `/fable-real reviewer` review checklist cẩn thận → hmw fan-out **Opus 5 MAX** execute. *(Thư 08-08 đã áp trọn @S185 TRƯỚC lệnh này — pipeline chạy trên phần việc CÒN LẠI mà invest tìm ra.)* | |
|
| `YC-017` | "AI_INFRA và /adap-apply — Cho /fable-real invest và review checklist cẩn thận sau đó cho Opus 5 MAX xử lý" *(args lệnh `/check-email` @S185)* | 2026-08-09 · S185 | **đóng** *(pipeline P1→P4 trọn @S185: 0/39 nợ per-id · 21/21 item disposition; 4 câu W phát sinh → khối CHỜ-ANH riêng, không giữ YC mở)* | 1 | `runs/2026-08-09-S185-email-adap-pipeline/implement-synthesis.md` | Kéo thư AI_INFRA CẢ 2 kênh (`outbox/se` qua check-email + `outbox/all` qua adap-apply), rồi pipeline khuôn YC-013: `/fable-real investigator-codebase` soi trạng-thái thư/adopt + dựng checklist → `/fable-real reviewer` review checklist cẩn thận → hmw fan-out **Opus 5 MAX** execute. *(Thư 08-08 đã áp trọn @S185 TRƯỚC lệnh này — pipeline chạy trên phần việc CÒN LẠI mà invest tìm ra.)* | |
|
||||||
| `YC-019` | "1 -> Tạm OK · 2 -> Role baseline + Runs · 3,4 -> giải thích · 5 -> OK kéo audit luôn giờ cứ end/start là cứ chạy · 6 -> Nợ cũ thì xử lý cho xong luôn" | 2026-08-10 · S185 | **mở** | 1 | WAL chain (TASK → WAL) | 6 phán quyết một lượt: (1) acceptance 8-panel TẠM-OK ⇒ lật YC-013/016 nấc "tạm" · (2) C-6 = NÉN `Role baseline`+`Runs` của ring2 (khuôn moved-not-cut như lead-stale) · (3)(4) em giải thích W-1..W-4 + 5 SKIP-owner, chưa phán · (5) 🔴 ĐỔI NHỊP DEEP: từ nay **mỗi bookend end/start đều chạy deep** (deep_every → 1, hết chờ nhịp 15) · (6) uỷ quyền xử TRỌN nợ cũ theo bậc-2 LT3 (chọn nhánh an toàn + khai, việc-vật-lý-của-anh thì kê rõ) | |
|
| `YC-020` | "1 -> OK, 1 phiên. · 2 -> đồng ý 14 ngày. (nhưng cũng theo phiên luôn vì có ngày làm ngày ko). · 3 -> OK · 4 -> OK · 5 -> OK đông ý." *(trả lời 5 khoản SKIP-owner)* | 2026-08-10 · S185 | **mở** | 1 | WAL chain (TASK → WAL) | (1) fold C13/C14/C15 vào TOTAL sau **1 phiên nền** (S185 = nền — sửa code giờ, lần chạy kế tự vào TOTAL) · (2) ngưỡng title-freshness = **14 PHIÊN** (KHÔNG phải ngày — anh chỉ rõ "có ngày làm ngày ko" ⇒ đo bằng nhãn-phiên/counter, khớp luật H24 "khoảng đo từ counter không từ đồng-hồ") · (3) V5 bao-cao-cuoi: KHÔNG sửa file đã gửi — đính chính 1 dòng trong THƯ KẾ gửi hub · (4) mở detector C13 canh thêm lưới trio · (5) GIỮ neo-glyph (không đổi quy ước heading) | |
|
||||||
|
| `YC-019` | "1 -> Tạm OK · 2 -> Role baseline + Runs · 3,4 -> giải thích · 5 -> OK kéo audit luôn giờ cứ end/start là cứ chạy · 6 -> Nợ cũ thì xử lý cho xong luôn" | 2026-08-10 · S185 | **đóng** *(6/6 vế thi hành @S185: (1) YC-013/016 đóng · (2) ring2 24.859B · (3)(4) đã giải thích → anh phán tiếp = YC-020 · (5) deep_every=1 · (6) nợ cũ đóng trọn)* | 1 | WAL chain (TASK → WAL) | 6 phán quyết một lượt: (1) acceptance 8-panel TẠM-OK ⇒ lật YC-013/016 nấc "tạm" · (2) C-6 = NÉN `Role baseline`+`Runs` của ring2 (khuôn moved-not-cut như lead-stale) · (3)(4) em giải thích W-1..W-4 + 5 SKIP-owner, chưa phán · (5) 🔴 ĐỔI NHỊP DEEP: từ nay **mỗi bookend end/start đều chạy deep** (deep_every → 1, hết chờ nhịp 15) · (6) uỷ quyền xử TRỌN nợ cũ theo bậc-2 LT3 (chọn nhánh an toàn + khai, việc-vật-lý-của-anh thì kê rõ) | |
|
||||||
| `YC-018` | "2 phần bookend và bookstart -> trong đợt adapt này AI_INFRA cũng có hướng dẫn bọn mày chạy 1 mạch hết toàn bộ ko còn pause/tiep nữa, chú ý cấu hình cái đó kỹ nhé" | 2026-08-09 · S185 | **đóng** *(cấu hình land 4 site @S185 + chạy thật trọn 1 mạch bookend @close cùng đêm — nghiệm bằng vận hành)* | 1 | WAL chain (TASK → WAL) | Nghi-thức 2 đầu phiên (`/session-start` bookstart + `/session-end` bookend) phải chạy **TRỌN TRONG MỘT LƯỢT** như hub kể ở thư 08-08 Phần 1b ("lượt mở phiên gần nhất chạy trọn trong một lượt duy nhất, không cần cửa tạm dừng nào chen giữa") — cấu hình luật ONE-SHOT vào 2 file lệnh, CẤM rải nghi-thức qua nhiều cửa pause/tiep, CẤM hẹn-cửa-sau. *(Đội hiểu: pause/tiep VẪN là recovery khi đứt bất-khả-kháng [limit/crash — H22 giữ nguyên]; thứ bị cấm là DÙNG chúng làm nhịp chia-chặng nghi-thức. Anh bác cách hiểu này thì em sửa.)* | |
|
| `YC-018` | "2 phần bookend và bookstart -> trong đợt adapt này AI_INFRA cũng có hướng dẫn bọn mày chạy 1 mạch hết toàn bộ ko còn pause/tiep nữa, chú ý cấu hình cái đó kỹ nhé" | 2026-08-09 · S185 | **đóng** *(cấu hình land 4 site @S185 + chạy thật trọn 1 mạch bookend @close cùng đêm — nghiệm bằng vận hành)* | 1 | WAL chain (TASK → WAL) | Nghi-thức 2 đầu phiên (`/session-start` bookstart + `/session-end` bookend) phải chạy **TRỌN TRONG MỘT LƯỢT** như hub kể ở thư 08-08 Phần 1b ("lượt mở phiên gần nhất chạy trọn trong một lượt duy nhất, không cần cửa tạm dừng nào chen giữa") — cấu hình luật ONE-SHOT vào 2 file lệnh, CẤM rải nghi-thức qua nhiều cửa pause/tiep, CẤM hẹn-cửa-sau. *(Đội hiểu: pause/tiep VẪN là recovery khi đứt bất-khả-kháng [limit/crash — H22 giữ nguyên]; thứ bị cấm là DÙNG chúng làm nhịp chia-chặng nghi-thức. Anh bác cách hiểu này thì em sửa.)* | |
|
||||||
|
|
||||||
> 🔴 **MỘT yêu-cầu, nhắc 4 lần.** Đây là dữ-liệu **TC-01** sinh ra để bắt, và nó tố-giác chính lead: hiểu sai ở `YC-002` nên anh phải nói lại 3 lần. **Ghi lại chứ không làm đẹp.**
|
> 🔴 **MỘT yêu-cầu, nhắc 4 lần.** Đây là dữ-liệu **TC-01** sinh ra để bắt, và nó tố-giác chính lead: hiểu sai ở `YC-002` nên anh phải nói lại 3 lần. **Ghi lại chứ không làm đẹp.**
|
||||||
|
|||||||
@ -729,12 +729,44 @@ else {
|
|||||||
foreach ($a in ($anchored | Sort-Object Date -Descending)) {
|
foreach ($a in ($anchored | Sort-Object Date -Descending)) {
|
||||||
Write-Host (" anchor {0} {1}:{2}" -f $a.Raw, $a.Rel, $a.Line) -ForegroundColor DarkGray
|
Write-Host (" anchor {0} {1}:{2}" -f $a.Raw, $a.Rel, $a.Line) -ForegroundColor DarkGray
|
||||||
}
|
}
|
||||||
foreach ($a in $anchored) {
|
# UNIT = SESSIONS not days (YC-020(2) @S185, owner verbatim: 'dong y 14 ngay. (nhung cung
|
||||||
if ($a.Date -lt $newest.Date) {
|
# theo phien luon vi co ngay lam ngay ko)'). A day with 3 ticks ages 3; a dead day ages 0.
|
||||||
$age = [int]($newest.Date - $a.Date).TotalDays
|
# sessions-behind = counter-history ticks strictly AFTER anchor date and <= newest date.
|
||||||
Write-Flag 'LOW' ("{0}:{1}" -f $a.Rel, $a.Line) `
|
# Threshold = owner key h24_title_freshness_sessions (memory-budget.json).
|
||||||
("title-stale: anchor says {0} but newest governance milestone is {1} ({2}d behind)" -f $a.Raw, $newest.Raw, $age) `
|
# Key missing => CHUA DO DUOC (fail-loud, mirror H24-2 - no hardcoded default).
|
||||||
'refresh the title/status anchor date, or state explicitly that the doc is frozen-historical'
|
$tfKey = $null
|
||||||
|
try {
|
||||||
|
$budJ = Get-Content -Path (Join-Path $RepoRoot '.claude\agent-memory\memory-budget.json') -Raw -Encoding UTF8 | ConvertFrom-Json
|
||||||
|
$tfKey = $budJ.h24_title_freshness_sessions
|
||||||
|
} catch {}
|
||||||
|
$tickDates = @()
|
||||||
|
try {
|
||||||
|
$cntJ = Get-Content -Path (Join-Path $RepoRoot '.claude\governance\.session-counter.json') -Raw -Encoding UTF8 | ConvertFrom-Json
|
||||||
|
foreach ($h in $cntJ.history) {
|
||||||
|
$dt = [datetime]::MinValue
|
||||||
|
if ([datetime]::TryParseExact([string]$h.at, 'yyyy-MM-dd', $null, [System.Globalization.DateTimeStyles]::None, [ref]$dt)) { $tickDates += $dt }
|
||||||
|
}
|
||||||
|
} catch {}
|
||||||
|
if ($null -eq $tfKey) {
|
||||||
|
Write-Host ' CHUA DO DUOC (owner-key): h24_title_freshness_sessions MISSING in memory-budget.json - session-age verdicts WITHHELD (no default; mirror H24-2 fail-loud)' -ForegroundColor Yellow
|
||||||
|
}
|
||||||
|
elseif ($tickDates.Count -eq 0) {
|
||||||
|
Write-Host ' CHUA DO DUOC (tick-source): .session-counter.json history unreadable/empty - cannot count sessions-behind, verdicts WITHHELD' -ForegroundColor Yellow
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
foreach ($a in $anchored) {
|
||||||
|
if ($a.Date -lt $newest.Date) {
|
||||||
|
$ageDays = [int]($newest.Date - $a.Date).TotalDays
|
||||||
|
$ageSess = @($tickDates | Where-Object { $_ -gt $a.Date -and $_ -le $newest.Date }).Count
|
||||||
|
if ($ageSess -ge [int]$tfKey) {
|
||||||
|
Write-Flag 'LOW' ("{0}:{1}" -f $a.Rel, $a.Line) `
|
||||||
|
("title-stale: anchor says {0} but newest governance milestone is {1} ({2} SESSIONS behind [{3}d] >= owner threshold {4})" -f $a.Raw, $newest.Raw, $ageSess, $ageDays, $tfKey) `
|
||||||
|
'refresh the title/status anchor date, or state explicitly that the doc is frozen-historical'
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host (" [ok] {0}:{1} anchor {2} = {3} session(s) behind [{4}d] < threshold {5}" -f $a.Rel, $a.Line, $a.Raw, $ageSess, $ageDays, $tfKey) -ForegroundColor DarkGray
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2054,7 +2086,7 @@ $c12Note = if ($c12Measured) { '' } else { ' -- MEASURED NOTHING (no session log
|
|||||||
Write-Host (" C12 raw-engine-bypass flags = {0} [INFORM-only, LOW, NOT folded into TOTAL baseline]{1}" -f $c12Flags, $c12Note) -ForegroundColor DarkGray
|
Write-Host (" C12 raw-engine-bypass flags = {0} [INFORM-only, LOW, NOT folded into TOTAL baseline]{1}" -f $c12Flags, $c12Note) -ForegroundColor DarkGray
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# C13 - carve-out liveness (INFORM-only, NEW @S185; count SEPARATE, NOT in TOTAL)
|
# C13 - carve-out liveness (NEW @S185; FOLDED vao TOTAL @S185 - YC-020(1) owner 'OK, 1 phien'; nen INFORM = bookend S185)
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# NAMING: this is the script's OWN C-numbering (C1..C12 already exist above). It is a
|
# NAMING: this is the script's OWN C-numbering (C1..C12 already exist above). It is a
|
||||||
# DIFFERENT namespace from the S185 run-checklist codes; this detector implements
|
# DIFFERENT namespace from the S185 run-checklist codes; this detector implements
|
||||||
@ -2103,7 +2135,7 @@ Write-Host (" C12 raw-engine-bypass flags = {0} [INFORM-only, LOW, NOT folded i
|
|||||||
# owner-gated decision per the sink contract at the top of this file - never the net
|
# owner-gated decision per the sink contract at the top of this file - never the net
|
||||||
# author's call. The line shape is identical to Write-Flag, so `comm before/after`
|
# author's call. The line shape is identical to Write-Flag, so `comm before/after`
|
||||||
# isolates it and a fault-inject greps it exactly like any other flag.
|
# isolates it and a fault-inject greps it exactly like any other flag.
|
||||||
Write-Section 'C13 - carve-out liveness (INFORM-only)'
|
Write-Section 'C13 - carve-out liveness (TOTAL @S185)'
|
||||||
$c13Flags = 0
|
$c13Flags = 0
|
||||||
$c13Measured = $false
|
$c13Measured = $false
|
||||||
$c13LedgerPath = Join-Path $RepoRoot 'docs\governance\error-ledger.md'
|
$c13LedgerPath = Join-Path $RepoRoot 'docs\governance\error-ledger.md'
|
||||||
@ -2149,13 +2181,13 @@ else {
|
|||||||
|
|
||||||
# ---- verdicts ----
|
# ---- verdicts ----
|
||||||
if (-not $aEmits) {
|
if (-not $aEmits) {
|
||||||
Write-InformFlag 'scripts/nhip-no-probe.ps1' `
|
Write-Flag 'LOW' 'scripts/nhip-no-probe.ps1' `
|
||||||
("carve-out grid (a) DEAD - the debt line no longer prints: {0}. error-ledger 'Carve-out o3' requires BOTH grids alive; rank PASS-voi-carve-out is NOT valid while this is dead" -f $aWhy) `
|
("carve-out grid (a) DEAD - the debt line no longer prints: {0}. error-ledger 'Carve-out o3' requires BOTH grids alive; rank PASS-voi-carve-out is NOT valid while this is dead" -f $aWhy) `
|
||||||
$c13Resolve
|
$c13Resolve
|
||||||
$c13Flags++
|
$c13Flags++
|
||||||
}
|
}
|
||||||
elseif ($callSites.Count -eq 0) {
|
elseif ($callSites.Count -eq 0) {
|
||||||
Write-InformFlag 'scripts/nhip-no-probe.ps1' `
|
Write-Flag 'LOW' 'scripts/nhip-no-probe.ps1' `
|
||||||
("carve-out grid (a) DEAD-BY-DISCONNECT - the probe emits, but NO stop-point command actually calls it (0 lines matching '-File ...nhip-no-probe.ps1' under .claude/commands). A debt line nobody triggers is not printed 'at every stop point'") `
|
("carve-out grid (a) DEAD-BY-DISCONNECT - the probe emits, but NO stop-point command actually calls it (0 lines matching '-File ...nhip-no-probe.ps1' under .claude/commands). A debt line nobody triggers is not printed 'at every stop point'") `
|
||||||
$c13Resolve
|
$c13Resolve
|
||||||
$c13Flags++
|
$c13Flags++
|
||||||
@ -2166,7 +2198,7 @@ else {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($script:H25Scored -le 0) {
|
if ($script:H25Scored -le 0) {
|
||||||
Write-InformFlag 'scripts/governance-detectors.ps1 (H25-closeout-ritual)' `
|
Write-Flag 'LOW' 'scripts/governance-detectors.ps1 (H25-closeout-ritual)' `
|
||||||
'carve-out grid (b) DEAD - the closeout-ritual probe took its [skip] branch and scored 0 close-group this run, i.e. it is wired but measuring NOTHING. error-ledger Carve-out o3 requires BOTH grids alive' `
|
'carve-out grid (b) DEAD - the closeout-ritual probe took its [skip] branch and scored 0 close-group this run, i.e. it is wired but measuring NOTHING. error-ledger Carve-out o3 requires BOTH grids alive' `
|
||||||
$c13Resolve
|
$c13Resolve
|
||||||
$c13Flags++
|
$c13Flags++
|
||||||
@ -2174,12 +2206,27 @@ else {
|
|||||||
else {
|
else {
|
||||||
Write-Host (" [ok] grid (b) ALIVE: H25-closeout-ritual scored {0} close-group(s) this run" -f $script:H25Scored) -ForegroundColor DarkGray
|
Write-Host (" [ok] grid (b) ALIVE: H25-closeout-ritual scored {0} close-group(s) this run" -f $script:H25Scored) -ForegroundColor DarkGray
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ---- grid (c): trio-memory liveness (YC-020(4) @S185 - owner 'OK' mo C13 sang luoi trio S141) ----
|
||||||
|
# Absolute-liveness only: FLAG when ZERO harness-*-return.md exists under runs/ (net dead-silent).
|
||||||
|
# No new threshold invented here (age printed INFORM-style; a threshold = an owner number).
|
||||||
|
$trioReturns = @(Get-ChildItem -Path (Join-Path $RepoRoot '.claude\workflows\runs') -Recurse -Filter 'harness-*-return.md' -File -ErrorAction SilentlyContinue)
|
||||||
|
if ($trioReturns.Count -eq 0) {
|
||||||
|
Write-Flag 'LOW' '.claude/workflows/runs/' `
|
||||||
|
'carve-out grid (c) DEAD - trio-memory net has ZERO harness-*-return.md on disk across ALL runs: the auto-1-round-per-session loop (S141/S151) is leaving no scribe trace at all' `
|
||||||
|
$c13Resolve
|
||||||
|
$c13Flags++
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$newestTrio = ($trioReturns | Sort-Object LastWriteTime -Descending | Select-Object -First 1)
|
||||||
|
Write-Host (" [ok] grid (c) ALIVE: {0} harness-*-return.md on disk; newest = {1} ({2:yyyy-MM-dd HH:mm})" -f $trioReturns.Count, (Rel $newestTrio.FullName), $newestTrio.LastWriteTime) -ForegroundColor DarkGray
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$c13Note = if ($c13Measured) { '' } else { ' -- MEASURED NOTHING (skipped above); a 0 after a skip is not a green' }
|
$c13Note = if ($c13Measured) { '' } else { ' -- MEASURED NOTHING (skipped above); a 0 after a skip is not a green' }
|
||||||
Write-Host (" C13 carve-out-liveness flags = {0} [INFORM-only, LOW, NOT folded into TOTAL baseline]{1}" -f $c13Flags, $c13Note) -ForegroundColor DarkGray
|
Write-Host (" C13 carve-out-liveness flags = {0} [FOLDED vao TOTAL @S185 YC-020(1) - nen INFORM = bookend S185]{1}" -f $c13Flags, $c13Note) -ForegroundColor DarkGray
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# C14 - stamp_verify mirror-drift (INFORM-only, NEW @S185; count SEPARATE, NOT in TOTAL)
|
# C14 - stamp_verify mirror-drift (NEW @S185; FOLDED vao TOTAL @S185 - YC-020(1))
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# NAMING: script-local C-numbering (see C13 note). This implements S185 checklist C-19.
|
# NAMING: script-local C-numbering (see C13 note). This implements S185 checklist C-19.
|
||||||
#
|
#
|
||||||
@ -2205,7 +2252,7 @@ Write-Host (" C13 carve-out-liveness flags = {0} [INFORM-only, LOW, NOT folded
|
|||||||
# with a machine-specific prefix silently degrades to the else-branch on any other
|
# with a machine-specific prefix silently degrades to the else-branch on any other
|
||||||
# machine, and a silent degrade reads exactly like "clean" - the S122 W5 lesson already
|
# machine, and a silent degrade reads exactly like "clean" - the S122 W5 lesson already
|
||||||
# paid for once in this file. Hub unreachable => "CHUA DO DUOC", never [ok], never silence.
|
# paid for once in this file. Hub unreachable => "CHUA DO DUOC", never [ok], never silence.
|
||||||
Write-Section 'C14 - stamp_verify mirror-drift (INFORM-only)'
|
Write-Section 'C14 - stamp_verify mirror-drift (TOTAL @S185)'
|
||||||
$c14Flags = 0
|
$c14Flags = 0
|
||||||
$c14Measured = $false
|
$c14Measured = $false
|
||||||
|
|
||||||
@ -2228,7 +2275,7 @@ if ($null -ne $p1) { $p2 = Split-Path $p1 -Parent; if ($null -ne $p2) { $hubRoot
|
|||||||
$mirHub = if ($null -eq $hubRoot) { $null } else { Join-Path $hubRoot 'scripts\stamp_verify.py' }
|
$mirHub = if ($null -eq $hubRoot) { $null } else { Join-Path $hubRoot 'scripts\stamp_verify.py' }
|
||||||
|
|
||||||
if (-not (Test-Path $mirLocal)) {
|
if (-not (Test-Path $mirLocal)) {
|
||||||
Write-InformFlag 'scripts/stamp_verify.py' `
|
Write-Flag 'LOW' 'scripts/stamp_verify.py' `
|
||||||
'stamp mirror MISSING locally - the ported verifier is gone, so /check-email and /send-email fall back to the regex-pin path with nothing checking the canon' `
|
'stamp mirror MISSING locally - the ported verifier is gone, so /check-email and /send-email fall back to the regex-pin path with nothing checking the canon' `
|
||||||
're-pull scripts/stamp_verify.py from AI_INFRA, or declare the regex-pin path canonical and retire the mirror in the SAME change'
|
're-pull scripts/stamp_verify.py from AI_INFRA, or declare the regex-pin path canonical and retire the mirror in the SAME change'
|
||||||
$c14Flags++; $c14Measured = $true
|
$c14Flags++; $c14Measured = $true
|
||||||
@ -2242,7 +2289,7 @@ else {
|
|||||||
$hl = Get-MirrorHashes $mirLocal
|
$hl = Get-MirrorHashes $mirLocal
|
||||||
$hh = Get-MirrorHashes $mirHub
|
$hh = Get-MirrorHashes $mirHub
|
||||||
if ($hl.Logic -ne $hh.Logic) {
|
if ($hl.Logic -ne $hh.Logic) {
|
||||||
Write-InformFlag 'scripts/stamp_verify.py' `
|
Write-Flag 'LOW' 'scripts/stamp_verify.py' `
|
||||||
("stamp mirror DRIFT: local logic-sha {0} != hub logic-sha {1} (local {2} lines / hub {3} lines; raw-sha local {4} hub {5}) - the mirror no longer carries the hub canon, so a stamp verified here can pass while the hub would fail it" -f `
|
("stamp mirror DRIFT: local logic-sha {0} != hub logic-sha {1} (local {2} lines / hub {3} lines; raw-sha local {4} hub {5}) - the mirror no longer carries the hub canon, so a stamp verified here can pass while the hub would fail it" -f `
|
||||||
$hl.Logic.Substring(0, 12), $hh.Logic.Substring(0, 12), $hl.Lines, $hh.Lines, $hl.Raw.Substring(0, 8), $hh.Raw.Substring(0, 8)) `
|
$hl.Logic.Substring(0, 12), $hh.Logic.Substring(0, 12), $hl.Lines, $hh.Lines, $hl.Raw.Substring(0, 8), $hh.Raw.Substring(0, 8)) `
|
||||||
'BLOCKING NOTHING (INFORM): re-pull the hub copy over scripts/stamp_verify.py keeping ONLY the mirror-of header note, then re-run this detector'
|
'BLOCKING NOTHING (INFORM): re-pull the hub copy over scripts/stamp_verify.py keeping ONLY the mirror-of header note, then re-run this detector'
|
||||||
@ -2254,10 +2301,10 @@ else {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$c14Note = if ($c14Measured) { '' } else { ' -- MEASURED NOTHING (hub unreachable); a 0 here is "chua do duoc", not a green' }
|
$c14Note = if ($c14Measured) { '' } else { ' -- MEASURED NOTHING (hub unreachable); a 0 here is "chua do duoc", not a green' }
|
||||||
Write-Host (" C14 stamp-mirror-drift flags = {0} [INFORM-only, LOW, NOT folded into TOTAL baseline]{1}" -f $c14Flags, $c14Note) -ForegroundColor DarkGray
|
Write-Host (" C14 stamp-mirror-drift flags = {0} [FOLDED vao TOTAL @S185 YC-020(1)]{1}" -f $c14Flags, $c14Note) -ForegroundColor DarkGray
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# C15 - V-5 encoding predicate (INFORM-only, NEW @S185; count SEPARATE, NOT in TOTAL)
|
# C15 - V-5 encoding predicate (NEW @S185; FOLDED vao TOTAL @S185 - YC-020(1); rank-1 data-loss = MED)
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# NAMING: script-local C-numbering (see C13 note). This implements S185 checklist C-11.
|
# NAMING: script-local C-numbering (see C13 note). This implements S185 checklist C-11.
|
||||||
#
|
#
|
||||||
@ -2292,7 +2339,7 @@ Write-Host (" C14 stamp-mirror-drift flags = {0} [INFORM-only, LOW, NOT folded
|
|||||||
# The mojibake markers are built from CODE POINTS (same U helper as the VN tokens) so this
|
# The mojibake markers are built from CODE POINTS (same U helper as the VN tokens) so this
|
||||||
# .ps1 stays pure-ASCII on disk (gotcha #30) and so the detector never carries a literal
|
# .ps1 stays pure-ASCII on disk (gotcha #30) and so the detector never carries a literal
|
||||||
# specimen of the thing it hunts.
|
# specimen of the thing it hunts.
|
||||||
Write-Section 'C15 - V-5 encoding predicate (INFORM-only)'
|
Write-Section 'C15 - V-5 encoding predicate (TOTAL @S185)'
|
||||||
$c15Flags = 0
|
$c15Flags = 0
|
||||||
$c15Measured = $false
|
$c15Measured = $false
|
||||||
|
|
||||||
@ -2352,14 +2399,14 @@ else {
|
|||||||
$v5Files.Count, $lossFiles.Count, $lossHits, $mojiFiles.Count, $mojiHits)
|
$v5Files.Count, $lossFiles.Count, $lossHits, $mojiFiles.Count, $mojiHits)
|
||||||
|
|
||||||
if ($lossFiles.Count -gt 0) {
|
if ($lossFiles.Count -gt 0) {
|
||||||
Write-InformFlag 'V-5 rank-1' `
|
Write-Flag 'MED' 'V-5 rank-1' `
|
||||||
("encoding DATA LOSS: {0} file(s) / {1} raw U+FFFD - the original bytes are gone and no re-decode recovers them; only the source artifact can" -f $lossFiles.Count, $lossHits) `
|
("encoding DATA LOSS: {0} file(s) / {1} raw U+FFFD - the original bytes are gone and no re-decode recovers them; only the source artifact can" -f $lossFiles.Count, $lossHits) `
|
||||||
're-fetch each file from its source artifact (a re-save will NOT restore the lost characters); if a file is a frozen record, note the loss in it explicitly so it is not read as content'
|
're-fetch each file from its source artifact (a re-save will NOT restore the lost characters); if a file is a frozen record, note the loss in it explicitly so it is not read as content'
|
||||||
$c15Flags++
|
$c15Flags++
|
||||||
foreach ($lf in $lossFiles) { Write-Host (" [rank-1] {0}" -f $lf) -ForegroundColor DarkGray }
|
foreach ($lf in $lossFiles) { Write-Host (" [rank-1] {0}" -f $lf) -ForegroundColor DarkGray }
|
||||||
}
|
}
|
||||||
if ($mojiFiles.Count -gt 0) {
|
if ($mojiFiles.Count -gt 0) {
|
||||||
Write-InformFlag 'V-5 rank-2' `
|
Write-Flag 'LOW' 'V-5 rank-2' `
|
||||||
("encoding MOJIBAKE-ONLY: {0} file(s) / {1} double-encoding signature(s) - nothing is lost, a correct re-decode repairs it" -f $mojiFiles.Count, $mojiHits) `
|
("encoding MOJIBAKE-ONLY: {0} file(s) / {1} double-encoding signature(s) - nothing is lost, a correct re-decode repairs it" -f $mojiFiles.Count, $mojiHits) `
|
||||||
're-decode the file as UTF-8 and re-save; verify by re-running this detector (rank-2 must go to 0 without rank-1 rising)'
|
're-decode the file as UTF-8 and re-save; verify by re-running this detector (rank-2 must go to 0 without rank-1 rising)'
|
||||||
$c15Flags++
|
$c15Flags++
|
||||||
@ -2370,7 +2417,7 @@ else {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$c15Note = if ($c15Measured) { '' } else { ' -- MEASURED NOTHING (skipped above); a 0 after a skip is not a green' }
|
$c15Note = if ($c15Measured) { '' } else { ' -- MEASURED NOTHING (skipped above); a 0 after a skip is not a green' }
|
||||||
Write-Host (" C15 V-5 encoding flags = {0} [INFORM-only, LOW, NOT folded into TOTAL baseline]{1}" -f $c15Flags, $c15Note) -ForegroundColor DarkGray
|
Write-Host (" C15 V-5 encoding flags = {0} [FOLDED vao TOTAL @S185 YC-020(1); rank-1 = MED]{1}" -f $c15Flags, $c15Note) -ForegroundColor DarkGray
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Summary + C4 self-exclusion audit (RUNTIME proof)
|
# Summary + C4 self-exclusion audit (RUNTIME proof)
|
||||||
@ -2395,7 +2442,7 @@ if ($selfInScan -eq 0 -and $leaked -eq 0) {
|
|||||||
|
|
||||||
Write-Host ''
|
Write-Host ''
|
||||||
Write-Host ("TOTAL FLAGS: {0}" -f $script:FlagCount) -ForegroundColor Cyan
|
Write-Host ("TOTAL FLAGS: {0}" -f $script:FlagCount) -ForegroundColor Cyan
|
||||||
Write-Host ("INFORM-ONLY (new nets C6 cite-2-tier + H24-4 pending-flip + H24-5 counter-ancestor-classify + C9 hmw-width-drift + C11 h24-flag-form + C12 raw-engine-bypass + C13 carve-out-liveness + C14 stamp-mirror-drift + C15 V-5-encoding + the L7-bolt 'chua do duoc' lines): {0} - counted SEPARATELY, NOT in TOTAL above (anti-Goodhart, owner-set; fold+sev-raise is post-triage)" -f $script:InformCount) -ForegroundColor DarkGray
|
Write-Host ("INFORM-ONLY (new nets C6 cite-2-tier + H24-4 pending-flip + H24-5 counter-ancestor-classify + C9 hmw-width-drift + C11 h24-flag-form + C12 raw-engine-bypass + the L7-bolt 'chua do duoc' lines): {0} - counted SEPARATELY, NOT in TOTAL above (anti-Goodhart, owner-set; fold+sev-raise is post-triage)" -f $script:InformCount) -ForegroundColor DarkGray
|
||||||
Write-Host 'NOTE: DETECT-only lowering net. Exit 0 always (never fails build). FLAGs are advisory.' -ForegroundColor DarkGray
|
Write-Host 'NOTE: DETECT-only lowering net. Exit 0 always (never fails build). FLAGs are advisory.' -ForegroundColor DarkGray
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
Reference in New Issue
Block a user