KB-4DB4

P3D Pack 1 Phase 4D — Species Mapping Decision Memo

10 min read Revision 1
p3dpack1phase4dspecies-decisionmemoevidence-based

P3D Pack 1 Phase 4D — Species Mapping Decision Memo

Date: 2026-05-11 Author: Opus 4.7 Status: DECISION MEMO — no seed, no backfill, no migration Evidence base: Phase 4B discovery + Phase 4C dry-run (both PASS)


A. Executive summary

We have complete evidence. 40 species exist. 8 are PLAUSIBLE by governance_role match. None is a perfect semantic fit for IU. The fundamental blocker is NOT "which species?" — it's "which composition?" — which depends on the Phase 5 nesting decision (preserve TAC parent→child or flatten). Solving species before nesting puts the cart before the horse.


B. Evidence from Phase 4B/4C (labels, not selectors)

  • 40 species live, 153 mappings, 15 collections unmapped (including IU/UV)
  • 8 PLAUSIBLE candidates (management_mode=observed, matching IU's governance_role=observed): 5 atom, 3 molecule
  • fn_birth_registry_auto resolves species via species_collection_map WHERE is_primary=true LIMIT 1, ignores discriminators
  • Discriminator columns exist but are dormant system-wide (0/153 rows populated)
  • IU has 12 birth_registry rows with NULL species/composition
  • UV has 0 birth_registry rows (subordinate, singleton pattern)
  • IU.unit_kind exists, currently only design_doc_section (12 rows). law_unit only in vocab, not live.
  • TAC nesting: 83/86 units have parent_id, max depth=2, structural containment confirmed

C. Decision context split

Context 1 — Current IU pilot (12 rows)

  • unit_kind = design_doc_section (all 12)
  • governance_role = observed
  • parent_or_container_ref = NULL (all 12) → no containment → atom appears correct per Điều 0-B
  • These are pilot/test artifacts, not production law content

Context 2 — Future TAC law_unit migration (86 units, not yet live)

  • Will be first consumer of law_unit unit_kind
  • TAC has real nesting (depth=2, 83/86 have parent) → if preserved in IU, NOT atom
  • Semantic domain = law content → closest existing species is law (compound, governed) from dry-run evidence
  • But IU is observed, law species is governed → governance_role conflict

Context 3 — unit_version

  • birth_code_strategy = subordinate (singleton, no peer pattern)
  • 0 birth_registry rows
  • No species mapping needed unless subordinate strategy changes
  • Low priority — decouple from IU species decision

D. What PLAUSIBLE means and does not mean

Phase 4C used deterministic label: PLAUSIBLE = species.management_mode matches target.governance_role (both observed).

PLAUSIBLE does NOT mean:

  • Semantically correct (governance_infra ≠ law content)
  • Future-safe (if IU promoted to governed, all 8 become CONFLICT)
  • Composition-appropriate (atom may be wrong if nesting preserved)
  • Permanent (any gom mapping is temporary by Điều 29 §III design — gom species are for collections "không quan tâm chi tiết")

E. Option matrix for current 12 IU pilot rows

Option Species (from evidence) Composition Immediate benefit Risk
E1: governance_infra (gom) governance_infra / atom atom Điều 29 compliance for pilot Temporary; creates expectation that IU = governance infra
E2: new dedicated species (new, e.g., information_unit) / atom atom Accurate for pilot; independent of existing species Must decide composition before any nesting evidence
E3: defer pilot mapping none none No wrong classification Điều 29 violation stays open for 12 pilot rows

F. Option matrix for future TAC law_unit rows

Option Species Composition Benefit Risk
F1: governance_infra (gom) governance_infra / atom atom Consistent with pilot WRONG — law content ≠ governance infra; atom wrong if nesting preserved
F2: law species law / compound compound Semantically correct for law content IU is observed, law species is governed → requires QT-005 promotion
F3: new species per unit_kind (new law_unit species) / (TBD composition) depends on nesting Most granular; composition chosen based on evidence Adds species; composition still depends on nesting decision
F4: defer to Phase 5 migration design (assigned during migration) depends on nesting Species assigned when all evidence available (nesting, unit_kind distribution) Điều 29 gap stays open until migration

G. Option matrix for unit_version

Option Description Benefit Risk
G1: no mapping UV is subordinate, 0 birth rows → no species effect Simplest, correct for current state If UV strategy changes, must revisit
G2: inherit from IU species Map UV to same species as IU Consistent Adds mapping row that has no current effect
G3: defer Decide when UV governance changes No premature decision Same as G1 in practice

H. Discriminator dormant consequence

Discriminator-based species resolution (different species per unit_kind within same collection) is architecturally designed but not runtime-active:

  • Schema supports it (4 columns in species_collection_map)
  • fn_birth_registry_auto ignores it (only reads is_primary=true)
  • 0/153 existing rows use discriminators

Consequence: Even with perfect discriminator design, fn_birth_registry_auto would still assign the is_primary=true species to ALL IU rows at birth time. Discriminator-based differentiation requires one of:

  1. Function patch (separate governance pack)
  2. Post-birth DOT correction tool (separate pack)
  3. Migration-time explicit species assignment (built into Phase 5 script)

Discriminator rows can still be seeded as DOCUMENTATION (is_primary=false) for future use.


I. QT-001 backfill implications

Scenario What gets backfilled Complexity
Seed species now, backfill 12 pilot rows 12 rows get species/composition from chosen mapping Low — QT-001 5-step
Defer to Phase 5 12 pilot + 86 migrated = 98 rows in one pass Medium — larger batch but one operation
Seed now, then backfill again at Phase 5 Two rounds of backfill (12 now + 86 later, possibly with different species) High — two operations, possible reclassification

J. Recommendation with risks

The dependency chain

Phase 5 nesting decision (preserve or flatten?)
    → determines composition_level (atom or compound/molecule)
        → narrows species choice (must match composition)
            → determines species_collection_map INSERT
                → enables QT-001 backfill
                    → Điều 29 compliance restored

Trying to solve species/composition BEFORE the nesting decision = guessing.

Opus assessment (by context, NOT locked)

Context Lean Reasoning
12 pilot rows E3 (defer) or E1 (gom) — both acceptable Pilot rows are test artifacts. Deferral keeps options open; gom is temporary fix. Neither is wrong because pilot rows will be reclassified anyway.
Future law_unit F4 (defer to Phase 5) Strongest option. Phase 5 migration design resolves nesting → composition → species in one coherent pass. No premature classification.
unit_version G1 (no mapping) Subordinate, 0 births, no effect. Revisit if strategy changes.

Combined lean: Phase 5 migration design is the RIGHT place to resolve species/composition holistically

If GPT/User accepts this lean:

  • Phase 4D closes with decision memo accepted
  • Phase 5 opens with nesting decision as first gate
  • Phase 5 migration design includes species assignment per unit_kind
  • QT-001 backfill runs as part of migration (one pass for all rows)
  • Điều 29 gap documented with explicit deferral rationale

Risks of deferral

Risk Mitigation
Điều 29 violation stays open for 12 pilot rows Documented, tracked in compliance matrix, known gap with planned closure in Phase 5
New IU rows created before Phase 5 get NULL species Birth trigger fills NULL when no mapping → same as today. Phase 5 backfill covers them.
Perceived inaction Decision memo documents the reasoning: deferral is an explicit architectural choice, not avoidance

Risks of premature mapping

Risk Mitigation
86 law_units born with wrong species/composition Must reclassify — two-round backfill
governance_infra gom implies IU is "infra" not "content" Creates false signal in species registry
Composition locked as atom before nesting evidence Must change species if nesting preserved

K. What must be designed/executed next

If GPT/User chooses... Next artifact
Defer to Phase 5 Phase 5 migration design (nesting decision first, then species/composition + migration + backfill in one pack)
Map pilot now (E1/E2) Phase 4D executable prompt (species_collection_map INSERT + QT-001 backfill for 12 rows) + post-implementation design per operating note
Promote + govern (E3+F2) QT-005 promotion prompt (new species or SPE-LAW + governance_role UPDATE + backfill) + post-implementation design
Post-birth correction (H, option 2) DOT tool design pack (correction tool spec + trigger-vs-DOT analysis)

Per operating note: any executable seed/backfill/correction must produce a post-implementation design after Agent report is accepted.


Phase 4D Decision Memo | Evidence-based | 3 contexts | Dependency chain analysis | No decision locked | 2026-05-11

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/design/p3d-pack1-phase4d-species-mapping-decision-memo.md