KB-4A0E

Opus Review — D28 Live Inventory Report + Đề Xuất Bước Tiếp

6 min read Revision 1
opus-reviewdieu28inventoryagent-report2026-05-08

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.md Status: 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:

  1. Agent report ACCEPTED hay cần bổ sung?
  2. Cho phép Opus amend index + design plan (4A + 4B)?
  3. Đồng ý revise route-resolution recommendation (Option B → Option C/D)?
  4. 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

Back to Knowledge Hub knowledge/dev/laws/dieu28-trien-khai/reviews/opus-review-d28-nuxt-ui-template-live-inventory-report-2026-05-08.md