wal: flush 20260807T1634

This commit is contained in:
pqhuy1987
2026-08-07 16:34:14 +07:00
parent 0f0cc4643e
commit 903dcab245
3 changed files with 225 additions and 3 deletions

View File

@ -62,3 +62,220 @@ Bốn ca hậu thuẫn (lane a §3.1, tôi dùng lại, KHÔNG đo lại): N1 é
### 1.5 — Ràng buộc kỹ thuật cho máy soi: **`.ps1` PURE-ASCII** (gotcha #30)
Đo 3 script: `governance-detectors.ps1` · `memory-selfimprove-audit.ps1` · `wal-flush.ps1`**0/0/0 dòng chứa byte ngoài ASCII in-được**. Control-dương cùng thước trên `adap-upgrade-pack-tracking.md` = **58** ⇒ thước sống, 0 là 0 thật. ⇒ `naming-scan.ps1` **buộc viết pure-ASCII** (tiếng Việt không dấu), 0 ngoại lệ.
---
## §2 — LƯỢT CHẠY THẬT TRÊN KHO SỐNG (output nguyên văn)
Lệnh: `powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/naming-scan.ps1` · **mã thoát = 0** (đúng hợp đồng INFORM-only).
```
=== naming-scan.ps1 - MAY SOI TEN (tang bo may) ===
RepoRoot : D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP
Che do : INFORM-only. LUON exit 0 ke ca khi co co (lai ma thoat = W3b, sau P1=PA-2).
Chuan : docs/governance/naming-standard.md
Tap do : 231 ten vat-bo-may, 0 mien tru VUNG (khong quet 1.545 tep .md - bay-4).
--- NHOM: vai [.claude/agents]
mau so: 27 tep
OK 26/27 | LECH 0/27 | MIEN-theo-luat 1/27
[MIEN ] README.md <- quy uoc pho quat (luat L4)
--- NHOM: nhat-ky-vai [.claude/agent-memory]
mau so: 26 thu muc
OK 26/26 | LECH 0/26 | MIEN-theo-luat 0/26
--- NHOM: lenh [.claude/commands]
mau so: 19 tep
OK 19/19 | LECH 0/19 | MIEN-theo-luat 0/19
--- NHOM: kich-ban [scripts]
mau so: 54 muc (tep + thu muc)
OK 52/54 | LECH 1/54 | MIEN-theo-luat 1/54
trong OK: 5/54 theo PEP-8 (*.py snake_case - DUNG, khong phai troi)
trong OK: 16/54 MOT-LAN (tien to s<n>-/plan- = kich ban mot lan, HOP LE)
[MIEN ] __pycache__ <- vat sinh tu dong (luat L4)
[LECH ] master-import-data.generated.md <- kich ban khong-phai-.py phai kebab; xem naming-standard.md section 8
[PEP8 ] parse_forms.py <- PEP-8: *.py snake_case la DUNG
[PEP8 ] parse_workflow.py <- PEP-8: *.py snake_case la DUNG
[MOT-LAN] plan-b-run-verify.ps1 <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-b-verify-prod.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-ca-run-perms.ps1 <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-ca-verify-menu.ps1 <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-ca-verify-menu.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-ca-verify-perms.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-r-backup.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-r-cleanup.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-s-wipe-all-workflows.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] plan-t5-final-cleanup.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] s59-rename-workitems-pmh.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] s59-wipe-demo-workitems.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] s59-wipe-testing-data.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] s85-wipe-uat-data.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] s89-delete-test-users.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[MOT-LAN] s91-wipe-golive.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
[PEP8 ] session_ctx.py <- PEP-8: *.py snake_case la DUNG
[PEP8 ] session_scaffold.py <- PEP-8: *.py snake_case la DUNG
[PEP8 ] stamp_verify.py <- PEP-8: *.py snake_case la DUNG
--- NHOM: moc-phien [.claude/sessions]
mau so: 90 tep
OK 87/90 | LECH 3/90 | MIEN-theo-luat 0/90
[LECH ] closed.md <- FORK dau-dong-phien: _end la ho chuan. detectors:1660 THA bang -or => doi sang ten thu BA thi phien da dong bi doc la DANG MO, co khong bao gio ban
[LECH ] pause-S146-20260722T2328.md <- FORK ho cu: _pause-* la ho chuan. session_ctx.py:349-358 THA (doc ca 2 glob) => fork song mai neu khong ai goi ten
[LECH ] resume-S146-20260722T2334.md <- tep moc phien moi BUOC BAT DAU bang _ ; xem naming-standard.md section 5
--- NHOM: so-governance [docs/governance]
mau so: 16 muc (tep + thu muc)
OK 11/16 | LECH 4/16 | MIEN-theo-luat 1/16
[LECH ] BROADCAST-OUT-SOLUTION-ERP-2026-05-29-INFRA-RETRO.md <- VAT LICH SU (thu da gui, mang ngay) - GIU NGUYEN theo luat L1, nhung phai duoc LIET TEN: no la chung nhan nhom nay co 2 ho
[LECH ] BROADCAST-OUT-SOLUTION-ERP-2026-05-29.md <- VAT LICH SU (thu da gui, mang ngay) - GIU NGUYEN theo luat L1, nhung phai duoc LIET TEN: no la chung nhan nhom nay co 2 ho
[LECH ] BROADCAST-OUT-SOLUTION-ERP-2026-06-01.md <- VAT LICH SU (thu da gui, mang ngay) - GIU NGUYEN theo luat L1, nhung phai duoc LIET TEN: no la chung nhan nhom nay co 2 ho
[LECH ] RAG-AUDIT-RESPONSE-2026-05-29.md <- VAT LICH SU (thu da gui, mang ngay) - GIU NGUYEN theo luat L1, nhung phai duoc LIET TEN: no la chung nhan nhom nay co 2 ho
[MIEN ] README.md <- quy uoc pho quat (luat L4)
--- NHOM: hook [.claude/hooks]
mau so: 1 tep
OK 1/1 | LECH 0/1 | MIEN-theo-luat 0/1
--- BAT BIEN: .claude/agents/<role>.md == .claude/agent-memory/<role>/ ---
mau so: 26 vai (tep persona, tru README) / 26 thu muc nhat ky
khop : 26/26
vai THIEU thu muc nhat ky : (danh sach rong)
nhat ky THUA (khong co persona): (danh sach rong)
--- NGOAI TAP 231 (khai tuong minh - KHONG phai [skip]) ---
thu muc phien: 12/12 dat hinh dang ^session-<so>$
CO CHU DICH nam ngoai tap 231: giu mau so 231 da thoa thuan, va nhom nay DA co may ep
(governance-detectors.ps1:1639 + session_ctx.py:133 + 2 ban session-scaffold).
=== TONG ===
mau so TONG : 233 ten vat-bo-may
goc 231 (do 2026-08-07 TRUOC wave W1) = 27 vai + 26 nhat ky + 19 lenh + 53 kich ban
+ 90 moc phien + 15 so + 1 hook
+2 vat chinh W1 de ra: scripts/naming-scan.ps1 va docs/governance/naming-standard.md
=> 233 sau W1. Khai ro de khong ai doc 233 thanh 'kho phinh ra' (bay-6: so do giua chung).
OK : 222/233
trong do PEP-8 : 5/233 (*.py snake - DUNG theo luat ngon ngu, khong phai troi)
trong do MOT-LAN : 16/233 (kich ban mot lan - HOP LE, tin hieu ton kho chu khong phai vi pham)
MIEN theo luat L4 : 3/233 (in ten o tung nhom - mien tru im lang va loi im lang trong giong het nhau)
LECH : 8/233
Danh sach LECH (tung ten - cam nen thanh khoang):
- [kich-ban] master-import-data.generated.md
- [moc-phien] closed.md
- [moc-phien] pause-S146-20260722T2328.md
- [moc-phien] resume-S146-20260722T2334.md
- [so-governance] BROADCAST-OUT-SOLUTION-ERP-2026-05-29-INFRA-RETRO.md
- [so-governance] BROADCAST-OUT-SOLUTION-ERP-2026-05-29.md
- [so-governance] BROADCAST-OUT-SOLUTION-ERP-2026-06-01.md
- [so-governance] RAG-AUDIT-RESPONSE-2026-05-29.md
Ma thoat: 0 (INFORM-only theo hop dong muc 1). Co o tren KHONG lai ma thoat.
Lai ma thoat thuoc wave W3b, sau khi chu du an chot phan loai co theo PA-2.
```
### §2b — Đọc kết quả lượt chạy thật
| Ô | Số | Mẫu số | Ghi chú |
|---|---|---|---|
| OK | 222 | /233 | gồm 5 PEP-8 + 16 MỘT-LẦN |
| MIỄN theo luật L4 | 3 | /233 | 2 `README.md` + `__pycache__`**in tên từng vật**, không im |
| **LỆCH** | **8** | /233 | liệt đủ 8 tên, xem dưới |
| TẬP VẮNG MẶT | 0 | /7 tập | cả 7 tập đều tồn tại |
| Bất biến vai ⟂ nhật ký | 26/26 khớp | | 0 thiếu, 0 thừa |
| Ngoài tập (khai tường minh) | 12/12 | thư mục phiên | đạt `^session-<số>$` |
| **Mã thoát** | **0** | | đúng hợp đồng INFORM-only |
**8 tên LỆCH (từng tên, cấm nén thành khoảng):**
1. `master-import-data.generated.md` *(scripts/)* — 🔸 **ứng viên DƯƠNG-GIẢ, cần lead phán**: `.generated.md` là hậu tố có nghĩa. Tôi **giữ cờ** thay vì tự miễn, vì tự miễn là đúng nước đi Goodhart mà phiên này đang chống. Nhưng nó cũng là phát hiện thật: một tệp **dữ liệu `.md`** đang nằm trong thư mục **máy móc**.
2. `closed.md` · 3. `pause-S146-20260722T2328.md` · 4. `resume-S146-20260722T2334.md` *(tệp mốc phiên — 2 fork + 1 vô-họ)*
5-8. `BROADCAST-OUT-…-INFRA-RETRO.md` · `BROADCAST-OUT-…-2026-05-29.md` · `BROADCAST-OUT-…-2026-06-01.md` · `RAG-AUDIT-RESPONSE-2026-05-29.md` *(vật lịch sử, giữ theo L1 nhưng phải bị gọi tên)*
---
## §3 — FAULT-INJECT: 3 CHIỀU, cây tạm `-RepoRoot` (happy-path KHÔNG tính)
Cây tạm dựng đủ **7 tập** (mẫu số nhỏ 12 tên) để có **baseline SẠCH thật** trước khi cấy.
| Chiều | Cấy gì | Kỳ vọng | Đo được | Đạt |
|---|---|---|---|---|
| **BASELINE** | cây sạch | LỆCH 0 | `LECH 0/12` · `khop 1/1` · exit 0 | ✅ |
| **A — cấy tên LỆCH** | `BadRole_Name.md` (vai) · `Bad_Script.ps1` (ps1 hoa+gạch dưới) · `closed.md` (fork) | **phải KÊU cả 3** | `LECH 4/15` — gọi đúng **4 tên**: `BadRole_Name.md` · `Bad_Script.ps1` · `closed.md` · **+`[bat-bien] BadRole_Name`** (vai không có thư mục nhật ký — bắt được **hệ quả thứ hai** mà tôi không cố ý cấy) | ✅ |
| **B — cấy tên ĐÚNG** | `beta-role.md`+thư mục nhật ký · `good_module.py` (PEP-8) · `s99-one-off.sql` (một-lần) · `_snapshot-3.md` | **phải IM** | `LECH 0/17` · `khop 2/2` · `PEP-8 2/17` · `MOT-LAN 1/17`**0 dương-giả** | ✅ |
| **A2 — đổi tên cả TẬP** | `mv .claude/commands → commands-RENAMED` | **phải KÊU**, cấm `[skip]` câm | `FLAG THIEU-TAP` + dòng *"Day KHONG phai [skip]… mau so = 0/19 ky vong"* + **bộ đếm riêng `TAP VANG MAT: 1`** đứng cạnh `LECH 0/16`**không đọc nhầm 0 thành "sạch"** | ✅ |
🔴 **Vì sao chiều A2 quan trọng nhất:** đây đúng lớp lỗi phiên này đã có **2 ca thật**`spawn-model-audit` mù đường Task vẫn in `TOTAL FLAGS: 0`, và H24-2 nuốt 4 khối carry vẫn in `[ok]`. Máy này **không thể** rơi vào ca đó: tập vắng làm bộ đếm `TAP VANG MAT` bật, và số 0 bên cạnh **mất quyền được đọc là "sạch"**.
**Mã thoát giữ 0 ở CẢ 4 lượt** (kể cả lượt có 4 cờ) ⇒ hợp đồng INFORM-only đứng vững; lái mã thoát vẫn để nguyên cho W3b.
---
## §4 — BA VÁ KÈM (R11): 3/3 LAND + verify
### Vá 1 — `.claude/workflows/hmw.js:33` · BỎ SỐ, trỏ khoá cấu hình
- **Làm:** xoá cụm chép-cứng số lớp, thay bằng câu trỏ `memory-budget.json → lead_self_audit.flag_classes` + giải thích **vì sao đếm lướt bị hụt** (lớp `view-claim-broader-than-sample` nằm cuối mảng, ngoài cụm `view-*` liền kề).
- 🔴 **KHÔNG sửa 11→12** — đúng chỉ thị B1: sửa số là để nó thối lại.
- **Verify:** `grep -c "11 class"` = **0** (trước vá = **1**). Control-dương cùng tệp: `flag_classes` = 1 · `VALID_ROLES` = 8 ⇒ thước sống, 0 là 0 thật. `node --check` **OK**.
- 🔴 **TỰ BÁO MỘT LẦN TÔI SUÝT TÁI PHẠM:** bản vá ĐẦU của tôi **trích nguyên văn** cụm cũ trong lời giải thích ⇒ `grep` vẫn ra **1**, tức tôi **tái tạo đúng mẫu đang gỡ, qua đường TRÍCH DẪN**. Đúng lớp *citation-trap self-reference* (doc mô tả anti-pattern thì chứa chính mẫu đó). Sửa vòng 2: mô tả **không** tái tạo chuỗi. Bài học chuyển giao: **vá một mẫu-chuỗi thì lời giải thích cũng nằm trong tập đo.**
### Vá 2 — `scripts/memory-selfimprove-audit.ps1:298` · mirror bản vá S159
- **Làm:** `-Filter 'sub-*.md'``Where-Object { $_.Name -match '^(sub-.+|.+-return)\.md$' }` + 8 dòng chú thích trỏ ca thật S159 và trỏ `naming-standard.md §12` (3 chỗ phải sửa cùng lúc). Sửa luôn chuỗi thông điệp `:301` cho khớp bộ lọc mới.
- 🔸 **ĐÍNH CHÍNH mô tả của lead:** brief ghi *"S159 nới thành `(sub|harness)-*`"*. Đĩa **không phải vậy** — bản vá S159 thật là `^(sub-.+|.+-return)\.md$` (`governance-detectors.ps1:1101-1102`). Bộ ba lọt lưới qua nhánh **`.+-return`**, KHÔNG qua tiền tố `harness-`. Tôi mirror **regex thật**, vì mirror theo diễn giải sẽ đẻ **bản sao thứ 3 lệch nhau** — đúng bệnh mà §12 đang cảnh báo.
- **Verify KHÔNG-GÃY** (máy `/session-end` đang sống): chạy thật → `EXIT=0` · **0** dòng lỗi PowerShell (control-dương: 5 hit `eval` ⇒ output thật) · 36 dòng output bình thường.
- **Verify CÓ RĂNG** (fault-inject `-RepoRoot` cây tạm, run-folder chỉ chứa 3 tệp `*-return.md` — dựng lại đúng ca S159):
| Chiều | Đo được |
|---|---|
| **trước-vá** (glob cũ trên cùng folder) | **0** ⇒ máy sẽ in *"no sub-\*.md … proxy N/A"* = **mù im lặng**, đúng bệnh |
| **sau-vá** | **3** ⇒ in `3 sub-md but 0 synthesis` + `GAP:MED`**nhìn thấy 3 lane đắt nhất** |
| **không dương-giả** | cấy thêm `ghi-chu-phu.md` (ngoài mọi họ) ⇒ đếm vẫn **3**, không phải 4 ✅ |
- 🔸 Trên run-folder S180 hiện tại, cũ ⟂ mới **đều = 12** (folder này có 0 tệp `-return.md`) ⇒ **lượt chạy live KHÔNG chứng minh được răng**; răng chỉ chứng minh được bằng fault-inject ở trên. Control-dương cho biết họ này có thật: **38** tệp `*-return.md` trên toàn `runs/`.
### Vá 3 — Khai bất-biến `agents/<role>.md` ≡ `agent-memory/<role>/`
- **Làm:** ghi vào `naming-standard.md` **§1** (mô tả + hệ quả 2 máy khi lệch: `mfe-eval.ps1:264-267` loại vai khỏi phép đo kèm lời giải thích sai sự thật · `detectors:1109` xếp `$unmapped` liệt-không-cờ) và **§12** (bảng "3 chỗ, không nguồn chung").
- 🟢 **NÂNG CẤP ngoài yêu cầu:** lane a khai bất biến này *"2 chỗ, 0 nguồn chung, **0 máy**"*. Nay nó **CÓ MÁY**`naming-scan.ps1` kiểm **2 chiều** (vai thiếu nhật ký / nhật ký thừa không persona). Đã chứng minh bằng fault-inject chiều A: cấy `BadRole_Name.md` ⇒ máy bật thêm dòng `FLAG vai THIEU nhat ky` mà tôi **không cố ý cấy**.
- **Verify kho thật:** 26/26 khớp, 0 thiếu, 0 thừa.
### Quét CÙNG-LỚP sau vá (luật "được-chỉ-1-chỗ ⇒ grep cùng-lớp")
Quét `[0-9]+ class` ngoài run-folder: **2 hit trong `scripts/`** = **dương-giả** (`+-1/2 class`, `armed-at-0 class` — không phải số lớp). **Trong persona: 3 site CÒN SỐNG**`lead-stale-auditor.md:39` + `:41` ("5 class", thật 6) · `ring2-audit.md:4` ("5 class `view-*`").
🔴 **NGOÀI SCOPE W1 — đã có chủ: wave W3 gói-B persona.** Nhưng bàn giao kèm **một cảnh báo**: `wave-plan-S180.md:85` kê việc đó là *"`5 class view`→**6**"* — tức **đổi số**, đúng LỚP-5 mà vá-1 vừa gỡ. Làm vậy nó sẽ thối lại. **Đề nghị W3 đi đường của vá-1: BỎ SỐ, trỏ `lead_self_audit.flag_classes`.**
---
## §5 — ĐỐI CHIẾU 11 RÀNG BUỘC R1-R11 (tự chấm, lệnh chạy được)
| R | Nội dung | Ở đâu | Verify |
|---|---|---|---|
| R1 | phụ lục 14 đoạn máy | PHỤ LỤC A | `grep -cE '^\| M-[0-9]+ \|'` = **14** ✅ |
| R2 | số chỗ sửa đồng thời (4·3·3·5) | §12 | 4 dòng, liệt **từng chỗ**, cấm nén khoảng ✅ |
| R3 | tên neo NGOÀI kho mã | §11 | **3 vật** (lane a khai 1; +`settings.json:2`, +4 path thân hook) ✅ |
| R4 | CẤM "giữ nguyên số dòng" | §0 L3 (`:45`) | kèm định lượng **21 trích dẫn** `wal-flush.ps1:13`, 2 neo SỐNG ✅ |
| R5 | mỗi nhóm khai NẤC + có máy | §1-§10 | `grep -c "NẤC muốn sạch"` = **11** (10 nhóm + bảng L0) ✅ |
| R6 | máy TỪ CHỐI, cấm 3 lối câm | script hợp đồng (4) | chứng bằng fault-inject A2: `THIEU-TAP` + bộ đếm riêng ✅ |
| R7 | quét 231 tên, luôn in mẫu số | script hợp đồng (2)(3) | chạy thật: 233 (=231+2 vật W1, **khai rõ**) ✅ |
| R8 | tập hợp lệ nhật ký chứa **cả 5 họ** | §6 | `grep -cE '^\| \([a-e]\) \|'` = **5** ✅ |
| R9 | miễn trừ theo ngôn ngữ | §0 L4 | 3 loại; máy **in tên từng vật miễn** ✅ |
| R10 | khai 2 xung đột | §14 | `grep -cE '^### XĐ-[12]'` = **2** ✅ |
| R11 | 3 vá kèm | §4 | 3/3 land + verify 2 chiều ✅ |
**11/11.** Phạm vi chạm: đúng **5 tệp** (2 đẻ mới + 2 vá + nhật ký). **0 tệp cấm bị sửa** (`STATUS`/`HANDOFF`/`CLAUDE.md`/`adap-upgrade-pack-*`). **0 tên bị đổi.**
## §6 — CHƯA ĐO / CẦN LEAD
1. 🔸 `master-import-data.generated.md`**ứng viên dương-giả**, tôi giữ cờ thay vì tự miễn (tự miễn = nước đi Goodhart). Lead phán: nhận `.generated.md` là hậu tố hợp lệ, hay coi đây là *tệp dữ liệu nằm nhầm thư mục máy móc*?
2. 🔴 **`CLAUDE.md:151` sai với 59,7% đĩa** (nợ N-1) — W1 **bị cấm sửa** `CLAUDE.md`. Cần lead/chủ dự án mở đường; đến lúc đó `:151` phải đọc là *khuôn khuyến nghị*, KHÔNG phải vị từ kiểm kho.
3. 🔴 **W3 đừng sửa "5 class"→"6"** (`wave-plan:85`) — đó là LỚP-5. Đi đường vá-1: bỏ số, trỏ khoá. 3 site: `lead-stale-auditor.md:39`+`:41` · `ring2-audit.md:4`.
4. **KHÔNG ĐO ĐƯỢC:** mã thoát thật khi `wal-flush.ps1` bị đổi tên (cần đổi tên cây tạm + chạy hook + đọc `$LASTEXITCODE`) — nợ N-4.
5. **CHƯA ĐO:** `.claude/commands/*.md` (19) + `.claude/agents/*.md` (27) neo tên gì bên trong — đó là **kiểm kê máy** (việc lane a), nhận thêm ở W1 là ăn lẹm — nợ N-5.
6. Máy soi **chưa cắm cổng** (chạy tay) — cắm `session-end` = W3 (gom restart); lái mã thoát = W3b sau PA-2. Ô nghiệm thu *"vai giữ chuẩn"* = **NGOÀI scope** theo fit-map, chờ **P4**.
---
**END sub-w1b-chuan-ten — VERDICT: chuẩn 11/11 ràng buộc (10 nhóm tên ⊇ 6 nhóm sàn hub) · máy soi 233 tên / 8 lệch / 0 tập vắng / exit 0 · fault-inject 4 lượt 3 chiều ĐẠT (baseline sạch → cấy-lệch KÊU 4 → cấy-đúng IM 0 → mất-tập KÊU THIEU-TAP) · 3/3 vá land + verify · 3 ràng buộc/mô-tả bị BÁC có bằng chứng · 0 tên bị đổi · 0 tệp cấm bị chạm.**