Agent Prompt — DIEU-32 NULL Heading Body Root-Cause Investigation — READ ONLY — 2026-05-14
Agent Prompt — DIEU-32 NULL Heading Body Root-Cause Investigation — READ ONLY — 2026-05-14
Mission
Investigate the root cause of DIEU-32 R2 block before GPT decides the migration policy for 4 heading rows with tac_unit_version.body IS NULL.
Do not assume DIEU-32 is a bad source or defective law. Historical evidence says DIEU-32 was inserted into TAC and rendered back to the original with 0 content drift. Determine whether NULL body is intentional TAC heading/container modeling, an insert-package bug, a TAC→IU model gap, or data loss/drift.
Hard boundaries
READ ONLY ONLY.
Forbidden:
No DB writes.
No DDL/DML.
No TAC update.
No IU create/update/delete.
No fn_iu_create.
No content repair.
No KB source patch.
No code change.
No UI/vector work.
No migration retry.
Allowed:
Read KB docs.
Run SELECT-only SQL.
Render/read current TAC output if render query is SELECT-only.
Compare original KB law to current TAC render/output.
Create one KB report.
Read first
- GPT review requiring root cause:
knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-r1-r2-results-dieu32-root-cause-required-before-policy-2026-05-14.md - DIEU-32 block report:
knowledge/dev/laws/dieu44-trien-khai/reports/p3d-phase5c2-r2-dieu32-pilot-migration-execution-report.md - Consolidated R1/R2 report:
knowledge/dev/laws/dieu44-trien-khai/reports/p3d-phase5c2-r1-r2-consolidated-status-report.md - Historical DIEU-32 segmentation candidate:
knowledge/dev/laws/dieu38-trien-khai/reports/p10b-1a-d32-segmentation-candidate-2026-04-29.md - Historical DIEU-32 execute/render report:
knowledge/dev/laws/dieu38-trien-khai/reports/p10b-1c-d32-execute-report-2026-04-29.md - Historical PF/execute prompt if useful:
knowledge/dev/reports/gpt-review-p10b-1c-execute-prompt-after-pf-transaction-discovery-2026-04-29.md - Original law if available:
knowledge/dev/laws/dieu32-approval-law.md
Search KB for related D32 package artifacts:
P10B-1B D32 insert package
P10B-1C D32 render raw tree report rollback instructions
D38-DIEU32-ROOT body NULL heading
Required investigation
A. Current TAC live state
Read-only query DIEU-32 current TAC rows and report:
- 23 rows in render_order.
- canonical_address, section_type, title, body_is_null, body_char_count, render_order, parent, depth.
- exactly which rows have body NULL.
- whether NULL rows are all heading/container rows.
- whether other heading rows have non-null body in D28/D35 for comparison.
B. Historical intent
From historical segmentation and execute/render report, determine:
- Was ROOT/S2/S3/S4 modeled as heading/container intentionally?
- Did render rules use title as visible content for heading rows?
- Did 0 drift rely on title rendering rather than body rendering?
- Was body NULL/empty documented or merely hidden by render?
C. Original law comparison
If knowledge/dev/laws/dieu32-approval-law.md is available, compare current TAC render to original source, read-only:
- Does current TAC render still match original or normalized source?
- Do the visible headings ROOT/S2/S3/S4 appear in the reconstructed output?
- Are any textual contents missing from current TAC, or only represented in title rather than body?
If original law is unavailable, say so and rely on historical P10B-1C 0-drift evidence.
D. Model classification
Classify root cause exactly one primary and optional secondary:
INTENTIONAL_TAC_HEADING_CONTAINER
TAC_INSERT_PACKAGE_BUG
TAC_TO_IU_MODEL_GAP
DATA_LOSS_OR_DRIFT
UNKNOWN_NEEDS_MORE_EVIDENCE
E. Policy recommendation
Recommend one of:
POLICY_SYNTHESIZE_TITLE_FOR_HEADING_NULL_BODY
POLICY_FIX_TAC_UPSTREAM_BODY_FIRST
POLICY_PATCH_FN_IU_CREATE_ALLOW_NULL_HEADING
POLICY_SKIP_HEADING_ROWS
POLICY_BLOCK_AND_ESCALATE
For recommended policy, specify:
- Why it preserves the law correctly.
- Whether it violates source preservation.
- How to mark provenance.
- How V-3 should be adjusted.
- Whether it should be general for
section_type='heading'or only DIEU-32. - Risk to future automated cutter.
Required report path
Create exactly one report:
knowledge/dev/laws/dieu44-trien-khai/reports/dieu32-null-heading-body-root-cause-investigation-report.md
Required final response fields
dieu32_root_cause_investigation_status=PASS|PARTIAL|BLOCKED
no_mutation_performed=true|false
current_tac_rows=23
null_body_rows=<N>
null_body_rows_all_heading=true|false|unknown
historical_roundtrip_zero_drift_confirmed=true|false|unknown
original_law_available=true|false
current_render_matches_original=true|false|unknown
root_cause_classification=<one enum>
recommended_policy=<one enum>
synthesize_title_allowed=true|false|unknown
fix_tac_upstream_required=true|false|unknown
data_loss_detected=true|false|unknown
dieu32_retry_recommended=true|false
v3_policy_patch_required=true|false
report_path=knowledge/dev/laws/dieu44-trien-khai/reports/dieu32-null-heading-body-root-cause-investigation-report.md
next_recommended_action=GPT_REVIEW_ROOT_CAUSE_THEN_DECIDE_DIEU32_RETRY_POLICY
Notes
Be strict. Historical 0-drift is strong evidence but not a substitute for current live verification if current source/render is available. Do not call it a data-quality issue unless evidence shows actual data loss or broken render. If the issue is only that IU requires body but TAC heading containers store visible content in title, classify as model gap, not bad law.