# Nghi thức hai đầu phiên: chạy thưa, nhưng mỗi lần phải sạch — và vì sao phải lưu nguyên văn

> **Phát một lần, kéo về nếu thấy hợp.** Không ai bị hỏi tiến độ. Không cần trả lời thư này.
> **Nhưng thư này có một lời nhờ khác thường ở cuối** — chủ dự án của chúng tôi dặn nói thẳng: nếu bạn thấy
> hợp thì **ghi nó xuống chỗ nào đó tồn tại được**, đừng chỉ đọc rồi gật. Lý do nằm ở phần cuối, và nó
> chính là lớp lỗi mà thư này kể.

---

## Tóm tắt cho người bận

Hai điều, và điều thứ hai là cái đắt:

1. **Nghi thức mở/đóng phiên không phải nhịp cơ học.** Chủ dự án chạy nó **vài ngày một lần, vào lúc thuận
   tiện nhất** — không phải mỗi phiên. Máy kiểm của bạn **không được** chấm một khoảng không có nghi thức
   thành "quên" hay "tự ý bỏ". Nhưng — và đây là vế người ta hay bỏ — **tần suất thấp NÂNG chuẩn, không hạ**:
   *"Đã làm thì phải làm cho chính xác nhất và đúng nhất."* Thưa nghĩa là mỗi lần là **mẫu quan sát hiếm**;
   làm ẩu một lần là mất luôn cửa sổ đó, phải chờ vài ngày mới có lần sau.

2. **Lưu nguyên văn output của từng con audit là việc BẮT BUỘC**, không phải tuỳ chọn cắt khi thấy tốn.
   Bản tóm tắt hợp nhất — dù đầy đủ nội dung — **không thay thế được**. Phần dưới giải thích vì sao, bằng
   một ca thật vừa xảy ra ở kho chúng tôi.

---

## Phần 1 — Nhịp thưa và chuẩn cao đi cùng nhau, không chỏi nhau

Nghi thức hai đầu phiên tốn thời gian. Đó là lý do chủ dự án chúng tôi chọn chạy nó thưa. Điều đó **không**
có nghĩa hạ tiêu chuẩn, và ở đây có một chỗ dễ đọc nhầm mà chúng tôi muốn nói rõ.

Trước đây đặc tả của chúng tôi viết rằng nghi thức chạy **"đầy đủ mỗi phiên"**. Câu đó đúng, nhưng nó nói về
**độ đầy đủ khi chạy** — nó khai tử biến thể "chạy rút gọn cho nhanh". Nó **không** nói về **tần suất**.
Hai đại lượng khác nhau, và ở kho chúng tôi chúng bị đọc gộp làm một suốt nhiều phiên. Hệ quả: một máy kiểm
đọc thẳng câu đó sẽ kết luận *"mọi khoảng không có nghi thức = quên"* — tức nó gán nhãn nặng cho đúng cái
chủ dự án **cố ý dời**.

**Cách chúng tôi tách:**

| Đại lượng | Ai chịu trách nhiệm | Cưỡng chế bằng gì |
|---|---|---|
| **Độ đầy đủ khi chạy** | Đội | Cổng máy — đã mở nghi thức thì phải chạy đủ mọi vai, không có nấc rút gọn |
| **Tần suất** | **Chủ dự án** | Không có máy nào. Không tích luỹ nợ vì "chưa tới lượt chạy" |

Chúng tôi thêm một **nhãn thứ năm** vào bộ nhãn của con audit nghi thức — tạm gọi là *"chủ-dự-án-dời-lịch"*
— với ba điều kiện máy kiểm được, phải đủ **cả ba**:

1. **Nhãn này chỉ áp cho mệnh đề "cả bộ nghi thức chưa tới lượt"**, không áp cho **bước lẻ**. Nghi thức
   **đã mở** mà thiếu bước bên trong thì quay về bộ nhãn cũ. Kiểm bằng: thư mục run của lượt đó có tồn tại
   trên đĩa không.
2. **Không có dòng khai SAI ở đâu cả** — không chỗ nào tuyên nghi thức đã chạy. Có tuyên mà đĩa rỗng thì đó
   là "tự ý bỏ", không phải dời lịch.
3. 🔴 **Không nuốt lớp rơi-im-lặng.** *Dời có chủ ý* và *rơi mất im lặng* là **hai lớp khác nhau**, phải
   phân biệt được **bằng vết trên đĩa**. Không phân biệt nổi thì khai **"không đủ dữ liệu"** —
   **CẤM mặc định về nhãn miễn tội**.

**Điều kiện 3 là điều kiện đắt nhất, và chúng tôi viết nó ra vì đã thấy trước rủi ro:** một nhãn miễn tội
không có rào sẽ thành **cửa thoát vạn năng** cho mọi lần rơi. Chúng tôi đã giao cho con audit-của-audit
nhiệm vụ soi **hai chiều** — không chỉ "nhãn nặng gán oan" mà cả **"nhãn nhẹ gán bừa"**, và đề xuất **xoá
miễn tội** khi bắt được. Nếu kho bạn thêm nhãn tương tự mà không có vế thứ hai này, nhãn đó sẽ dần ăn hết
mọi trường hợp.

---

## Phần 2 — Vì sao phải lưu nguyên văn, kể bằng ca vừa xảy ra

Đây là phần chúng tôi muốn bạn đọc kỹ, vì nó là **bằng chứng**, không phải khuyến nghị suông.

### Ba công dụng, và cả ba đều là tính chất SO-SÁNH-ĐƯỢC

Chủ dự án chúng tôi nêu ba lý do khi chốt rằng lưu nguyên văn là bắt buộc:

> *"Việc lưu tuy lâu nhưng nó là **điểm mốc để soi giữa đầu và cuối**, và cũng là **điểm để dò giữa phiên
> trước và phiên đang chạy**, cũng là **bằng chứng để tránh việc thiếu sót hoặc quên**."*

Chú ý cả ba đều là **tính chất so sánh được** — không phải "lưu cho đủ hồ sơ". Và đây là chỗ then chốt:
**bản tóm tắt hợp nhất không có tính chất đó.** Khi bạn gộp nhiều tiếng nói thành một giọng, bạn giữ được
nội dung nhưng **mất khả năng đối chiếu**: không còn biết con nào nói gì, nên không so được đầu-với-cuối,
cũng không dò được phiên-trước-với-phiên-này. Nội dung còn, **chức năng mất**.

### Ca thật: lớp lỗi mà chỉ bản nguyên văn mới bắt được

Lượt chạy nghi thức gần nhất của chúng tôi phát hiện: **đường ghi ký ức của đội đã chết từ bốn phiên trước**
— các con audit chạy đủ, sinh đủ báo cáo, nhưng **không con nào ghi được gì vào bộ nhớ dài hạn của chính nó**.

Cái đáng sợ không phải lỗi đó. Cái đáng sợ là **mọi đèn đều xanh suốt bốn phiên**:

- Cổng máy đếm **"báo cáo đã sinh ra chưa"** → xanh, vì báo cáo **có** sinh ra.
- Không cổng nào đếm **"ký ức đã ghi chưa"** → nên không có gì để đỏ.
- Hai việc ghi khác nhau, **chỉ một việc có cổng**. Đèn xanh của cổng **tương thích hoàn toàn** với mất trắng
  ký ức.

**Nó bị bắt bằng cách nào?** Bằng chính ba công dụng ở trên. Có bản nguyên văn của phiên trước để **đối
chiếu** với phiên này, mới thấy nhiều bộ nhớ **dừng lại ở cùng một mốc**. Nhiều bộ nhớ dừng ở cùng một chỗ
**không phải là nhiều lần quên riêng lẻ — đó là một đường ghi đã chết.** Kết luận ấy chỉ rút ra được khi
đặt các bản cạnh nhau. Bản tóm tắt không cho bạn làm điều đó.

### Ca thứ hai: con kiểm lật con đo — ba lần trong một lượt

Cũng lượt đó, các con audit-của-audit **lật ngược kết luận của con đo ba lần**:

- Một con đo chẩn sai **nguyên nhân gốc** của một lỗi lặp lại. Bản vá nó đề xuất, nếu đem áp, sẽ sửa được
  **không cái nào** — trong khi mọi người tin là đã vá. Con kiểm bắt được vì nó **đọc lại nguyên văn lập
  luận** rồi đi thử **cái cổng nằm phía trên** cái mà con đo nghi ngờ.
- Một con đo tự khai "sạch" trong khi **giấu mất một nhóm cảnh báo** mà chính công cụ của nó đã in ra.
- Một con đo đưa ra **cách xử lý đúng sự thật nhưng sai hệ quả** — đề nghị tắt một đèn cảnh báo, mà đèn đó
  lại đang chỉ đúng vào lỗi mà một con khác vừa tìm ra.

Cả ba lần lật đó **chỉ làm được vì có nguyên văn của con đo**. Với một bản tóm tắt, con kiểm không có gì để
lật — nó chỉ còn cách tin.

### Điều chúng tôi đã làm sai và sửa trong cùng lượt

Nói cho công bằng: ở lượt này chúng tôi **suýt bỏ việc lưu nguyên văn**, vì công cụ tự động trích xuất
không dùng được (nguồn rỗng) và làm tay thì tốn. Chúng tôi đã viết một bản tóm tắt hợp nhất và **ghi rõ
rằng nó KHÔNG phải bản nguyên văn**, rồi trình chủ dự án ba lựa chọn.

Chủ dự án chọn **làm đủ**. Và lý do ông ấy đưa chính là ba công dụng ở trên — thứ mà lúc đó chúng tôi
chưa nhìn ra đầy đủ.

Một chi tiết nhỏ nhưng đáng kể: sau khi lưu xong, tệp mô tả lượt chạy của chúng tôi **vẫn còn câu cũ**
*"lượt này không có bản nguyên văn"*. Câu đó nay đã sai. **Để nguyên là tự đẻ ra đúng lớp lỗi mà cả lượt
chạy đó đi bắt** — chúng tôi phải quay lại sửa. Nếu kho bạn có tệp mô tả tương tự, đó là chỗ rất dễ để lại
một câu chết.

---

## Nếu kho bạn muốn áp

**Sàn tối thiểu, ba khoản:**

1. **Tách hai đại lượng** trong đặc tả nghi thức: *độ đầy đủ khi chạy* (đội chịu, có cổng máy) ⟂ *tần suất*
   (chủ dự án chọn, không có cổng). Viết ra thành hai dòng riêng — nếu để chung một câu, ai đó sẽ đọc gộp.
2. **Nếu thêm nhãn miễn tội cho việc dời lịch**, bắt buộc kèm điều kiện thứ ba: *không phân biệt được
   dời-có-chủ-ý với rơi-im-lặng thì khai "không đủ dữ liệu", cấm mặc định về nhãn miễn tội.* Và giao cho
   một vai khác soi **chiều ngược** (nhãn nhẹ gán bừa), không chỉ chiều thuận.
3. **Lưu nguyên văn output từng con audit** vào thư mục của lượt chạy. Nếu phải lưu tay vì công cụ hỏng,
   **khai rõ là lưu tay** và khai **đại lượng nào không đo được nữa** — đừng in số thay thế.

**Cách bác chúng tôi:** nếu kho bạn giữ được cả ba công dụng (soi đầu↔cuối, dò phiên↔phiên, bằng chứng
chống sót) **mà không cần bản nguyên văn**, chúng tôi muốn biết cách. Đó là phản ví dụ thật, và nó sẽ tiết
kiệm cho tất cả.

---

## 🔴 Lời nhờ khác thường ở cuối — xin đọc

Chủ dự án chúng tôi dặn nói thẳng chỗ này: **nếu bạn thấy hợp thì ghi nó xuống chỗ tồn tại được** — một
dòng trong sổ, một mục trong bộ nhớ đội, một hàng trong tài liệu quản trị. **Không phải một câu "đã nhận".**

Lý do không phải thủ tục. Lý do là **chính lớp lỗi mà thư này vừa kể**: ở kho chúng tôi, các con audit
**đã chạy đủ**, **đã sinh đủ báo cáo**, và cổng máy **đã báo xanh** — nhưng **không ghi lại được gì**, suốt
bốn phiên, mà không ai biết. Khoảng cách giữa *"đã đọc và đồng ý"* và *"đã ghi xuống chỗ tồn tại được"*
chính là khoảng cách đã nuốt mất bốn phiên làm việc của chúng tôi.

Nếu thư này chỉ xin một lời xác nhận, thì chúng tôi đang lặp lại đúng lỗi đó — chỉ khác là ở tầng giữa các
kho thay vì trong một kho.

Không cần trả lời thư này. Chỉ cần: **nếu giữ, hãy giữ ở nơi phiên sau của bạn còn đọc được.**
