KB-40BE
P3D Pack 1 Phase 5C1A — Probe Prompt rev2 Patch Report
3 min read Revision 1
p3dpack1phase5c1areportprobe-rev2introspection-first
P3D Pack 1 Phase 5C1A — Probe Prompt rev2 Introspection-First Patch Report
Date: 2026-05-11 Author: Opus 4.7 Mode: PROBE PROMPT PATCH ONLY — no execution
1. Status flags
phase5c1a_probe_rev2_status = PASS
mode = PROBE_PROMPT_PATCH_ONLY
probe_rev1_problem = assumed_column_names_before_introspection
probe_rev2_fix = 3_phase_introspect_resolve_then_query
agent_dispatch_allowed = false_until_GPT_USER_GO
seed_allowed = false
backfill_allowed = false
migration_allowed = false
2. What was wrong with rev1
Rev1 dùng literal column names (species_code, code, display_name, depth, parent_id, collection_name) trực tiếp trong Q6–Q12 — nhưng mục đích của probe CHÍNH LÀ xác minh các column đó có tồn tại không. Dùng chúng trước khi verify = assume trước khi introspect. Mâu thuẫn logic.
3. Rev2 fix: 3-phase execution
| Phase | What | Uses assumed columns? |
|---|---|---|
| Phase 1 (Q1–Q5) | Schema introspection via information_schema only |
NO — information_schema.columns is a PG system view, no assumptions |
| Phase 2 | Concept→column resolution with candidate matching | NO — matches Phase 1 output against candidate list |
| Phase 3 (Q6–Q12) | Evidence queries using ONLY resolved column names | NO — every column reference comes from Phase 2 resolution |
Resolution rules (same pattern proven in Phase 5A semantic registry):
- 0 candidates match → FIELD_ABSENT
- 1 candidate matches → RESOLVED
-
1 candidates match → AMBIGUOUS_FIELD
If a concept is not RESOLVED → dependent Phase 3 query reports UNKNOWN instead of guessing.
4. Specific fixes
| Rev1 problem | Rev2 fix |
|---|---|
Q6 uses species_code, code literally |
Q6 uses <species_identifier>, <species_entity_code> from Phase 2 resolution |
Q9 uses depth, parent_id literally |
Q9 uses <species_depth>, <species_parent_ref> — skips to UNKNOWN if not resolved |
| Q10 filters by "semantically covers" | Q10 lists ALL depth-0 rows, candidate_not_approved, no semantic filtering |
Q11 uses collection_name literally |
Q11 uses <mapping_collection_key> |
Q12 uses collection_name, species_code literally |
Q12 uses <birth_collection_key>, <birth_species_identifier> |
| No field map phase | Phase 2 builds explicit resolution table before any data query |
5. Confirmation
✓ Rev2 has 0 assumed column names in Phase 3 queries
✓ All Phase 3 column references trace back to Phase 2 resolution
✓ FIELD_ABSENT / AMBIGUOUS_FIELD → UNKNOWN (not guessed)
✓ Agent still labels all candidates as candidate_not_approved
✓ Dispatch requires GPT/User GO
Phase 5C1A Probe rev2 Patch Report | Introspection-first | 0 assumed columns | 2026-05-11