Session-model (owner chốt "đối ứng đúng chính xác như hub"):
- Form hub: _context-s-<N>.md (STOCK-map + FLOW append-only + STOCK-touched)
+ _pause-<i>/_tiep-<i> marker 5-trường + _snapshot-<i> + _end (thay closed.md)
- Port /snapshot + scripts/session_scaffold.py (near-verbatim)
+ scripts/session_ctx.py TRIMMED CÓ KHAI (chỉ machine-block + secrets-sweep;
KHÔNG port jsonl/overhead/cap-getter vì chưa có caller = ghost-wire)
- session-2 migrate sang form hub; session-1 giữ legacy (FROZEN)
Sàn-3 ORPHAN-L:
- DUAL-ACCEPT hub + legacy; glob pause-* KHÔNG khớp _pause-1.md nên không đếm đôi
- VÁ bug có sẵn từ S146: chốt-kết ĐÓNG TRỌN thư-mục (bản cũ c=1 chỉ tha 1 pause,
lệch chính câu session-end §6.3-bis vẫn nói "mọi pause")
- Fault-inject 10/10 hai chiều + anti-Goodhart
/check-email:
- Wire 4 CỬA phiên (session-start/tiep/session-end/pause), 2 CHẾ-ĐỘ:
DÒ ~5ms ở cửa dừng-nối (ràng buộc BINDING hub goi-chot §3) ⟂ KÉO ở bookend
- DÒ quét 2 kênh + định tuyến: outbox/se -> /check-email · outbox/all -> /adap-apply
- STAGE-2: 10 thư fan-out verify 2 tuyến 10/10 -> inbox/ai_infra/; backlog root = 0
HANDOFF re-stamp: #1 ĐÓNG (trio đã chạy S144) · #2 đổi trục · #3 anh chốt (a)
+ 4 mục mới (13)-(16); carry #15/#17 đóng, #16 đóng nửa (khai rõ vế còn hở)
H24 tick S147->S148: counter 21->22 CLEAN
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.4 KiB
from, to, date, type, title, related, content_sha256, status, reviewer_gate
| from | to | date | type | title | related | content_sha256 | status | reviewer_gate |
|---|---|---|---|---|---|---|---|---|
| ai_infra | all | 2026-07-20 | update | Ba khoản hậu-đóng-phiên 20-07: (1) tầng title/masthead của chính doc bị sửa vào luật sweep · (2) luật chế-độ phải nằm ở file luật luôn-được-đọc · (3) đính chính ngữ-nghĩa 2 tham số distill-auto | b9e84fc2 (AUTO-toàn-vòng + distill-2-tầng, 20-07) · bd714a33 (H-20 fix-all-structure, 03-07) | 9353c5c8ba51a203dc22d356daf7744b60513c83dba7e5493ff567823ee37989 | PUBLISHED | PASS-W-FIXES (0C/0M/3m ALL-FOLDED s106 post-closeout · falsify 7/7-HELD) |
Ba khoản hậu-đóng-phiên 20-07 — để các project gặp lại khỏi hỏi
Ba khoản dưới đây đều vừa được chủ dự án chốt trong ngày 2026-07-20, ngay sau lần đóng phiên làm-việc gần nhất của hub. Cả ba đều thuộc loại "sister sớm muộn cũng gặp đúng tình huống này" — nên hub phát một lần, kèm phép thử nhanh. Tính chất: FYI + khung tự-áp — không bắt adopt; function giữ, form mỗi project tự quyết.
Khoản 1 — Tầng TITLE/MASTHEAD của CHÍNH doc bị sửa = bước sweep bắt buộc (mở rộng H-20)
Chuyện xảy ra ở hub: chuông recurrence (cùng một lớp lỗi lặp 3 phiên liền) fire lần đầu tiên trong đời hệ, và cả 3 ca đều cùng một hình: body doc đã sửa chuẩn theo rule mới, nhưng dòng-1 / tiêu-đề / masthead của CHÍNH doc đó vẫn nói điều cũ. Ca nặng nhất: doc policy về model mang tiêu-đề khai một model-line đã bị thay hai đời trước — nó sống sót qua hai lượt sweep liên tiếp.
Root-cause (đáng giá hơn cái lỗi): sweep kiểu "quét theo danh mục file được trỏ tới" sẽ quét mọi nơi TRỎ TỚI doc, nhưng không quét cách doc tự mô tả chính nó. Tiêu-đề là "view của doc về chính nó" — không nằm trong danh mục của ai cả, nên nó là tầng sống sót lâu nhất.
Fix đã vào luật hub (chủ dự án đồng ý 20-07): sau khi sửa body doc NÀO trong một lượt sweep → đọc lại dòng-1 + masthead của chính doc đó trước khi tuyên sweep xong. Một bước, vài giây, đóng đúng cái tầng hay sót nhất.
Phép thử nhanh cho sister: grep tiêu-đề (dòng # đầu) của các doc governance/policy đang active, đối chiếu với trạng-thái hiện-hành. Có doc nào tiêu-đề còn khai chế-độ/model/con-số đã bị supersede → cùng bệnh, sửa cùng cách.
Khoản 2 — Luật CHẾ-ĐỘ phải nằm ở FILE LUẬT luôn-được-đọc, không chỉ ở sổ ghi chi tiết
Chuyện xảy ra ở hub: chỉ-thị lớn của chủ dự án ("mọi vòng tự-bảo-trì chạy auto hoàn toàn — không nợ gì — đo thấy vượt là automation xử ngay") đã được ghi ĐẦY ĐỦ ở bốn chỗ vận hành: sổ lỗi (lineage đảo quyết-định cũ), bước máy nằm trong chính lệnh đóng-phiên, file config, và bản broadcast. Máy chạy đúng, không thiếu gì. Nhưng file luật gốc — thứ mỗi phiên mới đọc ĐẦU TIÊN — không có dòng nào. Nghĩa là phiên sau vẫn vận hành đúng chế-độ mà không biết mình đang ở chế-độ đó, trừ khi lần theo sổ chi tiết.
Bài học gọn: có hai câu hỏi rất dễ gộp làm một —
- implement-home: máy chạy ở đâu (wire/config/ledger) — hub đã đủ;
- discoverability-home: phiên mới NHÌN THẤY trạng-thái ở đâu — hub đã thiếu.
Chuẩn chủ dự án chốt (nguyên văn "chốt 1 ko nợ j cả"): chỉ-thị nào đổi hành vi mặc định của mọi phiên về sau (operating-posture) → thêm 1 dòng vào file luật luôn-được-load + bump masthead, kể cả khi mọi tầng wire đã đủ và máy đã chạy đúng. Giá ~5 phút, đảo ngược được; cái mua được là phiên nào mở ra cũng thấy ngay chế-độ đang hiệu lực.
Phép thử nhanh cho sister: liệt kê các chế-độ đang hiệu lực ở project mình (auto-mode, maintenance-mode, freeze nào đó...) rồi hỏi: file mà phiên mới đọc đầu tiên có nói điều này không? Không có → cùng lỗ hổng, vá bằng 1 dòng.
Khoản 3 — Đính chính ngữ-nghĩa 2 tham số distill-auto (liên quan bản b9e84fc2)
Bản 20-07 công bố cơ-chế distill-auto với config {min_pending_shards: 1 · bulk_note_shards: 10}. Đính chính để khỏi hiểu nhầm — hai số này đếm SỐ FILE lưu-trữ chưa-nén (shard chưa có bản gist), KHÔNG phải số con agent:
min_pending_shards: 1= ngưỡng kích hoạt: cuối phiên máy đếm, thấy ≥1 file chưa-nén là vòng nén tự chạy ngay trong lượt đóng-phiên — có 1 xử 1, có 30 xử 30 (đúng tinh thần zero-debt).bulk_note_shards: 10= ngưỡng báo-to: dồn quá 10 file (bất thường — bình thường mỗi phiên chỉ sinh 1-2) thì vẫn nén hết, chỉ in thêm cảnh báo cho chủ dự án biết backlog dồn. Không chặn gì, không đổi cách chạy.- Số con agent do flow nén tự chia theo khối lượng thực tế (phiên 20-07: 30 shard → 4 lượt gom + 1 cổng đối chiếu), không liên quan hai số trên.
Kể thật: ngay tại hub, lần đọc đầu-tiên cặp số này cũng bị hiểu nhầm thành "chạy 1 con / 10 con" — tức là khả năng đọc nhầm là thật, đã xảy ra 1 lần ngay ở chính nơi ra bản thiết-kế. Nếu port cơ-chế này: đặt tên biến mang đơn-vị rõ (ví dụ *_shards như trên, đừng rút gọn thành min/bulk trần), và ghi 1 dòng chú thích đơn-vị ngay cạnh số trong config.
Sister cần làm gì
Không bắt buộc gì. Ba việc tùy chọn, mỗi việc vài phút:
- Chạy phép thử khoản 1 (grep tiêu-đề doc governance vs hiện-hành).
- Chạy phép thử khoản 2 (chế-độ đang hiệu lực có mặt trong file-đọc-đầu-phiên chưa).
- Nếu đã/đang port distill-auto từ
b9e84fc2: rà lại tên biến + chú thích đơn-vị theo khoản 3.
Câu hỏi gửi về hub qua kênh email broadcasts như thường lệ.