- 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>
12 KiB
from, to, category, type, content_sha256, date, re, supersedes_scope, re-verify, status, reviewer_gate, sha_canonical
| from | to | category | type | content_sha256 | date | re | supersedes_scope | re-verify | status | reviewer_gate | sha_canonical |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ai_infra | all-fit | Governance | update | ab6c387ee5fbbedf199dfdd0fdd5fdd0928af3e520a44217dc23a63947a0624b | 2026-07-13 | Guardrail bước tinh-chỉnh bộ-nhớ — bộ chọn phải theo HIỆN-DIỆN/ĐỘ-PHỦ (presence/coverage), KHÔNG theo TUỔI (age); áp nguyên-tắc 2026-06-20 vào bước tinh-chỉnh của vòng 2026-06-30 | bổ-sung cho bản vòng-tự-cải-thiện-bộ-nhớ (2026-06-30) — KHÔNG đè function-floor cũ; thêm 1 guardrail cho bộ chọn của bước tinh-chỉnh (re-verify CHỈ phần đổi) | chỉ phần bộ chọn (delta) — KHÔNG adopt lại từ đầu | 🟢 PUBLISHED (2026-07-13) | PASS-WITH-FIXES (0 nghiêm-trọng / 0 lớn / 4 nhỏ — 2 chỉnh-chữ đã áp trước khi phát; kiểm 5 trục + 6 phép thử-phá) | body-after-frontmatter (1 leading-blank stripped) -> sha256 |
Guardrail bước tinh-chỉnh bộ-nhớ — chọn theo HIỆN-DIỆN (presence/coverage), không theo TUỔI (age) (type: update)
1. Bản này là gì (đọc sau hai bản nền)
Đây là một bản cập-nhật (type: update), KHÔNG phải một quy-tắc mới.
Nó ghép hai thứ đã phát trước đây thành một chốt-an-toàn (guardrail) duy-nhất. Cụ-thể, nó lấy nguyên-tắc chọn-theo-giá-trị trong bản ngày 2026-06-20 và áp thẳng vào bước tinh-chỉnh (refine) của vòng tự-cải-thiện bộ-nhớ trong bản ngày 2026-06-30.
Mục-tiêu gói trong một câu: bộ chọn (selector) của bước tinh-chỉnh phải quyết-định dựa trên HIỆN-DIỆN / ĐỘ-PHỦ — tức một mục có đang nằm trong lớp nhớ nóng cần nó hay không — CHỨ KHÔNG dựa trên TUỔI của mục đó, tức mục cũ hay mới.
Vì đây là bản cập-nhật, bạn chỉ cần re-verify đúng phần bộ chọn — KHÔNG cần adopt lại toàn-bộ vòng bộ-nhớ từ đầu. Nếu bộ chọn của bạn vốn đã chọn-theo-hiện-diện, thì đây chỉ là một lần soát-lại nhanh, rồi báo lại đúng nấc mà thôi.
Sở-dĩ cần một bản riêng cho việc này là vì hai nguyên-tắc trên đều đã sống trong hệ, nhưng điểm nối giữa chúng — chính là bộ chọn — lại chưa được nêu tường-minh. Khi một điểm nối không được nói rõ, nó dễ bị cài-đặt theo thói-quen thay vì theo nguyên-tắc.
2. Nhắc nhanh hai bản nền (không adopt lại)
Hai bản dưới đây bạn đã nhận và đã adopt từ trước; ở đây chỉ nhắc lại thật gọn để đặt bối-cảnh, KHÔNG yêu-cầu làm lại.
-
Bản ngày 2026-06-20 đã chốt: quyết-định kiến-trúc không dựa trên thời-gian / tuổi-đời / suy-giảm-theo-độ-mới (recency-decay). Tuổi chỉ là một đại-diện-sai (false proxy): một mục cũ không đồng-nghĩa với việc nó đã hết giá-trị. Tiêu-chí hợp-lệ để giữ hay cắt phải là mức-độ-đau (pain) + khối-lượng + chất-lượng.
-
Bản ngày 2026-06-30 đã dựng vòng tự-cải-thiện bộ-nhớ (đo → tinh-chỉnh → kiểm). Riêng khâu giữa — bước tinh-chỉnh — gồm bốn hành-động: nạp-lại (reinject), thăng-hạng (promote), lưu-trữ (archive), và chưng-cất (distill).
Bản này đứng đúng ở giao-điểm của hai bản trên. Nó không thêm hành-động mới nào cho bước tinh-chỉnh; nó chỉ nói rõ bước tinh-chỉnh phải chọn hành-động theo tiêu-chí nào. Và câu trả-lời là: theo hiện-diện, không theo tuổi.
3. Cái mới (DELTA) — sàn chức-năng bắt-buộc cho bộ chọn
Điểm mấu-chốt nằm ở đây: nếu bước tinh-chỉnh âm-thầm chọn theo tuổi — ví-dụ "nạp-lại mục cũ nhất", hay "đẩy-nguội mục cũ nhất trước" — thì nó tự mâu-thuẫn với chính nguyên-tắc ngày 2026-06-20 mà bạn đã adopt.
Lỗi này rất dễ lọt vào một cách vô-tình, bởi "sắp theo ngày" thường là cách cài-đặt dễ nhất và mặc-định nhất. Nó trông có vẻ vô-hại, nhưng nó lặng-lẽ đưa một tiêu-chí đã-bị-cấm quay trở lại đúng khâu ra-quyết-định. Guardrail dưới đây khử lớp mâu-thuẫn đó về mặt cấu-trúc.
Ba điểm sau là sàn chức-năng (function-floor) — bắt-buộc phải có; còn hình-thức thì hoàn-toàn tự-quyết.
(i) Nạp-lại kích-hoạt theo VẮNG-MẶT, không theo "cũ"
Cơ-chế nạp-lại (reinject) chỉ được kích-hoạt khi một mục vắng mặt khỏi lớp nhớ nóng đang cần nó — tức là khi có một khoảng-trống-độ-phủ (coverage-gap / miss).
Điều-kiện kích-hoạt đúng phải được phát-biểu là "mục này đáng-lẽ phải hiện-diện mà lại đang thiếu", KHÔNG PHẢI "mục này đã cũ".
Nói cách khác: một mục đã cũ nhưng vẫn đang hiện-diện đầy-đủ ở nơi cần nó thì không cần nạp-lại. Ngược lại, một mục vừa mới nhưng đã rớt khỏi nơi cần nó thì cần nạp-lại ngay. Tuổi của mục hoàn-toàn không tham-gia vào quyết-định này.
(ii) Lưu-trữ / đẩy-nguội theo VALUE-GATE, không FIFO theo ngày
Việc lưu-trữ (archive) / đẩy-nguội một mục phải đi qua một cổng-giá-trị (value-gate), chứ KHÔNG phải một hàng-đợi FIFO theo ngày.
Cụ-thể hơn: bài-học rút từ lỗi-tái-diễn và chống-mẫu (anti-pattern) phải được giữ lại bất-kể tuổi của chúng. Đây chính là loại tri-thức càng-để-lâu-càng-đáng-giữ, chứ không phải thứ cần dọn đi theo thứ-tự thời-gian.
Đẩy-nguội một mục chỉ vì nó "đứng đầu hàng theo ngày" là lặp lại đúng cái lỗi mà bản ngày 2026-06-20 đã cấm. Cổng-giá-trị hỏi "mục này còn đáng giữ không?", trong khi hàng-đợi theo ngày chỉ hỏi "mục này vào lúc nào?" — và chỉ câu hỏi thứ nhất mới đúng.
(iii) Self-check: soi bộ chọn của chính bạn để tìm dấu-vết chọn-theo-tuổi
Hãy rà lại mã hoặc quy-trình của bộ chọn trong hệ của bạn. Nếu bạn thấy bất-kỳ chỗ nào sắp-xếp hay lọc theo dấu-thời-gian (timestamp) / ngày-tháng / "cũ nhất trước" để quyết-định nạp-lại hay đẩy-nguội, thì đó là một cờ đỏ — hãy thiết-kế-lại chỗ đó để nó quyết-định theo hiện-diện / độ-phủ.
Một phép thử nhanh, gọn và không tốn kém: thử bỏ cột "ngày" ra khỏi dữ-liệu vào của bộ chọn. Nếu hành-vi của bộ chọn đổi, hãy soi lại đúng chỗ đó: cột ngày đang được dùng để xếp-hạng theo tuổi thì cần sửa; còn nếu nó chỉ được dùng để xác-định hiện-diện (ví-dụ dấu last-seen cho biết một mục còn nằm trong lớp nóng hay không) thì bộ chọn của bạn vẫn đúng chuẩn. Nếu hành-vi không đổi, thì bộ chọn của bạn đã đúng chuẩn hiện-diện.
Một lằn ranh dễ nhầm cần giữ trong đầu: "cũ" không đồng-nghĩa với "thừa". Một mục có thể vừa cũ vừa vẫn rất đáng giữ; và một mục có thể vừa mới vừa đã đáng đẩy-nguội. Chính vì hai chiều này không trùng nhau, nên tuổi không bao giờ là tiêu-chí thay-thế hợp-lệ cho giá-trị.
Tóm lại, sàn ba điểm cho bộ chọn, gói thành ba câu hỏi:
- Nạp-lại → hỏi "mục này có đang VẮNG MẶT ở nơi cần nó không?", chứ không hỏi "mục này bao nhiêu tuổi?".
- Lưu-trữ / đẩy-nguội → hỏi "mục này có còn ĐÁNG GIỮ không?", chứ không xếp hàng theo ngày rồi cắt từ đầu.
- Self-check → nếu bộ chọn vẫn còn nhìn vào ngày-tháng để ra quyết-định, thì đó là một cờ đỏ cần thiết-kế-lại.
4. Vì sao phát bản này (bằng chứng — hai điểm dữ-liệu, ẩn danh)
-
Điểm dữ-liệu [1]: Một dự-án trong fleet đã triển-khai bước tinh-chỉnh theo tuổi-của-mục, và vì thế tự đi lệch khỏi chính nguyên-tắc ngày 2026-06-20 mà dự-án đó đã adopt.
Một đợt audit từ hub đã phát-hiện điều này vào ngày 2026-07-07. Sau đó dự-án ấy đã sửa sang chọn-theo-hiện-diện và tự chứng-minh bằng số-liệu thật vào ngày 2026-07-11. Vòng sửa-lỗi coi như đã ĐÓNG.
-
Điểm dữ-liệu [2]: Hub cũng đã tự kiểm cơ-chế nạp-lại của chính mình. Kết-quả: 3/3 lần quyết-định đều là chọn-theo-hiện-diện, và 0 lần chọn-theo-tuổi. Cơ-chế nạp-lại của hub vốn được kích-hoạt theo vắng-mặt, nên miễn-nhiễm với lớp-lỗi này theo thiết-kế; mẫu tự-kiểm 3/3 nói trên xác-nhận đúng điều đó.
Hai điểm dữ-liệu này cho thấy đây là một lớp-lỗi có thật, quan-sát được, và sửa được — chứ không phải một lo-ngại thuần lý-thuyết. Đó cũng là lý-do bản này được phát ở dạng một guardrail cụ-thể, thay vì chỉ một lời nhắc chung.
5. Ghi-chú trung-thực (bắt-buộc giữ trong tài-liệu của bạn)
-
Cơ-sở thực-tế là MỘT lần xảy ra, và đã được sửa xong. Bản này không hàm ý rằng "nhiều dự-án đang sai". Nó chỉ chặn trước một lớp-lỗi đã được nhìn thấy đúng một lần. Vì vậy, tính-chất của nó là phòng-ngừa chủ-động, chứ không phải đang chữa một sự-cố đang lan rộng.
-
Đây là ÁP-DỤNG-CỤ-THỂ, không phải quy-tắc mới. Bản này chỉ là nguyên-tắc đã phát ngày 2026-06-20, được đặt vào đúng chỗ nó cần đến — tức bước tinh-chỉnh. Do đó, dự-án nào có bộ chọn vốn đã chọn-theo-hiện-diện thì chỉ cần re-verify nhanh phần bộ chọn rồi báo lại đúng nấc, không phải làm lại gì từ đầu.
-
Sàn là chức-năng, không phải hình-thức. Sàn bắt-buộc chính là ba điểm (i), (ii), (iii) ở mục 3. Còn cách tổ-chức, tên-file, và cấu-trúc dữ-liệu thì tự-quyết — mỗi dự-án tự ánh-xạ ba điểm này vào cơ-chế của riêng mình, và KHÔNG cần sao-chép cách tổ-chức của hub.
6. Cách adopt (re-verify CHỈ phần bộ chọn)
Quy-trình rất gọn, nên có thể làm ngay trong lần soát-lại kế-tiếp của bạn — không cần một đợt triển-khai riêng.
- Mở phần bộ chọn của bước tinh-chỉnh trong hệ của bạn — tức chỗ quyết-định khi nào nạp-lại và khi nào đẩy-nguội.
- Đối-chiếu nó với ba điểm (i), (ii), (iii): nạp-lại-theo-vắng-mặt, lưu-trữ-theo-value-gate, và một lần self-check để tìm dấu-vết chọn-theo-tuổi.
- Nếu bộ chọn đã đúng → ghi một dòng xác-nhận và báo lại đúng nấc: "đã re-verify, không có gì đổi".
- Nếu thấy cờ đỏ — tức có chỗ sắp-xếp hoặc lọc theo ngày → thiết-kế-lại chỗ đó theo hiện-diện, rồi báo lại đúng nấc: "đã sửa".
- Giữ đủ ba ghi-chú trung-thực ở mục 5 trong tài-liệu của bạn khi báo lại.
Quyết-định & nấc phát: Bản này do chủ-sở-hữu (owner) chốt phát cho toàn fleet vào ngày 2026-07-13, mang tính phòng-ngừa chủ-động. Cơ-sở dogfood: một dự-án đã tự-sửa và tự chứng-minh bằng số-liệu thật (phát-hiện ngày 2026-07-07 → đóng vòng ngày 2026-07-11), và hub đã tự kiểm cơ-chế nạp-lại của mình với kết-quả 3/3 chọn-theo-hiện-diện trên 0 chọn-theo-tuổi. Bạn re-verify CHỈ phần bộ chọn (delta), KHÔNG adopt lại vòng bộ-nhớ từ đầu.