Opus Review — D28 Live Inventory Report + Đề Xuất Bước Tiếp
Opus Review — D28 Nuxt/UI/Template Live Inventory Report + Đề Xuất Bước Tiếp
Date: 2026-05-08 Reviewer: Opus Reviewed:
knowledge/dev/laws/dieu28-trien-khai/reports/d28-nuxt-ui-template-live-inventory-verification-report.mdStatus: ACCEPT — Agent report đạt yêu cầu prompt rev2, có caveat LOCAL vs VPS
1. Đánh giá Agent report
Compliance: 12/12 yêu cầu prompt ĐẠT
- Hard boundaries: 0 violations
- 6 GPT clarifications: tất cả tuân thủ
- 5 bước inventory: tất cả hoàn thành
- Source classification: applied consistently
- Grep classification: 3 CONFIRMED_ISSUE, 18 LIKELY_ISSUE, 2 FALSE_POSITIVE, 8 NEEDS_REVIEW
Caveat: LOCAL_FACT vs VPS SSOT
Agent chạy Nuxt grep trên local copy mtime 2026-04-02 (~36 ngày cũ). Directus và KB data = LIVE_FACT. Nuxt findings = LOCAL_FACT.
Opus đánh giá: Report vẫn có giá trị. Local findings = lower bound (VPS chỉ có thể có thêm, không ít hơn). VPS re-verify sẽ làm trước cleanup pack — không cần chạy lại toàn bộ inventory.
2. Key findings tóm tắt
2.1 table_registry: 21 live rows, 14 KB docs, 7 MISSING_FROM_KB
7 rows chưa sync KB: tbl_workflow_steps, tbl_workflow_timeline, tbl_wcr_list, tbl_modules_list, tbl_tasks_list, tbl_registry_checkpoint_types, tbl_registry_checkpoint_sets.
Index doc nói "6" → thực tế 7 → cần amend index.
2.2 tableIdMap: 18 entries hardcoded, thiếu event_outbox
3 hardcoded maps khác: config/detail-sections.ts:227 (collectionMap), server/api/discovery/relations.get.ts:19 (mirror), pages/knowledge/registries/[entityType]/index.vue:39 (tableIdMap).
Tổng cộng 3 điểm hardcoded map = 3 CONFIRMED_ISSUE cần migrate.
2.3 Route-resolution evidence
- collection == entityType: chỉ 1/21 (event_outbox)
- page_url convention match: 13/21
- Exception rows: 8/21 (workflow tabs, modules, tasks, proposals, registries index)
- Kết luận: Option B (query by collection) sẽ FAIL cho 18/21 rows vì collection plural ≠ entityType singular. Option A (query by page_url) match 13/21. Build-time generated map hoặc hybrid cần xem xét.
Đây là data quan trọng để chỉnh design plan. Design plan draft sơ bộ đề xuất Option B — cần điều chỉnh.
2.4 Templates
- TPL-001 DirectusTable: ACTIVE ✅
- TPL-002 DirectusMatrix: EXISTS (index nói "Planned" → stale, cần update)
- DirectusTimeline: MISSING
- DirectusForm: MISSING
- DocsTreeView: EXISTS (product-specific, không phải template chuẩn TPL-NNN)
- CommentModule: EXISTS
- WorkflowModule: EXISTS (as partials)
- TaskModule: NEEDS_REVIEW (no symbol match)
2.5 Legacy / rác
- DirectusDataTable: 0 hits → migration hoàn tất ✅
- UTable trực tiếp: 20 hits (11 LIKELY_ISSUE, 8 NEEDS_REVIEW portal, 1 FALSE_POSITIVE)
- Direct PG from Nuxt: 0 ✅
- Business calc in pages: 6 LIKELY_ISSUE
- Server APIs: 45 custom routes (chưa classify)
2.6 CI
- enforce-table-rule.yml: chỉ check HTML
<table>, KHÔNG check tableId↔registry. Tên file khác SSOT nói (enforce-table-module.yml). - dot-schema-snapshot/diff: MISSING local
3. Items cần amend trên existing docs
| Doc | Amend | Priority |
|---|---|---|
| Index (d28-ui-template-design-implementation-index.md) | "6 unreconciled" → "7". DirectusMatrix "Planned" → "EXISTS". DirectusDataTable "MIGRATE" → "COMPLETED". | High — trước khi GPT review |
| Design plan (d28-nuxt-ui-template-consolidation-design-plan.md) | Option B sẽ fail 18/21 → cần revise recommendation. Add evidence data. | High |
| Phụ lục Điều 28 | Không cần amend lúc này — principles đúng, chỉ design plan cần data update | Low |
4. Đề xuất bước tiếp theo
Bước ngay (em làm nếu GPT approve):
4A. Amend index doc với data thực từ Agent report:
- 7 MISSING_FROM_KB (not 6)
- DirectusMatrix = EXISTS
- DirectusDataTable migration = COMPLETED
- 18 tableIdMap entries (exact list)
- 52 Nuxt pages
- 45 server routes
4B. Amend design plan với route-resolution evidence:
- Option B (by collection) FAIL cho 18/21 → không khả thi làm primary
- Option A (by page_url) match 13/21 → partial
- Hybrid hoặc build-time generated map → cần thiết kế kỹ hơn
- New recommendation: Option C (build-time generated map) hoặc Option D (hybrid) — vì:
- Convention giữa entityType ↔ collection KHÔNG consistent (plural/singular mismatch)
- page_url convention chỉ 13/21
- Build-time map từ registry = deterministic, no runtime query cost, auto-generated = không hardcode
4C. Ghi nhận VPS re-verify requirement trước cleanup pack (không cần chạy lại full inventory).
Bước sau (cần GPT/User approve):
4D. Finalize phụ lục Điều 28 (v0.2) sau khi amend docs. 4E. Finalize design plan (v0.2) với route-resolution recommendation. 4F. VPS re-verify trước cleanup pack. 4G. Implementation packs theo thứ tự design plan.
5. Chờ GPT thẩm tra
GPT cần xác nhận:
- Agent report ACCEPTED hay cần bổ sung?
- Cho phép Opus amend index + design plan (4A + 4B)?
- Đồng ý revise route-resolution recommendation (Option B → Option C/D)?
- Sequence tiếp theo: amend docs → finalize phụ lục → finalize design → VPS verify → implement?
Opus Review | D28 Live Inventory | ACCEPT Agent Report | 2026-05-08