KB-7E6A rev 2

OR Kiểu C Doctrine Amendment Note

5 min read Revision 2
lsl-01v0.4patch-notecouncil-pendingdrafts179

OR Kiểu C Doctrine Amendment Note

Đề xuất amend operating-rules-law-drafting.md v1.1 → v1.2. Phạm vi: thêm Kiểu C cho luật sửa luật dạng doctrine/crosswalk. Trạng thái: DỰ THẢO để Council review; chỉ là amendment note, không amend trực tiếp Đ32, Đ38, Đ24, Đ33.

Mục tiêu

Operating Rules v1.1 đã có khung amend luật có sẵn và phân biệt article_number với registry code. Tuy nhiên các luật kiểu LSL-01 cho thấy cần thêm một loại amend mới: không rewrite luật gốc, không chốt schema, nhưng tạo doctrine/crosswalk có authority giới hạn để điều hòa nhiều luật đang có. Note này đề xuất thêm "Kiểu C" vào OR v1.2.

Kiểu C là luật sửa luật ở cấp doctrine. Nó dùng khi hệ thống cần xác lập nguyên tắc trung tâm, supremacy clause, mapping thuật ngữ và ranh giới áp dụng giữa nhiều luật, nhưng chưa đủ điều kiện hoặc chưa nên viết schema/runtime detail. Kiểu C không thay thế Kiểu A/B; nó là công cụ hẹp để tránh sửa lan man nhiều luật chỉ vì một doctrine chung cần được chốt trước pilot.

Khi nào dùng Kiểu C

Dùng Kiểu C khi có đủ các điều kiện sau:

  1. Vấn đề là mâu thuẫn hoặc thiếu nhất quán doctrine giữa nhiều luật, không phải lỗi nhỏ trong một điều khoản đơn lẻ.
  2. Luật mới cần giữ luật cũ còn hiệu lực, chỉ override phần được liệt kê rõ.
  3. Thiết kế runtime, schema hoặc DOT chưa đủ chín để ban hành.
  4. Có nhu cầu pilot trước khi production.
  5. Nếu sửa trực tiếp từng luật cũ ngay lập tức sẽ làm tăng rủi ro conflict, version churn hoặc hardening sai lớp.

Không dùng Kiểu C khi chỉ cần amend một luật duy nhất, sửa typo, cập nhật lifecycle đã rõ, hoặc ban hành bảng/cột/trigger/runtime cụ thể. Các trường hợp đó vẫn đi theo quy trình amend hiện hành.

Công thức Kiểu C

Một luật Kiểu C nên có đúng 7 mục lõi:

  1. Mục tiêu: nêu doctrine cần chốt và lỗi hệ thống cần xử lý.
  2. Phạm vi: liệt kê phần được override, phần không đụng, và mức authority.
  3. Supremacy clause: ghi rõ luật Kiểu C thắng ở đâu, thua hoặc amend Hiến pháp/luật nền tảng trong phạm vi nào, và không tự mở rộng override ngoài phạm vi đã nêu.
  4. Doctrine: phát biểu nguyên tắc trung tâm bằng ngôn ngữ đủ ổn định để áp dụng liên luật.
  5. Mapping luật cũ: crosswalk các luật bị ảnh hưởng, chỉ rõ phần giữ nguyên, phần bị override hoặc cần pilot.
  6. Ranh giới không làm: cấm chốt schema, SQL, bảng, cột, tên DOT, runtime path, UI hoặc gateway nếu chưa qua thiết kế hợp pháp.
  7. Pilot + NT14 gate: mô tả pilot bắt buộc, điều kiện PASS, và gate trước khi nâng thành production/runtime authority.

NT14 cho Kiểu C

Kiểu C được miễn schema/runtime detail ở bản doctrine, nhưng không được miễn NT14. Nghĩa vụ NT14 của Kiểu C nằm ở ba điểm: mô phỏng được hành trình doctrine → pilot → approval; ghi rõ những gì chưa được phép chạy production; và bắt buộc có pilot trước các phase hardening như P5/P6.

Kiểu C không được bật production runtime khi chưa có write path hợp pháp. Nếu doctrine yêu cầu thay đổi dữ liệu, relation, label, publication hoặc checker, luật Kiểu C chỉ được nêu yêu cầu và ranh giới; phần thực thi phải đi qua luật chuyên trách, design note hoặc pilot được phê duyệt. Điều này bảo vệ NT14 mà không ép luật doctrine phải giả vờ có schema khi chưa có.

Code convention

Đề xuất chọn LSL-NN làm convention duy nhất cho luật Kiểu C.

Lý do: LSL-NN ngắn, trực tiếp, và nói đúng bản chất "luật sửa luật" ở cấp doctrine/crosswalk. Nó tách khỏi article_number của các điều luật chính, tránh hiểu nhầm rằng đây là một Điều mới trong Hiến pháp hoặc luật nền tảng. Đồng thời LSL-NN đủ rộng cho các luật sửa luật sau này mà không buộc tên phải gắn với một domain cụ thể.

Quy ước áp dụng:

LSL-01, LSL-02, ... là registry code cho luật sửa luật Kiểu C. article_number của luật gốc giữ nguyên theo OR v1.1; LSL-NN chỉ là mã văn bản sửa luật/crosswalk, không thay số điều của luật bị ảnh hưởng.

Quan hệ với luật cũ

Kiểu C không làm luật cũ mất hiệu lực toàn phần. Mọi luật cũ vẫn áp dụng, trừ phần bị override trực tiếp và được liệt kê trong supremacy clause hoặc mapping luật cũ. Nếu có mâu thuẫn ngoài phạm vi liệt kê, mặc định không tự mở rộng override.

Với Đ24, Đ32, Đ33 và Đ38, amendment note này chỉ tạo crosswalk doctrine. Nó không amend nội dung các luật đó. Ví dụ: label vẫn thuộc Đ24; quorum vẫn theo Đ32; hạ tầng dữ liệu vẫn theo Đ33; publication/version/retire vẫn theo Đ38. Kiểu C có thể chỉ ra cách luật mới phải tương thích các luật này, nhưng không được tự viết lại cơ chế của chúng trong cùng văn bản.

Disagreement / Alternative

Không có disagreement trong note này. Đề xuất Kiểu C chỉ nhằm bổ sung một mẫu soạn luật hẹp cho OR v1.2, không dùng để bypass amend chính thức, pilot, quorum hoặc production gate.