Handoff — Resume P3D Information Unit Text-as-Code after Nuxt Notification
Handoff — Resume P3D Information Unit / Text-as-Code after Nuxt Notification Work
Date: 2026-05-10
Author: GPT-5.5 Thinking / Incomex Hội đồng AI
Purpose: Give the next session a clean, complete starting point after the long Nuxt/event_outbox detour.
Status: READY FOR NEW SESSION — do not continue in current long context.
0. One-line checkpoint
We paused Information Unit / text-as-code work to unblock notification visibility and Nuxt/Table Module issues. That blocker is now sufficiently resolved for temporary monitoring: global event_outbox is public/user-visible, safe, and filterable for current system events. It is not yet an Information-Unit-specific notification board.
Next session should resume the main Information Unit / text-as-code workstream, with a requirement that future IU events emit a governed domain such as event_domain='information_unit' so the global event monitor can later filter “Thông tin”.
1. User’s renewed goal for the next session
The User wants to complete “miếng thông tin” as a serious industry-standard text-as-code subsystem.
Core requirements explicitly restated by User:
-
Parallel vector system
- Vector chunks must be scoped to exactly one information unit / miếng.
- Never allow one vector to contain content from two different pieces.
- If a piece is cut, vectorization only occurs inside that piece boundary.
-
Assembly by specialty / chuyên môn
- Need to assemble / group / present information units by professional domain.
- This may later touch UI, but UI should be pushed to the end and remain under Điều 28 / template governance.
-
Mother/child piece rule
- Need to support parent-child information units.
- Important for processes, procedures, nested documents, and structured governance.
-
Complete the remaining text-as-code features
- Bring information units closer to industry text-as-code standard.
- Manage metadata richly and enable automated metadata enrichment.
- Include concepts already discussed but not yet implemented.
-
Use IT text-as-code patterns
- Text-as-code is not one invention; it is a bundle of established IT practices applied to text / law / process / knowledge.
- Current system has some of these; many remain incomplete.
Reference file uploaded by User: THIẾU - Miếng thông tin .docx.
2. What we completed during the Nuxt / notification detour
2.1 D28 / Nuxt generated-map chain
Completed and deployed:
- Generated-map mechanism implemented.
- Hardcoded route-map issue was solved through generated map approach.
- Nuxt production image deployed:
nuxt-ssr-local:d28gmr-1778407456
- Public route now works:
https://vps.incomexsaigoncorp.vn/knowledge/registries/event_outbox
- Fallback “Chưa có bảng registry...” is gone.
- Chrome/public page shows the table.
2.2 event_outbox / global notification monitor
Completed:
tbl_event_outboxwas published intable_registry.- Public page renders global event outbox.
- Permission #1483 remains safe.
- Unsafe fields remain denied:
safe_payload → 403
correlation_id → 403
causation_id → 403
payload → 403
- Visible label was cleaned:
Phân loại payload → Phân loại dữ liệu
- User-visible event_outbox table now works.
2.3 Filter UI
Completed as config-only:
- Added filters via
table_registryconfig, no Nuxt code. - Current filters reflect current data:
Phạm vi → Tất cả / Hệ thống
Mức độ → Tất cả / Nghiêm trọng / Cảnh báo
Bảng nguồn → Tất cả / Sự cố hệ thống
Why “Thông tin” is not shown:
- Discovery found all sampled events are system events:
event_domain=system
event_subject_table=system_issues
- No
information_unit,text_as_code,tac, or IU-related events exist yet. - Adding “Thông tin” now would show zero rows and mislead the User.
2.4 What the event_outbox currently is
It is a global system event monitor, not an IU-specific notification board.
Current page is useful as a temporary monitoring board, but it is not:
- actor-specific inbox;
- unread/read board;
- mark-read system;
- Information-Unit-specific notification reader.
3. Important current status variables
D28_generated_map_chain=PASS
Nuxt_public_event_outbox=PASS
event_outbox_global_monitor=PASS
filter_ui_config=PASS
information_filter=DEFERRED_UNTIL_IU_EVENTS_EXIST
IU_specific_notification_board=NOT_DONE
Relevant route:
https://vps.incomexsaigoncorp.vn/knowledge/registries/event_outbox
Relevant table_registry row:
table_registry id=21
table_id=tbl_event_outbox
collection=event_outbox
status=published
page_url=/knowledge/registries/event_outbox
Permission:
Directus permission id=1483
collection=event_outbox
public metadata-only allowlist
4. Do not re-open these unless there is a concrete blocker
The next session should not fall back into Nuxt unless a direct blocker appears.
Avoid:
- new Nuxt code;
- bespoke UI;
- new notification page;
- changing permission #1483;
- changing event_outbox exposure;
- new deploy/restart just for display polish;
- building a full IU notification board before text-as-code resumes.
If UI becomes necessary later, it must follow Điều 28 / template / DirectusTable assembly governance.
5. What has already been introduced into “text-as-code” system
From prior KB work and the uploaded User note, the system already contains / partially contains these IT text-as-code foundations:
5.1 Unitization
Text is treated as smaller manageable units:
information_unit / text unit / miếng thông tin
Equivalent IT pattern: module / component / function / class.
5.2 Stable identity
The system has concepts such as:
canonical_address
entity_code
birth_registry
collection_registry
Equivalent IT pattern: stable ID / URI / package name / symbol name.
5.3 Versioning foundation
The system has foundations around:
unit_version
versioning profile
lifecycle_status
Equivalent IT pattern: Git commit / version table / migration history.
5.4 Schema validation
The system uses:
PG schema
constraints
L1/L2 gates
birth_code_strategy
description_policy
Equivalent IT pattern: type system / schema / DB constraints.
5.5 Registry / catalog
The system has registries such as:
collection_registry
meta_catalog
birth_registry
dot_tools
entity_species
table_registry
Equivalent IT pattern: package registry / service registry / metadata catalog.
5.6 Graph / dependency foundation
The system has base graph/context capabilities:
universal_edges
Đ43 context graph
context-pack
Equivalent IT pattern: dependency graph / call graph / import graph.
This is still incomplete for full IU multi-axis traceability.
5.7 Health checks / CI-like checks
Existing:
system_health_checks
DOT health
trigger guard
registry health
Equivalent IT pattern: lint / test / CI / health check.
5.8 Tooling / automation
Existing:
DOT tools
migration packs
execution reports
agent workflows
Equivalent IT pattern: CLI / build tool / migration tool.
5.9 Governance / review workflow
Current governance uses:
User → GPT review → Opus design/prompt → Agent execution → report → GPT review
Equivalent IT pattern: PR / code review / approval gate.
6. What is still missing or weak for real text-as-code
The uploaded User note highlights that text-as-code requires many IT-style mechanisms. These are still missing or weak:
6.1 Git-like diff/patch for information units
Need:
diff A→B
patch hunk
merge conflict
blame
revert
Current versioning is not enough.
6.2 Pull-request model for text changes
Need:
change request
review comments
approval
merge
rollback
Currently done manually through GPT/Opus/Agent reports.
6.3 Test suite attached to each unit
Need to answer:
Which tests cover this law/design/process/code/report unit?
6.4 Dependency impact analysis
Need to answer:
If unit A changes, which laws/designs/processes/code/tests/reports are impacted?
Requires typed multi-axis edges.
6.5 Build/render pipeline
Need to build from units into:
complete document
process document
traceability matrix
release artifact
agent context pack
6.6 Package/module system
Need:
group of units = package/module
owner
version
public/private API
module dependencies
6.7 Type system for relationships
Need edge types such as:
GOVERNS
IMPLEMENTS
TESTS
DERIVED_FROM
CONTAINS
DEPENDS_ON
SUPERSEDES
PARENT_OF
CHILD_OF
VECTOR_OF
ENRICHES_METADATA
6.8 Semantic linting
Need checks like:
law says A but design implements B
process misses approval step
code lacks test
metadata incomplete
edge wrong direction
6.9 Merge/conflict resolution
Need mechanism if two agents/users modify same unit or related units.
6.10 Release/version bundle
Need artifact such as:
release v1.2 includes laws X, designs Y, workflows Z, tests T, reports R
7. Recommended next work order for the new session
Do not jump directly into vector implementation. The User explicitly mentioned vector, specialty assembly, parent-child, metadata enrichment. The safest order is:
Step 1 — P3D resume checkpoint / scope framing
Create/review prompt:
P3D_INFORMATION_UNIT_TEXT_AS_CODE_RESUME
Purpose:
- Recap that Nuxt/event_outbox blocker is resolved enough.
- Lock current objective: resume IU/text-as-code.
- Do not do new Nuxt work.
Step 2 — IU text-as-code requirement consolidation
Draft a requirement/spec document that consolidates:
- User requirements from uploaded doc;
- prior IU schema/birth/versioning work;
- missing IT text-as-code patterns;
- vector boundary rule;
- parent-child rule;
- metadata enrichment rule;
- specialty assembly rule;
- event emission requirement for monitoring.
Suggested document path:
knowledge/dev/laws/dieu44-trien-khai/requirements/p3d-information-unit-text-as-code-requirements-spec.md
Step 3 — Prioritize core packs
Recommended order:
-
IU Canonical Unit Contract
- define unit boundary, stable address, lifecycle, version rules.
-
IU Parent-Child / Containment Contract
- define mother/child pieces, ordering, inheritance, process applicability.
-
IU Multi-Axis Traceability Pack
- typed edges between law/design/process/code/test/report/context.
- This is arguably the most important “text-as-code” core after unit schema.
-
IU Vector Boundary Pack
- vector chunks scoped strictly to one unit.
- forbid cross-unit vector.
- connect vector rows to IU identity/version.
-
IU Metadata Enrichment Pack
- automatic metadata extraction/enrichment.
- must be transparent, reversible, and traceable.
-
IU Event Emission Requirement
- when IU is created/updated/applied/reviewed, emit event with:
event_domain='information_unit'
canonical_address='information_unit://<id-or-code>'
- This enables later event_outbox filter “Thông tin”.
- IU Assembly by Specialty
- group/assemble by domain/chuyên môn.
- UI deferred until config/template path is clear.
Step 4 — Only after core contracts, return to UI
After IU emits events and has traceability, optionally add filter option:
Phạm vi → Thông tin
value=information_unit
Do not build IU-specific notification board now unless User makes it a priority.
8. Immediate next prompt to create in the new session
Recommended first prompt for next session:
P3D_INFORMATION_UNIT_TEXT_AS_CODE_RESUME_REQUIREMENTS_PROMPT
Goal: draft requirements, not implement.
Effort: Medium-High.
It should instruct Agent/Opus to:
- Read this handoff.
- Read uploaded file / external note if available.
- Search KB for current IU/P3D docs.
- Produce a consolidated requirements spec.
- Produce a proposed pack sequence.
- Do not mutate DB/Nuxt.
- Do not implement vector yet.
- Do not resume UI work.
9. Documents to read at start of next session
This handoff
knowledge/dev/laws/dieu44-trien-khai/handoffs/handoff-p3d-information-unit-text-as-code-resume-after-nuxt-notification-2026-05-10.md
Recent notification / Nuxt completion docs
knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-p3d4c2x-filter-pass-and-iu-filter-deferred-2026-05-10.md
knowledge/dev/laws/dieu44-trien-khai/reports/p3d4c2x-event-outbox-filter-ui-config-patch-report.md
knowledge/dev/laws/dieu44-trien-khai/reports/p3d4c2w-event-outbox-label-clarify-report.md
knowledge/dev/laws/dieu44-trien-khai/reports/d28-generated-map-refresh-pack-report.md
knowledge/dev/laws/dieu44-trien-khai/reports/p3d4c2u-resume-notification-display-report.md
Earlier notification design anchors
knowledge/dev/laws/dieu44-trien-khai/design/23-p3d-notification-outbox-read-state-design-anchor.md
knowledge/dev/laws/dieu44-trien-khai/design/23-p3d-notification-outbox-roadmap-note.md
knowledge/dev/laws/dieu44-trien-khai/design/23-p3d4c0x-universal-event-outbox-notification-architecture.md
IU / text-as-code docs to search/read
Use searchKnowledge for:
information_unit text_as_code canonical_address unit_version parent child vector metadata enrichment traceability universal_edges
Known docs from previous work include IU native create / adapter notes and P3D/P3C documents. Verify live paths before relying on them.
Uploaded User file
THIẾU - Miếng thông tin .docx
This file contains the User’s question about which IT text-as-code techniques have already been brought into the system and which remain missing.
10. Important user-facing interpretation
The next assistant should explain clearly:
- We did not waste the Nuxt detour: it produced a working global event monitor and resolved the Table Module/generated map issue.
- But it is time to stop UI polishing and return to the core IU/text-as-code system.
- The global event_outbox can be used for system monitoring.
- “Thông tin” filter will appear only after IU events exist.
- The next core rule: IU events must emit
event_domain='information_unit'or another governed equivalent.
11. Suggested answer to User at new session start
Short form:
Ta đã xong đường hiển thị/giám sát tạm: event_outbox global đã xem được, filter hệ thống đã có, chưa có filter Thông tin vì chưa có event information_unit.
Bây giờ quay lại miếng thông tin. Bước đầu không implement ngay, mà chốt requirements text-as-code: unit boundary, parent-child, vector per-unit, metadata enrichment, traceability, and IU event emission.
Sau đó mới chia pack thực thi.
12. Final current state
notification_global_monitor=PASS
filter_ui=PASS
information_filter=DEFERRED_UNTIL_IU_EVENTS_EXIST
D28_Nuxt_blocker=RESOLVED_ENOUGH
text_as_code_resume_allowed=true
next_action=P3D_INFORMATION_UNIT_TEXT_AS_CODE_RESUME_REQUIREMENTS_PROMPT
13. Strong warning
Do not start by coding vector tables or parent-child tables immediately.
First: write requirements/spec and pack roadmap.
Reason: The IU system spans schema, graph, vectors, metadata, versioning, event emission, and later UI. Jumping into one table will recreate the same “solve one case, leave system trash” problem that the Nuxt detour just corrected.