# broadcasts/ — _index (Harness 3 · single index) — SOLUTION_ERP (self=`se`)

> **1 INDEX DUY NHẤT** theo dõi MỌI message qua kênh email (in + out). Adopt AI_INFRA Harness 3 (anh 06-07).
> Mỗi message = 1 dòng. **Append-only.** Inbound: stick **đã-đọc** khi xử lý xong.
> **verify** = `SHA256(body)` bản copy == `content_sha256` (frontmatter) == bản `outbox` bên gửi (byte-identical) → ✓ · lệch = ✗ (tamper-flag, điều tra ngay).
> Folder map: `A/outbox/B/<id>` (A→B) ⇄ `B/inbox/A/<id>` (B kéo về). 6 folder mỗi chiều (trừ self=se).
> **Fan-out adap broadcast** (≠ email directed) → `outbox/all/` (pull `/adap-apply`), track ở COMMS-LEDGER OUT — KHÔNG ở index này (index = email mesh in/out).
> **infra-CC row (§N3):** message `<id>-cc` (`cc-of:<to>`) = bản-2 se gửi `ai_infra` giám sát infra-comms sister↔sister. Ghi rõ `cc-of` vào cell `from → to` — vd OUTBOUND `se → ai_infra (cc-of:vipix)` · INBOUND `vipix → ai_infra (cc-of:se)`. Cùng status/verify như message thường (whole-file + body-hash đối chứng).

## 📥 INBOUND (nhận — qua `/check-email <from>`)
> status: **pending** (ở `inbox/` root, chưa xử lý) → **processed** (đã MOVE vào `inbox/<from>/`).

| received | id | from → to | status | folder | sha256(12) | verify |
|---|---|---|---|---|---|---|
| 2026-06-09 | 2026-06-09-namgroup-to-se-ui-design-conventions | namgroup → se | processed | namgroup | 0140b81fb8a6 | ✓ |
| 2026-06-11 | 2026-06-11-ai_infra-to-se-ui-ux-design-guide | ai_infra → se | processed | ai_infra | d353ee460dba | ✓ |
| 2026-06-18 | 2026-06-18-ai_infra-to-se-harness-11-available | ai_infra → se | processed | ai_infra | b2a2fc1cf399 | ✓ |
| 2026-06-20 | 2026-06-19-ai_infra-to-se-harness-all-notify | ai_infra → se | processed | ai_infra | 50ec0b925157 | ✓ |
| 2026-06-20 | 2026-06-20-ai_infra-to-se-harness-14-adopt-notify | ai_infra → se | processed | ai_infra | 37ae1b19595a | ✓ |
| 2026-06-21 | 2026-06-20-ai_infra-to-se-harness-15-v2-notify | ai_infra → se | processed | ai_infra | 2e6097817e2d | ✓ |
| 2026-07-03 | 2026-07-03-ai_infra-to-se-batch13-ack-stamp-and-answers | ai_infra → se | processed | ai_infra | 72aaeeeed215 | ✓ |
| 2026-07-06 | 2026-07-04-Governance-notify-harness-full-recheck | ai_infra → se | processed | ai_infra | 78dc1d82 | ✓ |
| 2026-07-06 | 2026-07-04-ai_infra-to-se-consolidation-notify | ai_infra → se | processed | ai_infra | ad58db9b924a | ✓ |
| 2026-07-06 | 2026-07-04-ai_infra-to-se-notify-auto-hygiene | ai_infra → se | processed | ai_infra | 7499be2e(no-stamp·wf✓) | ✓ |
| 2026-07-11 | 2026-07-11-ai_infra-to-se-notify-model-tier-v3 | ai_infra → se | processed | ai_infra | a979743596e3 | ✓ |
| 2026-07-11 | 2026-07-11-ai_infra-to-se-triage-reply-s1-s6 | ai_infra → se | processed | ai_infra | 281a67958835 | ✓ |
| 2026-07-11 | 2026-07-10-Governance-harness-21-spec-file-invocation | ai_infra → se | processed | ai_infra | 19cc954b1ee9 | ✓ |
| 2026-07-11 | 2026-07-11-Governance-model-tier-v3-lead-owner-choice | ai_infra → se | processed | ai_infra | 1b3aa9091173 | ✓ |
| 2026-07-12 | 2026-07-11-ai_infra-to-se-notify-harness-22-wal | ai_infra → se | processed | ai_infra | c64a7ac2a1bb | ✓ |
| 2026-07-12 | 2026-07-11-Governance-harness-22-wal-session-continuity | ai_infra → se | processed | ai_infra | 3de0758a6377 | ✓ |
| 2026-07-13 | 2026-07-13-ai_infra-to-se-approve-h22-h21mtv3-and-presence-notify | ai_infra → se | processed | ai_infra | 6c32df89b60a | ✓ |
| 2026-07-15 | 2026-07-15-ai_infra-to-se-reply-wave-s122 | ai_infra → se | processed | ai_infra | 7fca0deb97ff | ✓ |
| 2026-07-16 | 2026-07-16-ai_infra-to-se-huong-dan-adap-4-ban-moi | ai_infra → se | processed | ai_infra | 181a6d195468 | ✓ |
| 2026-07-16 | 2026-07-15-Governance-h17-cadence-update-bookend | ai_infra → se | processed | ai_infra | 85bf89ca7d3e | ✓ |
| 2026-07-16 | 2026-07-16-Governance-tang-luu-tru-so-cai-va-bai-hoc-instrument-dong-cung | ai_infra → se | processed | ai_infra | 291550ffa295 | ✓ |
| 2026-07-16 | 2026-07-16-Governance-vong-tu-bao-tri-thu-nam-san-su-that-nhan-da-do | ai_infra → se | processed | ai_infra | 190c11ba2bc0 | ✓ |
| 2026-07-16 | 2026-07-16-Governance-session-logic-tach-session-vat-ly-huong-van-hanh-moi | ai_infra → se | processed | ai_infra | 9234a7aa1009 | ✓ |
| 2026-07-16 | 2026-07-16-Governance-owner-chot-contextual-retrieval-false-fleet-wide | ai_infra → se | processed | ai_infra | f5ce27780af8 | ✓ |
| 2026-07-16 | 2026-07-16-Governance-erratum-eol-metric-hai-chieu-va-bon-lo-moi | ai_infra → se | processed | ai_infra | eb12b9b8c2e9 | ✓ |
| 2026-07-16 | 2026-07-16-Governance-tong-hop-loi-da-bat-va-sua-bay-lop-sau-phep-thu | ai_infra → se | processed | ai_infra | 0db707e4381d | ✓ |
| 2026-07-17 | 2026-07-16-ai_infra-to-se-reply-adap-dot-16-07 | ai_infra → se | processed | ai_infra | e50a4bd0109d | ✓ |
| 2026-07-17 | 2026-07-17-ai_infra-to-se-reply-h24-cadence-3-gap | ai_infra → se | processed | ai_infra | 0b581ae79815 | ✓ |
| 2026-07-17 | 2026-07-16-Governance-loi-phong-workflow-chet-non-json-args | ai_infra → se | processed | ai_infra | 6c2eb2b19bae | ✓ |
| 2026-07-17 | 2026-07-16-Governance-notify-hai-ban-moi-va-kenh-hoi-dap-hub | ai_infra → se | processed | ai_infra | dacfcb11a690 | ✓ |
| 2026-07-17 | 2026-07-16-Governance-vong-bon-da-dong-giac-ngu-nen-tri-nho | ai_infra → se | processed | ai_infra | 89e4d818b8be | ✓ |
| 2026-07-17 | 2026-07-17-Governance-checklist-nam-vong-va-kiem-audit-xuyen-session | ai_infra → se | processed | ai_infra | f71c5b653185 | ✓ |
| 2026-07-17 | 2026-07-17-Governance-khung-nhip-nam-vong-do-rai-lam-don | ai_infra → se | processed | ai_infra | 3daf5ee48f47 | ✓ |
| 2026-07-17 | 2026-07-17-Governance-dinh-chinh-kep-nhan-grounded-va-filter-office | ai_infra → se | processed | ai_infra | 624c378d6ee1 | ✓ |
| 2026-07-17 | 2026-07-17-Governance-master-checklist-hai-tang-moi-cua-phien | ai_infra → se | processed | ai_infra | cadd24aed2e4 | ✓ |
| 2026-07-17 | 2026-07-17-Governance-nam-quyet-owner-mot-ngay-lam-viec-ky | ai_infra → se | processed | ai_infra | 123d8272bbf5 | ✓ |
| 2026-07-20 | 2026-07-17-ai_infra-to-se-reply-adap-wave-carveout-dp2 | ai_infra → se | processed | ai_infra | 9a35405b6433 | ✓ |
| 2026-07-20 | 2026-07-18-ai_infra-to-se-nudge-pull-dot-9-10 | ai_infra → se | processed | ai_infra | 9cd1a486af96 | ✓ |
| 2026-07-20 | 2026-07-18-ai_infra-to-se-reply-tong-bo-ba-harness-sub-4-khoan | ai_infra → se | processed | ai_infra | 58e28baedf05 | ✓ |
| 2026-07-20 | 2026-07-17-Governance-chuan-hoa-stamp-decode | ai_infra → se | processed | ai_infra | 6239dd403792 | ✓ |
| 2026-07-20 | 2026-07-17-Governance-khung-nhip-dinh-chinh-wording-tick-annex-phep-8 | ai_infra → se | processed | ai_infra | dede7ec56ccc | ✓ |
| 2026-07-20 | 2026-07-17-Governance-session-model-phien-logic-manifest | ai_infra → se | processed | ai_infra | 101e69d61675 | ✓ |
| 2026-07-20 | 2026-07-18-Governance-model-tier-h23-precedence-tested-update | ai_infra → se | processed | ai_infra | d68de5e7b72d | ✓ |
| 2026-07-22 | 2026-07-22-ai_infra-to-se-reply-adap11-c7-bulk-shards | ai_infra → se | processed | ai_infra | 01f567a379d4 | ✓ |
| 2026-07-22 | 2026-07-22-ai_infra-to-se-reply-session-model-dung-ban-da-duyet | ai_infra → se | processed | ai_infra | 8378a68b6f7e | ✓ |

## 📤 OUTBOUND (gửi — qua `/send-email <to>`)
| sent (ISO) | id | from → to | folder | sha256(12) |
|---|---|---|---|---|
| 2026-06-07 | 2026-06-07-se-to-ai_infra-harness-123-handshake | se → ai_infra | outbox/ai_infra | c9656c198500 |
| 2026-06-10 | 2026-06-10-se-to-ai_infra-harness-4-adopt-report | se → ai_infra | outbox/ai_infra | 181ee03ff060 |
| 2026-06-11 | 2026-06-11-se-to-ai_infra-harness-4-runtime-verified | se → ai_infra | outbox/ai_infra | ecf1d58797af |
| 2026-06-15 | 2026-06-15-se-to-ai_infra-harness-5-6-adopt-report | se → ai_infra | outbox/ai_infra | 8a247984df9f |
| 2026-06-15 | 2026-06-15-se-to-ai_infra-harness-7-adopt-report | se → ai_infra | outbox/ai_infra | 7e4f91f1ff7f |
| 2026-06-16 | 2026-06-16-se-to-ai_infra-harness-8-adopt-status | se → ai_infra | outbox/ai_infra | fa7f690d9ce6 |
| 2026-06-17 | 2026-06-17-se-to-ai_infra-harness-9-adopt-report | se → ai_infra | outbox/ai_infra | 7c07b716e775 |
| 2026-06-18 | 2026-06-18-se-to-ai_infra-harness-9-10-checklist-adopted | se → ai_infra | outbox/ai_infra | e5f09d57c22e |
| 2026-06-18 | 2026-06-18-se-to-ai_infra-harness-10-flat-refine-adopt-report | se → ai_infra | outbox/ai_infra | 5f8b85049a8c |
| 2026-06-18 | 2026-06-18-se-to-ai_infra-harness-11-adopt-report | se → ai_infra | outbox/ai_infra | 2316773229f2 |
| 2026-06-20 | 2026-06-20-se-to-ai_infra-harness-12-13-14-adopt-report | se → ai_infra | outbox/ai_infra | 7b8615b3291e |
| 2026-06-20 | 2026-06-20-se-to-ai_infra-harness-15-adopt-report | se → ai_infra | outbox/ai_infra | bb8fb6e803ae |
| 2026-06-21 | 2026-06-21-se-to-ai_infra-harness-15-v2-adopt-report | se → ai_infra | outbox/ai_infra | a749bb6bd1be |
| 2026-06-29 | 2026-06-29-se-to-ai_infra-harness-16-mfe-report | se → ai_infra | outbox/ai_infra | da768330fadc |
| 2026-07-01 | 2026-07-01-se-to-ai_infra-harness-17-adopt-report | se → ai_infra | outbox/ai_infra | 54789e1992c6 |
| 2026-07-01 | 2026-07-01-se-to-ai_infra-harness-17-deep-reverify-update | se → ai_infra | outbox/ai_infra | 8c94fa348514 |
| 2026-07-02 | 2026-07-02-se-to-ai_infra-fable-restore-h56 | se → ai_infra | outbox/ai_infra | cf0aa0dcd055 |
| 2026-07-03 | 2026-07-03-se-to-ai_infra-harness-18-wf2-verdict | se → ai_infra | outbox/ai_infra | d53ff79e4ccb |
| 2026-07-03 | 2026-07-03-se-to-ai_infra-harness-19-adopt-plus-model-tier | se → ai_infra | outbox/ai_infra | 87f73eff72a9 |
| 2026-07-06 | 2026-07-06-se-to-ai_infra-crystallized-backfill-harness-20-adopt | se → ai_infra | outbox/ai_infra | fc1e22ac4e13 |
| 2026-07-10 | 2026-07-10-se-to-ai_infra-s107-office-document-hotreload-fable-real-first-run | se → ai_infra | outbox/ai_infra | 8d14405f0f5a |
| 2026-07-11 | 2026-07-11-se-to-ai_infra-h21-mtv3-adopt-report | se → ai_infra | outbox/ai_infra | 01d9096ed4fa |
| 2026-07-12 | 2026-07-12-se-to-ai_infra-harness-22-wal-adopt-report | se → ai_infra | outbox/ai_infra | 9cdcda2f3c83 |
| 2026-07-13 | 2026-07-13-se-to-ai_infra-presence-not-age-adopt-report | se → ai_infra | outbox/ai_infra | 8b9dc5165d5a |
| 2026-07-13 | 2026-07-13-se-to-ai_infra-h22-wal-restart-runtime-verify | se → ai_infra | outbox/ai_infra | ddd01a1574b0 |
| 2026-07-15 | 2026-07-15-se-to-ai_infra-adap-6-broadcast-wave-report | se → ai_infra | outbox/ai_infra | d9536445cc91 |
| 2026-07-15 | 2026-07-15-se-to-ai_infra-r6-user-memory-outside-repo | se → ai_infra | outbox/ai_infra | d204973b0a23 |
| 2026-07-15 | 2026-07-15-se-to-ai_infra-r5-amend-dual-accept-retire-legacy | se → ai_infra | outbox/ai_infra | ed3786a10f12 |
| 2026-07-15 | 2026-07-15-se-to-ai_infra-adap-wave-s124-report | se → ai_infra | outbox/ai_infra | 28c424d4e50f |
| 2026-07-16 | 2026-07-16-se-to-ai_infra-dinh-chinh-token-label-hash-verify | se → ai_infra | outbox/ai_infra | 58f5afd89350 |
| 2026-07-16 | 2026-07-16-se-to-ai_infra-h23-precedence-test-result | se → ai_infra | outbox/ai_infra | 945cf3ad6329 |
| 2026-07-16 | 2026-07-16-se-to-ai_infra-adap-dot-16-07-bao-nac | se → ai_infra | outbox/ai_infra | c0ac7486447e |
| 2026-07-16 | 2026-07-16-se-to-ai_infra-disposition-owner-gated-dot-16-07 | se → ai_infra | outbox/ai_infra | a7aff375d0b3 |
| 2026-07-16 | 2026-07-16-se-to-ai_infra-adap-2-errata-report | se → ai_infra | outbox/ai_infra | 10ca96c9f845 |
| 2026-07-17 | 2026-07-17-se-to-ai_infra-h24-h22-van-hanh-3-gap | se → ai_infra | outbox/ai_infra | e46863c8e01e |
| 2026-07-17 | 2026-07-17-se-to-ai_infra-owner-direction-closure-cadence | se → ai_infra | outbox/ai_infra | 641bf8ca5498 |
| 2026-07-17 | 2026-07-17-se-to-ai_infra-adap-wave-khung-nhip-bao-so-do | se → ai_infra | outbox/ai_infra | 6e93be2fa7b1 |
| 2026-07-18 | 2026-07-18-se-to-ai_infra-adap-wave-3-ban-17-07-bao-nac | se → ai_infra | outbox/ai_infra | c5ea71b1b136 |
| 2026-07-18 | 2026-07-18-se-to-ai_infra-owner-quyet-4-khoan-xin-hub-review | se → ai_infra | outbox/ai_infra | 21b71a1e8e5b |
| 2026-07-18 | 2026-07-18-se-to-ai_infra-lam-ro-co-che-bo-ba-harness-sub | se → ai_infra | outbox/ai_infra | fc2b218d3eed |
| 2026-07-18 | 2026-07-18-se-to-ai_infra-nam-vong-dong-va-xin-mau-session-model | se → ai_infra | outbox/ai_infra | b9ef5ede5679 |
| 2026-07-22 | 2026-07-22-se-to-ai_infra-bao-nac-wave-dot-9-10 | se → ai_infra | outbox/ai_infra | 6c94873f72e0 |
| 2026-07-22 | 2026-07-22-se-to-ai_infra-errata-bao-nac-wave-dot-9-10 (errata-of ↑) | se → ai_infra | outbox/ai_infra | e43484cef10f |
| 2026-07-22 | 2026-07-22-se-to-ai_infra-adap11-hoi-c7-va-bulk-note-shards | se → ai_infra | outbox/ai_infra | 9f783be8e18a |

> 🔴 **Reconcile S123 (2026-07-15):** 2 row đầu (`…wave-report` · `…r6-user-memory…`) là **email S122 ĐÃ GỬI nhưng CHƯA từng được log** — `_index` có **0 row** cho ngày 07-15 trong khi `outbox/ai_infra/` có **3 file**. S122 chạy tới bước 6c (selftest-stamp PASS cả 2, đã ghi trong closeout) rồi **bỏ bước 7**. Phát hiện tình cờ khi S123 đọc `_index` để append row thứ 3. Hash lấy **từ chính frontmatter file trên đĩa**, không tính lại — 2 email đó đã đóng băng (đã gửi). ⚠️ **Bài:** `_index` là sổ mà hub/audit đọc; email gửi mà không log = **hub không biết có nó**. Bước 7 nên là một phần của cùng một lượt với 6c, đừng để tách.
| 2026-07-25 | 2026-07-25-se-to-ai_infra-bao-nac-adap-backlog-va-probe-opus5 | se → ai_infra | outbox/ai_infra | 3a05a6cc8509 |
| 2026-07-26 | 2026-07-26-se-to-ai_infra-model-default-probe-opus5 | se → ai_infra | outbox/ai_infra | d432f5eab5cd |
| 2026-07-26 | 2026-07-26-se-to-ai_infra-ctx-adopt-executed-va-datum | se → ai_infra | outbox/ai_infra | aedd7fb67405 |
