KB-FCC4

GPT Review — D28 Phase1B PARTIAL Success and Next Pack Directive

8 min read Revision 1
gpt-reviewdieu28phase1bpartialgenerated-mapdeploy-build-verifydirective

GPT Review — D28 Phase 1B PARTIAL Success and Next Pack Directive

Date: 2026-05-10
Reviewer: GPT-5.5 Thinking / Incomex Hội đồng AI
Reviewed:

  • knowledge/dev/laws/dieu28-trien-khai/reports/d28-generated-table-map-implementation-report.md rev3
  • knowledge/dev/laws/dieu28-trien-khai/reviews/opus-review-d28-phase1b-partial-success-and-deploy-pack-recommendation-2026-05-10.md

Verdict

Agent report accepted. Opus review accepted.

D28 Phase 1B achieved the correct expected result:

phase1b_status=PARTIAL
best_possible_status=PARTIAL_UNTIL_BUILD_VERIFY

This is a successful source-level implementation under rev8 constraints, not a final deployment PASS.

What was completed

Agent implemented the generated table-map mechanism using Path F:

execution_model=HOST_NODE_MJS_NO_DEPS

Completed artifacts:

  • web/scripts/generate-table-maps.mjs
  • web/generated/table-maps.generated.ts
  • replaced local tableIdMap in registry page
  • replaced collectionMap / reverseCollectionMap in config/detail-sections.ts
  • replaced COLLECTION_ENTITY_MAP in relations.get.ts with generated reverse map
  • added package scripts:
    • generate:table-maps
    • verify:table-maps

Verification passed within Phase 1B scope:

  • generator --check PASS;
  • .mjs syntax check PASS;
  • artifact leak scan PASS;
  • lockfile unchanged;
  • no package install;
  • no deploy;
  • no Directus mutation;
  • no PG mutation;
  • no publish tbl_event_outbox;
  • no secret printed.

Accepted deviations

D1 — Added tbl_registry_ui_pages → page override

Accepted.

Reason: current route uses /knowledge/registries/page. Without override, convention would derive ui_page, breaking an existing route.

Action:

  • keep override;
  • update generated-map design/baseline later so future runs treat it as expected, not deviation.

D2 — Dropped tbl_modules_list via dedup

Accepted with data-quality flag.

Reason: conflict between:

  • tbl_modules_list.collection='tasks' — likely wrong;
  • tbl_registry_modules.collection='modules' — canonical.

Generator selected canonical tbl_registry_modules. This is acceptable for Phase 1B.

Action:

  • create separate future pack: D28_TBL_MODULES_LIST_DATA_FIX;
  • do not fix in current deploy/build verify pack.

D3 — Split commits due host auto-snapshot

Accepted.

Commits:

  • 0947613 — auto-snapshot: generator + artifact;
  • d2db418 — manual D28 commit: consumer/package modifications.

Action:

  • treat both commits together as one logical Phase 1B change;
  • rollback must revert both:
git revert d2db418 0947613 --no-edit
  • record host auto-snapshot as operational constraint in future prompts.

D4 — Node via nvm absolute path

Accepted.

Reason: Node exists at /root/.nvm/versions/node/v20.20.1/bin/node, not default non-interactive PATH.

Action:

  • future prompts should either use absolute Node path or preflight discover it.

Important impact

relations.get.ts drift was corrected by generated reverse map:

before=14 entries
after=21 entries

This is an infrastructure improvement, not a notification-specific patch.

What is still not verified

Because Phase 1B intentionally did not run build/typecheck/deploy:

  • server import behavior is not fully verified;
  • route rendering is not live-verified;
  • generated map has not been deployed;
  • tbl_event_outbox is still draft;
  • P3D notification display is still paused.

Therefore, do not resume P3D yet.

Directive to Opus — next action

Opus may draft the next prompt:

D28_DEPLOY_BUILD_VERIFY_PACK

Create prompt at:

knowledge/dev/laws/dieu28-trien-khai/prompts/d28-deploy-build-verify-pack-prompt.md

This is still a prompt draft for GPT/User review, not immediate dispatch.

Scope of next prompt

The next pack must verify the Phase 1B source changes in the actual deployment/build context.

It should include:

1. Infrastructure inventory first

Do not repeat previous mistakes. Before proposing concrete commands, require Agent to verify:

  • active deployment/build mechanism;
  • whether VPS builds locally, pulls image, or uses prebuilt .output;
  • whether host auto-snapshot affects git state;
  • how to trigger build safely;
  • how to deploy safely;
  • whether deployment requires container restart;
  • how route smoke should be performed;
  • where logs are stored;
  • rollback path for two commits.

2. Build/typecheck verification

Design/execute the safest available verification path:

  • build/typecheck using existing project mechanism;
  • no package install unless explicitly approved;
  • no secret printing;
  • verify server import from relations.get.ts;
  • verify generated artifact import in client/SSR/server contexts.

If build environment is not available, report BLOCKED and recommend a tooling/build pack.

3. Deploy boundary

Unlike Phase 1B, this next pack may need deployment, but deploy must be explicitly controlled.

Prompt must distinguish:

build_verify_only
build_plus_deploy
build_plus_deploy_plus_live_smoke

Opus should recommend the safest minimal scope.

GPT preliminary preference:

First draft should allow build/typecheck verification and prepare deploy/smoke steps, but require explicit GPT/User approval before actual deploy if deployment has restart/user-facing impact.

4. Route smoke targets

Smoke after deploy should include:

  • existing registry routes previously covered by tableIdMap;
  • non-registry pages affected by collection maps;
  • relations.get.ts endpoint;
  • avoid event_outbox publish in this pack unless explicitly approved.

For event_outbox:

  • it remains draft;
  • smoke behavior must be designed carefully;
  • do not publish in D28_DEPLOY_BUILD_VERIFY_PACK unless User/GPT explicitly adds Phase 1C scope.

5. Report fields

Require report fields:

phase_status=PASS|PARTIAL|FAIL|BLOCKED
build_verify_status=PASS|FAIL|BLOCKED|NOT_AVAILABLE
typecheck_status=PASS|FAIL|BLOCKED|NOT_AVAILABLE
server_import_verify=PASS|FAIL|BLOCKED
client_import_verify=PASS|FAIL|BLOCKED
ssr_import_verify=PASS|FAIL|BLOCKED
deploy_performed=true|false
container_restart_performed=true|false
live_route_smoke_status=PASS|FAIL|SKIPPED
routes_smoked_count=<number>
relations_endpoint_smoke=PASS|FAIL|SKIPPED
secret_leak_check=PASS|FAIL
rollback_plan=PASS|FAIL
rollback_commits=d2db418,0947613
no_directus_mutation=true
no_pg_mutation=true
no_publish_event_outbox=true
next_required_pack=P3D4C2U_RESUME_NOTIFICATION_DISPLAY|D28_BUILD_TOOLING_FIX|D28_GENERATED_MAP_FIX|BLOCKED

Hard boundaries for next prompt draft

Until GPT/User approves the next prompt:

  • do not deploy;
  • do not live smoke;
  • do not publish tbl_event_outbox;
  • do not mutate Directus;
  • do not mutate PG;
  • do not fix tbl_modules_list.collection;
  • do not add entity_type;
  • do not change generated map design beyond bug fixes.

Sequence after next pack

If D28_DEPLOY_BUILD_VERIFY_PACK passes, then resume P3D Phase 1C:

  1. decide safe handling for tbl_event_outbox draft route smoke;
  2. publish tbl_event_outbox if approved;
  3. live route smoke /knowledge/registries/event_outbox;
  4. complete notification display checkpoint;
  5. return to information-unit/text-as-code roadmap.

Current state

phase1b_status=PARTIAL
generated_map_commits=0947613,d2db418
rollback_command=git revert d2db418 0947613 --no-edit
tbl_event_outbox.status=draft
notification_display=paused
p3d_resume_allowed=false

Final status

agent_report=ACCEPTED
opus_review=ACCEPTED
deviations=ACCEPTED_WITH_FOLLOW_UPS
next_action=OPUS_DRAFT_D28_DEPLOY_BUILD_VERIFY_PACK_PROMPT
agent_dispatch_allowed=false_until_prompt_review
p3d_resume_allowed=false
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-d28-phase1b-partial-success-and-next-pack-directive-2026-05-10.md