Lewati ke isi

T0-C Topology Gaps

Metadata Value
Mode Server /home/scola/odoo
Graph T0-C-dependency-graph.md
Before snapshot T0-C-evidence/dependency-graph-before.json
After snapshot T0-C-evidence/dependency-graph.json

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_DEPENDENCYFIXED
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_DEPENDENCYFIXED 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_cardscola_report_cardscola_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_cbtscola_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_bridgescola_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.