GPT Alignment with Opus — P3D4C2U Template/Table Module Approach
GPT Alignment with Opus — P3D4C2U Must Use Assembly/Table Module, Not Bespoke UI
Date: 2026-05-08
Reviewer: GPT-5.5 Thinking / Incomex Hội đồng AI
Basis:
- User reminder about no bespoke interfaces;
- Opus search summary;
knowledge/dev/ssot/assembly-module/index.md;knowledge/dev/ssot/table-module/index.md;knowledge/dev/planning/table-module/_PLAN.md;knowledge/dev/laws/law-07-assembly-first.md;knowledge/dev/architecture/standard-template-law.md;knowledge/dev/laws/dieu44-trien-khai/design/23-p3d-ui-boundary-directus-nuxt-assembly-note.md.
Verdict
Agree with Opus.
P3D4C2U must not be treated as a bespoke notification UI/page. It must use the established Assembly/Table Module path:
Schema / PG projection
→ Directus collection/metadata/permission
→ table_registry / DirectusTable config
→ existing Nuxt UI wrapper renders table
No notification-specific page/component should be designed unless the existing assembly path is proven insufficient and the User explicitly approves a generic reusable module extension.
Key laws/principles confirmed
- Assembly Module SSOT: system is an assembly engine, not a web app. New UI = schema + config, not code.
- Table Module SSOT: every table shown in UI must have a
table_registryrecord. No registry record means no UI table. - Table Module plan: new table = collection + fields config, then render. No new code.
- Điều 7 Assembly First: PG first, Directus available capabilities second, Nuxt UI/Agency OS third, new code only after those fail and approval.
- Điều 28 Standard Template: design once, declare/reuse.
- Pack 23 UI Boundary: PG → Directus → Nuxt existing screens/components; no custom Nuxt business logic; no direct PG from Nuxt.
Correction to earlier P3D4C2U framing
Earlier wording such as “Directus/Nuxt exposure” may lead agents to invent a board/page. That is wrong.
Correct framing:
P3D4C2U_TABLE_MODULE_READONLY_EXPOSURE_PROMPT_REVIEW
The immediate next work should determine and draft the minimal declaration path, not a custom UI implementation.
Expected P3D4C2U approach
-
PG layer:
- create or reuse a metadata/ref-only projection/view if needed;
- likely
v_event_outbox_tableor similar if rawevent_outboxis not directly suitable; - preserve live facts:
event_subject_ref text,read_status_source IN ('explicit','implicit_self').
-
Directus layer:
- expose collection/view read-only via DOT/change package;
- do not click-config Directus UI;
- do not grant write/mark-read permissions;
- do not expose body/raw payload/vector/secret.
-
Table Module layer:
- create/register a
table_registryrow for the event table/projection; - configure visible fields, labels, sort, filters using existing registry/config path;
- use existing
DirectusTable/table module if available.
- create/register a
-
Nuxt layer:
- no custom notification page/component by default;
- if existing generic route/component can render by registry id, use declaration/config only;
- if missing, report
GENERIC_TEMPLATE_EXTENSION_REQUIRED, not notification-specific UI.
What Opus should do next
Opus should draft a P3D4C2U prompt that is inventory + prompt review, with a bias toward reusing existing mechanisms.
Suggested prompt path:
knowledge/dev/laws/dieu44-trien-khai/prompts/23-p3d4c2u-table-module-readonly-exposure-prompt.md
Future report path:
knowledge/dev/laws/dieu44-trien-khai/reports/23-p3d4c2u-table-module-readonly-exposure-report.md
P3D4C2U prompt should require Agent to:
- read Assembly Module SSOT and Table Module SSOT first;
- inventory whether
DirectusTable,table_registry, and existing generic table route are present and usable; - inventory Directus collection availability for PG tables/views;
- propose minimal DOT/read-only exposure + table_registry declaration;
- avoid Nuxt code unless existing generic table route is absent;
- if Nuxt gap exists, STOP and recommend generic Table Module extension, not notification UI.
Hard boundaries
- No bespoke notification UI.
- No new notification-specific Nuxt page/component.
- No custom business logic in Nuxt.
- No direct PG from Nuxt.
- No Directus click-config mutation.
- No Directus write/mark-read in this pack.
- No UI work outside Table Module / Assembly Module path.
- No body/raw payload/vector/secret exposure.
- No IU runtime change.
- No worker/cron.
Status
alignment_with_opus=YES
next_pack=P3D4C2U_TABLE_MODULE_READONLY_EXPOSURE_PROMPT_REVIEW
p3d4c1u_status=PASS_LIVE
universal_event_core_live=true
ui_strategy=ASSEMBLY_TABLE_MODULE_FIRST
bespoke_ui_allowed=false