T0-C Topology Gaps
Classification vocabulary:
| Class |
Meaning |
VALID_INTERNAL_DEPENDENCY |
Non-commercial helper/platform module may install; no peer SKU surface |
ACCIDENTAL_PEER_SKU_DEPENDENCY |
Commercial peer pulled without approved composition |
APPROVED_COMPOSITE |
Product-approved multi-SKU install (none recorded yet in allowlist) |
BRIDGE_REQUIRED |
Cross-SKU glue must be auto_install bridge, not hard depend |
DECISION_REQUIRED |
Commercial/product choice blocks truthful independent claim |
LEGACY_REMOVE |
Shim/legacy path to retire after migration |
Fixed in T0-C (was §8 / STAB-024 Core blockers)
| Gap |
Before |
After |
Classification |
| Core → SC-PEOPLE via attendance |
scola_attendance hard-depended scola_hr |
Dependency removed; Core fresh DB has zero peer commercial modules |
Was ACCIDENTAL_PEER_SKU_DEPENDENCY → FIXED |
| HR contract ACL in Core |
Foundation/hr_contract ACL lived in scola_core |
Moved to scola_hr |
Was accidental Core ownership → FIXED |
| SC-ADM → SC-FEES hard depend |
scola_admission depended on scola_fees |
Decoupled; scola_admission_fees_bridge auto_installs when both present |
Was ACCIDENTAL_PEER_SKU_DEPENDENCY → FIXED as BRIDGE_REQUIRED |
| Topology tooling |
Manual/ad-hoc |
package_topology.py + package_topology_ci_check.py |
Engineering gate added (CI wiring still pending) |
Fresh-DB confirmation of fixes
| DB / scenario |
Result |
scola_t0c_core / scola_t0c_core2 |
Identical 13-module scola_* closure; peer commercial: none; static checksum 43115784… |
| SC-ADM alone |
scola_admission installed; scola_fees not installed |
| SC-ADM + SC-FEES |
scola_admission_fees_bridge + scola_parent_fees_bridge + scola_portal_fees_bridge auto-installed |
Remaining gaps (honest)
SC-REPORT → SC-STUDENT / assessment bridge
| Item |
Detail |
| Path |
scola_bundle_report_card → scola_report_card → scola_student_activity (+ scola_assessment_bridge) |
| Class |
ACCIDENTAL_PEER_SKU_DEPENDENCY / engineering |
| Topology status |
TOPOLOGY_BLOCKED_ENGINEERING |
| Product fork |
DECISION_REQUIRED whether to approve a wider composite (REPORT+STUDENT+assessment) as APPROVED_COMPOSITE or split minimal grade/report source |
SC-LEARN / SC-ASSESS → SC-REPORT
| Item |
Detail |
| Path |
scola_lms / scola_cbt → scola_report_card (then SC-STUDENT via report_card) |
| Class |
ACCIDENTAL_PEER_SKU_DEPENDENCY |
| Topology status |
TOPOLOGY_BLOCKED_ENGINEERING |
| Note |
Combined install is not independent certificate evidence |
SC-DAP base → report_card bridge
| Item |
Detail |
| Path |
scola_bundle_dapodik always includes scola_dapodik_report_card_bridge → scola_report_card |
| Class |
BRIDGE_REQUIRED mis-scoped or DECISION_REQUIRED to make SC-REPORT a pilot prerequisite |
| Topology status |
TOPOLOGY_BLOCKED_PRODUCT_DECISION (also engineering until connector-only installer exists) |
SC-ATTEND+ split installers
| Item |
Detail |
| Fact |
scola_bundle_smart_attendance ≠ employee scola_bundle_hr_attendance |
| Class |
DECISION_REQUIRED |
| Topology status |
TOPOLOGY_BLOCKED_PRODUCT_DECISION |
| Options |
One composite installer with two tested subflows, or split commercial SKU |
SC-FOUND via enterprise umbrella
| Item |
Detail |
| Path |
scola_bundle_enterprise pulls Learning, Assessment, Library, Finance, Ops, BOS, People, Student, Attendance, Dapodik, fees/admission overlays, Foundation |
| Class |
DECISION_REQUIRED |
| Topology status |
TOPOLOGY_BLOCKED_PRODUCT_DECISION |
| Options |
Minimal scola_bundle_foundation installer or reclassify enterprise as umbrella-only (not SC-FOUND independent certificate) |
SC-BOS → leadership / foundation bridges
| Item |
Detail |
| Path |
scola_bundle_bos_rkas → governance/executive bridges → scola_foundation_analytics (SC-FOUND) |
| Class |
Classify: keep as BRIDGE_REQUIRED optional overlays, approve APPROVED_COMPOSITE, or split bundle depends |
| Topology status |
TOPOLOGY_BLOCKED_PRODUCT_DECISION (peer violation present in static graph) |
| Also |
Inventory-account bridge auto-install with FIN+OPS — expected glue; ownership of valuation still open historically |
scola_leadership_hub auto-installs with Core
| Item |
Detail |
| Class |
VALID_INTERNAL_DEPENDENCY with product caveat |
| Rule |
Module may install with Core; leadership surface must stay entitlement+capability gated |
| Not allowed |
Treating install alone as approved leadership SKU / menu exposure |
Allowlist state
APPROVED_PEER_SKU_ALLOWLIST in package_topology.py remains empty. No accidental peer pull has been silently reclassified as approved composite.
Exit impact
Remaining gaps block full T0-C CLOSED for the optional matrix, but do not reopen the fixed Core peer-SKU STAB-024 issue. Optional packages that remain unresolved are explicitly TOPOLOGY_BLOCKED_*, not falsely certified for business readiness.