Files
solution-erp/.claude/commands/send-email.md
pqhuy1987 010d12c5f8 [CLAUDE] Docs: S125 adap tien-de-vong4 — relabel token CAN-TREN + hash-verify byte-safe + dinh-chinh hub + fable-real review/invest checklist
- adap broadcast phuong-phap-dem-token (type:new): negative-control tai lap 3-probe (notice-N = heuristic char-dem, KHONG phai token that) -> relabel STATUS:41 + HANDOFF:5 x2 + do-token report ADDENDUM (dai [31K byte/4 - 70,9K notice] => lead-share [8,2-18,7]%)
- false-TAMPER RCA: PS5.1 Get-Content -Raw doc UTF-8-no-BOM bang ANSI -> va check-email/send-email byte-safe + verifier-suspect-first; stamp hub verify OK bang stamp_verify.py (exit-0)
- email dinh-chinh hub (58f5afd8, selftest exit-0 x2) + adap-report + adap-request hash-verify-byte-safe-decode + FYI 2 broadcast no-stamp
- STAGE-2: git mv 7 broadcast processed -> inbox/ai_infra/ (root sach)
- fable-real review+invest (vai compound reviewer+inv-cb): run-trace + spec 3-muc + checklist A-D cho hmw @Opus 4.8 MAX; va stale all-inherit fable-real.md:37 + fable-clone.md:43
- hook-curate inv-cb MEMORY 23,9->16,9KB moved-not-cut (14 dong + 2 digest -> archive/2026-07.md)
- h18 memory +sibling-test-2-chieu; monitor self-compact S125-start + counter tick=4

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 13:29:43 +07:00

3.9 KiB

description, argument-hint
description argument-hint
Gửi email cross-project qua broadcasts/ (Harness 3 §N) cho SOLUTION_ERP (self=se). Ghi outbox/<to>/ repo MÌNH. §J2. Adopt AI_INFRA Harness 3 (2026-06-07). <to_project> [category] [intent...]

/send-email <to_project> — gửi email cross-project (Harness 3 · self=se)

🔴 Kênh DUY NHẤT (§N) · chỉ ghi repo MÌNH (§J2). self=se. Detail: AI_INFRA broadcasts/README.md §Harness 3 (pull cross_project_search).

Tham số

  • $1 = to_project (BẮT BUỘC) ∈ 6 project ≠ se (self/unknown → ABORT).
  • $2 = category ∈ Governance·Agent·Memory·Rag·Mcp·Skill·Cmd·Coord (default Coord). infra-CC ACTIVE: categoryCoord + toai_infra → auto bản-2 vào outbox/ai_infra/ (bước 6b) để AI_INFRA giám sát infra-comms.

Project-path map (7 project — se dùng 6 ≠ self · path-coupling, web-migration sẽ bỏ)

id broadcasts root
ai_infra D:\Dropbox\CONG_VIEC\AI_INFRA\broadcasts
vipix D:\Dropbox\CONG_VIEC\VIPIX_MULTISITE_PROJECT\broadcasts
se D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\broadcasts (← self)
dyd D:\Dropbox\CONG_VIEC\DAI_Y_DUOC\DH_Y_DUOC_SOURCECODE\DH_Y_DUOC\broadcasts
namgroup D:\Dropbox\CONG_VIEC\NAMGROUP\SOURCECODE_CÔNG_TY\NAMGROUP\broadcasts
ashico D:\Dropbox\CONG_VIEC\ASHICO\SOURCE_CODE_WEBSITE_ASHICO\broadcasts
bvaau D:\Dropbox\CONG_VIEC\BENHVIEN_A_AU\SOURCE_CODDE\broadcasts

Quy trình

  1. Validate $1 ∈ 6 others (≠ se/unknown) → else ABORT.
  2. Soạn body markdown theo intent.
  3. id = <YYYY-MM-DD>-se-to-<to>-<slug> (unique).
  4. content_sha256 = SHA256(body) canonical (strip ALL \r + strip 1 leading newline — Y HỆT receive + khớp stamp_verify.py hub): $txt=[Text.Encoding]::UTF8.GetString([IO.File]::ReadAllBytes($f)) -replace "^\uFEFF",""; (($txt -replace "\r","") -split "(?m)^---\s*$",3)[2] -replace "^\n","" → SHA256-UTF8. 🔴 CẤM Get-Content -Raw cho hash (PS 5.1 đọc UTF-8-no-BOM bằng ANSI → hash sai — S125 false-tamper).
  5. Frontmatter: id · from: se · to: <to> · category · type: broadcast|update|fix|report|request|coord · date · content_sha256 · nac: sent.
  6. Ghi broadcasts/outbox/<to>/<id>.md (Write tool, KHÔNG shell-write — chống mojibake). [chỉ repo MÌNH §J2] 6b. infra-CC (Harness-3 §N3) — NẾU category ∈ {Governance·Agent·Memory·Rag·Mcp·Skill·Cmd} (≠Coord) VÀ toai_infra: ghi bản-2 broadcasts/outbox/ai_infra/<id>-cc.md (Write tool — repo MÌNH = §J2-safe, KHÔNG ghi inbox ai_infra) — body + content_sha256 Y HỆT primary; frontmatter id: <id>-cc · from: se · to: ai_infra · cc-of: <to> · category · type · date · content_sha256 · nac: sent. (Đã có outbox/ai_infra/.gitkeep.) → AI_INFRA pull qua /check-email se. 6c. 🔴 Selftest-stamp (H19-ack 2026-07-03 — chống sai-phương-pháp + sửa-sau-stamp): NGAY sau Write, recompute SHA256(body-canonical) file vừa ghi (Y HỆT bước 4: split-frontmatter + strip-1-leading-newline + UTF8) → so content_sha256 frontmatter. Lệch → ABORT gửi + báo anh (KHÔNG log _index, KHÔNG relay). Khớp → tiếp. (Bài học: file 2026-06-18-...harness-10... stamp bằng body KHÔNG-strip-newline → lệch canonical, AI_INFRA bắt; 12/13 file khác đúng. Bước này chẩn cả 2 lớp lỗi.)
  7. Log append broadcasts/_index.md §OUTBOUND (+ 1 row tag cc nếu có bản-2).
  8. Báo. KHÔNG tự relay — bên nhận tự /check-email se.

Luật

🔴 §N single-channel · 🔴 §J2 chỉ-ghi-repo-mình · from+to BẮT BUỘC · id unique · folder khớp to · infra-CC bản-2 (category≠Coord → outbox/ai_infra/, ghi repo MÌNH = §J2-safe). Outward content → reviewer-gate (no-overclaim G-015) trước relay.