KB-61D9

GPT Review — P3D Pack1 Phase5B Design Partial Accept; Prompt DRAFT Not Approved

8 min read Revision 1
gpt-reviewp3dpack1phase5bdesignprompt-not-approvedd3-hybrid2026-05-11

GPT Review — P3D Pack 1 Phase 5B Design Partial Accept; Prompt DRAFT Not Approved

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

  • knowledge/dev/laws/dieu44-trien-khai/design/p3d-pack1-phase5b-hybrid-nesting-species-pilot-migration-design.md
  • knowledge/dev/laws/dieu44-trien-khai/prompts/p3d-pack1-phase5b-hybrid-pilot-migration-implementation-prompt-DRAFT.md
  • knowledge/dev/laws/dieu44-trien-khai/reports/p3d-pack1-phase5b-design-and-draft-prompt-report.md

Verdict

Phase 5B design direction: ACCEPTED WITH CORRECTIONS.

Phase 5C execution prompt DRAFT: NOT APPROVED.

Opus correctly continued from Phase 5A PASS, used D3 HYBRID as the recommended strategy, and identified the right open questions. However, the DRAFT prompt is still too execution-shaped and contains hardcoded counts/columns/SQL assumptions that must be removed before it can become a dispatchable rev1.

Decisions accepted by GPT

1. D3 HYBRID accepted

Use D3 HYBRID as the working migration strategy:

IU rows remain atomic text units.
TAC hierarchy is preserved as metadata first, edges later.
parent_or_container_ref stays NULL during pilot migration.

2. D3a primary accepted for pilot

Use identity_profile JSON as the primary hierarchy carrier for the pilot. Defer universal_edges enrichment to a later pack.

Reason: lower blast radius, no edge-governance dependency, clear rollback, still preserves enough hierarchy for render-fidelity testing.

3. D3c rejected

Do not use parent_or_container_ref as a "pointer-only" carrier. At DB level it is indistinguishable from containment and would rot into D1.

4. Composition = atom accepted for Phase 5C pilot

GPT accepts the convention:

unit_version/subordinate records do not count as contained domain entities for Điều 0-B composition.

Therefore, under D3a pilot, migrated IU rows can be treated as atomic text units.

5. Keep governance_role observed during pilot

Do not promote information_unit to governed before the pilot.

6. Defer universal_edges and IU publication_member table

For the pilot, use identity_profile keys for publication membership and hierarchy. Design proper IU publication membership / typed edges later after pilot evidence.

DIEU-35 is the right pilot candidate for the next execution design because it has the highest diversity evidence from Phase 5A.

Decisions NOT accepted yet

1. New species creation is not approved as-written

Opus proposes information_unit_atom / SPE-IUA. GPT accepts the idea of a new species as likely, but does not approve the exact species code/name/prefix/tree placement yet.

Reason: entity_species schema and taxonomy placement must be handled by QT-005 with live field introspection. The prompt must not hardcode insert columns or assume parent species.

2. Same-species backfill for 12 existing IU rows is not approved as executable yet

Directionally plausible, but must be designed as a QT-001 step with live target selection and exact-key capture. No ad-hoc hardcoded Expected: 12 gate in executable prompt.

3. Single dispatch containing species seed + backfill + migration is not approved yet

It may be possible, but the current draft is too broad. GPT prefers a staged execution design:

Phase 5C1: QT-005 species/mapping prep + QT-001 backfill
Phase 5C2: DIEU-35 pilot migration

They can be separate Agent dispatches, or one orchestrated dispatch with hard STOP between stages, but the design must make the boundary explicit.

Prompt DRAFT blockers

1. Hardcoded counts used as gates

The DRAFT uses historical counts as executable expectations:

DIEU-35 members = 36
section_types = 12
backfill expected = 12
render_order max = 35

These are valid Phase 5A evidence, but executable gates must derive live counts from source sets during run.

Correct pattern:

source_set_count = SELECT count(*) FROM live resolved pilot source set
assert inserted_count = source_set_count
render_order expected = live min/max/count/distinct from source set
backfill_target_count = SELECT count(*) FROM live backfill target set

No fixed numeric gate.

2. SQL assumes column names despite semantic registry history

The DRAFT uses illustrative fields like:

collection_name
species_code
composition_level
status
depth
parent_id
prefix
kg_metadata
content_hash
body
identity_profile

Some are likely correct, but dispatch prompt must not assume them. It must use semantic registry / live introspection for execution tables too, especially entity_species, species_collection_map, birth_registry, information_unit, unit_version.

3. Species INSERT is not QT-005-safe

The DRAFT sketches direct INSERT INTO entity_species (...) VALUES (...). That is not dispatch-safe unless the schema is introspected, required fields are known, and QT-005 acceptance criteria are explicit.

4. Backfill SQL is too casual

The DRAFT includes fallback SQL that updates birth_registry directly. This must be converted into a guarded QT-001 execution pattern:

  • read-only target discovery;
  • exact target capture;
  • verify mapping exists;
  • update only captured keys;
  • verify all captured keys updated;
  • rollback using captured keys only.

5. publication_authority_ref unresolved placeholder is a hard blocker

Do not dispatch until this value/source is resolved. It is a birth-gate-required identity_profile key. It must come from either live lookup or an explicit Pack-level scope constant approved by GPT/User.

6. Rollback capture target unresolved

A migration prompt cannot be dispatch-ready without choosing rollback persistence.

GPT default: Agent writes rollback key artifact to KB/report and local VPS log; no new control table in this pack.

7. Phase naming is confusing

The prompt is titled Phase 5B → 5C but includes species seed, backfill, and pilot migration. For clarity, split into design/prompt boundaries:

5B = design only
5C1 = species/mapping/backfill executable prompt
5C2 = DIEU-35 pilot migration executable prompt

Or produce a single 5C prompt with two explicit STOP gates.

GPT decisions for Opus to use in patch

Use these decisions when patching:

nesting_strategy = D3_HYBRID
hierarchy_carrier_primary = identity_profile_json
hierarchy_carrier_secondary = universal_edges_deferred
parent_or_container_ref_for_pilot = NULL
composition_for_pilot = atom
unit_version_counts_as_containment = false
pilot_publication = DIEU-35
pilot_selection_reason = highest Phase5A diversity evidence
collection_governance_role_change = defer_keep_observed
uv_species_mapping = no_for_now
universal_edges_enrichment = defer_to_post_pilot
iu_publication_member_table = defer_to_post_pilot
rollback_capture = KB/report_artifact_plus_VPS_log_no_new_control_table

Species decision remains:

new_information_unit_atom_species = likely_but_needs_QT005_design_with_live_schema
exact_species_code_name_prefix_parent = not_locked

Required next action

Open:

P3D_PACK1_PHASE5B_REV2_DESIGN_PATCH_AND_EXECUTION_PROMPT_SPLIT

Opus must patch Phase 5B design and rewrite the DRAFT prompt into two DRAFT prompts or one staged prompt with STOP gates.

GPT recommends two DRAFT prompts:

  1. Phase 5C1 — QT-005 species/mapping prep + QT-001 backfill for existing IU rows.
  2. Phase 5C2 — DIEU-35 pilot migration using D3a hybrid.

Neither prompt should be dispatch-ready yet.

Status

phase5b_design=ACCEPTED_DIRECTIONALLY_WITH_CORRECTIONS
phase5b_prompt_draft=NOT_APPROVED
nesting_decision=D3_HYBRID_ACCEPTED
composition_for_pilot=ATOM_ACCEPTED
migration_allowed=false
seed_allowed=false
backfill_allowed=false
agent_dispatch_allowed=false
next_action=OPUS_PATCH_PHASE5B_DESIGN_AND_SPLIT_EXECUTION_PROMPTS_DRAFT
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-p3d-pack1-phase5b-design-partial-accept-prompt-draft-not-approved-2026-05-11.md