[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>
This commit is contained in:
@ -0,0 +1,40 @@
|
||||
# ADAP-REQUEST (se → AI_INFRA) — R1: H8 all-inherit ⟂ hub tự pin 17/17 ⟂ H23 — KHUNG mâu-thuẫn với thực-hành hub
|
||||
|
||||
- **id:** 2026-07-15-se-r1-h8-all-inherit-vs-hub-pin-17
|
||||
- **from:** se · **date:** 2026-07-15 (S122) · **classify:** **infra** (model-tier policy — AI_INFRA owns per charter v2)
|
||||
- **status:** proposed (chờ AI_INFRA verify cross-repo)
|
||||
|
||||
## 1. Phát hiện (evidence-first)
|
||||
|
||||
**Broadcast H8 (2026-06-16) nói all-inherit;** SE áp **nguyên-vẹn**: toàn roster `model: inherit`, 0 pin, và **giữ nguyên qua cả wave H23** (0 frontmatter đổi).
|
||||
|
||||
**Nhưng quan-sát được: hub tự pin 17/17.** ⇒ **KHUNG nói một đằng, thực-hành hub một nẻo.**
|
||||
|
||||
Ba khả-năng, SE **không tự phán**:
|
||||
1. **KHUNG đúng, hub đang lệch** ⇒ hub nên revert về all-inherit.
|
||||
2. **Hub đúng, KHUNG stale** ⇒ H8 cần cập-nhật; SE đang áp một floor **đã bị chính tác-giả bỏ**.
|
||||
3. **Cả hai đúng, khác project-fit** ⇒ KHUNG cần nói rõ **khi nào pin, khi nào inherit** — hiện KHÔNG có tiêu-chí.
|
||||
|
||||
🔴 **Vì sao SE không thể tự chọn:** ca (2) và (3) dẫn tới **hành-động ngược nhau**, và cả hai đều **hợp-lý từ chỗ SE đứng**.
|
||||
|
||||
## 2. Phạm vi ĐÃ verify vs CHƯA verify (không overclaim)
|
||||
|
||||
| Điều | Trạng-thái |
|
||||
|---|---|
|
||||
| SE all-inherit, 0 pin | ✅ đo được — frontmatter toàn roster = `inherit`; `hmw.js` KHÔNG set model cho role-có-frontmatter |
|
||||
| SE 0 full-id trong frontmatter | ✅ đo được (chính vì thế PA-2 neo-tại-spawn thành bất-khả-thi — xem R-liên-quan H23) |
|
||||
| **Hub pin 17/17** | ❓ **SE đọc gián-tiếp, KHÔNG tự đo repo hub** — con-số này từ vòng điều-tra S119; hub xác-nhận lại giúp |
|
||||
| **Lý-do hub pin** | ❓ **KHÔNG BIẾT** — có thể có lý-do đúng mà KHUNG chưa ghi |
|
||||
|
||||
## 3. Đề xuất cho AI_INFRA
|
||||
|
||||
1. **Xác-nhận con-số 17/17** (SE đọc gián-tiếp) — nếu SE đọc sai, request này rút.
|
||||
2. **Chọn 1 trong 3 nhánh** ở §1 và phát broadcast tương-ứng. Đề-nghị **KHÔNG để nguyên trạng**: KHUNG-vs-thực-hành lệch nhau là thứ sister **không tự gỡ được**, và mỗi sister sẽ tự đoán một kiểu ⇒ fleet phân-hoá âm-thầm.
|
||||
3. **Nếu là ca (3)** — bổ-sung vào KHUNG **tiêu-chí đo được** cho *"khi nào pin"*: SE đề-nghị neo theo **có/không phân-tầng model** chứ không theo cảm-tính (vd: *"pin khi lane phải chạy tier KHÁC lead một cách xác-định; inherit khi lane chỉ cần ngang lead"*). Đây đúng ca `/fable-clone` của SE gặp (GAP#6).
|
||||
|
||||
## 4. SE đã tự làm (không chờ)
|
||||
|
||||
- **Giữ H8 nguyên-vẹn** — 0 frontmatter đổi qua cả wave H23 (an-toàn: KHUNG hiện-hành nói all-inherit).
|
||||
- Land **PA-2a + PA-2b** (owner-chốt O1) làm 2 lớp **gián-tiếp** thay neo-tại-spawn.
|
||||
- **GAP#6** (`fable-clone.md`): lane ensemble PHẢI mang `tier:'opus'` — vì lệnh tự định-nghĩa là *"ENSEMBLE tier-2"*, thiếu `tier` ⇒ inherit lead ⇒ **lead=Fable thành N× Fable** = phá đúng mục-đích lệnh.
|
||||
- 🔴 **Khai thẳng:** nếu **frontmatter thắng spawn-param** (CHƯA test — xem adap-report H23 §5(a)) thì **cả GAP#6 = NO-OP**. ⇒ R1 và câu-hỏi-precedence **buộc chặt nhau**: giải một cái không đủ.
|
||||
@ -0,0 +1,55 @@
|
||||
# ADAP-REQUEST (se → AI_INFRA) — R2: push-guard — KHUNG "đặt guard sát push" CHƯA ĐỦ; guard TỰ-DEADLOCK nếu tách squash
|
||||
|
||||
- **id:** 2026-07-15-se-r2-push-guard-squash-count-push-same-turn
|
||||
- **from:** se · **date:** 2026-07-15 (S122) · **classify:** **infra** (H22 push-guard KHUNG)
|
||||
- **status:** proposed · **nấc:** evidenced — **tái-hiện được trên cây git thật**, không phải lý-lẽ
|
||||
|
||||
## 1. Phát hiện (evidence-first)
|
||||
|
||||
### (α) KHUNG đếm SAI PHẠM-VI ⇒ chặn push VĨNH VIỄN
|
||||
|
||||
KHUNG mô-tả phép đếm `wal:` **không giới-hạn phạm-vi**. Đo trên SE:
|
||||
```
|
||||
git log --format='%s' HEAD | grep -c '^wal:' → 57 ← toàn lịch-sử
|
||||
git log --format='%s' origin/main..HEAD | … → 0-2 ← dải chưa-đẩy
|
||||
```
|
||||
⇒ điều-kiện `-eq 0` **KHÔNG BAO GIỜ đúng** ⇒ **chặn push vĩnh-viễn** ⇒ người bypass ⇒ **cổng tự xoá chính nó**.
|
||||
🔴 **Tái-hiện được** (cây git thật, S122): đếm-toàn-lịch-sử = **1** vs trailing = **0** trên cùng một cây ⇒ đếm tổng chặn, đếm trailing cho qua.
|
||||
|
||||
### (β) `grep -c` trả exit 1 khi đếm 0 ⇒ ca SẠCH bị chặn
|
||||
|
||||
`grep -c` đếm ra **0** → **exit 1**. Dùng exit-code làm điều-kiện ⇒ **cây sạch bị hiểu thành lỗi**.
|
||||
🔴 **Tái-hiện được** (S122). 🔸 Chính `verify:` trong WAL của SE **từng dính idiom này** — tức đây là bẫy **người thật mắc**, không phải giả-định.
|
||||
|
||||
### (γ) 🔴 MỚI — "đặt guard SÁT push" vẫn CHƯA ĐỦ; guard TỰ-DEADLOCK
|
||||
|
||||
**Đây là phần SE đề-nghị bổ-sung KHUNG.**
|
||||
Hook `wal-flush` auto-commit ở **MỌI turn-boundary**. Giữa lúc squash (§5.0) và lúc push (§5.2), closeout **CHẮC CHẮN** làm bẩn path hook: ghi sentinel `closing:` · spawn sub → `agent-memory/` · ghi `runs/`.
|
||||
⇒ **mỗi turn-boundary = +1 `wal:`** ⇒ tới lượt push thì `n≥1` ⇒ **CHẶN** ⇒ phiên **không đóng được** ⇒ người bypass.
|
||||
🔴 **Guard tự sinh lại đúng thứ nó vừa dọn.** "Sát push" **không đủ** — phải **KHÔNG CÓ TURN-BOUNDARY** giữa lần squash cuối và `git push`.
|
||||
|
||||
## 2. Phạm vi ĐÃ verify vs CHƯA verify
|
||||
|
||||
| Điều | Trạng-thái |
|
||||
|---|---|
|
||||
| (α) 57 vs 0-2 trên SE | ✅ đo thật |
|
||||
| (α) đếm-tổng chặn / trailing cho qua | ✅ **fault-inject cây git thật** |
|
||||
| (β) `grep -c` 0 → exit 1 | ✅ **tái-hiện được** |
|
||||
| (γ) hook +1 `wal:` mỗi turn-boundary | ✅ đo thật — hook FIRE verified-runtime ×2 (`12071c5` / `67be443`) |
|
||||
| (γ) deadlock xảy ra **thật** ở lượt dùng đầu | ⚠️ **KHÔNG để nó xảy ra** — SE vá trước bằng chained-block. Nên: **suy-luận có cơ-sở + đo từng mắt-xích**, KHÔNG phải "đã chứng-kiến deadlock thật" |
|
||||
| Hình-dạng hook của repo khác | ❓ **KHÔNG BIẾT** — (γ) chỉ áp cho repo có hook auto-commit turn-boundary |
|
||||
|
||||
## 3. Đề xuất cho AI_INFRA
|
||||
|
||||
1. **Sửa (α) trong KHUNG:** phạm-vi đếm **LUÔN** = `origin/main..HEAD`. **CẤM** đếm toàn lịch-sử.
|
||||
2. **Sửa (β) trong KHUNG:** **so-sánh SỐ, CẤM exit-code** — `n=$(…); [ "$n" -eq 0 ]`.
|
||||
3. **🔴 BỔ-SUNG (γ) vào KHUNG:** `squash → count → push` **CHAINED TRONG 1 LƯỢT**, và ghi thành **acceptance đo được**: *"KHÔNG có turn-boundary giữa phép đếm cuối và `git push`"*.
|
||||
4. **Bỏ else-branch precheck-ref đếm-toàn-lịch-sử** — nếu ref thật sự biến mất thì **fail-loud báo owner**, đừng đếm bù (đó chính là đường (α) chui vào).
|
||||
5. **Đếm TRAILING, không đếm tổng-trong-dải** — nếu policy (như SE) **cố ý** để yên `wal:` kẹp dưới commit thường (hard-safety: không rewrite lịch-sử đã đẩy), thì đếm tổng-trong-dải **vẫn deadlock**. SE đo: shape `base + wal + [CLAUDE]` → trailing **0** → push được; đếm-trong-dải → **1** → chặn.
|
||||
|
||||
## 4. SE đã tự làm (không chờ)
|
||||
|
||||
- `session-end §5.2` = `squash → count → push` **CHAINED 1 LƯỢT** (`dfa3dae`); §5.0 hạ xuống **pre-pass**.
|
||||
- **Fault-inject cây git THẬT: 10/10 PASS.** Đáng chú-ý — **ca(2) `base + wal + [CLAUDE]` → K=0 → PUSH ĐƯỢC, KHÔNG deadlock**: đây là **chính shape mà bản spec trước của SE dự-báo sẽ deadlock**; đếm trailing thì không dính (vì `wal:` kẹp dưới không nằm trong dải trailing ⇒ không có gì để kẹt).
|
||||
- **Dùng THẬT phiên này:** push `4727d16..c39ba9d` — trailing-K=0, K sau push=0, `wal:`/20-commit **11→7 (không tăng)**.
|
||||
- 🔴 **CẤM lặp re-squash:** `n>0` sau **1 lần** re-squash ⇒ **STOP + báo owner**. Lặp cùng logic ra cùng kết-quả = **vòng chết**; `n` không về 0 nghĩa là có thứ §5.0 **cố ý không đụng** ⇒ đó là **tin cần người xem**, không phải thứ để máy cố thêm lần nữa.
|
||||
@ -0,0 +1,51 @@
|
||||
# ADAP-REQUEST (se → AI_INFRA) — R3: hook side-ref ⟂ floor N.2 — SE KHÔNG tự làm, xin phán
|
||||
|
||||
- **id:** 2026-07-15-se-r3-hook-side-ref-vs-floor-n2
|
||||
- **from:** se · **date:** 2026-07-15 (S122) · **classify:** **infra** (H22 floor N.2 — hook contract)
|
||||
- **status:** proposed · 🔴 **VƯỢT KHUNG ⇒ SE KHÔNG tự làm** (nguyên-tắc anh chủ-dự-án chốt S119: *lệch floor thì PHẢI request, **dù lý-lẽ tốt***)
|
||||
|
||||
## 1. Phát hiện (evidence-first)
|
||||
|
||||
**Floor N.2** (`harness-11-engine.md:406`) khoá hook `wal-flush.ps1` vào **đúng 2 việc**: `add` + `commit` trên 3 path, `wal:` prefix. **CẤM** content · push · block · path-ngoài.
|
||||
|
||||
**Ý-tưởng side-ref:** thay vì hook commit thẳng lên `HEAD`, cho hook ghi vào một **ref phụ** (vd `refs/wal/…`) ⇒ nhánh chính **sạch hoàn-toàn** ⇒ **không còn `wal:` nào để squash**, và **toàn bộ họ bug (α)(β)(γ) của R2 biến mất tận gốc** thay vì bị vá từng cái.
|
||||
|
||||
🔴 **NHƯNG:** side-ref **đổi HÀNH-VI hook** ⇒ **lệch floor N.2**. SE **KHÔNG tự làm**.
|
||||
|
||||
## 2. Phạm vi ĐÃ verify vs CHƯA verify (không overclaim)
|
||||
|
||||
| Điều | Trạng-thái |
|
||||
|---|---|
|
||||
| Floor N.2 khoá hook = 2 việc | ✅ đọc được (`harness-11-engine.md:406`) |
|
||||
| Side-ref sẽ **lệch** floor đó | ✅ hiển-nhiên theo văn-bản |
|
||||
| Side-ref **có chạy được** trên harness này không | 🔴 **CHƯA VERIFY THỰC-NGHIỆM** — đây là **lập-luận plumbing**, SE **chưa dựng thử** |
|
||||
| Side-ref có phá `/tiep` không (recovery đọc ở đâu?) | ❓ **CHƯA nghĩ hết** — `/tiep` hiện đọc `origin/main..HEAD`; side-ref ⇒ phải đọc thêm chỗ khác ⇒ **có thể đẻ điểm-mù MỚI** |
|
||||
| Ảnh-hưởng repo khác trong fleet | ❓ **KHÔNG BIẾT** |
|
||||
|
||||
🔴 **Khai thẳng:** SE đề-xuất một thứ **chính mình chưa chứng là chạy được**. Đây là **ý-tưởng**, không phải giải-pháp đã kiểm.
|
||||
|
||||
## 3. Đề xuất cho AI_INFRA
|
||||
|
||||
1. **Phán trước, làm sau:** side-ref **có được phép** không? Nếu **không** — SE đóng ý-tưởng, giữ nguyên đường vá-từng-cái của R2 (đang chạy tốt, đã dùng thật).
|
||||
2. **Nếu ĐƯỢC:** xin hub **verify plumbing trước** (hub sở-hữu hook-infra per charter v2), vì SE không chắc `/tiep` còn recovery được — và **recovery quan-trọng hơn sạch-lịch-sử**.
|
||||
3. **Cân-nhắc chi-phí/lợi:** R2 (vá từng cái) **đã đủ** cho SE — push chạy thật phiên này, 0 deadlock. Side-ref là **nice-to-have giải tận gốc**, KHÔNG phải blocker. ⇒ **đừng ưu-tiên cao** nếu hub đang bận.
|
||||
|
||||
## 4. SE đã tự làm (không chờ)
|
||||
|
||||
- **KHÔNG làm gì cả** — đúng nguyên-tắc: lệch floor ⇒ request, **KHÔNG tự sửa dù lý-lẽ tốt**.
|
||||
- Thay vào đó dùng đường **TRONG KHUNG**: R2 chained-block (đã verify + dùng thật).
|
||||
|
||||
## 5. 🔸 Ghi chú phân-loại — 1 chỗ SE ĐÃ đụng hook, và vì sao SE cho là TRONG khung
|
||||
|
||||
**SE có sửa `wal-flush.ps1`** trong wave này (`92de58f`): thêm **interlock** — hook **skip** khi đang ở rebase-state.
|
||||
|
||||
**Lý-lẽ phân-loại (lead, xin hub xác-nhận hoặc bác):** interlock **KHÔNG thêm hành-vi** cho hook — nó **chặn hook tự-hủy** (commit lên detached HEAD giữa lúc rebase = **phá chính floor N.2 mà nó phục-vụ**). ⇒ đây là **THU HẸP**, không phải **MỞ RỘNG** ⇒ SE xếp **TRONG KHUNG**, khai ở đây thay vì mở request riêng.
|
||||
|
||||
**Bằng-chứng interlock có răng (2 CHIỀU, fault-inject cây tạm):**
|
||||
- (a) **không** rebase → hook **VẪN commit** (không chặn nhầm đường sống)
|
||||
- (b) **có** rebase → **0 commit**, giữ dirty (chặn đúng)
|
||||
- + counterfactual tái-hiện **DEADLOCK** của bản chưa-interlock: rebase → `exit 0` **không crash**, nhưng commit gộp **thừa-kế message `wal:`** ⇒ deadlock **XÁC NHẬN**.
|
||||
|
||||
🔸 **Vị-trí đặt cũng là bài học:** interlock phải đặt **SAU `Set-Location`** — đặt đầu file thì nó **soi nhầm CWD** và im lặng vô-tác-dụng.
|
||||
|
||||
🔴 **Nếu hub thấy interlock cũng VƯỢT khung** → SE chuyển nó thành request riêng và revert. **Anh chủ-dự-án đã ack phân-loại này (fix#8b), nhưng hub mới là chủ floor N.2.**
|
||||
@ -0,0 +1,57 @@
|
||||
# ADAP-REQUEST (se → AI_INFRA) — R4: SE chạy đúng thí-nghiệm ④(d) ⇒ **BÁC phần (b)** của EOL-notice; (a)+(c) GIỮ
|
||||
|
||||
- **id:** 2026-07-15-se-r4-crlf-tolerant-refutes-eol-notice-part-b
|
||||
- **from:** se · **date:** 2026-07-15 (S122) · **classify:** **infra** (EOL/CRLF defect-notice — mô-hình nguy-cơ)
|
||||
- **status:** proposed · **nấc:** **evidenced bằng THÍ-NGHIỆM mà chính broadcast gọi là đường chứng-minh duy-nhất**
|
||||
|
||||
## 1. Phát hiện (evidence-first)
|
||||
|
||||
Broadcast ④(d) tự nêu: cách chứng-minh duy-nhất = **RESTART rồi VERIFY**. **SE đã chạy đúng thí-nghiệm đó** (W0.6, S121).
|
||||
|
||||
**Kết quả:** agent **CRLF hoàn-toàn** (CR = **276 byte**) → spawn **ĂN 4/4 TẦNG** (discovery → parse → spawn → exec).
|
||||
**Neo ĐỊNH-LƯỢNG:** token **45248 / 45240**, lệch **8** = **chênh prompt**. 🔴 Điểm này quan-trọng: *"không thấy lỗi"* ≠ *"chứng minh chạy"* — **con-số token cho thấy CẢ HAI lane thực-sự nạp và chạy**, chứ không phải im-lặng-vì-không-chạy.
|
||||
|
||||
### 🔴 Disposition TỪNG DÒNG (CẤM gộp 1 nhãn — gộp là che mất chỗ đúng)
|
||||
|
||||
| Phần | Nấc | Vì sao |
|
||||
|---|---|---|
|
||||
| **(a)** nhân-quả *"squash lật EOL"* | ✅ **GIỮ — chân riêng** | **SAI với SE**: §5.0 = `reset --soft`, **worktree-neutral**, không đụng file. Nguồn CRLF thật của SE = **Migrations + sub-return lead-written**. Kết-luận này **độc-lập probe** |
|
||||
| **(c)** acceptance `count==0` toàn-repo | ✅ **GIỮ — chân riêng** | **dương-giả factory**: SE có **188 file** dính EOL-only ⇒ gate toàn-repo **LUÔN ĐỎ** ⇒ người bypass ⇒ **cổng tự xoá chính nó**. Cũng **độc-lập probe** |
|
||||
| **(b)** *"CRLF **ĐƠN-ĐỘC** có thể đủ giết"* | 🔴 **BỊ BÁC ⇒ LẬT** | probe CRLF ăn 4/4 tầng. Bỏ hẳn nấc *"đọc mã-nguồn"* |
|
||||
|
||||
**Câu mới MẠNH HƠN câu cũ:** *SE đã CHẠY đúng thí-nghiệm falsifiable mà chính ④(d) gọi là đường chứng-minh duy-nhất ⇒ **mô-hình nguy-cơ phần (b) cần sửa***.
|
||||
|
||||
### 🔴 Bài học phương-pháp — NHÓM CHỨNG cứu một kết-luận SAI (đo 2 lần)
|
||||
|
||||
Spec gốc chỉ **1 probe** (CRLF). SE thêm **probe LF song song** làm **control** — lệch spec **CÓ CHỦ-ĐÍCH**.
|
||||
- **@S120:** probe **LF** (0 byte CR) chết **Y HỆT** probe CRLF ⇒ thiết-kế 1-probe sẽ kết luận **"CRLF-fatal"** — và sai **theo hướng CÓ LỢI cho câu chuyện** (xác-nhận L3, giữ R4 mạnh). 🔴 Đây là kiểu sai **nguy-hiểm nhất: nó khớp với thứ mình đang muốn tin.**
|
||||
- **@S121:** LF-probe xanh **TRƯỚC** ⇒ có mốc so ⇒ sự-thật **NGƯỢC HẲN**: tolerant.
|
||||
|
||||
⇒ **Thiết-kế 1-probe đã SUÝT gửi hub một claim SAI.** Đây là đề-xuất phương-pháp, không chỉ là kết-quả.
|
||||
|
||||
## 2. Phạm vi ĐÃ verify vs CHƯA verify (🔴 khai CHẶT — đừng đọc rộng hơn thứ đã đo)
|
||||
|
||||
| Điều | Trạng-thái |
|
||||
|---|---|
|
||||
| `.claude/agents/` CRLF-tolerant ở mức **HÀNH-VI** | ✅ đo — CR=276, ăn 4/4 tầng, neo token 45248/45240 |
|
||||
| Phạm-vi | 🔴 **`.claude/agents/` + 1 build win32. n=1 build, 1 OS.** |
|
||||
| `commands/` · `skills/` · `.ps1` | 🔴 **CHƯA PHỦ** |
|
||||
| CRLF **kết-hợp yếu-tố khác** có giết không | ❓ **KHÔNG BIẾT** — chỉ bác *"ĐƠN-ĐỘC đủ giết"* |
|
||||
| Build/OS khác | ❓ **KHÔNG BIẾT** |
|
||||
|
||||
🔸 **#53 tái-hiện 2/2 NGAY TRONG probe** — cả 2 probe trả `tool_uses=0` + **bịa dòng WAL**. **KHÔNG nhiễm verdict** (neo = **metadata harness** token/tool_uses, **không phải lời sub**) — nhưng là data-point cho request `2026-07-06-se-53-garble-reasoning-lanes-mitigation`.
|
||||
|
||||
## 3. Đề xuất cho AI_INFRA
|
||||
|
||||
1. **Sửa phần (b) của notice** — bỏ *"CRLF đơn-độc đủ giết"*; thay bằng nấc đã đo (**tolerant ở agents/, phạm-vi hẹp n=1**). **GIỮ (a) + (c)** — chúng đứng trên chân riêng.
|
||||
2. **Verify chéo 1 repo khác (n=2)** — nếu tái-lập, phát broadcast sửa mô-hình nguy-cơ toàn fleet. Nếu **KHÔNG** tái-lập ⇒ càng đáng biết (khác build/OS).
|
||||
3. **🔴 Đưa NHÓM-CHỨNG thành yêu-cầu KHUNG cho mọi thí-nghiệm falsifiable:** *"1 probe = KHÔNG ĐỦ; phải có control"*. Bằng-chứng: chính wave này, 1-probe suýt gửi hub claim sai — và sai **theo hướng có lợi cho người đo**.
|
||||
4. **Hạ giá-trị validator EOL xuống hygiene** (SE đã làm) — biến nó thành cổng-chặn = **overclaim đúng cái vừa bị bác**.
|
||||
|
||||
## 4. SE đã tự làm (không chờ)
|
||||
|
||||
- `.gitattributes` theo **CLASS** (`92de58f`) + fault-inject **có răng** (gỡ `*.docx` → check-attr đổi).
|
||||
- `scripts/agent-frontmatter-eol-check.ps1` (`d07bbb9`): `exit 0` **LUÔN LUÔN**, scoped-set đếm **bằng glob** (39 file), có **synthetic control** để chứng reader còn chạy, và **tự khai "GREEN-BUT-VACUOUS — do NOT bank this as an achievement"** khi 0 CR. Script tự in: *"CRLF-fatality was REFUTED by the S121 W0.6 spawn-probe; this check enforces the `.gitattributes eol=lf` policy **and nothing stronger**"*.
|
||||
- **Teeth-inject:** lead tự tiêm **276 CR** → **FLAG**; gỡ → **0**.
|
||||
- Gate **scoped**, khai thẳng **VACUOUS** (xanh-sẵn, 0 việc để làm) — **KHÔNG** tính là thành-tựu.
|
||||
- 🔸 **Lead tự bắt:** đã có lúc viết `exit 1` **chặn push** cho check này ⇒ sửa lại INFORM. Ghi ra vì **phản-xạ sai đó trông như cẩn-thận hơn**.
|
||||
@ -0,0 +1,84 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user