E4 APR Request Package — FAC-07/08/09 v0.2
E4 — APR Request Package: FAC-07 / FAC-08 / FAC-09
Phase: P9 Entry Gate, E4 Loại: Governance request (doc + machine-readable APR data) Trạng thái: DRAFT v0.2 — Patched scope lệch (GPT review). Chờ GPT final. Phiên: S183 | Ngày: 2026-04-27 Prerequisite: E-E3 PASS (P8 v0.4 §5.1 facet alias mapping) Scope: KHÔNG DDL/DML. KHÔNG ghi taxonomy_facets. KHÔNG ghi taxonomy_labels. KHÔNG tạo facet. KHÔNG E5/E7/P9.
1. Rationale
P8 v0.4 §5.1 định nghĩa 3 design alias (doc, topic, layer) cần facet production tương ứng. Hiện tại taxonomy_facets có 7 facets (FAC-01→FAC-06, FAC-PROV). D38 Text as Code cần 3 facets mới để phân loại logical units theo tài liệu nguồn, chủ đề nội dung, và tầng kiến trúc.
Theo Đ24 governed taxonomy flow và Đ32 APR authority: facet creation phải qua APR. Không seed trực tiếp.
2. Candidate Proposals
FAC-07 — Thuộc tài liệu nào?
| Field | Value |
|---|---|
| code | FAC-07 |
| name | Thuộc tài liệu nào? |
| description | Phân loại text unit theo document source gốc. Áp dụng cho D38 Text as Code logical units. |
| status | active |
| Design alias | doc |
FAC-08 — Chủ đề nội dung?
| Field | Value |
|---|---|
| code | FAC-08 |
| name | Chủ đề nội dung? |
| description | Phân loại text unit theo chủ đề nội dung chính. Áp dụng cho D38 Text as Code logical units. |
| status | active |
| Design alias | topic |
FAC-09 — Tầng kiến trúc?
| Field | Value |
|---|---|
| code | FAC-09 |
| name | Tầng kiến trúc? |
| description | Phân loại text unit theo design/legal/operational layer. Áp dụng cho D38 Text as Code logical units. |
| status | active |
| Design alias | layer |
3. Machine-readable APR Data — Facets Only
3 APR requests, mỗi facet 1 request. Tạo qua approved DOT/API path (không manual).
Scope APR này CHỈ bao gồm taxonomy_facets. Tạo taxonomy_labels (label values) là mutation riêng, cần APR/gate riêng sau khi facets đã tồn tại.
[
{
"request_type": "create_taxonomy_facet",
"target_collection": "taxonomy_facets",
"proposed_action": {
"operation": "INSERT",
"table": "taxonomy_facets",
"values": {
"code": "FAC-07",
"name": "Thuộc tài liệu nào?",
"description": "Phân loại text unit theo document source gốc. Áp dụng cho D38 Text as Code logical units.",
"status": "active"
}
}
},
{
"request_type": "create_taxonomy_facet",
"target_collection": "taxonomy_facets",
"proposed_action": {
"operation": "INSERT",
"table": "taxonomy_facets",
"values": {
"code": "FAC-08",
"name": "Chủ đề nội dung?",
"description": "Phân loại text unit theo chủ đề nội dung chính. Áp dụng cho D38 Text as Code logical units.",
"status": "active"
}
}
},
{
"request_type": "create_taxonomy_facet",
"target_collection": "taxonomy_facets",
"proposed_action": {
"operation": "INSERT",
"table": "taxonomy_facets",
"values": {
"code": "FAC-09",
"name": "Tầng kiến trúc?",
"description": "Phân loại text unit theo design/legal/operational layer. Áp dụng cho D38 Text as Code logical units.",
"status": "active"
}
}
}
]
4. APR Authority
Council/User có quyền với mỗi candidate:
| Decision | Action |
|---|---|
| Approve | Tạo facet đúng như proposed. E5 execute via Directus API. |
| Modify | Đổi code, name, description, hoặc scope. E5 execute theo bản sửa. Update P8 §5.1 alias mapping. |
| Reject | Không tạo facet. Cần thiết kế lại: dùng facet hiện có hoặc approach khác. Update P8 §5.1. |
| Partial | Approve 1-2, reject/modify còn lại. E5 chỉ execute approved items. |
5. Constitutional Alignment
| Law | Check | Status |
|---|---|---|
| Đ24 | Label chỉ qua entity_labels, facet qua taxonomy_facets | ✅ |
| Đ32 | APR required cho taxonomy mutation | ✅ |
| Đ33 | Tạo qua Directus API, không DDL trực tiếp | ✅ |
| Đ35 DOT | DOT-TAC-LABEL-SYNC sẽ execute nếu approved | ✅ |
| P8 §5.1 | Candidate codes khớp alias mapping | ✅ |
| Naming pattern | FAC-NN sequential (FAC-01→06 existing, FAC-07/08/09 next) | ✅ |
| Vietnamese question | Tên dạng "...gì?/nào?" khớp FAC-01→06 convention | ✅ |
6. Deny/Reject Path
Nếu APR reject hoặc modify:
- Update P8 §5.1 alias mapping theo kết quả APR
- Nếu reject toàn bộ: thiết kế approach thay thế (reuse FAC hiện có hoặc restructure)
- Nếu modify code: update tất cả design docs referencing candidate codes
- KHÔNG tự tạo facet khi chưa có APR approved
- Re-run DOT-TAC-LABEL-FACET-VERIFY sau khi resolve
7. E5 Execution Preview (chỉ nếu APR approved)
Sau APR approved, E5 scope CHỈ bao gồm:
- Tạo approved taxonomy_facets via Directus API POST
/items/taxonomy_facets - Verify via DOT-TAC-LABEL-FACET-VERIFY
- E5 cần prompt/gate riêng, không tự chạy từ E4
KHÔNG bao gồm trong E5:
- Tạo taxonomy_labels (initial label values). Label values là mutation riêng, cần APR/gate riêng sau khi facets đã tồn tại.
Label values reference (cho APR tương lai, KHÔNG phải E4/E5 scope):
| Facet | Candidate initial labels |
|---|---|
| FAC-07 (doc) | D38-HOWTO, D38-C1A, D38-P5 |
| FAC-08 (topic) | guide, segmentation, schema |
| FAC-09 (layer) | design |
8. Scope Boundary
| Mutation | APR scope | Gate |
|---|---|---|
| taxonomy_facets INSERT (3 rows) | ✅ E4 APR này | E5 |
| taxonomy_labels INSERT (7+ rows) | ❌ KHÔNG trong E4 | Cần APR riêng |
| entity_labels INSERT | ❌ KHÔNG trong E4 | Cần DOT + gate riêng |
Patch log v0.1 → v0.2
| # | GPT điểm | Fix |
|---|---|---|
| 1 | §3/§7 scope lệch: APR chỉ xin facets nhưng §7 nói tạo labels | ✅ §3 ghi rõ "Facets Only". §7 loại bỏ label creation. §8 scope boundary table. |
E4 APR Request Package v0.2 | S183 | 2026-04-27 | Opus 4.6 GPT review v0.1: PASS WITH PATCH → v0.2 Chờ GPT final + User review