KB-19FD rev 2

03 — /knowledge/registries Page Audit (VERIFIED v2)

3 min read Revision 2
architectureregistriesnuxtpage-auditdieu28violation2026-05-30verified-v2

03 — /knowledge/registries Page Audit (VERIFIED v2)

URL: https://vps.incomexsaigoncorp.vn/knowledge/registries

What it is

Title "Danh mục hệ thống", subtitle "Meta-Catalog — Danh mục sống, đếm realtime bằng PG trigger". Renders meta_catalog (169 rows live) as a registry table grouped Atoms/Molecules/Compounds/Materials/Products/Structures + logs + health rows. Nav links: All Entities, Taxonomy 6x6, Entity Matrix, Species Matrix, Changelog → multi-dimensional surfaces partly exist. Footer: "powered by Directus and Nuxt" (AgencyOS). No computed-at timestamp shown.

Live rendered categories (verbatim WebFetch — sample of ~80 CAT rows)

CAT-ALL 1,666,465 · CAT-MOL 774 · CAT-CMP 423 · CAT-MAT/PRD/BLD 0 · CAT-SPE 178,024 · CAT-ORP 15 · CAT-PHA 10 · CAT-UNM 127 · CAT-017 175,317 · CAT-006 DOT Tools 309 · CAT-008 Collections 168 · CAT-007 Pages/Routes 37 · CAT-020 Entity Types 42 · CAT-021 Species-Collection Map 164 · CAT-023 So khai sinh 964,573 · CAT-024 Pivot Definitions 37 · CAT-152 pivot_results 126 · CAT-000 System Catalog 169 · CAT-068 entity_labels 690,341 · SYS-CVG Coverage Scope 309 · …

Data-source verdict

PG-driven, mostly. Reads meta_catalog/v_registry_counts via Directus. BUT it is not a pure render shell — see V6.

Violations (verified)

  1. 🟡 Hardcoded phantom summary rows + in-page computation (Đ28). s146-m3-codex-nuxt-investigation quotes verbatim from page source: code:'CAT-SPE' / 'CAT-ORP' / 'CAT-PHA' / 'CAT-UNM' / 'CAT-017' at index.vue:308–322, and orphan 21825 computed in-page from /api/registry/health totals.totalGap. → render-shell rule broken (summary rows synthesized client-side). Report-sourced (Nuxt tree outside read_file allowlist), but verbatim code evidence.
  2. 🔴 Reads stored numbers, not pivot. Page surfaces record_count/v_registry_counts; these drift (CAT-006 309 vs CAT-DOT 307; CAT-007 37 vs actual 52; birth 964,573 vs live ~959,372). Đ26 MT5/MT8 — numbers should come from pivot. (docs 05/07)
  3. 🟢 No staleness signal — "realtime" claimed, no computed-at; trigger path and pivot path can disagree.

Reusable assets (KEEP)

  • Group-by-composition-layer layout; species & orphan columns; Taxonomy 6x6 / Species Matrix / Entity Matrix surfaces (multi-dimensional intent already present); the Directus-fetch shell.

Verdict: EXTEND — keep the page & its matrices; remove the hardcoded phantom rows + in-page gap math; switch numbers to the pivot path; show refreshed_at.

Back to Knowledge Hub knowledge/dev/reports/architecture/registries-pivot-foundation-reuse-audit-rebuild-blueprint-2026-05-30/03-knowledge-registries-page-audit.md