Files
solution-erp/docs/governance/adap-requests/2026-07-15-se-r5-orphan-measures-filename-not-content.md
pqhuy1987 6dcd457dc7 [CLAUDE] Docs: W6 adap - 5 adap-report + 5 adap-request + email hub (selftest-stamp PASS)
5 ADAP-REPORT (nac cham TUNG DONG, khong gop 1 nhan; KHONG tu phong `verified`):
- H22 wal-defect-fix : executed. 4/6 san co runtime; San-2 + San-5 CHUA chay lan nao.
- H23 model-at-spawn : executed. 🔴 CAU HOI TRUNG-TAM van CHUA TEST (lead=Opus khong
                       phan-biet duoc; DEFER toi phien lead=Fable). Khai thang.
- H24 lead-self-audit: executed + spawn-probe 14/14 runtime. 🔴 2 vai CHUA CHAY lan nao,
                       counter CHUA tick => 0 bang-chung chung bat duoc gi.
- EOL/CRLF notice    : executed. SE BAC phan (b) bang thuc-nghiem.
- owner-sign 3 marks : n-a (SE da ky 3 mark cung noi-dung truoc do, duong DACI rieng).

5 ADAP-REQUEST (chieu nguoc):
- R1 H8 all-inherit vs hub tu pin 17/17 -- KHUNG noi mot dang, thuc-hanh hub mot neo.
     SE khong tu chon duoc: 3 nhanh dan toi 3 hanh-dong NGUOC nhau.
- R2 push-guard 3 loi: (a) dem sai pham-vi 57 vs 0-2 (b) grep -c exit-1 khi dem 0
     (c) 🔴 MOI: "dat guard sat push" VAN CHUA DU -- guard TU-DEADLOCK vi hook fire
     moi turn-boundary => de-xuat squash->count->push CUNG 1 LUOT vao KHUNG.
- R3 hook side-ref vs floor N.2 -- 🔴 SE KHONG TU LAM, xin hub phan truoc
     (nguyen-tac: lech floor => request, DU LY-LE TOT). Khai: chua verify plumbing.
- R4 CRLF-tolerant bac phan (b) EOL-notice. Disposition TUNG DONG: (a) GIU chan rieng
     (c) GIU chan rieng (b) BI BAC. + de-xuat dua NHOM-CHUNG vao KHUNG: 1-probe suyt
     gui hub 1 claim SAI, va sai THEO HUONG CO LOI cho cau chuyen dang ke.
- R5 🔴 "orphan" do TEN FILE khong do NOI DUNG -- 32% duong-gia / 25 run. Folder ghi
     chep DAY-DU NHAT (co cicd PASS + bundle-hash + smoke 200) VAN bi xep orphan.
     0/7 la viec mat. De-xuat: sua DINH-NGHIA, va "nhan != cho phep".

EMAIL hub: broadcasts/outbox/ai_infra/2026-07-15-...-wave-report.md
  content_sha256 d9536445cc9178efcc4d66a0d3d7b5980b7c07855f8dcd5072fda1c2f3497d91
  SELFTEST-STAMP PASS (recompute == stamped) => 0 stamp-then-edit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 15:29:07 +07:00

85 lines
6.9 KiB
Markdown

# 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
1. **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.**
2. **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.
3. **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 `_ledger` cần đọc lại** — `_ledger` bị 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**.
4. **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.md` **giữ 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-authority `workflows/README.md:19-20` + close-gate `session-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
1. **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.
2. **Lead báo:** *"`fable-real-runbook.md` **8 hit**"* — thật là **14**; lấy output `head -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.