diff --git a/docs/governance/so-yeu-cau-chu-du-an.md b/docs/governance/so-yeu-cau-chu-du-an.md index 896e445..bec49a8 100644 --- a/docs/governance/so-yeu-cau-chu-du-an.md +++ b/docs/governance/so-yeu-cau-chu-du-an.md @@ -24,16 +24,23 @@ Dữ-liệu cũ (WAL · HANDOFF · auto-memory · migration-todos) **KHÔNG** đ ## Khối 1 — `việc-được-giao` -| mã | lời nguyên văn | thời điểm · phiên | trạng thái | số lần đã nhắc | con trỏ | 🔴 đội hiểu thành gì | -|---|---|---|---|---|---|---| -| `YC-001` | "Nói rõ các vấn đề trên nhé" | 2026-08-07 · S181 | đóng | 1 | báo-cáo lượt S181 | Giải thích 6 câu chờ-anh bằng nguồn thật, không phỏng theo trí nhớ — kèm khuyến nghị từng câu | -| `YC-002` | "OK cứ làm dry-run luôn" | 2026-08-07 · S181 | đóng | 1 | `WAL` chain "DRY-RUN W3 acceptance" | *(lead hiểu SAI lượt đầu: tưởng dry-run các ô acceptance W3. Anh đính chính ở `YC-004`.)* | -| `YC-003` | "gõ /adap-apply (dry) -> OK chốt cái này cho W3" | 2026-08-07 · S181 | đóng | 1 | `WAL` chain "W3 acceptance 6/6 ĐÓNG" | Gõ lệnh thật để xác nhận thân lệnh nạp có BƯỚC 0, **không** áp thư nào | -| `YC-004` | "làm tiếp đi nhé, nãy tao nói dry-run tức chạy hết cái plan adapt ở turn trước chứ ko phải dry-run cái này" | 2026-08-07 · S181 | đóng | **2** | `WAL` chain "THI HÀNH 5/6 khoản đợt-2" | Đính chính `YC-002`: "dry-run" = **thi hành trọn plan adapt**, không phải chạy thử | -| `YC-005` | "làm xong thì chậy hết cái plan adapt nhé" | 2026-08-07 · S181 | đóng | **3** | cùng trên | Nhắc lại `YC-004` — cùng nội dung, lần thứ 3 | -| `YC-006` | "làm cho hết đi nhé" | 2026-08-07 · S181 | mở | **4** | `WAL` `next:` | Chạy nốt phần còn lại: P8 · P2 · W4 | +> 🔴 **CỘT `nhắc-lại-của` — ĐỌC TRƯỚC KHI ĐẾM** (thêm @S181 sau khi vai tầng-2 bắt lỗi mã hoá của lead). +> Đơn vị đếm là **MỤC = YÊU-CẦU**, không phải **DÒNG**. Yêu-cầu bị nhắc lại **KHÔNG** được cấp mã mới — nó chỉ làm tăng cột *số lần đã nhắc* của **mã GỐC**. +> Bản đầu của sổ **làm sai đúng điều đó**: cấp 4 mã cho **một** yêu-cầu. Mã đã cấp là **vĩnh viễn, cấm xoá dòng** ⇒ chữa bằng **đánh dấu**, không bằng gỡ. +> 🔴 **LUẬT ĐẾM:** chỉ đếm dòng có `nhắc-lại-của` **TRỐNG**. Dòng có giá trị = cùng một mục, đã tính ở mã gốc. -> 🔴 **`YC-004/005/006` = MỘT yêu-cầu bị nhắc 4 lần.** Đây là dữ-liệu **TC-01** (đếm-lần-nhắc) sinh ra để bắt — và nó tự tố-giác ngay dòng đầu tiên của sổ: lead hiểu sai ở `YC-002` nên anh phải nói lại 3 lần nữa. **Ghi lại chứ không làm đẹp.** +| mã | lời nguyên văn | thời điểm · phiên | trạng thái | số lần đã nhắc | con trỏ | 🔴 đội hiểu thành gì | nhắc-lại-của | +|---|---|---|---|---|---|---|---| +| `YC-001` | "Nói rõ các vấn đề trên nhé" | 2026-08-07 · S181 | đóng | 1 | báo-cáo lượt S181 | Giải thích 6 câu chờ-anh bằng nguồn thật, không phỏng theo trí nhớ — kèm khuyến nghị từng câu | | +| `YC-002` | "OK cứ làm dry-run luôn" | 2026-08-07 · S181 | **mở** | **4** | `WAL` chain W5 + W4b | *(lead hiểu SAI lượt đầu: tưởng dry-run các ô acceptance W3 ⇒ anh phải đính chính **3 lần**, xem 3 dòng dưới.)* Ý thật: **thi hành trọn plan adapt** | | +| `YC-003` | "gõ /adap-apply (dry) -> OK chốt cái này cho W3" | 2026-08-07 · S181 | đóng | 1 | `WAL` chain "W3 acceptance 6/6 ĐÓNG" | Gõ lệnh thật để xác nhận thân lệnh nạp có BƯỚC 0, **không** áp thư nào | | +| `YC-004` | "làm tiếp đi nhé, nãy tao nói dry-run tức chạy hết cái plan adapt ở turn trước chứ ko phải dry-run cái này" | 2026-08-07 · S181 | đóng | — | `WAL` chain "THI HÀNH 5/6 khoản đợt-2" | Đính chính lần 1 | **`YC-002`** | +| `YC-005` | "làm xong thì chậy hết cái plan adapt nhé" | 2026-08-07 · S181 | đóng | — | cùng trên | Đính chính lần 2 | **`YC-002`** | +| `YC-006` | "làm cho hết đi nhé" | 2026-08-07 · S181 | đóng | — | `WAL` chain W5 + W4b | Đính chính lần 3 | **`YC-002`** | + +> 🔴 **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.** +> +> 🔬 **Ca này thành phép thử THẬT của hệ 4 tầng — và hệ ĐÃ BẮT LỖI CỦA TẦNG-1.** Lead đếm **3 mục** (đếm theo DÒNG). Vai tầng-2 `score-counter` đếm độc lập ra **1 mục**, lập luận không cãi được: luật lấy ví dụ *"mục nhắc 5 lần trừ đúng 1, không phải 4"* — mã hoá ca đó thành 5 dòng thì đếm-dòng ra **4**, **đúng con số luật gọi là SAI**. Tức đếm-dòng **tái tạo y hệt đáp án LẦN** dưới vỏ MỤC; số 3 của lead là `4−1`, cùng dấu vân tay. ⇒ Tầng-2 đọc-độc-lập **không phải nghi thức thừa** — nó cứu đúng con số đầu tiên sổ này sinh ra. ## Khối 2 — `sở-thích-thường-trực` diff --git a/scripts/nhip-no-probe.ps1 b/scripts/nhip-no-probe.ps1 index b09b6fa..39ee1cb 100644 --- a/scripts/nhip-no-probe.ps1 +++ b/scripts/nhip-no-probe.ps1 @@ -240,18 +240,28 @@ try { # trong khi so co dong MO that. Da xay ra that o lan cam dau tien (S181). $ycLines = Get-Content -LiteralPath $ycPath -Encoding UTF8 $OPEN = 'm' + [char]0x1EDF # "mo" voi dau moc = trang thai MO cua yeu-cau - $tot = 0; $treo = 0; $nhac2 = 0; $bad = 0 + $tot = 0; $treo = 0; $nhac2 = 0; $bad = 0; $dup = 0 foreach ($L in $ycLines) { if ($L -notmatch '^\|\s*`YC-\d+`') { continue } - $tot++ $c = $L -split '\|' - if ($c.Count -lt 8) { $bad++; continue } - if ($c[4].Trim() -eq $OPEN) { $treo++ } + if ($c.Count -lt 9) { $bad++; continue } + # (!) DEM THEO **MUC**, KHONG THEO **DONG** (va @S181 sau khi vai tang-2 bat loi). + # Cot cuoi 'nhac-lai-cua' co gia tri => dong nay la LAN NHAC LAI cua mot muc + # da dem o ma goc => BO QUA. Dem ca no la dem theo LAN, dung don vi luat CAM. + # Dau van tay cua loi do: ca "nhac 5 lan" ma hoa thanh 5 dong se cho 4 dong + # count>=2 - dung con so ma luat goi la SAI. + if (($c[8] -replace '[*` ]','') -ne '') { $dup++; continue } + $tot++ + # (!) Strip dau nhan markdown truoc khi so: o bang hay duoc viet **mo** cho noi bat. + # Ban dau so thang chuoi => '**mo**' truot => in 'treo 0' trong khi so co muc MO. + # Da xay ra that ngay luot cam dau tien (S181). + if (($c[4] -replace '[*` ]','') -eq $OPEN) { $treo++ } $m = [regex]::Match($c[5], '\d+') if ($m.Success -and [int]$m.Value -ge 2) { $nhac2++ } } if ($tot -gt 0) { - $ycSeg = ("so-yc treo {0} / nhac2+ {1}" -f $treo, $nhac2) + # in ca MAU SO muc + so dong nhac-lai da gop, de nguoi doc kiem duoc don vi + $ycSeg = ("so-yc treo {0} / nhac2+ {1} (muc {2}, gop {3} dong nhac-lai)" -f $treo, $nhac2, $tot, $dup) if ($bad -gt 0) { $ycSeg += (" / {0} dong KHONG TACH DUOC COT" -f $bad) } } }