Files
solution-erp/docs/governance/ritual-labels.md
pqhuy1987 a3776eaac4 [CLAUDE] Docs: thi hanh tron plan adap dot-2 (P2/P3/P5/P7i + W4 + khoan 5/6)
Chu du an chot 6 cau @S181; so quyet-dinh o
runs/2026-08-07-S180-adap-upgrade-pack-phased/owner-decisions-07-08-2026-dot-2.md

- P2=PB-2 sua luat da ratify du 2 SITE (tiep.md §3-bis canonical + pause.md
  b6 chi TRO). Cau cam san-3 GIU NGUYEN, chi them ranh REQUEST ⟂ TASK.
- W4: docs/governance/so-yeu-cau-chu-du-an.md 3 khoi, ma YC/ST/PN vinh vien.
  Config: tiep_reload.sources 8->9 + owner_request_verbatim_char_cap.
  nhip-no-probe ve-5 "so-yc treo/nhac2+", fault-inject 5/5, phan biet
  chua-co-du-lieu ⟂ treo 0. Ky luat ghi-NGAY + A5 cam CLAUDE.md + rules.md §6.0.
- P5: ACTIVE-MARKS §LT3 luat tu-tri 3 bac + mark RC-...-07-08-2026-20-57-48.
- P7(i): docs/governance/expensive-runs-view.md derive-view 5 cot.
- P3=B: niem phong _sealed_P3B_S181 (forward-only). Phep thu A10 da co rang
  (fault-inject: class tu che => exit 2; class hop le => exit 0).
- Khoan 6: scripts/naming-baseline.json = NGUON, script chi doc.
  Fault-inject 6/6 hai chieu. 7/7 baseline xanh. 0 byte non-ASCII.
- Khoan 5: broadcasts/_index.md +cot "ap" cuoi hang, backfill 42/4/23 = 69.
- W3 acceptance 6/6 dong + va defect con-tro bang-19-cua (view-stale-status).

Con treo: P8/W4b, W5, P7 ve (ii), VK-5, P3 hoi-to hay forward-only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 21:25:50 +07:00

13 KiB

Nhãn lệch nghi thức + vòng hỏi ngược

Nguồn sàn: broadcasts/inbox/ai_infra/2026-08-04-Governance-upgrade-pack-phased-phu-luc-spec-pitfall.md §GĐ-3 khoản (i)(ii)(iii)(vii) + câu kết :208. Áp @S180 wave W3. Bóc khoản: lane C sub-n3-lane-c-gd34.md §E.1 · §E.2 · §F (C3-01 · C3-02 · C3-03 · C3-09 · C3-10). Phạm vi văn bản này: cách gọi tên một bước nghi thức bị lệch, và cách đóng vòng hỏi ngược. Văn bản này KHÔNG định nghĩa cổng chặn hay thang mã thoát — đó là C3-04 + khoản (v), thuộc wave W3b, đang chờ owner (P1). Mọi máy nhắc ở đây INFORM, exit 0.


§0 — Vì sao cần nhãn, và vì sao AS-signature không thay được

SE đã có taxonomy AS-signature trong docs/governance/error-ledger.md. Nó là chữ ký HÀNH ĐỘNGđã làm sai cái gì. Bốn nhãn dưới đây là nhãn Ý ĐỊNHvì sao bước đó không đủ. Hai trục không thay thế nhau; ánh xạ chỉ một phần (quênE-011/AS-15 "nghi thức chạy tắt").

⇒ Đây là việc mới, không phải đổi tên cái cũ. Ai định "tái dụng AS cho đủ 4 nhãn" là đang gộp hai trục khác nhau.

🔴 Ranh của mọi máy nhắc trong văn bản này (hub :208): máy đo sự hiện diện và khuôn dạng, KHÔNG đo CHẤT. Một bước có đủ vật mốc mà nội dung rỗng thì máy vẫn im. Nhãn do người đặt; máy chỉ thu thập bốn vị từ để người không phải đoán.


§1 — Ba khái niệm nền (định nghĩa một lần, dùng suốt)

Tên Nghĩa Vị từ đĩa
VẬT MỐC thứ hạ cánh xuống đĩa khi bước chạy đủ: một tệp, một thư mục, hoặc một dòng in có khuôn cố định trong vật chứng của lượt Test-Path <đường dẫn> · hoặc grep -c '<khuôn dòng>' <vật chứng>
DÒNG KHAI câu trong vật chứng của lượt, nói rõ bước nào bị bỏ / rút gọn và vì sao grep -n '<mã bước>' <vật chứng>
ĐIỀU KIỆN CHO PHÉP mệnh đề chạy lại được trong chính tệp lệnh của cửa, cho phép bỏ bước đó lệnh do tệp lệnh nêu; chạy lại ra đúng/sai

🔴 C3-09 — guard vắng tệp PHẢI là vị từ máy. Kiểm tồn tại rồi bỏ qua và khai. CẤM dùng mệnh đề "cái đó chưa làm": mệnh đề đó sai ngay giây tệp kia hạ cánh. Ba neo đã có sẵn trên đĩa, khai tương đương, không dựng lại:

  • scripts/distill-shard-probe.ps1:23"khong thay memory-budget.json -> probe-loi (khong chan)"
  • scripts/mfe-eval.ps1:45
  • scripts/memory-archive-gate.ps1:40-41

§2 — BỐN NHÃN, mỗi nhãn một vị từ kiểm được trên đĩa

Bốn nhãn chỉ áp cho hàng đã bị nêu là thiếu hoặc lệch. Bước chạy TRỌN không sinh hàng nào — nó không có nhãn, và đó là trạng thái thứ năm nằm ngoài bảng.

Nhãn Vật mốc Dòng khai Điều kiện cho phép, chạy lại Sức nặng
quên VẮNG 0 không xét Vá, rồi nhắc
tự ý bỏ VẮNG chạy lại ra SAI — hoặc đặc tả không nêu điều kiện chạy lại được 🔴 Nặng nhất. Vá · ghi error-ledger.md · theo dõi tái phạm
suy giảm hợp lệ VẮNG hoặc rút gọn , kèm con trỏ file:line tới đặc tả chạy lại ra ĐÚNG Không tính lỗi
bị chặn VẮNG , kèm con trỏ tới nỗ lực gỡ (lệnh đã chạy + output nhận được) không xét — điều kiện nằm ngoài kho Không tính lỗi; nhưng nỗ lực gỡ phải có vết, không được là lời kể

2.1 — Vị từ chạy được, từng nhãn

Bốn lệnh dưới đây là bốn vị từ, chạy trên bash. $M = đường dẫn vật mốc · $V = vật chứng của lượt · $B = mã bước.

# (1) vat moc co mat khong  -> 0 = VANG
test -e "$M" && echo 1 || echo 0
# (2) co dong khai cho buoc $B khong -> 0 = KHONG KHAI
grep -c -- "$B" "$V"
# (3) dong khai co con tro file:line toi dac ta khong -> 0 = KHONG CON TRO
grep -E -c -- "$B.*[A-Za-z0-9_./-]+\.(md|ps1|py|js|json):[0-9]+" "$V"
# (4) dieu kien cho phep: chay lai chinh lenh ma dac ta neu -> in dung/sai
#     KHONG CO lenh chay lai duoc trong dac ta => ket qua = "khong-xac-dinh"

Bảng quyết định — đọc (1)(2)(3)(4) theo đúng thứ tự, dừng ở dòng khớp đầu tiên:

(1) vật mốc (2) khai (3) con trỏ (4) điều kiện ⇒ Nhãn
1 TRỌN — không sinh hàng
0 0 quên
0 ≥1 0 tự ý bỏ
0 ≥1 ≥1 sai hoặc không-xác-định tự ý bỏ
0 ≥1 ≥1 đúng suy giảm hợp lệ
0 ≥1 ≥1 (trỏ nỗ lực gỡ, không phải đặc tả) không xét bị chặn

2.2 — 🔴 Hai chỗ luật này CỐ Ý khắt khe hơn "có khai là xong"

(a) Khai không tự miễn trừ. Hub phu-luc:189 viết tự ý bỏ gồm cả ca "khai là 'bỏ êm' trong khi điều kiện cho phép bỏ đánh giá lại trên đĩa là sai". Nghĩa là viết một dòng khai KHÔNG đủ để sạch — dòng khai phải sống sót phép chạy lại. Nếu luật được đọc thành "bỏ qua CÓ KHAI thì không phải lỗi" thì bất kỳ ai cũng tự tha được bằng một câu, và cả bộ nhãn thành đồ trang trí.

(b) Mặc định khi không đo được là nhãn NẶNG, không phải nhãn nhẹ. Cột (4) ra không-xác-định (đặc tả không nêu điều kiện chạy lại được) ⇒ xếp tự ý bỏ, không xếp suy giảm hợp lệ. Lý do: nếu chỗ mù mặc định về nhãn vô tội thì cách rẻ nhất để sạch là viết đặc tả mơ hồ — thưởng cho đúng thứ cần phạt.

🔸 Khai thiếu, không giấu: vế "đánh giá lại điều kiện trên đĩa" của nhãn tự ý bỏ hiện CHƯA CÓ MÁY làm tự động. Cột (4) hôm nay là thao tác người: mở tệp lệnh của cửa, tìm mệnh đề điều kiện, chạy lại. Máy chỉ lo (1)(2)(3). Đây là giới hạn đã biết, không phải chỗ chưa nghĩ tới.


§3 — VÒNG HỎI NGƯỢC: khuôn 5 cột + luật đóng

Hub phu-luc:191: vai kiểm trả về một bảng; người điều phối định đoạt từng dòng; không dòng nào để trống thì mới đóng được.

3.1 — Khuôn (chép nguyên, không đổi tên cột)

Bước thiếu hoặc lệch Đặc tả nói gì Bằng chứng trên đĩa Nhãn Câu hỏi đích danh
<cửa> bước <mã> <file>:<line> + trích ≤1 câu lệnh đã chạy + kết quả (1)(2)(3)(4) một trong 4 nhãn §2 1 câu, hỏi người điều phối, có thể trả lời bằng chạy bổ sung / khai suy giảm / khai không-thể-nữa

3.2 — Luật đóng (ba điều kiện, thiếu một là chưa đóng)

  1. Không ô nào trống. Kể cả cột nhãn: không phân loại được thì ghi chưa-phân-loại kèm lý do, không để trống — ô trống đọc thành đã xét và sạch.
  2. Mỗi hàng có một định đoạt của người điều phối, thuộc đúng ba giá trị: chạy-bổ-sung · khai-suy-giảm · khai-không-thể-nữa.
  3. Bảng đi kèm MẪU SỐ: N hàng / M bước được soi. M phải là số bước thật sự được duyệt, không phải số bước tồn tại.

3.3 — 🔴 CẤM thay bảng bằng một con số tổng

Không được đóng vòng bằng câu "đã xử N finding". Con số tổng đóng vai đã-phủ-hết trong khi mẫu số lệch.

Ca thật, trong kho này: S119 — lead tuyên "vá 19 finding" trong khi thật 23. Bài học đã ghi: .claude/auto-memory/feedback_meta_count_selfcoverage_blindspot.md"bảng disposition TỪNG DÒNG thay số tổng".

🔸 Hai nguồn, một phát hiện: luật đóng của hub (không dòng nào trống) và bài học S119 của kho này (từng dòng, không dùng số tổng) là cùng một kết luận tìm ra ở hai nơi độc lập. Ghi lại để lần sau không ai tưởng đây là luật ngoại nhập.

3.4 — 🔴 C3-02: vai kiểm CHỈ ĐỐI CHIẾU, KHÔNG PHÁN ĐẶC TẢ

  • Nguồn đối chiếu của cột Đặc tả nói gìchính tệp lệnh của cửa đó (.claude/commands/<cửa>.md), không phải trí nhớ, không phải doc phái sinh.
  • Đặc tả tự mâu thuẫn ⇒ ghi nhãn đặc-tả-xung-đột vào cột Nhãn, nêu cả hai con trỏ file:line, và trả về người điều phối quyết. CẤM tự phán đặc tả nào đúng.
  • Tiền lệ đúng luật này đã có: .claude/auto-memory/feedback_edit_must_predate_review.md"spec tự-mâu-thuẫn → fix-mới thắng footer-cũ + khai trong report".

🔸 đặc-tả-xung-đột ở đây là giá trị của cột Nhãn, dùng để trả việc về người. Nó không phải mã thoát — thang mã thoát 4 trạng thái thuộc W3b, chưa chốt.


§4 — AI ghi ở đâu, KHÔNG đẻ vai mới

Bảng §3 do cặp vai đang chạy sẵn sinh ra, không thêm vai nào:

Vai Trục Cửa spawn
lead-gap-auditor hàng thiếu (bước không có vật mốc) session-start + session-end, vô điều kiện
lead-stale-auditor hàng lệch (có vật mốc nhưng trỏ trạng thái cũ) như trên

Cả hai đã spawn ở cả hai đầu phiên (C3-06 — hình B @S149), tức khoản kẹp hai đầu của hub đã thoả ở vế vai kiểm. Việc W3 thêm là khuôn trả về, không phải cơ chế mới.

🔸 Hai vai này INFORM-only, propose-only; lead là single-writer (VERIFY → APPEND). Bảng vòng hỏi ngược không tự hạ cánh vào sổ — nó là đề xuất.


§5 — TIỀN KIỂM ĐẦU CỬA (C3-05)

Hub phu-luc:194: tiền kiểm chi phí bằng không, chạy ở đầu mọi cửa, chỉ đọc, soi cửa đã đóng gần nhất — chọn cửa bằng dấu thời gian ghi TRONG tệp, không tin thời gian sửa tệp của hệ điều hành.

  • Máy: scripts/tien-kiem-cua.ps1 — chỉ đọc, luôn exit 0, in một dòng TIEN-KIEM:. Lỗi bất kỳ ⇒ in tien-kiem loi (khong chan) rồi đi tiếp.
  • Vì sao không tin mtime: hook wal: chạm tệp ở biên mỗi lượt; git checkout viết lại mtime hàng loạt. mtime trả lời "tệp bị chạm lúc nào", không trả lời "cửa đóng lúc nào". Dấu thời gian trong tệp thì không bị hai thứ đó làm trôi.
  • Nguồn dấu thời gian trong tệp (đọc, không ghi): .claude/WAL.md dòng updated: · .claude/governance/.session-counter.json khoá last_ticked_at + last_ticked_session + last_ticked_head.
  • Độ phủ + trần chi phí: 🔴 BẢNG 19 CỬA LIỆT TỪNG DÒNG SỐNG Ở .claude/workflows/runs/2026-08-07-S180-adap-upgrade-pack-phased/sub-w3-nghi-thuc.md §1.2 (19 dòng đánh số, 0 cửa treo). adap-upgrade-pack-tracking.md chỉ ghi lệnh dựng bảng, KHÔNG chứa bảng — đi theo nó là lạc. Số cửa và số phủ KHÔNG chép ở đây (B1) — đo lại bằng ls -1 .claude/commands/*.md | wc -l.

🔴 C3-08 — trần chi phí cho cửa hay dùng: KHÔNG ĐO ĐƯỢC. Kho này có doctrine "đo BYTE, CẤM quy token" (S158) nên không in được số token cho một cửa. Adopt ở dạng hướng dẫn + nghĩa vụ khai: ai thêm bước vào /pause · /tiep phải đo wall-clock trước (luật đã có sẵn: .claude/commands/check-email.md:41) và khai con số đo được. Đây là khai báo, không phải thuốc — đúng chữ hub :185: "Không có dụng cụ đo thì khai KHÔNG ĐO ĐƯỢC, đừng in số bịa."


§6 — Ngoài phạm vi văn bản này

Khoản Vì sao ngoài
C3-04 cổng chặn bằng mã lỗi wave W3b, chờ owner chốt (P1). Mọi máy W3 giữ exit 0 / INFORM
khoản (v) thang mã thoát 4 trạng thái hình dạng đổi theo phương án P1 ⇒ làm trước là làm lại (lane C §E.3)
khoản (vi) luật tự trị ba bậc HẾT ngoài-phạm-vi @S181 — anh gật P5 "nguyên văn". Nhà NGUỒN = .claude/governance/ACTIVE-MARKS.md §LT3 (mark RC-pqhuy1987-07-08-2026-20-57-48). Văn bản này + ST-002 của W4 TRỎ về đó, cấm chép (chống nguồn-đôi C3-07ST-002)