6.2 KiB
LEAD-STALE-DEEP: IN-PROGRESS
H24 DEEP-audit @S166 (2026-08-01) — vai lead-stale-auditor
- Nhịp: OVERDUE(deep) tra-nợ, counter 40, deep_at cũ 25 (15/15 quá hạn)
- Chế-độ: read-only, INFORM-only, propose-only
- Nền máy:
detectors-output.txtcùng folder (TOTAL 51 + 10 INFORM) — ĐỌC làm nền, KHÔNG chạy lại - Enum class:
lead_self_audit.flag_classeshọview-*(5 class ĐÓNG)
Coverage (khai TRƯỚC, cập nhật dần)
| # | Nhóm bề-mặt | Trạng thái |
|---|---|---|
| 1 | docs/STATUS.md CURRENT + bảng CURRENT STATE |
DONE |
| 2 | docs/HANDOFF.md segment mới nhất |
PENDING |
| 3 | CLAUDE.md root (bảng module/mig) |
PENDING |
| 4 | .claude/agents/README.md roster |
PENDING |
| 5 | docs/changelog/migration-todos.md |
PENDING |
| 6 | Governance surfaces docs/governance/*.md |
PENDING |
| 7 | Mô-tả VAI .claude/agents/*.md |
PENDING |
| 8 | Dư-lượng bất-đối-xứng (mirror pairs) | PENDING |
FLAG-1 — view-residual-asym — HIGH
view: docs/STATUS.md:465-472 (bảng CURRENT STATE — ô CANONICAL theo B1)
source: docs/STATUS.md:6 (dòng CURRENT, cùng file) + đĩa
Wave K1→K3 (50e6d8c/0779f2d/15349e8, S164-S165) cập-nhật dòng :6 đủ 5 số mới nhưng KHÔNG chạm 1 ô nào của bảng canonical. Một file, hai bề mặt, sửa đúng một phía.
| Row bảng canonical | View nói (chuỗi THẬT trên đĩa) | Source đúng | Lệch | Máy có bắt? |
|---|---|---|---|---|
:465 Migrations |
| Migrations | **69** | |
71 (đếm đĩa Persistence/Migrations/*.cs trừ Designer/Snapshot = 71; mới nhất 20260731085624_AddKhkkApprovalGroupCatalogAndFinalizeRuntime.cs) |
−2 | ✅ CÓ (canonical-itself-stale) |
:466 SQL tables |
| SQL tables | **96** | |
97 (Mig 70 AddContractCatalogEntries = 1 CreateTable; Mig 71 = 0 CreateTable/DropTable ⇒ 96+1) |
−1 | ❌ MÙ |
:470 Policies |
| Policies | **220** | |
256 (= 64 key × 4 action; .claude/WAL.md:13 "policy=256") |
−36 | ❌ MÙ |
:471 Menu keys |
| Menu keys | **55** | |
64 (ĐẾM PHẦN-TỬ mảng MenuKeys.All, MenuKeys.cs — KHÔNG dùng grep -c "public const string" ra 65, bài S143/S150) |
−9 | ❌ MÙ |
:472 Tests |
| Tests | **590 PASS** | 45 Domain + 545 Infra |
614 (45D+569I — .claude/WAL.md:13 suite 614/0 (45D+569I) + :37) |
−24 | ❌ MÙ |
🔴 Vì sao nguy (hơn hẳn "5 con số cũ"): governance-detectors.ps1 Get-StatusValue resolve canonical TỪ chính bảng này (chính row :470 tự khai điều đó). Cross-check đĩa của máy CHỈ phủ mig + gotcha (detectors-output.txt:4 = disk cross-check: mig=71 gotcha=85) ⇒ 4 trục còn lại đo bằng thước sai mà máy vẫn in [ok]. Hệ-quả đo được ngay trong lượt này: detectors-output.txt:14 bảo .claude/skills/ef-core-migration/SKILL.md:93 "writes 97 table but canonical=96 → resolve: update to 96". Doc đó đang ĐÚNG (97) và máy đang đề-nghị sửa nó thành SAI. Canonical-poison không chỉ giấu lỗi — nó chủ-động sinh lệnh sửa-ngược.
resolve: re-ground 5 ô :465/:466/:470/:471/:472 về 71 / 97 / 256 / 64 / 614 (bao gồm sub-số 45D+569I), rồi chạy lại detector — kỳ vọng FLAG SKILL.md:93 biến mất và TOTAL đổi.
FLAG-2 — view-stale-count — HIGH
view: docs/STATUS.md:479 — chuỗi THẬT: **Bundle hash live (prod):** admin **\B43R6Y17`** · user `NLI5umBg` … Đo LIVE bằng curl 2026-07-31 @S164**source:**.claude/workflows/runs/2026-07-31-S164-4gd-khkk-fanout/sub-cicd-verify-k3.md:86,88— POST-deploy đo LIVE 31/07 18:26-18:27 +07: adminindex-mySTlx42.js**ROTATE** · eofficeindex-CZAYiWWa.js` FROZEN
Lệch: view nói B43R6Y17/NLI5umBg, source nói mySTlx42/CZAYiWWa. 0/2 khớp.
🔴 Nặng gấp đôi vì hai lẽ:
docs/STATUS.md:6cố ý KHÔNG chép số bundle mà trỏ "canonical ở:479" (đúng B1) ⇒ ai tuân B1 sẽ đáp thẳng vào ô sai. Đây là con trỏ tốt tới nội-dung hỏng — nguy hơn số rời rạc vì nó được cả hệ tin.- Chính vai cicd đã nói ra rồi mà chưa ai lật sổ:
sub-cicd-verify-k3.md:93-94viết nguyên văn "Đính chính mốc PRE trong đề bài: spec giao việc ghi baselineadmin B43R6Y17 · user NLI5umBg (@S164)— KHÔNG khớp gì đo được". Phát-hiện đã tồn tại trên đĩa; khoảng cách nằm ở chỗ nó chưa đi từ run-folder về sổ owner-facing (đúng lớp bài S162: nơi lead làm việc ≠ nơi anh đọc).
Ghi chú danh-pháp (đừng lẫn khi vá): :479 gọi app thứ hai là user, cicd gọi eoffice — cùng site, khác tên. Nếu vá thì thống nhất một tên, kẻo sinh vocab-fork mới.
resolve: :479 = admin mySTlx42 · user/eoffice CZAYiWWa (FROZEN, không phải ship-fail — cicd §5 dự-đoán TRƯỚC khi đo), kèm mốc 2026-07-31 18:26 +07 sau run #436. Hết flag khi hash ở :479 khớp lần curl mới nhất.
FLAG-3 — view-stale-count — LOW
view: docs/STATUS.md:6 — chuỗi THẬT: counter **39**
source: .claude/governance/.session-counter.json → counter = 40 (last_ticked_head = 24ea71e2… = HEAD hiện tại, session S166; detector H24-5 xác nhận [OK] OK-reachable)
Lệch 39 vs 40 (−1). SEV LOW có điều kiện: đây là stale biết-trước giữa phiên (S166 vừa tick, STATUS được re-stamp ở closeout). Ghi FLAG để tally by-class không mất mẫu, KHÔNG phải để đòi vá ngay.
🔴 Nhưng đừng đọc thành vô hại: counter là đầu vào của chính nhịp H24 (h24_cadence.deep_every). Một sổ owner-facing trình sai counter làm owner không thấy được món nợ deep 15/15 mà chính lượt này đang trả. Nếu closeout quên bump, LOW này lặng lẽ sống tiếp.
resolve: re-stamp counter 40 ở closeout S166; hoặc bỏ hẳn con số khỏi :6 và trỏ khoá .session-counter.json (kiểu B1 mà :6 đã dùng đúng cho bundle).