KB-5BA3

GPT Root Cause — Birth Process Search Miss / QT-001 vs QT-002

7 min read Revision 1
gpt-reviewroot-causebirth-processqt-001qt-002search-missdieu4dieu43pack-2a

GPT Root Cause — Birth Process Search Miss / QT-001 vs QT-002

Date: 2026-05-04 Reviewer: GPT-5.5 Thinking / Incomex Hội đồng AI Trigger: User noted there are two clearly defined birth processes: pre-birth and post-birth/backfill; previous GPT/Opus/Agent did not surface them.

Documents found and checked

  1. knowledge/ops/processes/birth-process-v1.md rev 1 — direct hit for QT-001 and QT-002.
  2. knowledge/dev/architecture/birth-registry-law.md rev 1 — Điều 0-G Birth Registry Law.
  3. knowledge/dev/architecture/entity-lifecycle.md rev 11 — Entity Lifecycle / no direct create.
  4. knowledge/dev/laws/law-04-birth-process.md rev 5 — Điều 4 Birth Process + Description Guard.
  5. knowledge/current-state/reports/du-thao-description-governance-package-fix27.md rev 3 — Description Governance Package.

Correct process model

There are two separate birth processes:

QT-002 — Khai sinh trước, sinh sau

For new governed entities. The birth record is created first, then the source entity is inserted. If source insert fails, rollback birth record. This is the intended future/default process.

QT-001 — Nhập khai sinh / backfill for already existing entities

For entities/tables created before birth governance was complete. Process:

  1. Check collection has species mapping.
  2. Check collection is in collection_registry as governed.
  3. Check birth trigger exists.
  4. Count source vs birth_registry.
  5. Run dot-birth-backfill --collection=<collection>.
  6. Verify counts match.
  7. Run inspect tools.

Current Pack 2A mapping

Pack 2A is not pure QT-002, because information_unit and unit_version already exist as PG tables from Pack 1.

It is closer to a governance-registration/backfill-preparation case:

  • The collection objects exist physically.
  • They are missing collection_registry/birth_registry/meta_catalog/directus_collections.
  • Since IU tables have 0 data rows, there are no IU entity rows to backfill into birth_registry yet.
  • The collection_registry registration rows themselves will be born via collection_registry triggers when dot-collection-register inserts them.
  • If later IU data rows are created, Pack 2B must follow the appropriate birth process for data rows.

Important nuance: QT-001 says backfill applies to a governed collection with species mapping and birth trigger. File 12 currently chooses governance_role=observed, species skipped. Therefore it is not running full QT-001 backfill; it is a pilot/readiness registration step. That must be explicit.

Why previous search/review missed it

This was not because the document is absent. A targeted search for "sinh rồi mới khai" "khai trước khi sinh" found knowledge/ops/processes/birth-process-v1.md immediately.

The miss happened because:

  1. Search anchoring was wrong. We searched mostly for Đ4, Đ35, Đ36, collection_registry, trigger guard, description. We did not search operational process terms: QT-001, QT-002, birth-first, backfill, nhập khai sinh, sinh rồi mới khai.

  2. Law vs process split. Đ4 contains the high-level law and description guard, but the concrete dual procedure lives under knowledge/ops/processes/birth-process-v1.md, not inside Đ4 itself. Reviewers read the law but missed the ops process document.

  3. Context Graph Gate current implementation is still too coarse. Reading PROJECT_MAP/LAWS_INDEX/DOT_REGISTRY/DB_MAP/RED_ZONES is necessary but not sufficient if the design also needs process-level documents from knowledge/ops/processes/* and architecture docs.

  4. Domain resolver lacks process resolver. It asks “which laws and DOTs govern this?” but not yet “which operational procedure applies: QT-001 or QT-002?”

  5. Agent discovery prompt was too narrow. It checked tool contracts and runtime state, but did not ask for birth process classification or search for birth-process-v1.md / QT-001/QT-002.

  6. Review accepted observed pilot state without reconciling with QT-001 preconditions. This is not necessarily wrong, but it must be stated as “Pack 2A is readiness registration, not full QT-001 backfill.”

Severity

High.

The issue is not a single mistaken technical choice. It exposes a retrieval/governance gap: relevant process documents are findable but not guaranteed to be pulled into the decision path.

Required correction to workflow

Extend Context Graph Gate into Context Graph + Process Gate (CGPG) for any non-trivial design:

  1. Context graph: PROJECT_MAP, LAWS_INDEX, DOT_REGISTRY, DB_MAP, RED_ZONES.
  2. Law resolver: governing laws.
  3. Process resolver: search ops/processes and architecture docs for applicable named procedures.
  4. Tool resolver: DOT/scripts.
  5. Runtime resolver: PG/Directus state.
  6. Unknown resolver: read-only discovery if any step uncertain.

For birth/registry work, Process Resolver must explicitly classify:

  • QT-001 Backfill — existing entity/collection.
  • QT-002 Birth-first — new governed entity.
  • Readiness registration only — if not yet governed/production and no data rows exist.

Immediate implication for Pack 2A

Do not dispatch Pack 2A based on file 12 rev3 until this classification is reflected.

Opus should patch design with one compact correction:

  1. Create 12c-iu0-pack2a-birth-process-classification.md.
  2. Patch file 12 to rev4 adding a Birth Process Classification section.

Required content:

  • Cite knowledge/ops/processes/birth-process-v1.md.
  • State Pack 2A is not QT-002 (tables already exist).
  • State Pack 2A is not full QT-001 backfill because IU tables have 0 rows, governance_role is observed, and species mapping is intentionally deferred.
  • Classify Pack 2A as “readiness governance registration for already-created PG tables with zero data rows,” preparatory to later QT-002/QT-001 decisions.
  • Add STOP condition: if preflight finds IU tables contain >0 rows, do not proceed; reclassify into QT-001/backfill analysis.
  • Add follow-up: before Pack 2B creates IU data rows, design must choose proper birth path and cannot bypass birth process.

Final root cause sentence

The document was findable. The failure was that our gate resolved laws/tools but did not resolve named operational procedures. The next gate must require a Process Resolver, not only a Law Resolver.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-root-cause-birth-process-search-miss-2026-05-04.md