GPT Final Approval — D28 Stage2 Dispatch Package
GPT Final Approval — D28 Stage 2 Deploy + Live Smoke Dispatch Package
Date: 2026-05-10
Reviewer: GPT-5.5 Thinking / Incomex Hội đồng AI
Reviewed:knowledge/dev/laws/dieu28-trien-khai/prompts/d28-stage2-deploy-live-smoke-dispatch-package.mdrevision 1
Verdict
APPROVED — pending User verbatim approval phrase.
The dispatch package is sufficiently clear, bounded, and execution-ready for Stage 2 deploy + live smoke, provided the User explicitly signs the exact approval phrase.
GPT does not authorize Agent dispatch without the User’s verbatim approval phrase.
What is approved
The package correctly binds Stage 2 to the clean Stage 1 rev3 baseline:
stage1_rev3_outcome=PASS_CLEAN_OUTCOME_A
TS=1778397192
current_production_image=nuxt-ssr-local:s174
new_image_tag=nuxt-ssr-local:d2db418
backup_image_tag=nuxt-ssr-local:pre-d28-rollback-1778397192
compose_backup_path=/opt/incomex/docker/docker-compose.yml.pre-d28-1778397192
It correctly requires:
RUN_STAGE=2_DEPLOY_AND_SMOKE
and the exact deploy approval phrase.
Exact User approval phrase
User must copy/paste exactly:
RUN_STAGE=2_DEPLOY_AND_SMOKE
APPROVE D28 DEPLOY: I authorize deploying commits d2db418 + 0947613 as image nuxt-ssr-local:d2db418 to production with brief service interruption, using rollback image nuxt-ssr-local:pre-d28-rollback-1778397192 and compose backup /opt/incomex/docker/docker-compose.yml.pre-d28-1778397192.
If the phrase is paraphrased or altered, Agent must STOP.
Accepted safety design
The dispatch package correctly includes:
- user-facing warning for production deploy;
- explicit brief 502 / restart risk;
- no Directus mutation;
- no PG mutation;
- no table_registry mutation;
- no
tbl_event_outboxpublish; - no
event_outboxroute smoke; - no P3D resume;
- no auto rollback;
- separate emergency rollback phrase;
- service-name rule reminder:
- Compose service name =
nuxt; - container name =
incomex-nuxt;
- Compose service name =
- TS vs TS_LOG distinction;
- log-safety branching reminder;
- failure handling summary;
- Agent self-check list;
- next pack decision matrix.
Rollback phrase note
Rollback remains separate and must not be included in the initial Stage 2 dispatch.
If needed after failure, rollback phrase is:
APPROVE D28 ROLLBACK: I authorize restoring compose backup /opt/incomex/docker/docker-compose.yml.pre-d28-1778397192 and bringing up incomex-nuxt with the previous image.
Operational command still uses Compose service name nuxt per rev5. The human phrase’s incomex-nuxt wording is acceptable as it refers to the user-facing container identity, but the Agent must execute rollback via docker compose up -d nuxt as specified in rev5.
Dispatch instruction to Opus after User signs
After User provides the exact approval phrase, Opus may dispatch Agent with:
Read and execute:
knowledge/dev/laws/dieu28-trien-khai/prompts/d28-stage2-deploy-live-smoke-dispatch-package.md
Then execute the referenced rev5 prompt:
knowledge/dev/laws/dieu28-trien-khai/prompts/d28-deploy-and-live-smoke-prompt-review.md
Run:
RUN_STAGE=2_DEPLOY_AND_SMOKE
Approval phrase:
APPROVE D28 DEPLOY: I authorize deploying commits d2db418 + 0947613 as image nuxt-ssr-local:d2db418 to production with brief service interruption, using rollback image nuxt-ssr-local:pre-d28-rollback-1778397192 and compose backup /opt/incomex/docker/docker-compose.yml.pre-d28-1778397192.
Expected report:
knowledge/dev/laws/dieu28-trien-khai/reports/d28-deploy-and-live-smoke-stage2-execution-report.md
Stage 2 Agent must not do
- Do not mutate Directus.
- Do not mutate PG.
- Do not mutate table_registry.
- Do not publish
tbl_event_outbox. - Do not smoke
/knowledge/registries/event_outbox. - Do not resume P3D.
- Do not auto rollback.
- Do not silently substitute command arguments.
- Do not print secrets, env URLs, HTTP bodies, raw compose diff, or log tails after scan failure.
Expected successful next step
If Stage 2 PASS, next pack is:
P3D4C2U_RESUME_NOTIFICATION_DISPLAY_PROMPT_REVIEW
This will return to the notification display checkpoint and only then consider publishing/smoking tbl_event_outbox.
Current state
dispatch_package=APPROVED_PENDING_USER_SIGNATURE
user_approval_phrase_signed=false
agent_dispatch_allowed=false_until_user_signature
stage2_deploy_allowed=false_until_user_signature
build_verify_status=PASS
stage1_rev3_status=PASS_CLEAN
prompt_current_rev=5
generated_map_commits=0947613,d2db418
tbl_event_outbox.status=draft
notification_display=paused
p3d_resume_allowed=false
Final status
gpt_review=APPROVED
next_required_action=USER_SIGN_EXACT_APPROVAL_PHRASE
then=OPUS_DISPATCH_AGENT_STAGE2