{"schemaVersion":"corex.infrastructure-rebase.v1","generatedAt":"2026-10-16T09:52:57.526Z","principles":{"buildOnceProfileMany":true,"runtimeTruthFirst":true,"noCustomerNamesInCanonicalContracts":true,"progressiveDisclosure":true,"defaultDeny":true,"preserveAuthorityBoundaries":true,"compatibilityBeforeRemoval":true},"summary":{"itemCount":19,"promotionCount":13,"byPriority":{"P0":11,"P1":7,"P2":1}},"items":[{"id":"event-trust-projection","currentLocation":"corex-platform/src/core/adaptsprintEventTrust.ts","currentScope":"CUSTOMER_PROFILE","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P0","reusablePrimitive":"Audience-tiered trust projection for an event/object plus related references","sourceExamples":["AdaptSprint event trust views"],"targetModule":"src/core/eventTrustProjection.ts","compatibility":"Keep customer-named wrapper as a profile adapter only.","rationale":"The projection pattern is independent of any brand and is useful to programmes, inspections, logistics, property, grants and commerce events.","authorityBoundary":"Projection never creates source, issuer or decision authority.","automationClass":"AUTO"},{"id":"governed-lifecycle-state-machine","currentLocation":"corex-platform/src/core/programmeWorkflow.ts + src/core/governedLifecycle.ts","currentScope":"VERTICAL_PROFILE","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P0","reusablePrimitive":"Evidence- and authority-gated lifecycle transitions with exception/reopen semantics","sourceExamples":["programme activation lifecycle"],"targetModule":"src/core/governedLifecycle.ts","compatibility":"Programme lifecycle remains a configured state-machine profile.","rationale":"The transition engine is reusable for cases, grants, inspections, credentials, partner onboarding, asset transfers and operational workflows.","authorityBoundary":"Transition evaluation does not invent decision authority.","automationClass":"AUTO"},{"id":"source-entity-reconciliation","currentLocation":"corex-platform/src/core/programmeSourceReconciliation.ts + src/core/entityReconciliation.ts","currentScope":"VERTICAL_PROFILE","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P0","reusablePrimitive":"Tokenized identifier clustering, duplicate detection, chronology checks and authority-preserving identity/entity resolution","sourceExamples":["programme participant reconciliation"],"targetModule":"src/core/entityReconciliation.ts","compatibility":"Programme-specific signal codes become a profile over generic reconciliation signals.","rationale":"Duplicate and conflicting source records occur across people, organisations, assets, suppliers, orders and regulated records.","authorityBoundary":"No automatic identity merge, wrongdoing conclusion or sensitive inference.","automationClass":"ASSISTED"},{"id":"decision-support-matrix","currentLocation":"corex-platform/src/core/decisionMatrix.ts","currentScope":"VERTICAL_PROFILE","targetScope":"SHARED_MODULE","action":"RECLASSIFY","priority":"P0","reusablePrimitive":"Evidence-backed required/weighted/informational decision criteria","sourceExamples":["awards","eligibility","readiness"],"targetModule":"src/core/decisionMatrix.ts","rationale":"Implementation is already generic; only discovery/classification must move out of vertical framing.","authorityBoundary":"Recommendation/evidence readiness only; competent authority makes consequential decision.","automationClass":"AUTO"},{"id":"metrics-kpi-results","currentLocation":"corex-vector/src/core/kpi-registry.js + corex-platform/src/core/outcomeInfrastructure.ts + Living Trust outcome APIs","currentScope":"PRODUCT_IMPLEMENTATION","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P0","reusablePrimitive":"KPI definition, measurement, baseline/target comparison and evidence-strength binding","sourceExamples":["VECTOR KPI registry","CoreX outcome infrastructure"],"targetModule":"src/core/outcomeInfrastructure.ts","compatibility":"VECTOR may continue commercial KPI presentation against the shared contract.","rationale":"Metrics and MEL are cross-product infrastructure; the new outcome layer already provides the correct canonical home.","authorityBoundary":"Measurement/aggregation is not donor, financial, employment or award authority.","automationClass":"AUTO"},{"id":"evidence-bundle-closure","currentLocation":"corex-vector/src/solutions/dare-evidence-pack.js + corex-platform/src/core/evidenceBundle.ts + Living Trust evidence-bundle API","currentScope":"CUSTOMER_PROFILE","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P0","reusablePrimitive":"Versioned evidence bundle with source records, discrepancy log, review/sign-off and closure checks","sourceExamples":["DARE evidence pack"],"targetModule":"src/core/evidenceBundle.ts","compatibility":"DARE pack becomes a named profile/configuration over the generic evidence-bundle contract.","rationale":"Closed-loop evidence packs are useful for grants, audits, training, inspections, supplier release and research deliverables.","authorityBoundary":"Sign-off reference is evidence of authority action; the bundle itself does not create that authority.","automationClass":"AUTO"},{"id":"case-capa","currentLocation":"corex-vector/src/core/complaints-capa.js + corex-platform/src/core/caseResolution.ts + src/core/caseRepository.ts","currentScope":"PRODUCT_IMPLEMENTATION","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P1","reusablePrimitive":"Issue/complaint triage, containment, root-cause, corrective action and effectiveness verification","sourceExamples":["product complaints","privacy incidents","accessibility issues","service delivery"],"targetModule":"src/core/caseResolution.ts","compatibility":"Commerce/product-safety categories remain a Vector rule pack.","rationale":"CAPA/case management is broader than commerce and should be reusable by investigations, quality, programme delivery and partner management.","authorityBoundary":"Case engine routes and records; legal/regulatory classification and sanctions remain competent-authority actions.","automationClass":"ASSISTED"},{"id":"funding-expenditure-evidence","currentLocation":"corex-vector/src/core/expenditure-evidence.js + corex-platform/src/core/fundingEvidence.ts","currentScope":"PRODUCT_IMPLEMENTATION","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P1","reusablePrimitive":"Planned/incurred/approved/paid expenditure evidence plus eligibility and budget variance","sourceExamples":["commercial expenditure","grant expenditure"],"targetModule":"src/core/fundingEvidence.ts","compatibility":"VECTOR owns commercial presentation/billing; CoreX owns evidence/provenance contract.","rationale":"Funding-to-milestone-to-outcome lineage is needed across grants, research, public programmes and procurement.","authorityBoundary":"CoreX records evidence and rules; it does not authorize payment or determine legal grant eligibility autonomously.","automationClass":"ASSISTED"},{"id":"resource-bound-presence","currentLocation":"corex-platform/src/core/livingAssetPresence.ts + src/core/presenceTarget.ts","currentScope":"VERTICAL_PROFILE","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P1","reusablePrimitive":"Resolve a subject/resource-specific geofence or presence target for verified action","sourceExamples":["living asset/property presence"],"targetModule":"src/core/presenceTarget.ts","compatibility":"Living Asset remains one resolver adapter.","rationale":"Presence targets apply to events, worksites, deliveries, facilities, inspections and assets.","authorityBoundary":"Presence evidence is scoped observation, not continuous tracking or legal proof by itself.","automationClass":"AUTO"},{"id":"reconciliation-rule-packs","currentLocation":"corex-platform/src/core/financeTrust.ts + src/core/reconciliationEngine.ts","currentScope":"PRODUCT_IMPLEMENTATION","targetScope":"SHARED_MODULE","action":"PROMOTE_IMPLEMENTATION","priority":"P1","reusablePrimitive":"Deterministic fact reconciliation with domain-specific rule packs and severity signals","sourceExamples":["finance payment/refund rules","programme duplicate/conflict rules"],"targetModule":"src/core/reconciliationEngine.ts","compatibility":"Finance-specific rules remain a finance rule pack.","rationale":"The same reconcile-signal-review pattern recurs across finance, identity, programme, supply chain and evidence integrity.","authorityBoundary":"Signals trigger review; they do not create fraud, legal or financial conclusions.","automationClass":"AUTO"},{"id":"watch-defender-pattern","currentLocation":"corex-platform/src/core/corexWatch.ts + defender.ts","currentScope":"CORE_INFRASTRUCTURE","targetScope":"CORE_INFRASTRUCTURE","action":"KEEP","priority":"P0","reusablePrimitive":"Event-driven monitoring plus deterministic defensive signal assessment","sourceExamples":["finance watch templates","historical Defender Lite"],"targetModule":"src/core/corexWatch.ts + src/core/defender.ts","rationale":"Already system-wide; verticals should contribute rule/template packs rather than reimplement Watch/Defender.","authorityBoundary":"No autonomous blocking unless an explicit owning policy later authorizes it.","automationClass":"AUTO"},{"id":"ai-trust-context-tool-governance","currentLocation":"corex-ai/src/runtime/*","currentScope":"PRODUCT_IMPLEMENTATION","targetScope":"PRODUCT_IMPLEMENTATION","action":"KEEP","priority":"P0","reusablePrimitive":"Trust-context compilation, provider-neutral model routing, cost governance, governed tool gateway and deterministic evaluation","sourceExamples":["CoreX AI runtime"],"targetModule":"corex-ai runtime with shared contracts exposed to Platform","compatibility":"Platform consumes contracts/receipts; AI runtime remains independently deployable.","rationale":"These are cross-ecosystem intelligence services but should not be duplicated into Platform; expose stable contracts instead.","authorityBoundary":"AI output remains non-canonical until owning service/policy accepts an action.","automationClass":"AUTO"},{"id":"wallet-client-protocol-runtime","currentLocation":"corex-pass/core/wallet/*","currentScope":"PRODUCT_IMPLEMENTATION","targetScope":"PRODUCT_IMPLEMENTATION","action":"KEEP","priority":"P1","reusablePrimitive":"Holder-side OID4VCI/OID4VP session orchestration and credential vault","sourceExamples":["CoreX Pass"],"targetModule":"corex-pass","compatibility":"Platform owns protocol/trust contracts; Pass owns holder-device UX and native secure storage.","rationale":"Moving native wallet runtime into the server platform would reduce modularity. Reuse through protocol contracts, SDKs and profiles.","authorityBoundary":"Holder consent and device key possession remain explicit.","automationClass":"ASSISTED"},{"id":"tenant-vertical-deployment-factories","currentLocation":"corex-platform/src/core/tenantDeploymentFactory.ts + verticalDeploymentFactory.ts","currentScope":"CORE_INFRASTRUCTURE","targetScope":"CORE_INFRASTRUCTURE","action":"KEEP","priority":"P0","reusablePrimitive":"Desired-state generation, capability inheritance, release planning and external-gate separation","sourceExamples":["white-label","vertical deployment"],"targetModule":"CoreX deployment factories","rationale":"Already correct reusable infrastructure; all future packs should compile into these factories.","authorityBoundary":"Desired state does not create legal, commercial, provider or source authority.","automationClass":"AUTO"},{"id":"credential-template-hardcoded-customer-profile","currentLocation":"corex-platform/src/core/credentialTemplates.ts + src/profiles/customerCredentialProfiles.ts","currentScope":"SHARED_MODULE","targetScope":"SHARED_MODULE","action":"WRAP_COMPATIBILITY","priority":"P1","reusablePrimitive":"Generic credential template + external profile registry","sourceExamples":["customer participation/completion profile aliases","sector templates"],"targetModule":"generic template registry + tenant/solution profile packs","compatibility":"Keep current IDs as aliases until all consumers resolve templates via profile registry.","rationale":"Customer/brand names should not be required members of generic template enums or generic infrastructure contracts.","authorityBoundary":"Issuer/source authority always external/configured.","automationClass":"AUTO"},{"id":"participation-outcome-fabric","currentLocation":"corex-platform/src/core/programme*.ts + attendanceProof.ts + presence*.ts + dataCapture.ts + outcomeInfrastructure.ts","currentScope":"SHARED_MODULE","targetScope":"SHARED_MODULE","action":"RECLASSIFY","priority":"P0","reusablePrimitive":"Programme, cohort, participation, session, capture, presence, attendance, evidence, competency, credential and outcome composition","sourceExamples":["Campus Trust lineage","education/workforce","DARE/programme delivery","field/event participation"],"targetModule":"existing programme/outcome/presence/evidence/credential modules","compatibility":"Campus/education naming remains a profile; shared primitives stay vertical-neutral.","rationale":"The former Campus fragments reveal a reusable cross-vertical participation and outcome capability already implemented across canonical CoreX modules. Discovery should expose the family without creating another runtime owner.","authorityBoundary":"Participation/outcome evidence does not create identity, completion, credential, employment, funding or legal authority.","automationClass":"AUTO"},{"id":"legacy-campus-runtime-source","currentLocation":"corex-platform/src/campus + legacy Campus Prisma models","currentScope":"VERTICAL_PROFILE","targetScope":"LINEAGE_ONLY","action":"DEPRECATE_WITH_LINEAGE","priority":"P0","reusablePrimitive":"historical programme/group/membership/session/attendance implementation whose useful semantics are mapped to canonical primitives","sourceExamples":["Campus Trust v0","Builder attendance","legacy membership routes"],"targetModule":"CorexProgramme/CorexCohort/CorexParticipation/CorexProgrammeSession + attendanceProof/presence/evidence","compatibility":"Production legacy Campus tables were empty when audited on 2026-09-27; preserve Git/migration lineage and deterministic parity evidence before removal.","rationale":"Excluded legacy source should not remain in the active runtime tree once canonical replacements exist and no production data depends on it.","authorityBoundary":"Removal must preserve tenant isolation, event chronology and evidence lineage.","automationClass":"ASSISTED"},{"id":"campus-education-profile","currentLocation":"corex-platform/src/verticals/campus","currentScope":"VERTICAL_PROFILE","targetScope":"VERTICAL_PROFILE","action":"PROFILE_ONLY","priority":"P1","reusablePrimitive":"Education/Campus naming and route profile over generic programme and participation infrastructure","sourceExamples":["Campus","education/workforce"],"targetModule":"src/verticals/campus + commercial education/programme solution profile","compatibility":"Keep only intentional profile labels/routes; no independent persistence or authority.","rationale":"Vertical UX can survive without retaining a parallel Campus domain model.","authorityBoundary":"Profile selection never creates actor, tenant, programme or credential authority.","automationClass":"AUTO"},{"id":"blueprint-to-standard-promotion","currentLocation":"corex-blueprints","currentScope":"REFERENCE_TEMPLATE","targetScope":"REFERENCE_TEMPLATE","action":"RECLASSIFY","priority":"P2","reusablePrimitive":"Design lineage and future implementation recipes","sourceExamples":["Defender Lite rules","operator console patterns","phase-one data/event models"],"targetModule":"Blueprints remain non-authoritative; proven primitives promoted to Platform/Stack/Canon.","rationale":"Blueprints should seed discovery, not compete with runtime truth.","authorityBoundary":"Live runtime > repository implementation > Stack/Canon baseline > Blueprint lineage.","automationClass":"AUTO"}],"sourceOfTruthOrder":["LIVE_RUNTIME_PROVIDER_EVIDENCE","CURRENT_REPOSITORY_IMPLEMENTATION","STACK_DISCOVERABLE_BASELINE","CANON_POLICY_AND_STANDARDS","BLUEPRINT_OR_HISTORICAL_LINEAGE"]}