KB-6339

F-3 Consolidation Rollback-Only Coverage Dry-Run — 04 Expanded-Scope Inventory Results

4 min read Revision 1
one-roofphase-1f3inventoryceiling-210containmentacyclicreal-source

04 — Expanded-Scope Inventory Results

Live output of Phase A (full-35 ceiling) and Phase B (10-subset + real containment). All inside the rolled-back transaction.

4.1 A1–A3 — full-35 inventory ceiling proven LIVE

The inventory seam was wired over all governed BIRTH_REQUIRED collections (no IN (...) filter) — the exact collection-grain shape a ratified F-4 would commit:

A2  inv_full = 35
A3  gap_before_full = 210   ceiling_full = 210   (35 governed × 6 active scopes)

This closes the inference in F2-2: the full Phase-1 gap ceiling of 210 is now the empirical behavior of a real view object over the real source, not a computed estimate. The abort gate (> 210 ⇒ ROLLBACK) did not fire — observed exactly equals the ceiling, confirming the gap view fans every governed object across all 6 active scopes and nothing escapes the bound. (The superseded "38" ceiling is wrong; 210 is correct.)

4.2 B1–B3 — 10-collection subset inventory

Re-wired to a bounded subset spanning three real folder-groups:

     object_ref      | requires_owner | born
---------------------+----------------+------
 approval_requests   | t              | t     ┐
 apr_action_types    | t              | t     │ GRP-GOVERNANCE (4)
 apr_approvals       | t              | t     │
 apr_request_types   | t              | t     ┘
 workflows           | t              | t     ┐ GRP-WORKFLOW (2)
 workflow_steps      | t              | t     ┘
 collection_registry | t              | t     ┐
 dot_tools           | t              | t     │ GRP-REGISTRY (4)
 taxonomy            | t              | t     │
 taxonomy_facets     | t              | t     ┘
(10 rows)

All 10 requires_owner=t born=t (governed + BIRTH_REQUIRED). Subset chosen to span ownership outcomes: one group will get an inherited anchor, one collection a direct owner, one whole group left unowned.

4.3 B4 — REAL containment edges (the F-3 differentiator)

Seam-B was derived from the live collection_registry."group" column — not a hand-made fixture:

   parent_ref   | children | members
----------------+----------+--------------------------------------------------------------------
 GRP-GOVERNANCE |        4 | approval_requests,apr_action_types,apr_approvals,apr_request_types
 GRP-REGISTRY   |        4 | collection_registry,dot_tools,taxonomy,taxonomy_facets
 GRP-WORKFLOW   |        2 | workflows,workflow_steps
(3 rows)

10 child→group edges into 3 group (folder) parents. Every edge is a row that already exists in production (collection_registry.group), so the containment tree is discovered, not authored — satisfying the no-hardcode / no-hidden-island principle.

4.4 B5 — acyclicity confirmed

A recursive walk over the real containment seam:

 max_depth | walk_rows | hit_cycle_guard
-----------+-----------+-----------------
         1 |        10 | f

max_depth=1 (collection → group is a single hop; groups are leaves of the upward walk because no group is itself a governed collection_name — verified in preflight §1.4). hit_cycle_guard=false ⇒ the 64-depth guard never engaged ⇒ the source is acyclic. This is the precise property a ratified F-4 containment seam needs, and it holds on the real data.

4.5 B6 — gap before ownership (subset)

 gap_before_subset = 60   (10 objects × 6 active scopes)

Matches the corrected object×scope ceiling exactly — the maximal honest gap when no owner exists.

4.6 Expanded-scope verdict

PASS. The inventory seam compiles and returns the correct bounded set at both full-35 (210 ceiling, live) and 10-subset (60) grains; the containment seam is sourced from real production folder-grouping, returns 10 acyclic edges across 3 groups, depth-1. The corrected thresholds (210 / 60) are confirmed empirically, not inferred.

Back to Knowledge Hub knowledge/dev/reports/architecture/one-roof-phase1-coverage-dry-run-f3-consolidation-rollback-only-2026-06-02/04-expanded-scope-inventory-results.md