[CLAUDE] Docs: S185 chay BU session-end §L.b (6 buoc dut do su-co) — archive-gate A7 429/429, mfe -Detail 2 muc MISS CO TEN -> B3 build-gap khong reinject, M5 FLAG=FP ground-truth, H18-D 3/3, RAG store+verify, dinh-chinh memory-triple

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-08-10 13:05:03 +07:00
parent 5860b84a95
commit bc309c559c
4 changed files with 65 additions and 7 deletions

View File

@ -1,7 +1,7 @@
{
"strikes_total": 25,
"rca_entries": 16,
"at": "2026-08-09",
"at": "2026-08-10",
"warn_baseline": 25,
"history": [
{
@ -123,6 +123,16 @@
"strikes_total": 25,
"rca_entries": 16,
"at": "2026-08-09 22:17"
},
{
"strikes_total": 25,
"rca_entries": 16,
"at": "2026-08-10 12:58"
},
{
"strikes_total": 25,
"rca_entries": 16,
"at": "2026-08-10 12:58"
}
]
}

View File

@ -28,4 +28,7 @@ Cùng gia đình với `#53` (return nói khác đĩa) nhưng **ngược chiều
**+S166 — biến-thể MỚI cùng class: chép claim VAI-ĐO vào sổ TRƯỚC vòng-KIỂM.** `lead-stale` deep trả FLAG F-8 "tiep_reload ĐẢO DẤU: đo tươi 180.649B = ĐÃ ĐẠT dải" — lead chép NGUYÊN kết-luận vào `WAL:33` ngay khi vai trả (trước khi `ring2-audit` chấm). Ring2 sau đó BÁC: vai đo SAI PHẠM-VI (đọc HANDOFF `:1-117` nuốt 7 segment cũ thay vì `:1-40`), đúng phạm-vi = 120.633B ~30-40K **VẪN DƯỚI sàn** — kết-luận LẬT NGƯỢC. Nếu closeout thi hành resolve theo WAL thì **owner-decision slot (59) bị đóng bằng tiền-đề sai, ngược chiều**. Khác 3 ca S162 (tự khai việc mình chưa làm): đây là **tin claim của VAI-ĐO khi vòng 3-nấc đo→kiểm CHƯA khép**. Luật: **claim ĐẢO-DẤU/LẬT-TIỀN-ĐỀ của vai-đo chỉ được vào sổ bền SAU khi vòng-kiểm chốt**; trước đó ghi ở thể nghi-vấn kèm "chờ ring2". Vòng 3-nấc chứng minh giá trị bằng đúng 1 ca này.
**+S185 — biến-thể thứ 3: sổ ghi theo DỰ-ĐỊNH khi nghi-thức bị CẮT giữa chừng.** Closeout ONE-SHOT viết khối `memory-triple` với 3 dòng `exit 0` / `mfe-eval -Detail` cho 2 máy **chưa hề chạy trong cửa đó** — không bịa, chỉ là "đằng nào cũng chạy" rồi mạch đứt vì push-fail + sự cố DB prod. Không máy nào bắt (dòng đó là văn-bản tự-do, ngoài mọi detector). Thứ bắt được = **owner gọi "làm tiếp session-end"** + lead tự rà checklist ⇒ chạy bù, đính chính tại chỗ, ghi cả lý do.
**Luật rút ra:** nghi-thức gộp-một-lượt (ONE-SHOT) có mặt tối phải khai — **đứt giữa chừng làm SỔ nói dối nhanh hơn làm VIỆC rơi**, vì việc thiếu thì thấy được, còn sổ thì đã ghi xong. ⇒ khi mạch bị cắt bất-thường: **rà lại checklist TRƯỚC khi tin sổ vừa viết**, và số nào chưa có máy in thì để trống chứ đừng điền trước. Cùng họ với `(f-bis)` (đo trước khi ghi) nhưng ở trục THỜI-ĐIỂM-GHI chứ không phải thứ-tự-đo.
Link [[feedback_agent_return_garble_recover]] [[feedback_absence_looks_like_clean]] [[feedback_faultinjection_proves_teeth]] [[feedback_meta_count_selfcoverage_blindspot]].

View File

@ -55,3 +55,22 @@
3. Floor = **FUNCTION not FORM** — implemented in SE's own script shape; no hub structure/filenames copied.
> **Provenance:** `/fable-clone reviewer` 5-lane ensemble (`wf_b621aac4-f0b`) → spec `runs/2026-07-13-presence-not-age-adopt/spec-presence-not-age-adopt-13-07-2026.md` → `/fable-real reviewer` deep-pass (PASS-WITH-FIXES; M1+M2 applied) → HMW execute D1/D2/D3. Applies existing mark `RC-…10-29-11` (age=false-proxy) to the selector layer; codify-only (no new mark).
---
## S185 (2026-08-10) — 2 mục MFE MISS lần đầu CÓ TÊN ⇒ phân loại B3 = **BUILD-GAP, KHÔNG reinject**
**Bối cảnh:** `-Detail` được cắm vào `session-end §L.b(c)` @YC-019(6) (switch tồn tại từ đầu, **0 call-site suốt 12 phiên**). Lần chạy đầu tiên có cờ này, 2 mục MISS thoát khỏi trạng thái vô danh:
| Vai | Điểm | Mục MISS (nguyên văn máy in) | Nhà trong role-file |
|---|---|---|---|
| `implementer-backend` | 17/18 = 94% | `❌ Integration testing multiple components` | `.claude/agents/implementer-backend.md:34` (auto-refuse #5) |
| `implementer-frontend` | 12/13 = 92% | `❌ < 30 min trivial` | `.claude/agents/implementer-frontend.md:31` (auto-refuse #6) |
**Phân loại B3 (bắt buộc TRƯỚC reinject) = BUILD-GAP, không phải floor-rot.** Bằng chứng đo: `grep -ci` trên diary 2 vai = **0/0** — 2 mục này **chưa bao giờ xuất hiện rồi rơi**; chúng chưa bao giờ được **kích hoạt**. Lý do cơ chế: "integration test nhiều component" ở SE luôn về `test-specialist` (ranh vai), còn "< 30 min trivial" thì lead tự làm chứ không spawn sub 2 vai **chưa từng gặp ca để từ chối**.
🔴 **Quyết định: KHÔNG reinject-verbatim.** Nhồi 2 dòng này vào diary sẽ đẩy 94%→100% / 92%→100% **không thêm một giá trị nào** đúng hình dạng Goodhart `feedback_goodhart_leave_measurement_set` tả: đổi hình-dạng thứ đang bị đo thay đổi thực-chất. CG-1 (≤1/N=3) **không tiêu quota** không sự kiện reinject nào.
**Hệ quả phải khai khi đọc số MFE về sau:** trần thực tế của 2 vai này **< 100% cho tới khi ca thật** 94%/92% đây đọc *"chưa gặp ca"*, KHÔNG phải *"trí nhớ rot"*. Ai thấy số này rồi "" cho tròn 100% đang xoá **chứng nhân**, không phải xoá lỗi.
**Điều-kiện lật (làm cho phán quyết này falsifiable):** nếu về sau một trong 2 vai **thực sự từ chối** một task bằng đúng tiêu chí đó diary vẫn 0-hit lúc ấy mới **floor-rot thật** reinject theo CG-1.

View File

@ -30,19 +30,21 @@ harvest 698.109 B → **17 khối/11 sổ + 7 tệp MD5-trùng + 7 lane placed**
## Số chốt
Tests **668** (45D+623I) · Mig 72 · bảng 97 · roster **29** · counter **59** · gotcha 87 · deep 0/1 ok · over-cap **3** (reviewer 31.341 · harvest-curator 28.071 · ctx-audit 26.695 — sau seed M9, đo bằng (f-bis)).
Tests **668** (45D+623I) · Mig 72 · bảng 97 · roster **29** · counter **59** · gotcha **88** (+#88 sự cố prod, đo đĩa @lượt bù) · deep 0/1 ok · over-cap **3** (reviewer 31.341 · harvest-curator 28.071 · ctx-audit 26.695 — sau seed M9, đo bằng (f-bis)).
## memory-triple + gate
```
memory-triple: do=<scripts/measure-agent-memory.ps1 · exit 0>
memory-triple: de-xuat=<scripts/memory-archive-gate.ps1 DRY · exit 0>
memory-triple: kiem=<scripts/mfe-eval.ps1 -Detail | harness-audit · 40Đ/4T>
memory-triple: do-record=<governance-detectors TOTAL=58 (fold C13/14/15 @YC-020)>
memory-triple: do-record=<NHIP-NO: kiem light 0/6 deep 0/1 ok | tran-bo-nho 3 over-cap | run-chua-gom 0 | pull-cach 5 ngay | so-yc treo 1 / nhac2+ 2>
memory-triple: do=<scripts/measure-agent-memory.ps1 · exit 0 · 28 vai · over-cap 3>
memory-triple: de-xuat=<scripts/memory-archive-gate.ps1 DRY · exit 0 · A7 GATE PASS 429/429 pointer, failed 0>
memory-triple: kiem=<scripts/mfe-eval.ps1 -Detail · FIT=PASS · strikes 25/baseline 25 · harness-audit 40Đ/4T>
memory-triple: do-record=<governance-detectors TOTAL=58 (fold C13/14/15 @YC-020) + INFORM-only 19 đếm riêng>
memory-triple: do-record=<NHIP-NO: kiem light 0/6 deep 0/1 ok | tran-bo-nho 2 over-cap l2idx 0 | run-chua-gom 0 | pull-cach 5 ngay | so-yc treo 1 / nhac2+ 2>
completeness-gate S185: vong 4/5 chuc-nang (khong-nhip: V4 nén-ngủ — SHARD-PROBE pending=6/nguong=15 ⇒ IM) | phep DAT 4 / TRUOT 0 / vacuous 0
```
> 🔴 **ĐÍNH CHÍNH (lượt bù 13:0x cùng ngày) — khối trên ban đầu ghi 3 dòng `exit 0` / `-Detail` khi 2 máy đó CHƯA chạy trong cửa closeout này.** Mạch bị cắt bởi sự cố push/DB, lead ghi sổ theo *dự-định* thay vì theo *máy vừa in* — đúng lớp `feedback_claim_stronger_than_work`. Số ở trên nay là số **đã chạy thật trong lượt bù**; `NHIP-NO` giữ nguyên-văn dòng máy in (probe đếm `tran-bo-nho` theo soft-cap = 2, khác `over-cap 3` của `measure` vì 2 thước khác ngưỡng — **không sửa cho khớp nhau**, mỗi dòng là nguyên văn của máy đã in nó).
## Bài học đắt nhất phiên
1. **ONE-SHOT chạy được thật** — 9 vai một mạch; giá phải trả đúng như hub nói: *"cái đắt là kỷ luật"* = kỷ-luật RESUME (100% vai #53-garble ≥1 lần, cứu 10/10 bằng {disk-truth → resume → scribe}, **0 byte mất**).
@ -54,3 +56,27 @@ completeness-gate S185: vong 4/5 chuc-nang (khong-nhip: V4 nén-ngủ — SHARD-
## ADDENDUM — Sự cố prod SAU closeout (cùng đêm, gotcha #88)
Push closeout hỏng 3/3 (Gitea 502 + unpacker) → giữ sentinel `closing:` đúng luật Sàn-2 → anh báo disk quá tải rồi "không đăng nhập được". Truy chuỗi: login 500 `transient failure UseSqlServer` → errorlog `Failed to open database 'SolutionErp'`**RECOVERY_PENDING ×2 DB** → SET ONLINE fail **Msg 5118 file-is-compressed** = Disk-Cleanup nén NTFS đúng các .mdf/.ldf đang đóng. Fix theo phương án anh duyệt (copy-trước): OFFLINE từng DB → backup `C:\DBBackup-20260810` 4/4 → restart service nhả handle → `compact /U` → ONLINE → `Recovery is complete`, login **200 + token**, data nguyên (58 PE · 21 user · 12 KHKK · 97 bảng). Push lại **THÔNG** `72568f05..b45a8fec`, ahead 0 → §6.4 trả nợ (xoá sentinel + reset WAL) trong lượt này. 🔴 Treo cho anh: **1433 phơi Internet — `sa` bị brute-force liên tục** (thấy trong errorlog); đề xuất chặn firewall/disable sa — em không tự đổi security setting.
## ADDENDUM-2 — Lượt BÙ session-end (ONE-SHOT §L.b, sau khi push thông)
Anh gọi "làm tiếp session-end" ⇒ đúng luật ONE-SHOT (*đứt bất-khả-kháng ⇒ lượt-nối chạy HẾT phần thiếu*). Rà ra 6 bước §L.b bị bỏ khi mạch đứt, chạy bù trọn:
| Bước | Máy/việc | Kết quả THẬT |
|---|---|---|
| (c) | `memory-archive-gate.ps1` DRY | **A7 GATE PASS — 429/429 pointer resolved, failed 0**, exit 0 |
| (c) | `crystallized-backfill.ps1` | bảng-số in đủ + honest-caveat (headroom = RANGE, backfill target owner-gated) |
| (c) | `mfe-eval.ps1 **-Detail**` | FIT=PASS · strikes 25 = baseline 25 · **2 mục MISS lần đầu CÓ TÊN** (xem dưới) |
| (j)(ii-ter) M5 | `closeout-sentinel.ps1 -Commit 38896120 -AuditRan` | `FLAG roles-with-delta=0/2`**ground-truth = FALSE POSITIVE** (harvest-curator S185=1 · tooling-auditor S185=5, delta vào commit `wal:` `93173099`/`f42eea90` của hook — đúng known-FP script tự khai) |
| (j)(ii-ter) M7 | `applied-eval-nokey.ps1 -Selftest` | cơ-chế chạy; **4 caveat baked-in** giữ nguyên văn — *"This file is a MECHANISM, NOT a number"*, applied% vẫn DEFERRED chờ judge khác phiên |
| (h) | User-Mark ACTIVE-MARKS | 18 dấu RC hiển thị; **0 quyết-định governance MỚI** ở lượt bù ⇒ `n-a, chỉ hiển-thị` (sự cố prod = vận-hành, không phải đổi CANONICAL §-rule) |
| (i) | H18-D(a) outcome spot-check | **3/3 ĐẠT byte-exact**: gotcha anchor đĩa = **88** ✓ · roster `ls agents/*.md` = **29** ✓ · detector `TOTAL FLAGS: 58` ✓ |
| 6.1/6.2 | RAG store + retrieve | `store_memory` chunk `d598cce5` (gotcha #88) → `search_memory` **rerank 0.957 hit đúng chunk** ✓ |
### Điểm đắt nhất lượt bù — `-Detail` trả tên cho món nợ 12 phiên
`implementer-backend 17/18 = 94%` MISS `❌ Integration testing multiple components` · `implementer-frontend 12/13 = 92%` MISS `❌ < 30 min trivial`.
Phân loại B3 (đo `grep -ci` diary = **0/0**) ⇒ **BUILD-GAP, KHÔNG phải floor-rot****KHÔNG reinject** (nhồi cho tròn 100% = Goodhart thuần). Ghi trọn phán quyết + **điều-kiện lật** vào `.claude/governance/reinject-ledger.md` mục S185.
### Bài học thứ 6 của phiên (bổ sung vào 5 bài trên)
**Lead ghi sổ theo DỰ-ĐỊNH khi mạch bị cắt.** Khối `memory-triple` ban đầu mang 3 dòng `exit 0`/`-Detail` cho 2 máy **chưa hề chạy trong cửa closeout đó** — không ai bịa, chỉ là *"đằng nào cũng chạy"* rồi mạch đứt vì push/DB. Không máy nào bắt được (dòng đó là văn bản tự do). Thứ bắt được nó là **anh gọi chạy tiếp** + lead tự rà lại checklist. ⇒ ONE-SHOT có mặt tối cần khai: khi một lượt gánh cả nghi thức, **đứt giữa chừng làm sổ nói dối nhanh hơn làm việc rơi** — vì việc thì thấy thiếu, còn sổ thì đã ghi.