KB-4A85

GPT Final Approval — D28 Deploy Live Smoke Prompt Rev5 — Stage1 Rerun Only

5 min read Revision 1
gpt-reviewfinal-approvaldieu28deploystage1rev5service-name-rule

GPT Final Approval — D28 Deploy + Live Smoke Prompt rev5 — Stage 1 Re-run Only

Date: 2026-05-10
Reviewer: GPT-5.5 Thinking / Incomex Hội đồng AI
Reviewed: knowledge/dev/laws/dieu28-trien-khai/prompts/d28-deploy-and-live-smoke-prompt-review.md rev5

Verdict

APPROVED FOR STAGE 1 CLEAN RE-RUN ONLY.

Rev5 correctly fixes the service-name drift discovered in Stage 1 rev2 and adds the needed substitution discipline.

This approval authorizes only:

RUN_STAGE=1_PREFLIGHT_ONLY

It does not authorize Stage 2 deployment/live-smoke.

Accepted rev5 fixes

Rev5 correctly includes:

  • SERVICE_NAME_RULE distinguishing:
    • Compose service name = nuxt;
    • container name = incomex-nuxt.
  • all docker compose <verb> <name> calls use nuxt.
  • raw Docker command distinction is documented.
  • NO_UNDECLARED_SUBSTITUTION=true hard boundary.
  • expected behavior when prompt command fails:
    • STOP;
    • report drift;
    • no workaround / no fall-through.
  • Stage 1 report fields:
    • compose_service_name=nuxt;
    • container_name=incomex-nuxt;
    • service_name_rule_applied=true;
    • undeclared_substitution_used=false.
  • Stage 2 report fields for service-name binding.
  • Stage 1 outcome routing explicitly rejects carry-forward from a run with undeclared substitution.
  • Stage 2 Phase 1A verifies rev5 cleanliness before mutation.
  • header/title correctly updated to Rev5.

Patch verification

The seven affected compose-service call sites have been corrected in rev5:

0D: docker compose ps nuxt
0G: docker compose ... port nuxt 3000
1B: docker compose ... ps nuxt --format '{{.Image}}'
1F: docker compose up -d nuxt
1G: docker compose ... ps nuxt --format '{{.State}}'
1H: docker compose ... logs --tail=50 nuxt
3B: docker compose up -d nuxt

This resolves the prior drift:

wrong: docker compose ... incomex-nuxt
right: docker compose ... nuxt

Stage 1 dispatch instruction

Đọc và thực hiện prompt:

knowledge/dev/laws/dieu28-trien-khai/prompts/d28-deploy-and-live-smoke-prompt-review.md

Run only:
RUN_STAGE=1_PREFLIGHT_ONLY

Purpose:
Clean re-run Stage 1 under rev5 service-name rule.

Expected report:
knowledge/dev/laws/dieu28-trien-khai/reports/d28-deploy-and-live-smoke-stage1-preflight-report.md

Critical instruction to Agent

The previous Stage 1 report rev2 is accepted as discovery evidence only. It is not the final Stage 1 baseline.

Agent must produce a new clean Stage 1 report under rev5 with:

preflight_status=PASS
service_name_rule_applied=true
undeclared_substitution_used=false
drift_detected=false
compose_service_name=nuxt
container_name=incomex-nuxt
status=AWAITING_DEPLOY_APPROVAL

If any prompt command fails due to service/file/image drift, Agent must STOP and report. No silent workaround.

Stage 1 hard boundaries

Agent must preserve:

no_deploy=true
no_smoke=true
no_image_tag_created=true
no_backup_image_tag_created=true
no_compose_modified=true
no_container_restarted=true
no_file_writes_outside_temp=true
no_directus_mutation=true
no_pg_mutation=true
no_publish_event_outbox=true
no_table_registry_mutation=true
no_docker_tag=true
no_docker_build=true
no_docker_run=true
no_docker_up=true
no_docker_restart=true
no_docker_logs=true
no_undeclared_substitution=true

Stage 1 allowed Docker operations only:

docker compose ps nuxt
docker compose config
docker compose port nuxt 3000
docker inspect redacted if needed
docker images for backup-tag conflict check

Do not do

  • Do not run Stage 2.
  • Do not deploy.
  • Do not build a production image.
  • Do not create backup image tag.
  • Do not modify docker-compose.yml.
  • Do not restart containers.
  • Do not smoke routes.
  • Do not publish tbl_event_outbox.
  • Do not mutate Directus.
  • Do not mutate PG.
  • Do not mutate table_registry.
  • Do not resume P3D.

After clean Stage 1 report

GPT/User must review the new Stage 1 report.

Only then can Stage 2 approval phrase be constructed using the new rev5 Stage 1 values:

proposed_new_image_tag
proposed_backup_image_tag
proposed_compose_backup_path
current_production_image

Stage 2 remains unauthorized until explicit approval.

Current state

prompt_rev5=APPROVED_FOR_STAGE1_CLEAN_RERUN_ONLY
previous_stage1_rev2=DISCOVERY_ONLY_NOT_FINAL_BASELINE
stage1_rerun_required=true
stage2_deploy_allowed=false
build_verify_status=PASS
generated_map_commits=0947613,d2db418
tbl_event_outbox.status=draft
notification_display=paused
p3d_resume_allowed=false

Final status

agent_dispatch_allowed_for_stage1=true
agent_dispatch_allowed_for_stage2=false
deploy_allowed=false
live_route_smoke_allowed=false
p3d_resume_allowed=false
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-final-approval-d28-deploy-live-smoke-prompt-rev5-stage1-rerun-2026-05-10.md