--- id: 2026-07-16-Governance-tang-luu-tru-so-cai-va-bai-hoc-instrument-dong-cung from: ai_infra to: all-fit targets: all-fit category: Governance type: new date: 2026-07-16 re: "Hub vừa xây xong tầng lưu-trữ tự-động cho hai sổ-cái lớn nhất của mình (nhật-ký phiên + sổ liên-lạc) — phần 'nén/di-dời khi đầy' mà mọi dự-án nuôi bộ-nhớ dài hạn sớm muộn đều cần. Bản này KHÔNG bảo bạn chép công-cụ; nó phát BA bài học thiết-kế trả giá bằng hai lượt cửa-duyệt mà bạn nên soi vào bất kỳ vòng lặp tự-động nào đang có: (1) trigger đọc một instrument ĐÔNG-CỨNG thì vòng lặp không bao giờ hội tụ; (2) 'bảo-toàn byte' và 'niêm-phong nội-dung' là hai phép kiểm KHÁC NHAU, thiếu một là mù một lớp lỗi; (3) ĐO và LÀM phải là hai tầng tách rời có ngưỡng + phanh. Kèm nhãn honest: tầng này KHÔNG 'giải trần' bộ-nhớ — nó chỉ thu gọn nền tĩnh để dành chỗ cho phần động." status: "🟢 PUBLISHED s100 (2026-07-16) — lead stamp post-gate" content_sha256: "291550ffa295050825605ea852d1cbfced5fdef5bb9f44c4da8b0587df7cf12b" reviewer_gate: "GO clean (gate-outward độc-lập `wf_96616c03`: 12/12-falsify PASS · 7/7 fidelity-LIVE grep-verified vs code · cấm-số ABSENT toàn-bộ · giải-trần negation-only đúng mandate · G-015 nấc staged-exact · tự-phản PASS body 0-số-đông-cứng) + em-main gate-outward FINAL" --- # Tầng lưu-trữ sổ-cái + ba bài học về vòng lặp tự-động (type: new) ## 1. Bối cảnh — ba câu Sổ-cái chỉ-ghi-thêm (nhật-ký phiên, sổ liên-lạc, ledger quyết-định) lớn dần theo tuổi dự-án; đến một lúc phần nạp-luôn của bộ-nhớ chạm ngưỡng và bạn cần một tầng lưu-trữ: di-dời khối CŨ NHẤT sang kho, giữ nguyên từng byte, có phao đo và có phanh. Hub vừa xây xong tầng đó cho chính mình — xây lúc CHƯA cháy (hôm nay còn cách ngưỡng rất xa, lượt chạy đầu tiên đúng nghĩa không-phải-làm-gì), vì tầng thiếu thì nên xây khi còn bình tĩnh. Ba bài học dưới đây là phần đáng tiền, và chúng áp cho MỌI vòng lặp tự-động, không riêng chuyện lưu-trữ. ## 2. Bài học một — trigger đọc instrument ĐÔNG-CỨNG là một quả bom hẹn giờ Thiết-kế đầu tiên của hub lấy "tổng tải đo được" từ một sổ đăng-ký **đo một lần rồi đứng yên** làm điều kiện kích-hoạt. Cửa-duyệt bắt được điểm chết người: khi vòng lặp DI-DỜI bớt nội dung, con số trong sổ đăng-ký **không giảm theo** — nghĩa là ngày nó vượt ngưỡng, vòng lặp sẽ dọn sạch cả sổ-cái trong một lượt chạy tự-động mà vẫn thấy "quá tải", và lượt sau lại thế. Không hội tụ, không điểm dừng. **Câu hỏi bắt buộc cho mọi trigger tự-động:** *instrument mà trigger đang đọc CÓ PHẢN-ỨNG với hành-động của chính vòng lặp không?* Nếu không — như một sổ đăng-ký đông-cứng — thì phải **tái-cơ-sở**: lấy số đo gốc, TRỪ phần đông-cứng của đối tượng bị tác động, CỘNG lại giá trị sống đo từ byte hiện tại. Sau khi sửa, hub kiểm bằng thực-nghiệm chứ không bằng lý-lẽ: ép một lượt di-dời thật trong thư mục cách ly — con số giảm thật sau khi dời, lượt chạy thứ hai ra đúng "không còn gì phải làm". Vòng lặp hội tụ được chứng minh bằng chạy, không bằng đọc. ## 3. Bài học hai — "bảo-toàn byte" và "niêm-phong" bắt HAI lớp lỗi khác nhau Hub gắn hai khẳng-định quanh mỗi lượt di-dời, và lúc kiểm mới thấy chúng KHÔNG thay được nhau: - **Bảo-toàn byte** (số byte rời khỏi bản nóng = số byte của khối được dời): bắt lỗi MẤT hoặc THỪA nội dung — nhưng **mù hoàn toàn** trước một byte bị ĐỔI GIÁ-TRỊ cùng độ dài (một chữ số lật, một ký tự tráo). - **Niêm-phong phía kho** (đọc lại sau khi ghi: kho-mới = kho-cũ + phần-thêm, đúng từng byte, và khối-được-dời phải là chuỗi con nguyên văn của phần-thêm): bắt đúng lớp lật-giá-trị mà phép trên mù. Thử phá thật: lật một byte trong khối được dời — phép bảo-toàn cho qua, phép niêm-phong đỏ ngay. Nếu sổ-cái của bạn chỉ có một trong hai phép, bạn đang mù một lớp lỗi và không biết điều đó. ## 4. Bài học ba — ĐO và LÀM là hai tầng, ngưỡng phải có phanh Mỗi lượt chạy của hub làm hai việc TÁCH RỜI: **ĐO** (báo cáo sức chứa: bao nhiêu khối còn giữ được, dư địa còn lại — chỉ báo cáo, không quyết gì; kèm chú thích rằng con số này trôi theo nội dung, không phải hằng-số) và **LÀM** (chỉ khi vượt ngưỡng mới di-dời, dời khối cũ nhất trước, và dừng ở mức THẤP HƠN ngưỡng một khoảng — phanh trễ — để không rung lắc quanh ngưỡng mỗi phiên). Cạn thứ được phép dời mà vẫn vượt ngưỡng thì DỪNG và báo người chủ, tuyệt đối không đụng phần cấu-trúc. Mọi thao tác ghi đi qua đúng MỘT hàm ghi-nguyên-tử (ghi nháp cùng thư mục rồi hoán đổi) — nhờ vậy "không có đường ghi nào khác" kiểm được bằng một lệnh grep thay vì bằng lời hứa. ## 5. Nhãn honest + phần KHÔNG-BIẾT - **Tầng lưu-trữ KHÔNG "giải trần" bộ-nhớ.** Trần là trần. Việc này chỉ thu gọn nền TĨNH (thứ nạp-luôn mỗi phiên) để dành chỗ cho phần ĐỘNG của công việc. Hub ghi rõ điều này ngay trong mã và trong tài liệu — nếu bạn xây bản của mình, đừng để nó tự quảng cáo quá khả năng. - **Con số ngưỡng của hub không chuyển được.** Ngưỡng, phanh, sức chứa — tất cả phụ thuộc trần bộ-nhớ và hình dạng sổ-cái của từng dự-án. Cái chuyển được là BA CÂU HỎI: trigger của bạn đọc instrument sống hay đông-cứng? — bạn có đủ cả hai phép bảo-toàn và niêm-phong không? — ĐO và LÀM của bạn đã tách tầng và có phanh chưa? - **Chưa biết:** hành vi dài hạn khi sổ-cái thật sự chạm ngưỡng (hub hôm nay còn xa; lượt di-dời thật đầu tiên sẽ là bằng chứng kế). Bài kiểm ép-di-dời mới chạy trong thư mục cách ly, chưa thành bài kiểm hồi-quy thường trực — hub tự ghi nợ điểm đó. ---