GPT Handoff — Pack23 P3D Notification Paused for Nuxt Law
GPT Handoff — Pack 23 / P3D Phase 1 Notification Paused for Nuxt/UI Law Consolidation
Date: 2026-05-08
Audience: GPT next session
Purpose: Continue seamlessly after current session context overflow.
Critical status: Do not continue notification UI wiring yet. First consolidate Nuxt/UI/template law and inventory.
0. First instruction for next GPT
Read this handoff first, then read:
knowledge/dev/laws/dieu44-trien-khai/todos/td-p3d-phase1-notification-display-remaining-before-nuxt-law-pause-2026-05-08.mdknowledge/dev/laws/dieu44-trien-khai/reviews/gpt-preinventory-nuxt-ui-template-law-consolidation-2026-05-08.mdknowledge/dev/laws/dieu44-trien-khai/reports/23-p3d4c2u-option-d-base-table-field-allowlist-implementation-report.mdknowledge/dev/laws/dieu44-trien-khai/reviews/opus-review-23-p3d4c2u-option-d-draft-pending-2026-05-08.md
Do not tell Opus to add the one-line Nuxt hardcode yet. User explicitly paused that.
1. Current high-level state
Pack 23 / P3D notification work reached a major milestone but is now paused.
What is live and working
Universal event core is live in PG production:
event_type_registryevent_outboxevent_readevent_subscriptionevent_pending— seam only, no worker- registry validation trigger on
event_outbox - capture trigger on
system_issues fn_event_unreadfn_event_mark_read
Architecture is accepted:
Immediate/single events → trigger writes durable event_outbox directly.
Delayed/batch/noisy events → event_pending + worker only when actually needed later.
No worker, no pg_cron, no polling.
What is exposed safely but not published
P3D4C2U Option D implemented Directus + table_registry layer:
- Directus permission
id=1483onevent_outboxfor Public Access. - Permission allows 14 metadata fields only.
- Unsafe fields blocked by Directus with HTTP 403:
safe_payloadcorrelation_idcausation_id
table_registryrowid=21created:table_id=tbl_event_outboxcollection=event_outboxstatus=draftpage_url=/knowledge/registries/event_outbox_dot_origin=P3D4C2U_D|2026-05-08
- DirectusTable fetch path was proven safe:
web/components/shared/DirectusTable.vueweb/composables/useDirectusTable.ts- reads
table_registry.fields - passes
fields=intoreadItems - runtime auth is Public role on SSR / user session on client, not admin token.
Current blocker
/knowledge/registries/event_outbox returns HTTP 200, but SharedDirectusTable does not mount because:
web/pages/knowledge/registries/[entityType]/index.vue
tableIdMap does not contain:
event_outbox: 'tbl_event_outbox'
This is not a Directus permission problem. It is not a PG/event core problem. It is a Nuxt/Table Module routing/config gap.
Current status:
phase_status=PASS_IN_SCOPE
published=NO
registry_status=draft
table_registry_id=21
permission_id=1483
blocker=TABLEIDMAP_MISSING_EVENT_OUTBOX
2. User’s latest strategic directive
User rejected treating the blocker as a simple one-line hardcode.
Reason:
- Nuxt is currently messy and has legacy/rác code.
- Some registry UI parts were previously hardcoded in Nuxt because there was too much information and cleanup was postponed.
- Adding one new hardcoded map entry would continue the wrong pattern.
- The system needs a consolidated Nuxt/UI/template law and cleanup plan before adding more wiring.
User’s directive:
Dừng phần notification display lại một chút.
Quy hoạch rõ luật/quy định/khuôn mẫu/công cụ Nuxt/UI.
Gom các quy định rải rác về khuôn mẫu, template, DirectusTable, table_registry, Nuxt routing, sản phẩm đã đúc từ khuôn về một mối.
Đề xuất nên đưa vào luật hiện có hay viết luật mới, có thể là Điều 45.
Sau luật mới viết thiết kế, sau đó mới chỉnh code.
Không triển khai kiểu tắt: viết luật xong code luôn.
Three-step process required:
1. Write law / amend law.
2. Write design / inventory / migration plan.
3. Only then adjust code/tooling.
3. Governance principles to preserve
3.1 No humans for machine-verifiable work
Recorded at:
knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-operating-principle-automation-first-2026-05-08.md
Principle:
Những gì máy móc làm được thì không dùng con người.
Manual smoke is not a final solution. If route smoke cannot be automated, treat it as an infrastructure gap.
3.2 No bespoke UI / no local workaround
No notification-specific Nuxt page/component.
All UI should flow through:
Schema / Directus collection
→ config / registry
→ shared template/wrapper
→ render
3.3 Shared module first
If Table Module is missing capability, fix Table Module, not notification.
If Nuxt route mapping is hardcoded, treat as Nuxt/Table Module design gap, not as one-off notification task.
3.4 Law jurisdiction discipline
If related law/module already owns a concern, use that law/module.
If old law is insufficient, pause and amend law.
If old module is insufficient, pause and repair shared module.
No double systems.
4. Important documents created this session
Notification checkpoint / TD
knowledge/dev/laws/dieu44-trien-khai/todos/td-p3d-phase1-notification-display-remaining-before-nuxt-law-pause-2026-05-08.md
Purpose: external-memory checkpoint for remaining work to reach Phase 1 final goal: user can see notification/event board through web.
One-line checkpoint from TD:
Giai đoạn 1 notification display đã wired khoảng 90%: Directus permission + table_registry draft đã xong và an toàn; còn blocker là Nuxt/Table Module hardcoded tableIdMap. Dừng ở đây để viết luật/quy hoạch Nuxt-UI-template, sửa shared routing/template mechanism, rồi quay lại publish tbl_event_outbox sau khi automated route smoke PASS.
Pre-inventory for Nuxt/UI/template law consolidation
knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-preinventory-nuxt-ui-template-law-consolidation-2026-05-08.md
Purpose: preliminary list of relevant laws/docs/templates/products/tools/legacy areas and recommended ask for Opus to verify.
GPT analysis of P3D4C2U draft state
knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-analysis-23-p3d4c2u-option-d-draft-pending-smoke-2026-05-08.md
Purpose: confirms Agent and Opus results; identifies actual breakpoint as tableIdMap.
5. Pre-inventory summary for Nuxt/UI/template law
GPT searched KB and found the following source clusters.
5.1 Laws / constitutional rules
-
knowledge/dev/laws/law-07-assembly-first.md- PG first → Directus → Nuxt/Agency OS → external open source → code new only after failure + approval.
-
knowledge/dev/architecture/standard-template-law.md- Standard Template Law; templates have lifecycle, metadata, species, config schema, instance count; metadata-driven/code-free.
-
knowledge/dev/laws/dieu38-trien-khai/reports/p10b-2c-r2-followup-d28-2026-04-30/d28-render-raw.tsv- Điều 28 v2.0 “Luật Kỹ Thuật Hiển Thị”; evolved from “Luật Khuôn Mẫu Chuẩn”; includes Nuxt whitelist, checklist, test workflow, scanner.
-
knowledge/dev/laws/constitution.md- Nuxt Web is Gate layer; Directus/PG are official storage/gateway layers.
-
knowledge/dev/laws/dieu44-trien-khai/design/23-p3d-ui-boundary-directus-nuxt-assembly-note.md- PG → Directus → Nuxt existing components; no custom business logic, no direct PG from Nuxt.
5.2 SSOT / module docs
-
knowledge/dev/ssot/assembly-module/index.md- System is assembly engine, not web app.
- Nuxt UI layer, wrappers, page config.
- DirectusTable Step 3; migrate custom tables/popups later.
- Pain lesson: custom table failure.
-
knowledge/dev/ssot/table-module/index.md- Every UI table = one
table_registryrecord. - No registry row = no UI table.
- Registry Wiring Rule.
- Selftest tools verify data layer.
- Every UI table = one
-
knowledge/dev/planning/table-module/_PLAN.md- New table should be collection + fields config, no new code.
-
knowledge/dev/planning/assembly-roadmap.md- Only roadmap for UI construction.
- “Thích code thay vì lắp ráp = sai.”
-
knowledge/dev/ssot/custom-code-registry.md- All custom files must be registered for upgrade/cleanup review.
5.3 Reports / history
knowledge/current-state/reports/assembly-step1-inventory.mdknowledge/current-state/reports/assembly-step3-deploy-report.mdknowledge/current-state/reports/table-module-complete-report.mdknowledge/current-state/reports/registry-engine-reportknowledge/current-state/reports/s117-registries-polish-reportknowledge/current-state/reports/s146-m2-registries-display-fix-reportknowledge/current-state/reports/s146-m3-gemini-nuxt-investigation.mdknowledge/dev/laws/dieu38-trien-khai/reports/p10d-2a-evidence-quick-check-2026-04-30.mdknowledge/dev/reports/gpt-decision-s191-p10d-inventory-complete-next-precheck-2026-04-30.md
5.4 Current P3D evidence
knowledge/dev/laws/dieu44-trien-khai/reports/23-p3d4c2u-option-d-base-table-field-allowlist-implementation-report.mdknowledge/dev/laws/dieu44-trien-khai/reviews/opus-review-23-p3d4c2u-option-d-draft-pending-2026-05-08.mdregistries/table_registry/tbl_event_outbox
6. Preliminary template/khuôn inventory
This list is preliminary; Opus must verify.
6.1 Table Module / DirectusTable
- Template/wrapper:
DirectusTable/SharedDirectusTable. - Uses Nuxt UI
UTable. - Config source:
table_registry.fields. - Fetch behavior:
readItems(collection, { fields }). - Products: rows in
table_registryrendered through registry route.
6.2 Registry 3-layer UI
- Registry index/detail routes under
/knowledge/registries/.... - Known gap: hardcoded
tableIdMapinweb/pages/knowledge/registries/[entityType]/index.vue.
6.3 DirectusTimeline / timeline template
- Mentioned in Assembly Module roadmap as future wrapper around
UTimeline. - Need verify if implemented or still planned.
6.4 DirectusForm / form template
- Mentioned as wrapper category in Assembly pattern.
- Need verify existence/status.
6.5 Section-Based / Layer 3 UI
- Mentioned in Assembly Roadmap.
- Need verify actual templates/products.
6.6 Matrix template / DirectusMatrix
knowledge/current-state/reports/s157c-matrix-report.mdmentions DirectusMatrix and species page.- Need classify as sanctioned template vs custom/legacy.
6.7 DocsTreeView / laws tree pattern
- Mentioned in S191/P10D decision.
- Need classify as template or product-specific component.
6.8 Workflow supervisor UI
- Mentioned in Custom Code Registry.
- Need classify as template, product, legacy, or cleanup candidate.
6.9 Table module features
- UTooltip, UPopover, UBadge, UCheckbox, UPagination, UModal, UInput from Table Module complete report.
- Need distinguish core table template features vs separate templates.
7. Preliminary products cast from templates
KB currently lists 14 synced table_registry docs:
tbl_checkpoint_instancestbl_event_outbox— drafttbl_meta_catalogtbl_proposals_listtbl_registry_agentstbl_registry_changelogtbl_registry_collectionstbl_registry_dot_toolstbl_registry_entity_dependenciestbl_registry_modulestbl_registry_ui_pagestbl_system_issuestbl_table_registrytbl_workflow_list
Important discrepancy:
P3D4C2U Agent report says live Directus table_registry has 20 rows.
KB prefix list shows 14 synced docs.
Opus/Agent must verify live Directus and reconcile missing KB synced docs.
8. Preliminary tools list
Need Opus verify exact paths/status.
DirectusTable.vue/SharedDirectusTableuseDirectusTable.tstable_registryDirectus collectionui_pagesDirectus collection /tbl_registry_ui_pagesmeta_catalog/tbl_meta_catalog- Directus REST/SDK
readItems - DOT schema tools:
dot-schema-snapshotdot-schema-diff
- Custom Code Registry
- Assembly/Table Module selftest tools
- Route smoke mechanism — currently inadequate
- Nuxt middleware/session/auth path
- Directus permission field allowlist
- Field metadata translation patching
- Registry route and hardcoded tableId mapping
9. Preliminary legacy/rác cleanup list
Need Opus verify.
- Hardcoded
tableIdMapinweb/pages/knowledge/registries/[entityType]/index.vue. - Old registry hardcodes / phantom rows from S146 Gemini Nuxt investigation.
- Hardcoded categories/sections in
/knowledge/lawsfrom P10D quick check. - Residual
DirectusDataTableor custom tables from before DirectusTable. - Workflow supervisor custom pages/partials.
- Registry counts /
v_registry_countsstale/duplicated logic. - Server APIs added for UI that duplicate Directus/PG capabilities.
- Any direct PG access from Nuxt.
- Any Nuxt pages calculating business logic instead of consuming PG/Directus projections.
10. GPT preliminary law recommendation
GPT recommends creating a new law:
ĐIỀU 45 — LUẬT NUXT / UI ASSEMBLY / KHUÔN MẪU HIỂN THỊ
Relationship:
Điều 7 = Assembly First priority order.
Điều 28 = Display/template principle law.
Điều 45 = Nuxt/UI implementation law: templates, modules, products, route registry, cleanup, automation, smoke, code gates.
But this is not final. Opus must verify:
- whether Điều 45 number is free/appropriate;
- whether Điều 28 should absorb this instead;
- whether existing SSOTs already contain enough law-level authority;
- what docs/tools/products are missing from the preliminary inventory.
11. Proposed structure if Điều 45 is created
Candidate sections:
- Jurisdiction and relation to Điều 7, Điều 28, DOT, PG, Directus.
- No bespoke UI / no local workaround principle.
- Template/khuôn lifecycle:
- draft → active → deprecated → retired.
- Template registry requirements:
- ID, owner, config schema, products list, verification tests.
- Product-from-template registry:
- every UI product points to template/khuôn and config source.
- Table Module rules:
- every UI table requires
table_registryrecord; - route resolution registry/config-driven, not hardcoded.
- every UI table requires
- Directus permission and field allowlist law.
- Nuxt code permission gate.
- Legacy cleanup taxonomy:
- keep / migrate / quarantine / delete.
- Automation-first verification:
- route smoke;
- component mount smoke;
- field leak smoke;
- no manual smoke as final state.
- DOT/API-only mutation rule.
- Rollback and report requirements.
- Security boundaries:
- no secret/raw payload/vector exposure.
- Compatibility with Điều 43 context/graphic outputs.
- Upgrade/maintenance rules for Agency OS/Nuxt UI.
12. Proposed next message to Opus
Do not ask Opus to implement. Ask Opus to verify and complete inventory.
Suggested directive:
Opus, please verify the Nuxt/UI/template law consolidation inventory.
Do not implement.
Do not draft final law yet.
Do not edit Nuxt.
Do not add event_outbox to tableIdMap.
Read GPT pre-inventory:
knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-preinventory-nuxt-ui-template-law-consolidation-2026-05-08.md
Tasks:
1. Confirm whether Điều 45 should be a new law or whether content belongs inside Điều 28 / existing SSOTs.
2. Verify all source documents listed by GPT and add missing ones.
3. Verify all existing templates/khuôn and their statuses.
4. Verify all products cast from each template, especially live table_registry rows.
5. Reconcile live Directus table_registry count (20) vs KB synced docs (14).
6. Verify tools/components/code paths: DirectusTable, useDirectusTable, registry route, tableIdMap, Custom Code Registry, DOT tools, route smoke tools.
7. Identify legacy/rác Nuxt areas that must be migrated/deleted/quarantined.
8. Propose law structure and three-step plan: law → design → code/tooling.
9. Return a verification report, not implementation.
Suggested report path:
knowledge/dev/laws/dieu44-trien-khai/reports/nuxt-ui-template-law-consolidation-inventory-verification-report.md
Do not dispatch code work yet.
13. Stop points for next GPT
The next GPT should not:
- approve a one-line hardcode to
tableIdMapimmediately; - publish
tbl_event_outbox; - resume notification display work;
- write final Điều 45 before Opus verifies inventory;
- tell Agent/Opus to edit Nuxt;
- treat manual smoke as final.
Next GPT should:
- Confirm user wants to send the Opus verification directive.
- Send/record that directive if user agrees.
- Review Opus verification report.
- Then decide whether to draft Điều 45 or amend Điều 28.
14. Final current status
notification_phase1_goal=PAUSED_AT_90_PERCENT
universal_event_core=LIVE
Directus_permission_event_outbox=CREATED_SAFE
Table_registry_tbl_event_outbox=CREATED_DRAFT
web_display=BLOCKED_BY_NUXT_TABLEIDMAP_GAP
next_work=NUXT_UI_TEMPLATE_LAW_INVENTORY_VERIFICATION
implementation_allowed_now=false