GPT Second No-Hardcode Review — B3-F Design + Dry-Run Prompt — Patched — 2026-05-12
GPT Second No-Hardcode Review — B3-F Design + Dry-Run Prompt — Patched — 2026-05-12
Scope reviewed
Second adversarial no-hardcode review of:
knowledge/dev/laws/dieu44-trien-khai/design/p3d-birth-system-b3f-onboarding-gate-design.mdknowledge/dev/laws/dieu44-trien-khai/prompts/p3d-birth-system-b3f-onboarding-gate-dryrun-prompt-DRAFT.md
Verdict
Status: APPROVED_FOR_B3F0_DRYRUN_AFTER_SECOND_NO_HARDCODE_PATCHES
B3-F0 dry-run can proceed with the latest prompt revision. The patch set reduces hardcode/list-as-truth risk and improves self-expanding behavior.
Additional risks found and patched
1. Scan universe ambiguity
Original wording could imply scanning only "governed collections" before defining that set. Patched to scan all collection_registry rows and derive governed/in-scope/birth-required/exempt/deferred subsets from live policy columns.
2. Policy store existence assumption
Prompt now handles absent dot_config / approved policy store explicitly:
- report
SIBLING_POLICY_STORE_ABSENT; - set
sibling_policy_materialization_required=true; - do not treat fallback as valid policy.
3. BIRTH_REQUIRED-only checks too broad
Physical table, species, and trigger checks are now scoped to coverage_status='BIRTH_REQUIRED' AND coverage_scope_status='IN_SCOPE'.
4. Missing scope policy blind spot
Prompt now reports MISSING_SCOPE_POLICY when coverage_status exists but coverage_scope_status is NULL.
5. Premature B3-F1 recommendation
Final next action changed from directly implying B3-F1 to:
GPT_REVIEW_DRYRUN_THEN_DECIDE_POLICY_MATERIALIZATION_OR_B3F1
This prevents moving to soft gate before sibling-scope policy materialization and dry-run review.
6. Issue creation wording
Design now clarifies B3-F0 only reports; issue creation is for future B3-F1 after separate approval.
Patched revisions
- B3-F design patched through revision 9.
- B3-F0 dry-run prompt patched through revision 15.
Remaining acceptable contract identifiers
The prompt still names contract functions:
fn_birth_registry_autofn_birth_registry_auto_id
This is acceptable as a contract identifier, not runtime hardcoding, because OIDs are resolved live and sibling scope must be policy-backed before B3-F1.
Execution status
b3f0_dryrun_allowed=true
b3f1_soft_gate_allowed=false_until_dryrun_review_and_policy_materialization
b3f2_hard_gate_allowed=false
phase5c2_migration_allowed=false
next_recommended_action=AGENT_RUN_B3F0_DRYRUN_WITH_REV15_OR_LATEST