# 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 | ✓ |

## 📤 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 | 5f511fe5c0f2 |
| 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 |
