GPT Directive to Opus — P3D Pack1 Phase5 Dry-Run Prompt rev2 Field-Adaptive
GPT Directive to Opus — P3D Pack 1 Phase 5 Dry-Run Prompt rev2: Field-Adaptive, No Fuzzy Selectors
Date: 2026-05-11 Issuer: GPT-5.5 Thinking / Incomex Hội đồng AI Receiver: Opus 4.6/4.7 Mode: PATCH DRY-RUN PROMPT ONLY — no execution
0. Verdict
Phase 5 design direction is accepted. Dry-run prompt rev1 is not approved for dispatch because it still has field-level hardcode and fuzzy selector language.
Patch prompt to rev2.
1. Required reading
knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-p3d-pack1-phase5-design-ok-prompt-not-approved-field-fuzzy-2026-05-11.md
knowledge/dev/laws/dieu44-trien-khai/prompts/p3d-pack1-phase5-readonly-dryrun-tac-to-iu-migration-prompt.md
knowledge/dev/laws/dieu44-trien-khai/design/p3d-pack1-phase5-tac-to-iu-migration-design.md
knowledge/dev/laws/dieu44-trien-khai/reports/p3d-pack1-phase5-tac-to-iu-migration-design-report.md
2. Target outputs
Patch prompt in place:
knowledge/dev/laws/dieu44-trien-khai/prompts/p3d-pack1-phase5-readonly-dryrun-tac-to-iu-migration-prompt.md
Create patch report:
knowledge/dev/laws/dieu44-trien-khai/reports/p3d-pack1-phase5-dryrun-prompt-rev2-field-adaptive-patch-report.md
3. Required rev2 fixes
3.1 Clarify scope vs semantic candidate fields
Keep §0 scope constants, but clarify:
- scope constants are Pack 1 target/source family identifiers;
- semantic field labels may appear only as candidate fields to verify via introspection;
- no actual field existence or value may be assumed.
3.2 Add a semantic candidate field registry
Add a section listing semantic concepts and candidate labels, for example:
canonical_address concept → candidates: canonical_address, canonical_ref, address
parent concept → candidates: parent_id, parent_ref, parent_or_container_ref, container_ref
body/content concept → candidates: body, content, content_body
hash concept → candidates: content_hash, hash, body_hash
profile/provenance concept → candidates: content_profile, provenance, metadata
ordering concept → candidates: render_order, sort_order, position, ordinal
This is acceptable if explicitly labelled as candidate labels, not expected fields.
3.3 Add deterministic field-resolution rules
For every semantic concept:
- if exactly one candidate column exists → use it;
- if zero candidates exist → report
FIELD_ABSENTand skip dependent query; - if more than one candidate exists → report
AMBIGUOUS_FIELDand do not choose silently; - never use fuzzy “similar”.
3.4 Fix G5 canonical-address collision check
Remove “canonical_address or similar”. Use the semantic candidate registry + deterministic resolution rules.
3.5 Fix G6 hash/provenance projection
Use semantic field resolution for body/hash/profile fields. If required fields are absent or ambiguous, output UNKNOWN/FIELD_ABSENT, not a guessed projection.
3.6 Fix G7 species/composition options
Do not ask Agent to decide “simplest” or “allows containment”. Instead:
- list live composition levels from
entity_species; - list species candidates grouped by live composition level and management/governance match;
- label all as
candidate_not_approved; - leave interpretation against Điều 0-B to GPT/User after report.
3.7 Bound G8/G9 function-source analysis
Require Agent to output:
- function identity/signature;
- detected parameter names;
- trigger names/events;
- raw/summary evidence;
UNKNOWNfor any inferred check that cannot be determined deterministically.
Do not allow unsupported policy claims from source interpretation.
3.8 Add ambiguity/skip rules per goal
Each goal must include how to handle:
- missing field;
- ambiguous field;
- missing table/function;
- multiple link candidates.
4. Hard boundaries
- No agent dispatch.
- No DB write.
- No migration.
- No seed.
- No backfill.
- No DDL.
- No function/trigger patch.
- No species/composition decision locked.
5. Expected Opus response
Return only:
- Patched prompt path.
- Patch report path.
- Top 7 fixes from rev1.
- Confirmation no design decision was locked.
- Confirmation GPT/User review required before dispatch.
6. Status
phase5_dryrun_prompt_rev1=not_approved
phase5_dryrun_prompt_rev2_patch_allowed=true
agent_dispatch_allowed=false
migration_allowed=false
seed_allowed=false
backfill_allowed=false