Đ38 Mainline Cross-check Report
Đ38 Mainline Cross-check Report
Phiên: S180 | Ngày: 2026-04-26 | Agent: Opus 4.6 Verdict: PASS CÓ ĐIỀU KIỆN — 0 blocker, 0 patch C1/C2/C1A/LSL bắt buộc, cần bổ sung 3 interpretation notes vào HOW-TO-READ
1. Phạm vi đã đọc
| Tài liệu | Đọc | Ghi chú |
|---|---|---|
| HOW-TO-READ | ✅ Full | Vừa tạo trong phiên |
| LSL-01 v0.3 | ✅ Full | ~34K chars |
| LSL-01 v0.4 patch note | ✅ Full | ~12K chars |
| OR Kiểu C | ✅ Full | Đọc đầu phiên |
| C1A | ✅ Full | Soạn + patch 5 revisions trong phiên |
| C1 | ✅ Full | ~28K chars |
| C2 | ✅ Full | ~30K chars |
| L1 | ✅ Full | Verify trực tiếp: §3.2–§3.6, §4 nguyên tắc |
| L4 | ✅ Full | Verify trực tiếp: §4.2, §9.1 |
| L5 | ✅ Full | Verify trực tiếp: §5.2, §6.3, §7.1, §10 nguyên tắc |
| L2, L3 | Qua C2 + L4 | C2 tổng hợp L3 chi tiết. L4 reference L2 cho component birth. Đủ cho cross-check scope unit/publication. |
| Đ24 | ✅ Full | v1.3 |
| Đ33 | ✅ Full | v2.1 |
| Đ32 | Qua C1 §5.4 + L5 §7 + LSL-01 §10.2 | Đủ cho cross-check |
2. Kết quả 11 điểm check
CHECK-1: Document envelope cũ vs publication mới
| Tài liệu | Nội dung |
|---|---|
| C1 §4.1 | "Document envelope sở hữu một tập logical text units" |
| L1 §3.3 | "Document envelope sở hữu tập hợp text units" (cùng ngôn ngữ) |
| LSL-01 §7 | Document = publication object, KHÔNG chứa content inline |
| C1A §9.1 | "Publication chỉ chứa governance metadata + references" |
Verdict: KHÔNG BLOCKER. Publication membership trỏ tới unit_versions. Logical unit vẫn có structural identity / doc_code / canonical tree theo C1/L1/LSL-01, nhưng publication không chứa content inline. LSL-01 §12 mapping table cover: "document envelope chứa nội dung" → "publication tham chiếu unit_versions". C1/L1 viết trước LSL-01, C1A đã align.
Khuyến nghị: Interpretation note IN-1.
CHECK-2: Unit thuộc document vs label/publication membership
| Khái niệm | Cơ chế | Tài liệu |
|---|---|---|
| doc_code FK trên logical unit | Structural identity | C1 §4.1, C2 §4.2.2, L1 §3.3 |
Label doc=Đ43 |
Classification — pivot/phân loại | C1A §7, Đ24 entity_labels |
| Publication membership | Authority — unit version trong published_snapshot | C1A §9.4, C1 §4.9, CI-4 |
Verdict: NHẤT QUÁN. Ba khái niệm tách biệt. L1 §3.3 verify trực tiếp: doc_code = structural FK.
CHECK-3: section_type là metadata field/value, không phải label tự do
| Tài liệu | Nội dung |
|---|---|
| C1A §5.4, §6 | "controlled vocabulary field/value trên logical unit", "unit metadata, KHÔNG phải classification label" |
| C2 §4.2.2 | section_type trong logical unit identity metadata |
| C1 I13 | "section_type = FK config. Không free-form." |
Verdict: NHẤT QUÁN.
CHECK-4: Label layer tương thích Đ24, không registry song song
| Tài liệu | Nội dung |
|---|---|
| C1A §7 + CI-9 | Map classification labels vào Đ24 entity_labels, cấm registry song song |
| LSL-01 v0.4 P3 | Label phải tương thích Đ24 |
| C1, C2 | Dùng "FK config / controlled vocabulary" — tương thích tinh thần Đ24, nhưng không reference Đ24 trực tiếp (viết trước v0.4) |
Verdict: KHÔNG BLOCKER. C1/C2 có cụm "FK config / controlled vocabulary", nhưng P5 không được triển khai thành label registry song song. Phải map vào Đ24 taxonomy/entity_labels hoặc extension tương thích.
Khuyến nghị: Interpretation note IN-2.
CHECK-5: Canonical address bất biến
| Tài liệu | Nội dung |
|---|---|
| C1 I3 | Bất biến, gắn logical unit |
| L1 §3.4 | "Canonical address bất biến sau khi tạo" (verify trực tiếp) |
| LSL-01 §8.4 | Bất biến, split/merge = address mới + retire cũ |
| C1A CI-6 | Bất biến cho cùng logical_unit |
Verdict: NHẤT QUÁN. L1 verify trực tiếp khớp C1 và LSL-01.
CHECK-6: parent/sort_order là structural, không phải classification label
| Tài liệu | Nội dung |
|---|---|
| C1 I4 | Cây dọc tách graph ngang |
| L1 §3.5, §3.6 | Parent-child = cây cấu trúc, ref ngang = universal_edges. Không trộn. (verify trực tiếp) |
| C1A §7.1 | Ba lớp: identity / structural / classification tách biệt |
| LSL-01 §6.2 | Structural relation vs classification label |
Verdict: NHẤT QUÁN. L1 verify trực tiếp khớp.
CHECK-7: Enacted publication chỉ chứa enacted/current unit_versions
| Tài liệu | Nội dung |
|---|---|
| C1 I8 | Published snapshot chỉ enacted/current |
| L5 §6.3 | "Document enacted chỉ bao gồm tập units enacted/current" (verify trực tiếp) |
| C1A CI-5 | Enacted publication chỉ enacted/current |
| C2 M14 | Published snapshot membership không trỏ draft |
Verdict: NHẤT QUÁN. L5 verify trực tiếp khớp C1 và C1A.
CHECK-8: Vector chunk không gộp nhiều unit_versions
| Tài liệu | Nội dung |
|---|---|
| LSL-01 §9.1 | Canonical chunk trong đúng 1 unit_version |
| C1A CI-2 | Vector chunk nằm trong đúng 1 unit_version |
| C1A §10.6 | Aggregate retrieval cho phép nhưng không gọi là canonical chunk, không có authority |
Verdict: NHẤT QUÁN. Aggregate retrieval/context pack có thể gom nhiều chunks để đọc, nhưng authoritative vector/canonical chunk không được vượt quá 1 unit_version.
CHECK-9: Risk tier proposal không sửa Đ32
| Tài liệu | Nội dung |
|---|---|
| C1A §11.3 | "proposal — không sửa Đ32. Nếu Đ32 khác, Đ32 thắng." |
| L5 §7.1 | "Quorum tuân thủ Đ32 §4.2 hiện hành" (verify trực tiếp) |
| L5 §10.3 | "Mọi approval đi qua Đ32 APR pipeline" (verify trực tiếp) |
Verdict: NHẤT QUÁN. LSL-01/C1A chỉ đề xuất risk-tier routing. Đ32/APR authority vẫn thắng khi có mâu thuẫn. L5 verify trực tiếp khớp.
CHECK-10: Birth gate / write path chưa thiết kế production
| Tài liệu | Nội dung |
|---|---|
| LSL-01 §1 | "ghi PG production phải qua write path hợp pháp sau pilot" |
| L4 §10 | "Không viết trigger/function/DOT list cụ thể — Implementation thuộc design phase" (verify trực tiếp) |
| C1 §6 | Write path mô tả concept |
| C1A | Design note tiền-schema |
Verdict: NHẤT QUÁN. P5 chỉ là draft schema/write-path hooks, không production write path, không migration thật. L4 verify trực tiếp: implementation thuộc design phase.
CHECK-11: C1/C2/L1 còn đoạn document-centric cần interpretation note?
Đã rà trực tiếp:
- C1 §4.1: "document envelope sở hữu" → IN-1
- L1 §3.3: "Document envelope sở hữu tập hợp text units" → cùng pattern → IN-1
- C2 §4.2.1: "Document envelope core-equivalent" → structural, OK
- C2 §4.2.2: "doc_code (thuộc document nào)" → structural FK, OK
- C2 §8.3: section_type trong controlled vocabulary ví dụ → IN-3
Verdict: C1 §4.1 + L1 §3.3 là 2 chỗ ngôn ngữ document-centric rõ. Phần còn lại dùng doc_code như structural FK — nhất quán.
3. Tổng hợp
| Loại | Số lượng | Chi tiết |
|---|---|---|
| Blocker | 0 | — |
| Patch C1/C2/C1A/LSL bắt buộc | 0 | Không cần sửa nội dung |
| Interpretation notes (cần bổ sung HOW-TO-READ) | 3 | IN-1, IN-2, IN-3 |
| Gap (C1A đã lấp) | 1 | Đ24 mapping |
| Defer P5 | 33 OD | C1:12, C2:8, C1A:13 — by design |
4. Interpretation notes — bổ sung vào HOW-TO-READ
| # | Note | Áp cho | Nội dung |
|---|---|---|---|
| IN-1 | Document-centric language | C1 §4.1, L1 §3.3 | C1/L1 dùng "document envelope sở hữu units" — đọc theo LSL-01 §12: publication tham chiếu unit_versions, không sở hữu nội dung inline. Logical unit vẫn có structural identity / doc_code / canonical tree. |
| IN-2 | Đ24 label mapping | C1, C2 | C1/C2 viết trước LSL-01 v0.4. "FK config / controlled vocabulary" trong C1/C2 phải đọc qua C1A §7 — map vào Đ24 entity_labels, không tạo registry song song. P5 phải map vào Đ24 taxonomy/entity_labels hoặc extension tương thích. |
| IN-3 | section_type classification | C2 §8.3 | C2 liệt kê section_type trong controlled vocabulary ví dụ. Đọc qua C1A §6: section_type là unit metadata, KHÔNG phải classification label Đ24. Map Đ24 thuộc P5 quyết. |
5. Đề xuất bước tiếp
Option A — P5 Schema Draft v0 cho Unit / Publication / Metadata slice trước.
Scope P5 v0:
- Logical unit + unit version storage model
- Publication / published snapshot
- Metadata core + profile
- Label mapping (tương thích Đ24)
- Vector projection hooks (Qdrant sync interface)
- Change-set / APR integration hooks
Scope P5 v0 KHÔNG bao gồm:
- Full Component/BOM schema (chờ C3)
- Migration thật
- Production write path
- DOT implementation
C3 Component/BOM có thể soạn song song hoặc ngay sau P5 v0.
Điều kiện trước P5: User xác nhận scope P5 v0 không bao gồm full Component/BOM schema nếu C3 chưa xong.
Đ38 Mainline Cross-check Report | S180 | 2026-04-26 | Opus 4.6 L1/L4/L5 verify trực tiếp | L2/L3 qua C2+L4 Verdict: PASS CÓ ĐIỀU KIỆN — 0 blocker, 3 interpretation notes