[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:
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -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]].
|
||||
|
||||
@ -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% mà **không thêm một giá trị nào** — đúng hình dạng Goodhart mà `feedback_goodhart_leave_measurement_set` mô tả: đổi hình-dạng thứ đang bị đo thay vì đổi thực-chất. CG-1 (≤1/N=3) **không tiêu quota** vì không có 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 có ca thật** — 94%/92% ở đây đọc là *"chưa gặp ca"*, KHÔNG phải *"trí nhớ rot"*. Ai thấy số này rồi "vá" cho tròn 100% là đ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í đó mà diary vẫn 0-hit ⇒ lúc ấy mới là **floor-rot thật** ⇒ reinject theo CG-1.
|
||||
|
||||
@ -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.
|
||||
|
||||
Reference in New Issue
Block a user