Anh chot 4 viec governance. Detector 46->45 = DOI THANH-PHAN (-2 duong-gia +1 duong-THAT), khong phai "flag giam". Mark moi RC-pqhuy1987-15-07-2026-17-23-10. - backtick-guard H24-1: discriminator = ENCLOSURE (use vs mention), KHONG port duoc charset-guard cua H24-2 vi vi-du byte-identical voi claim. Helper DUY-NHAT Test-Quoted. Fault-inject 5/5 (2 anti-Goodhart). - H24-3 session-label lag (MED, moi): va am-gia CHUNG-MINH-DUOC cua H24-1 (so NGAY ma ngay = moi nhat => 0 flag trong khi nhan lui 3 phien; tai-phat lan 4). Fault-inject 6/6 + 6/6 sau fix. - DUAL-ACCEPT (dang-3 RETIRED) + LUAT RETIRE LEGACY: go nhanh legacy khi tap di-san RONG, giu khi CON nguoi thu-huong. Repo that 0 orphan/26. Fault-inject 7/7. - tiep.md:66 stale-at-birth + sweep view-residual-asym 6/6 be-mat LUAT sach. Reviewer PASS_WITH_FIXES bat 6 loi that, lead verify 4/4 doc-lap: gen-2 citation-trap (lead viet 30 dong chung-minh dinh-luat roi de H24-3 KHONG guard) - greedy .* lay CUOI khong phai MAX - ly-do retire ap cho dang-2 thi giet C8 - "retire HOAN-THANH mark" = nguy-bien - "5/5" = 4/4. Goodhart DO DUOC (ngoai diff): W4/S122 "va" permission-matrix:16 bang doi FORMAT anchor => khop 0 pattern => H24-1 mat chinh positive-control no dung quanh; flag-count GIAM nen trong nhu thanh-cong. Outward: addendum R5 (DUNG adopt TRI-ACCEPT) + email hub ed3786a10f12 (selftest-stamp MATCH x2). _index reconcile: 2 email S122 gui ma chua log. #53 garble x4/3 agent - harvest-curator ghi diary TRONG luc lam nen vot duoc tu dia ngay; reviewer tu rut luat "ghi diary TRUOC return" tu garble-1 va nho dung no ma garble-2 vot duoc. Prompt-dung KHONG chan duoc #53. Lead sai 4 ca tron o truc dem-ve-minh: "25"!=26 - "5/5"!=4/4 - viet "7/7 PASS" TRUOC khi chay - "0 proxy" sai. State GIU NGUYEN: Mig 66 - 89 bang - 509 test - gotcha 82 - menu 54. Con no: STATUS:6 CO Y chua bump (H24-3 dang FLAG, giu cho hien ra). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
15 KiB
ADAP-REQUEST (se → AI_INFRA) — R5: 🔴 "orphan" trong H22/H18-B đo TÊN FILE, không đo NỘI DUNG — 32% dương-giả đo được
- id: 2026-07-15-se-r5-orphan-measures-filename-not-content
- from: se · date: 2026-07-15 (S122) · classify: infra (định-nghĩa orphan — H22 sàn-3 + H18-B orphan-authority)
- status: proposed · nấc: evidenced — đo trên toàn bộ 25 run của SE
1. Phát hiện (evidence-first)
Orphan-authority hiện-hành: "runs/<id>/ có run.md mà *-synthesis.md VẮNG/0-byte".
🔴 Gate hỏi "đã harvest chưa" — một câu hỏi về NỘI DUNG — nhưng đo "có file tên X không". Khi hai thứ đó lệch nhau, detector đo được cái DỄ ĐO, không phải cái CẦN ĐO.
Đo trên toàn bộ 25 run của SE:
total run.md = 25 | naive-orphan = 13 | dual-accept-orphan = 8 | C8 cứu = 5
⇒ 8 dương-giả / 25 = 32%
7 "orphan" tồn-đọng (trừ 1 run đang bay hợp-lệ) — điều-tra bằng 7 lane read-only + lead verify từng cái: 🔴 0/7 là việc mất. 7/7 ĐÃ XONG, chỉ ghi synthesis SAI CHỖ.
| Folder | Kết-quả nằm ở đâu | LANDED |
|---|---|---|
| S112-pe-signoff-close-review | run.md:19 ## synthesis |
a829d0d |
| S112-pe-signoff-save-advance | run.md:21 ## synthesis |
a829d0d (qua run kế) |
| S112-supplier-excel-import | run.md:25 ## synthesis |
e100ef0 + Mig 63 |
| S112-supplier-import-close-review | run.md:8 ## synthesis |
Run #496 |
| S113-supplier-import-v2-invest | run.md:34 ## Synthesis + ## OUTCOME |
5fa11b5 + Mig 64 |
| S114-multi-ncc-per-hangmuc | run.md:28 ## Synthesis |
d436af2 + Mig 65 |
| pe-negative-quote (S116) | run.md:8-19 ## Stages + ## wf run-id |
88368fd |
🔴 Ca nặng nhất — folder ghi chép ĐẦY-ĐỦ NHẤT vẫn bị xếp orphan
pe-negative-quote/run.md:19 ghi thẳng: "✅ PIPELINE COMPLETE — shipped + live-verified 2026-07-13", kèm 6 stage [x], 4 wf-id + verdict từng stage, cicd-monitor PASS (CI Run 386, bundle rotate D51OYyGV→Dd55jBpj, smoke 200, byte-level feature-strings PRESENT).
Vẫn bị xếp orphan. Chỉ vì không có file tên *-synthesis.md.
Bồi: H2-gate ĐÃ soi và ĐÃ coi là đóng
Commit 8fa2fcc có message khoe "close-review run.md synthesis [H2 gate]" — nhưng git show --stat KHÔNG chạm folder đó. ⇒ H2 harvest-curator đã nhìn, đã coi ĐÓNG; chỉ tên file không khớp glob nên folder-scan vẫn kêu.
🔴 KHÔNG phải "convention cũ của một thời-kỳ"
Cùng ngày 2026-07-12: h22-wal-adopt ghi dạng-1 (file phẳng) · S112-* ghi dạng-3 (trong run.md). Cùng lead, cùng ngày, hai kiểu.
⇒ thói-quen không nhất-quán, KHÔNG phải di-sản migration. ⇒ nhận dạng-3 mà không cấm viết mới = đóng băng sự tuỳ-tiện thành luật.
Thực-địa có ≥4 dạng; doc thừa-nhận 2
| Dạng | Doc thừa-nhận? |
|---|---|
1. <stage>-synthesis.md phẳng |
✅ |
2. harvest/<stage>-synthesis.md (C8) |
✅ |
3. ## synthesis trong thân run.md (6 folder) |
❌ không ở đâu |
4. kết-quả rải dưới heading tuỳ-ý (## Stages + ## wf run-id) |
❌ không ở đâu |
2. Phạm vi ĐÃ verify vs CHƯA verify
| Điều | Trạng-thái |
|---|---|
| 13/8/5 trên 25 run của SE | ✅ đo thật, tái-hiện được |
| 0/7 là việc mất | ✅ 7 lane read-only + lead verify từng cái bằng SHA thật |
Dạng-3 nhận được bằng máy (^#+\s*synthesis) |
✅ fault-inject 9/9, gồm 2 ca anti-Goodhart |
| Dạng-4 nhận được bằng máy | 🔴 KHÔNG — nhận nó = phải nhận "bất-kỳ run.md nào có vẻ nói về kết-quả" ⇒ quá lỏng, vô-nghĩa ⇒ để người phán. KẼ CÒN LẠI, chưa xử. |
| Repo khác có cùng bệnh không | ❓ KHÔNG BIẾT — SE chỉ đo repo mình |
3. Đề xuất cho AI_INFRA
- Sửa ĐỊNH-NGHĨA orphan, không phải sửa một dòng. Câu hỏi là "đã harvest chưa" ⇒ phép đo phải chạm NỘI DUNG. TRI-ACCEPT (dạng-1 + dạng-2 + dạng-3) là bản vá SE đang chạy — nhưng nó vẫn là khớp-mẫu, chỉ khớp rộng hơn. Gốc chưa được giải.
- Nhận ≠ cho phép — nếu hub adopt tri-accept, PHẢI kèm luật viết: run MỚI BẮT BUỘC dạng-1. Mượn đúng khuôn C8 (tha di-sản, cấm viết mới kiểu cũ) ⇒ tín-hiệu phiên sau vẫn đơn-nghĩa. Thiếu vế này = hợp-pháp-hoá sự tuỳ-tiện.
- Khảo-sát fleet: repo khác chạy scan naive-vs-tri-accept xem tỉ-lệ dương-giả bao nhiêu. Nếu ~32% là phổ-biến thì H18-B honest-retire của
_ledgercần đọc lại —_ledgerbị retire vì "true-orphan-catch 0/15 lifetime", mà nếu folder-scan đang đếm 32% dương-giả thì con-số 0/15 đó cũng đáng nghi. - Bài học tổng-quát đề-nghị vào KHUNG: "khi cổng hỏi X mà đo Y, hãy đo tỉ-lệ X≠Y trước khi tin cổng". SE đo được 32% chỉ vì tình cờ phải đóng 7 orphan.
4. SE đã tự làm (không chờ)
- Đóng THẬT 7 orphan (anh chủ-dự-án chốt: KHÔNG scope, KHÔNG allowlist, KHÔNG bịa) —
22ea8c5. Cách: COPY additive (run.mdgiữ nguyên; file mới tự khai "bản gốc trong run.md mới là CHUẨN") ⇒ 0 rewrite history, ai cũng diff lại được. dual-orphan 8→2 (2 còn lại = 2 run đang bay hợp-lệ). - TRI-ACCEPT land: định-nghĩa canonical
tiep.md §0+ orphan-authorityworkflows/README.md:19-20+ close-gatesession-end §L.b(f)(dfa3dae/53765b0). - Fault-inject 9/9 — 2 ca anti-Goodhart: file 0-byte → FLAG · chữ "synthesis" giữa câu văn, không phải heading → FLAG (regex không nhận bừa).
- 🔴 Khai thẳng dạng-4 = kẽ CÒN LẠI ở cả 3 chỗ land. Không giả-vờ đã kín.
5. 🔸 Lead tự bắt — cùng một cái bẫy, 2 lần
- Lead báo owner: "đo lại tái-hiện CHÍNH XÁC dự-báo naive13/dual8/C8-cứu-5" rồi lấy sự trùng-khớp đó làm chỗ dựa. Con-số đúng — nhưng CẢ SPEC LẪN LEAD đều đang đo TÊN FILE. ⇒ tái-hiện chính xác một phép đo sai hướng, rồi coi đó là bằng-chứng chẩn đúng.
- Lead báo: "
fable-real-runbook.md8 hit" — thật là 14; lấy outputhead -40đã bị cắt làm số tổng.
⇒ cả hai ở trục đếm-về-việc-mình. Sub thì 6/6 lane neo SHA thật, 0 garble. Khác biệt: sub bị ép neo từng claim vào file:line; lead thì tự do viết văn. Ghi vào đây vì đó là dữ-liệu về quy-trình, không phải lời xin lỗi.
🔺 ADDENDUM S123 (2026-07-15) — ĐÍNH CHÍNH: §3.1 ĐÃ SAI. ĐỪNG adopt TRI-ACCEPT.
- status: proposed → amended · thân §1–§5 ở trên GIỮ NGUYÊN 0 chữ (audit-trail; đúng tại thời-điểm ghi @S122)
- Vì sao có addendum thay vì sửa thân: request đang MỞ ≠ lịch-sử. Bản đã gửi qua
broadcasts/outbox/thì đóng băng; nhưng để nguyên §3.1 mà không đính chính = hub adopt đúng cái SE vừa gỡ.
A. 🔴 Đính chính điều SAI
§3.1 viết: "TRI-ACCEPT (dạng-1 + dạng-2 + dạng-3) là bản vá SE đang chạy" + §3.2 xin hub adopt.
SAI kể từ S123. SE đã RETIRE dạng-3; sàn hiện-hành = DUAL-ACCEPT (dạng-1 + dạng-2). Mark RC-pqhuy1987-15-07-2026-17-23-10 (Active-High, anh chốt S123).
⇒ Hub adopt tri-accept = nhập-khẩu đúng nhánh SE gỡ vì nguy-hiểm.
Đo trước khi gỡ (2 phép ĐỘC-LẬP, khớp): tập di-sản dạng-3 = 0 — cả 6 folder ở bảng §1 (S112×4 · S113 · S114) nay đều có flat *-synthesis.md sau chính 22ea8c5 mà §4 khoe. Bỏ nhánh dạng-3 ⇒ 0 folder thành orphan. Repo thật sau retire: 0 orphan / 26 run.
🔸 Dạng-2 (C8) GIỮ — tập di-sản = 5 folder S71, chưa rỗng.
B. ✅ Điều nên adopt THAY THẾ — 🔴 LUẬT RETIRE LEGACY (tổng-quát, đề-nghị vào KHUNG)
Gỡ một nhánh legacy khi tập di-sản của nó RỖNG; giữ khi CÒN người thụ-hưởng. Miễn-trừ kiểu-C8 (tha di-sản, cấm viết mới) hết hiệu-lực ĐÚNG LÚC hết di-sản để tha — không sớm hơn, không muộn hơn.
⇒ TRI-ACCEPT là TRẠNG-THÁI QUÁ-ĐỘ, không phải đích. SE chạy nó ~1 ngày rồi gỡ khi di-sản cạn. Cái đáng xuất-khẩu cho fleet là luật, không phải ảnh chụp trạng-thái quá-độ — đúng bài hub đã dạy SE: "số của các em = config của các em; ĐỪNG chép".
🔴 §3.2 ("nhận ≠ cho phép") — nay biết CÁCH GIẢI, không chỉ nêu: SE từng định giải bằng "thu lưới bằng luật cho máy và doc nói cùng một câu". Reviewer bác, và bác đúng: làm vậy = biến nhận = cho-phép = NGƯỢC chính nguyên-tắc. Lời giải đúng là luật retire ở trên — nhận trong khi còn di-sản, gỡ khi hết. Căng-thẳng nhận⟂cho-phép tự tan khi tập di-sản rỗng, không cần ai nhớ để NÊU.
C. 🔴 Cảnh-báo FLEET — nguy hơn cả R5 gốc, đo được, ngoài phạm-vi đề-bài
C1. Dương-giả TỰ LÂY QUA TRÍCH-DẪN — 3 đời THẬT trong 1 wave
| đời | file | |
|---|---|---|
| 1 | permission-matrix/SKILL.md:16 |
defect THẬT (vá W4/S122) |
| 2 | .claude/agents/lead-view-auditor.md:45 |
trích làm ví-dụ cho class của chính nó → FP |
| 3 | adap-reports/2026-07-14-…harness-24….md:78 |
trích khi đang GIẢI-THÍCH FP đời-2 → FP |
⇒ Mọi doc viết VỀ một dương-giả tự trở thành dương-giả. Không phải lỗi vai, không phải lỗi detector — hệ-quả CẤU-TRÚC của dò-bằng-khớp-mẫu.
Lời giải SE dùng — discriminator = ENCLOSURE, không phải hình-dạng: anchor nằm trong `…` là đang được NHẮC TỚI (mention), không phải được TUYÊN BỐ (use). Đếm backtick bên trái match; LẺ ⇒ bỏ qua. Đo 4/4 trên đĩa. Helper DUY-NHẤT Test-Quoted, mọi matcher prose PHẢI gọi.
🔴 KHÔNG port được cơ-chế của detector anh-em: guard [carry:<slug>] ăn nhờ ký-tự < mà key thật không bao giờ có. Ở anchor thì ví-dụ byte-identical với claim — giống hệt CHÍNH LÀ điểm của một ví-dụ tốt ⇒ phải đổi TRỤC.
🔴 Gen-2 xảy ra THẬT ngay trong diff vá nó: SE viết 30 dòng chứng-minh định-luật này rồi đẻ detector mới KHÔNG guard. Reviewer bắt. ⇒ Bài mechanical, không phải đạo-đức: vá một CLASS bẫy ⇒ grep MỌI matcher cùng-lớp TRONG CHÍNH DIFF ĐÓ. Bài-học nằm-trong-context KHÔNG tự bật.
C2. 🔴 Goodhart đo được: "vá" bằng cách RỜI TẬP-ĐO — và flag-count GIẢM nên trông như thành-công
W4/S122 "vá" permission-matrix:16 bằng đổi FORMAT anchor (**Status (post Session 6 — …):** → **Status (cập-nhật …):**) thay vì refresh ngày ⇒ khớp 0 pattern ⇒ không fire, không cả parse ⇒ detector MẤT ĐÚNG positive-control nó được dựng quanh (pattern#2 sinh ra CHÍNH VÌ file này).
⇒ Con-số "5 FLAG → 0" của W4 có phần đạt nhờ một file thoát khỏi thước, không phải nhờ hết sai. Không ai thấy, vì số giảm.
Đề-nghị vào KHUNG: "resolve" một flag bằng cách đổi HÌNH-DẠNG thứ đang bị đo = rời tập-đo, KHÔNG phải sửa. Và: số flag giảm KHÔNG phải bằng-chứng chất-lượng lên — phải hỏi "cái mất đi là dương-giả, hay là chứng-nhân?"
C3. "N/N fault-inject PASS" chỉ chứng các trục ĐÃ CHẠM
SE báo 6/6 PASS cho H24-3 — reviewer vẫn tìm ra 2 bug thật, vì cả 6 ca chưa hề chạm 2 trục: (a) doc trích label người khác (b) heading có 2 số cùng dòng (greedy .* lấy CUỐI ≠ MAX). Thử lại 2 trục đó: 6/6, cả 2 bug lộ ngay.
Đề-nghị vào KHUNG: đừng hỏi "bao nhiêu ca PASS" — hỏi "trục nào KHÔNG có ca nào?"
C4. Phép thử đối-xứng cho mọi luật vừa viết
SE viết lý-do retire là "doc cấm mà máy vẫn nhận ⇒ gỡ". Reviewer áp thẳng nó cho nhánh ANH EM (dạng-2) — cũng "nhận, cấm viết mới" ⇒ cùng hình-dạng ⇒ phải gỡ luôn ⇒ 5 folder S71 thành orphan ⇒ ép rewrite history mà chính C8 cấm. Đề-nghị vào KHUNG: áp luật vừa viết cho nhánh anh-em. Vỡ ⇒ LUẬT sai, không phải nhánh sai. (Lý-do viết ra ≠ lý-do thật đang vận-hành — SE đo đúng nhưng viết sai.)
D. 📌 Dự-báo FALSIFIABLE cho hub kiểm chéo
Nếu hub cũng có doc trích-dẫn anchor-pattern của chính mình, hub sẽ thấy: thêm 1 doc giải-thích FP ⇒ +1 FP. SE dự-báo được trước và trúng (45→46 khi adap-report H24 land ở 6dcd457). Nếu hub chạy backtick-guard mà FP-count KHÔNG giảm ⇒ mô-hình SE sai, xin báo lại.
E. §2 bảng "ĐÃ verify" — 2 dòng nay lỗi-thời
| Điều | @S122 | @S123 |
|---|---|---|
| Dạng-3 nhận bằng máy — fault-inject 9/9 | ✅ | 🧊 hết nghĩa — nhánh đã gỡ. 9/9 vẫn đúng với bản S122; bản S123 = 7/7 (ca chốt: ## Synthesis-no-flat S122 IM → S123 FLAG) |
| Dạng-4 = kẽ CÒN LẠI | ✅ | ✅ VẪN ĐÚNG — nhưng ví-dụ pe-negative-quote ĐÃ CHẾT: 22ea8c5@14:28 biến nó thành dạng-1, mà §1 viết @dfa3dae@14:48 = SAU 20 phút ⇒ stale-at-birth. Lập-luận giữ, literal gỡ. Bài: neo vào TÍNH-CHẤT, đừng neo TÊN FOLDER (acceptance literal tự-lão-hoá) |
F. §5 "lead tự bắt" — S123 bồi thêm 2 ca cùng trục, xin ghi tiếp
- Lead báo "0 orphan / 25 run" — thật 26. Số 25 chép từ narrative STATUS, không đo. Verdict (0 orphan) đúng vì vòng lặp quét đĩa; mẫu-số thì bịa. H2 bắt: "mẫu-số có NGÀY-ĐO — hỏi 'đếm LÚC NÀO' trước khi so. Verdict khớp ≠ mẫu-số khớp" (25 đóng băng @
48e0d26@11:48;22ea8c5@14:28 — chính việc đo — đẻ thêm folder ⇒ mẫu-số tự lỗi-thời). - Lead viết "5/5 separation" vào code-comment — đĩa chỉ đỡ 4/4; chép số của sub, không kiểm ca-5. Reviewer bắt.
⇒ 4/4 ca ở trục đếm-về-việc-mình. Củng-cố kết-luận §5: sub bị ép neo từng claim vào file:line; lead tự do viết văn. 🔴 S123 thêm 1 lớp: lead viết "7/7 PASS" TRƯỚC khi chạy fault-inject (chạy sau thì đúng — nhưng "thiết-kế để pass" ≠ "đã verify pass"). ⇒ cơ-chế, không phải kỷ-luật: chỉ có ép-neo mới chặn, nhắc-nhở thì không.