Closeout 4 mục OUTWARD của wave S141-S142 (anh gật @S143): - adap-report 7/7 thư, đủ 5 trường REPORT-FORMAT LOCK, evidence đo thật - email hub báo-nấc (sha 6c94873f72e0, selftest_verify exit 0, log _index cùng lượt) - STAGE-2: 7 thư -> inbox/ai_infra/, _index 0 pending, cross-check 7/7 - squash K=8 wal: -> commit chốt Ngoài wave: agents/README skill-matrix thiếu 2 row H24 (drift S121) -> 15/17 thành 17/17. Nấc cao nhất khai được = executed-file/verified-pending-restart (trio CHƯA spawn). 2 phát hiện khai thẳng theo G-015 (chi tiết trong report + email): - whitelist `tools:` KHÔNG chặn ghi ở runtime: 6 vai read-only bị append Write+Edit - pull-lag do "watch broadcasts/inbox" canh nhầm chỗ TICK H24: counter 16->17 (S143), 3-điều-kiện OK-reachable, không fail-loud. Detector TOTAL 46 == baseline 46, 0 flag mới. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.7 KiB
description, argument-hint
| description | argument-hint |
|---|---|
| Nhận email cross-project (2-stage) qua broadcasts/ (Harness 3 §N) cho SOLUTION_ERP (self=se). Verify hash đối chứng. §J2. Adopt AI_INFRA Harness 3 (2026-06-07). | <from_project | all> |
/check-email <from_project> — nhận email cross-project (Harness 3 · self=se)
🔴 Kênh DUY NHẤT (§N) · pull-copy chỉ ghi repo MÌNH (§J2). self=
se. Path map: xemsend-email. Detail: AI_INFRAbroadcasts/README.md§Harness 3.
Tham số
$1= from_project (BẮT BUỘC) ∈ 6 others, hoặcall= quét cả 6.
Quy trình 2-STAGE (audit qua folder)
STAGE 1 — Nhận (đọc → inbox root, PENDING):
-
Validate
$1. -
READ
<from>/broadcasts/outbox/se/*.md(message gửi cho se). -
Mỗi file CHƯA có trong inbox (so id): COPY VERBATIM →
broadcasts/inbox/<id>.md(root = pending). [repo MÌNH §J2] -
Verify đối chứng: (a) whole-file
Get-FileHashcopy == nguồn (byte-identical = tuyến CHÍNH); (b) body recomputeSHA256(body)==content_sha256khai ở frontmatter.4(b) — đầu-đọc stamp KHOAN-DUNG (adopt S141, ghim S142):
- 🔴 ƯU TIÊN chạy SCRIPT, đừng tự chế lệnh rút hash:
python scripts/stamp_verify.py <file>— bản port LOCAL trong repo này (KHÔNG trỏ hub-pathAI_INFRA/scripts/...nữa; hub-path chỉ còn là nguồn re-pull khi hub đổi §N canon). Script indeclared / canonical / no-strip+ verdict; exit 0 = OK, exit 1 = có MISMATCH. Nó còn tách đượcWRONG-METHOD(stamp bằng biến-thể no-strip) khỏiMISMATCHthật — thứ mắt thường không phân biệt nổi. - Rút hash declared — PIN mẫu KHOAN-DUNG:
content_sha256:\s*"?([0-9a-fA-F]{8,64})"?— phủ CẢ 3 dạng đang sống trên đĩa: (i) có-ngoặccontent_sha256: "abc..."· (ii) không-ngoặccontent_sha256: abc...· (iii) rút-gọn ≥8-hex (so bằng tiền-tố, KHÔNG đòi bằng độ-dài). - 🔴 CẤM mẫu quote-strict
content_sha256:\s*([0-9a-fA-F]+)— nó whiff ngay ký-tự"đầu tiên ⇒ hash có-ngoặc rút ra rỗng ⇒ đọc thành "không khớp" ⇒ FALSE-TAMPER. Bẫy ĐÃ GẶP, không phải giả-định: S141 suýt kết oan tamper cả ba trên ba thư mà cả ba đều lành. Mẫu chặt hơn ở đây KHÔNG an-toàn hơn — nó chỉ đổi lỗi "bỏ sót" thành lỗi "vu oan". - Body canonical (khớp ĐÚNG
scripts/stamp_verify.py):$txt=[Text.Encoding]::UTF8.GetString([IO.File]::ReadAllBytes($f)) -replace "^\uFEFF",""; (($txt -replace "\r","") -split "(?m)^---\s*$",3)[2] -replace "^\n",""→ SHA256-UTF8. 🔴 CẤMGet-Content -Rawcho hash — PS 5.1 đọc UTF-8-no-BOM bằng ANSI → mojibake → false-tamper (S125). - ✗ → nghi VERIFIER TRƯỚC (chạy
python scripts/stamp_verify.py <file>+ test 1 sibling known-good; verifier fail cả sibling ⇒ lỗi tool, KHÔNG phải tamper); vẫn ✗ → flag tamper, KHÔNG move, báo anh.
- 🔴 ƯU TIÊN chạy SCRIPT, đừng tự chế lệnh rút hash:
-
Log
_index.md§INBOUND:received · id · <from> → se · status=pending · folder=(root) · sha256(12) · verify=✓.
STAGE 2 — Xử lý xong → archive (PROCESSED):
6. Sau khi xử lý → MOVE inbox/<id>.md → inbox/<from>/<id>.md.
7. Update _index.md: status=processed · folder=<from>.
Audit (anh)
ls broadcasts/inbox/*.md (root) = pending chưa xử lý (backlog hiện ngay) · inbox/<proj>/ = đã xử lý.
Luật
🔴 §N single-channel · 🔴 §J2 pull-copy chỉ-ghi-inbox-MÌNH (KHÔNG push repo bên kia) · KHÔNG sửa file copy (bằng chứng) · PHẢI committed · verify-hash trước move.