{
  "schema_version": "nexuscrm.appFactConsumerInventory.v1",
  "generated_at": "2026-07-13",
  "purpose": "A1a current-tree fact, owner, writer, and reader inventory. This file does not define the A1b App contract.",
  "repositories": {
    "NexusCRM": "41061972fa7796e1d763f9e1737bb500fd39f3b8",
    "nexuscrm-controlplane": "dbd2fbbbc920a9863772865f7e3ef8b6c4e51788",
    "nexuscrm-app-packs": "a84ba803073c90e279af21f35eeeadd12962cac4",
    "nexuscrm-contract": "3784e01cb99ae97cf24bbc192aaa11db15282419"
  },
  "nexuscrm_consumption_pins": {
    "nexuscrm-controlplane": {
      "version": "v0.1.18",
      "commit": "394bd0b79b3b55fe31196c78d87e9f45e31f2e21",
      "audited_main_paths_match_pin": true
    },
    "nexuscrm-contract": {
      "version": "v0.1.5",
      "commit": "3784e01cb99ae97cf24bbc192aaa11db15282419",
      "audited_main_paths_match_pin": true
    }
  },
  "classification_values": [
    "authoritative",
    "derived",
    "transitional",
    "stale",
    "target-only"
  ],
  "facts": [
    {
      "id": "pack-manifest-authoring",
      "name": "PackManifest and official CRM pack payload",
      "author": "The pack publisher; nexuscrm-app-packs authors the official CRM pack.",
      "sole_intended_owner": "The publisher owns L1 payload facts; nexuscrm-controlplane owns the neutral manifest grammar and validation mechanism.",
      "persisted_representation": [
        "Source pack.json and referenced component payload files"
      ],
      "current_writers": [
        "nexuscrm-app-packs source authors and release automation"
      ],
      "current_readers": [
        "nexuscrm-controlplane source resolution, validate, install, reapply, and deep verify"
      ],
      "lifecycle_version": "Manifest format v1/v2, pack semantic version, and immutable source revision.",
      "classification": "authoritative",
      "duplicate_or_competing_paths": [
        "The manifest is source authority during source-backed operations; serving startup uses persisted installed-pack projections instead of re-reading source."
      ],
      "migration_or_deletion_prerequisite": "A1b must decide how this authoring contract maps to the target AppManifest; A1a does not evolve or retire PackManifest.",
      "evidence": [
        {"repository": "nexuscrm-controlplane", "path": "packs/pack_source.go", "lines": "59-131"},
        {"repository": "nexuscrm-app-packs", "path": "salesforce-crm-standard/pack.json", "lines": "1-45"}
      ]
    },
    {
      "id": "pack-source-identity",
      "name": "Resolved and accepted pack source identity",
      "author": "Operator source selection plus L1 distribution source-revision locks.",
      "sole_intended_owner": "nexuscrm-controlplane resolves neutral source identity; each L1 product distribution owns the revisions it accepts for its packs.",
      "persisted_representation": [
        "ResolvedPackSource.Kind, URI, Revision in memory",
        "_System_InstalledPack.SourceKind, SourceURI, SourceRevision"
      ],
      "current_writers": [
        "Install/reapply convergence writes the resolved identity to _System_InstalledPack",
        "CRM distribution source.go authors accepted per-pack revisions"
      ],
      "current_readers": [
        "Stored-source re-resolution for deep verify/reapply",
        "CRM startup composition validation",
        "setup-gated /api/platform app-pack inventory"
      ],
      "lifecycle_version": "official_repo or local_path; legacy in_repo is normalized to official_repo; revision advances require explicit convergence.",
      "classification": "transitional",
      "duplicate_or_competing_paths": [
        "NexusCRM currently pins separate backend source-supply, frontend source-supply, and per-product accepted pack revisions; these are release locks, not one target AppRelease fact."
      ],
      "migration_or_deletion_prerequisite": "A1b must define the mapping to immutable AppRelease identity before any lock is removed or merged.",
      "evidence": [
        {"repository": "nexuscrm-controlplane", "path": "packs/pack_source.go", "lines": "24-78"},
        {"repository": "nexuscrm-controlplane", "path": "packs/pack_source_load.go", "lines": "15-109"},
        {"repository": "NexusCRM", "path": "backend/distributions/appsource/source.go", "lines": "3-35"}
      ]
    },
    {
      "id": "installed-pack-registry",
      "name": "Installed pack lifecycle and convergence registry",
      "author": "nexuscrm-controlplane install, reapply, and remove operations.",
      "sole_intended_owner": "nexuscrm-controlplane.",
      "persisted_representation": [
        "_System_InstalledPack"
      ],
      "current_writers": [
        "Install/reapply lifecycle transitions and remove/failure handling"
      ],
      "current_readers": [
        "Install dependency and source preflight",
        "Verify and drift checks",
        "Runtime startup projections",
        "Distribution composition and dialect gates"
      ],
      "lifecycle_version": "installing -> active; active -> removing; failures -> failed; PackInstallId is fresh for each same-name incarnation.",
      "classification": "authoritative",
      "duplicate_or_competing_paths": [
        "Name is a pack identity and PackInstallId is an install-incarnation identity; neither is the target AppID/AppInstallationID without an A1b decision."
      ],
      "migration_or_deletion_prerequisite": "A1b must map or retire pack lifecycle facts without creating a second active registry.",
      "evidence": [
        {"repository": "NexusCRM", "path": "nexuscrm-kernel/pkg/schemacatalog/system_tables.json", "lines": "904-944"},
        {"repository": "nexuscrm-controlplane", "path": "installed_packs.go", "lines": "23-26"},
        {"repository": "nexuscrm-controlplane", "path": "installed_packs.go", "lines": "98-157"},
        {"repository": "nexuscrm-controlplane", "path": "installed_packs.go", "lines": "704-761"}
      ]
    },
    {
      "id": "installed-pack-runtime-declarations",
      "name": "Persisted runtime rebuild declarations",
      "author": "Derived by nexuscrm-controlplane from an applied pack.",
      "sole_intended_owner": "nexuscrm-controlplane owns derivation and convergence; Runtime consumers treat the persisted columns as read-only startup input.",
      "persisted_representation": [
        "_System_InstalledPack.RuntimeObjectSpecDeclarations",
        "RuntimeRelatedListRules",
        "RuntimeSearchScopeOrder",
        "RuntimeSearchAllDefaultFields",
        "RuntimeFormulaFunctionBundles",
        "RuntimeStartupShallowDeclarations"
      ],
      "current_writers": [
        "Explicit install/apply convergence only"
      ],
      "current_readers": [
        "Persisted-only startup metadata rebuild",
        "Shallow readiness verify",
        "Deep source-backed verify parity"
      ],
      "lifecycle_version": "Rebuilt on pack convergence and replaced with the active installed-pack row.",
      "classification": "derived",
      "duplicate_or_competing_paths": [
        "Process-local registries rebuilt from these columns are accelerators, not authorities; deep verify may independently resolve source to compare parity."
      ],
      "migration_or_deletion_prerequisite": "P7/A1b must identify every consumer before replacing this projection with a future immutable metadata view.",
      "evidence": [
        {"repository": "NexusCRM", "path": "nexuscrm-kernel/pkg/schemacatalog/system_tables.json", "lines": "923-929"},
        {"repository": "nexuscrm-controlplane", "path": "installed_packs.go", "lines": "98-107"},
        {"repository": "nexuscrm-controlplane", "path": "packs/runtime_metadata.go", "lines": "31-66"}
      ]
    },
    {
      "id": "known-installed-pack-catalog",
      "name": "Three-state known installed-pack catalog",
      "author": "Derived at process startup from _System_InstalledPack plus compile-time platform packs.",
      "sole_intended_owner": "nexuscrm-controlplane projection code; the host constructs it once and threads it to gates.",
      "persisted_representation": [
        "No independent persistence; map[name]active is process-local"
      ],
      "current_writers": [
        "KnownInstalledPackCatalog constructs the map"
      ],
      "current_readers": [
        "Dialect mount gates",
        "Product capability and route-surface active-owner gates",
        "Connected App visibility gates"
      ],
      "lifecycle_version": "Built once at boot; present true = active, present false = known inactive, absent = unknown/not installed.",
      "classification": "derived",
      "duplicate_or_competing_paths": [
        "ActiveInstalledAppPackNames is documented as the true-valued subset, not a second authority."
      ],
      "migration_or_deletion_prerequisite": "Delete only after all boot/runtime gates consume the A1b/P7 replacement from one bound view.",
      "evidence": [
        {"repository": "nexuscrm-controlplane", "path": "packs/runtime_metadata.go", "lines": "346-392"},
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/routes.go", "lines": "54-70"},
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/routes.go", "lines": "148-176"}
      ]
    },
    {
      "id": "active-app-pack-projection",
      "name": "Active app-pack source/hash projection",
      "author": "Derived from active app-pack rows in _System_InstalledPack.",
      "sole_intended_owner": "nexuscrm-controlplane projection code; L1 composition owns which pack identities it requires.",
      "persisted_representation": [
        "No independent persistence; []ActiveInstalledAppPack"
      ],
      "current_writers": [
        "ActiveInstalledAppPacks query constructs the projection"
      ],
      "current_readers": [
        "CRM product composition source/hash lock",
        "setup composition verification",
        "setup-gated /api/platform inventory for frontend supply"
      ],
      "lifecycle_version": "Boot-time projection of Status=active, Category=app-pack, non-deleted rows.",
      "classification": "derived",
      "duplicate_or_competing_paths": [
        "It projects installation/source convergence only and is not an AppManifest or AppRelease."
      ],
      "migration_or_deletion_prerequisite": "A1b must define a replacement mapping before product composition stops reading installed-pack facts.",
      "evidence": [
        {"repository": "nexuscrm-controlplane", "path": "packs/runtime_metadata.go", "lines": "395-457"},
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/runtime.go", "lines": "354-362"},
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/routes.go", "lines": "213-220"}
      ]
    },
    {
      "id": "target-app-package",
      "name": "Target AppPackage concept",
      "author": "Target architecture only.",
      "sole_intended_owner": "Catalog/App-domain owner, to be made concrete by A1b.",
      "persisted_representation": [
        "None in the inspected current trees"
      ],
      "current_writers": [
        "None"
      ],
      "current_readers": [
        "None"
      ],
      "lifecycle_version": "Target concept; no current lifecycle.",
      "classification": "target-only",
      "duplicate_or_competing_paths": [
        "PackManifest and _System_InstalledPack are current inputs, not approved aliases."
      ],
      "migration_or_deletion_prerequisite": "C0 and A1a must finish before A1b freezes the minimum product-App contract.",
      "evidence": [
        {"repository": "NexusCRM", "path": "docs/design/nexuscrm-serviceification-target-architecture.md", "lines": "497-515"}
      ]
    },
    {
      "id": "target-app-manifest",
      "name": "Target AppManifest concept",
      "author": "Target architecture only.",
      "sole_intended_owner": "Catalog/App-domain owner, to be made concrete by A1b.",
      "persisted_representation": [
        "None in the inspected current trees"
      ],
      "current_writers": [
        "None"
      ],
      "current_readers": [
        "None"
      ],
      "lifecycle_version": "Target fields include AppID, immutable AppRelease, publisher, protocol/engine requirements, dependencies, namespaces, capabilities, and frontend reference.",
      "classification": "target-only",
      "duplicate_or_competing_paths": [
        "Current PackManifest, ProductHooks, frontend source manifests, and security grants each contain only a subset with different owners."
      ],
      "migration_or_deletion_prerequisite": "A1b alone decides PackManifest evolution/retirement and the minimum AppManifest shape after C0.",
      "evidence": [
        {"repository": "NexusCRM", "path": "docs/design/nexuscrm-serviceification-target-architecture.md", "lines": "502-515"}
      ]
    },
    {
      "id": "target-app-release",
      "name": "Target immutable AppRelease concept",
      "author": "Target architecture only.",
      "sole_intended_owner": "Catalog/App-domain owner, to be made concrete by A1b.",
      "persisted_representation": [
        "None in the inspected current trees"
      ],
      "current_writers": [
        "None"
      ],
      "current_readers": [
        "None"
      ],
      "lifecycle_version": "Target immutable digest/version for dependency, upgrade, rollback, and provenance.",
      "classification": "target-only",
      "duplicate_or_competing_paths": [
        "PackVersion, source revision, and payload hashes are current pack facts; no current code combines them into AppRelease."
      ],
      "migration_or_deletion_prerequisite": "A1b must state the mapping before release issue #3624 consumes it.",
      "evidence": [
        {"repository": "NexusCRM", "path": "docs/design/nexuscrm-serviceification-target-architecture.md", "lines": "632-635"}
      ]
    },
    {
      "id": "target-app-installation",
      "name": "Target AppInstallation authority",
      "author": "Target architecture only; no current Catalog implementation was found.",
      "sole_intended_owner": "Catalog owns OrgID + AppInstallationID binding to AppID/AppRelease, workloads, grants, and namespaces.",
      "persisted_representation": [
        "No authoritative AppInstallation table or domain object in the inspected current trees"
      ],
      "current_writers": [
        "None"
      ],
      "current_readers": [
        "No current authoritative domain reader; Runtime reads only its security projection"
      ],
      "lifecycle_version": "Target concept; no current install/upgrade lifecycle.",
      "classification": "target-only",
      "duplicate_or_competing_paths": [
        "_System_InstalledPack.PackInstallId is a pack incarnation and must not be assumed to be AppInstallationID."
      ],
      "migration_or_deletion_prerequisite": "A1b must establish the authoring owner and mapping before any production issuer or serving cutover can rely on AppInstallationID.",
      "evidence": [
        {"repository": "NexusCRM", "path": "docs/design/nexuscrm-serviceification-target-architecture.md", "lines": "587-612"},
        {"repository": "NexusCRM", "path": "nexuscrm-kernel/pkg/schemacatalog/system_tables.json", "lines": "909-923"}
      ]
    },
    {
      "id": "runtime-security-installation-projection",
      "name": "Runtime projection of AppInstallation workload grants",
      "author": "Intended to be projected from Catalog; the current tree contains the Runtime persistence and admission owners but no production projection publisher.",
      "sole_intended_owner": "Runtime owns the serving projection/read path; Catalog must own the upstream AppInstallation authority.",
      "persisted_representation": [
        "_System_RuntimeSecurityState",
        "_System_RuntimeSecurityBinding",
        "_System_RuntimeSecurityLease",
        "_System_RuntimeDelegationRevocation"
      ],
      "current_writers": [
        "RuntimeSecurityRepository.ActivateProjection, IssueLease, and RevokeDelegation methods; only tests invoke activation/lease in the inspected tree"
      ],
      "current_readers": [
        "Runtime replica readiness",
        "Single-statement Runtime admission state",
        "SecurityAdmission before session and Records"
      ],
      "lifecycle_version": "Monotonic SecurityEpoch, complete binding replacement, old-lease invalidation, request admission by AppInstallation/workload/capability.",
      "classification": "transitional",
      "duplicate_or_competing_paths": [
        "Signed delegation carries AppInstallationID but is not authority; Runtime verifies it against this projection.",
        "The upstream Catalog/AppInstallation writer is absent, so production activation is an unresolved ownership gap."
      ],
      "migration_or_deletion_prerequisite": "A1b/P7 must supply one authoritative publication path before serving; do not add a second grant registry.",
      "evidence": [
        {"repository": "NexusCRM", "path": "nexuscrm-kernel/pkg/schemacatalog/system_tables.json", "lines": "14311-14345"},
        {"repository": "NexusCRM", "path": "nexuscrm-persistence/runtime_security_repository.go", "lines": "31-49"},
        {"repository": "NexusCRM", "path": "nexuscrm-persistence/runtime_security_repository.go", "lines": "83-147"},
        {"repository": "NexusCRM", "path": "nexuscrm-persistence/runtime_security_repository.go", "lines": "222-271"},
        {"repository": "NexusCRM", "path": "backend/internal/runtimeapi/security_admission.go", "lines": "238-274"}
      ]
    },
    {
      "id": "runtime-delegation-app-installation-carrier",
      "name": "Signed AppInstallationID and capability carrier",
      "author": "Runtime Identity issuer under the neutral nexuscrm-contract grammar.",
      "sole_intended_owner": "nexuscrm-contract owns grammar/crypto; the issuer and Runtime authoritative state own authorization facts.",
      "persisted_representation": [
        "No App fact persistence; compact signed delegation is request metadata"
      ],
      "current_writers": [
        "Future/assembled Runtime Identity issuer; tests currently construct claims"
      ],
      "current_readers": [
        "Runtime SecurityAdmission verifier and TrustedCall construction"
      ],
      "lifecycle_version": "delegationv1 with bounded identifiers, capability intersection, AuthEpoch, SecurityEpoch, and expiry.",
      "classification": "derived",
      "duplicate_or_competing_paths": [
        "Successful structural/signature validation explicitly does not authorize OrgID/AppInstallationID."
      ],
      "migration_or_deletion_prerequisite": "Keep it a carrier; never promote claims into a second AppInstallation authority.",
      "evidence": [
        {"repository": "nexuscrm-contract", "path": "pkg/runtime/delegationv1/claims.go", "lines": "37-62"},
        {"repository": "nexuscrm-contract", "path": "pkg/runtime/delegationv1/capabilities.go", "lines": "5-20"},
        {"repository": "nexuscrm-contract", "path": "pkg/runtime/delegationv1/token.go", "lines": "75-89"},
        {"repository": "NexusCRM", "path": "backend/internal/runtimeapi/security_admission.go", "lines": "319-383"}
      ]
    },
    {
      "id": "pack-host-requirements",
      "name": "Pack-required host primitives",
      "author": "L1 pack manifest author.",
      "sole_intended_owner": "The pack owns requirements; the L0 host owns the available primitive registry and compatibility check.",
      "persisted_representation": [
        "PackManifest.hostRequirements",
        "_System_InstalledPack.HostRequirementsDigest"
      ],
      "current_writers": [
        "Pack source authors",
        "Install/reapply convergence writes the digest"
      ],
      "current_readers": [
        "Install validation",
        "Verify drift/compatibility",
        "Product distribution supplies process-local HostPrimitives"
      ],
      "lifecycle_version": "Requirement kind/name/version plus an independent convergence digest.",
      "classification": "authoritative",
      "duplicate_or_competing_paths": [
        "Requirements and ProductHooks-provided primitives are opposite sides of compatibility, not duplicate App capabilities."
      ],
      "migration_or_deletion_prerequisite": "A1b may map required engine capabilities but must preserve author/host ownership direction.",
      "evidence": [
        {"repository": "nexuscrm-controlplane", "path": "packs/pack_source.go", "lines": "80-121"},
        {"repository": "NexusCRM", "path": "nexuscrm-kernel/pkg/schemacatalog/system_tables.json", "lines": "923-929"},
        {"repository": "nexuscrm-app-packs", "path": "salesforce-crm-standard/pack.json", "lines": "11-33"}
      ]
    },
    {
      "id": "connector-capability-declarations",
      "name": "Installed connector capability declarations",
      "author": "Connector pack manifest author.",
      "sole_intended_owner": "The connector pack owns namespace/kind declaration; nexuscrm-controlplane owns apply/verify and liveness gating.",
      "persisted_representation": [
        "_System_ConnectorCapabilityDeclaration"
      ],
      "current_writers": [
        "connector_capability component apply hook",
        "Reapply/remove sweepers soft-delete stale rows"
      ],
      "current_readers": [
        "Install/verify live projection",
        "Single-query connector capability liveness gate",
        "Startup-shallow parity"
      ],
      "lifecycle_version": "Closed v1 kinds signature_verifier and envelope_parser; payload-hash locked to active installed pack.",
      "classification": "authoritative",
      "duplicate_or_competing_paths": [
        "This is Integration/connector capability truth, not a general App provided-capability manifest."
      ],
      "migration_or_deletion_prerequisite": "Preserve the atomic installed-pack liveness predicate; A1b must not absorb it into a vague App capability string.",
      "evidence": [
        {"repository": "NexusCRM", "path": "nexuscrm-kernel/pkg/schemacatalog/system_tables.json", "lines": "946-966"},
        {"repository": "nexuscrm-controlplane", "path": "packs/connector_capability_component.go", "lines": "13-30"},
        {"repository": "nexuscrm-controlplane", "path": "packs/connector_capability_component.go", "lines": "96-140"},
        {"repository": "nexuscrm-controlplane", "path": "packs/installed_pack_helpers.go", "lines": "393-464"}
      ]
    },
    {
      "id": "product-hooks-capabilities",
      "name": "Process-local L1 ProductHooks capabilities",
      "author": "The compiled L1 product distribution.",
      "sole_intended_owner": "Each L1 distribution owns its declarations; the app-blind host validates, composes, gates, and installs them.",
      "persisted_representation": [
        "No durable representation; compiled ProductHooks/ProductCapabilities"
      ],
      "current_writers": [
        "backend/distributions/crm.ProductHooks"
      ],
      "current_readers": [
        "serverruntime composition",
        "Process-local registries and route setup",
        "Composition validation against active installed packs"
      ],
      "lifecycle_version": "Binary release plus owning-pack/source-revision gate; rebuilt on process startup.",
      "classification": "transitional",
      "duplicate_or_competing_paths": [
        "Some declarations correspond to pack requirements or persisted descriptors, but executable implementations remain binary-only.",
        "P1x deleted the former non-product compiled conformance distribution; only real product declarations remain."
      ],
      "migration_or_deletion_prerequisite": "A1b must classify which declarations become AppManifest facts, HandlerBindings, host registrations, or remain process-local implementations.",
      "evidence": [
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/product.go", "lines": "209-253"},
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/product.go", "lines": "283-318"},
        {"repository": "NexusCRM", "path": "backend/distributions/crm/product.go", "lines": "174-235"},
        {"repository": "NexusCRM", "path": "backend/distributions/appsource/source.go", "lines": "93-99"},
        {"repository": "NexusCRM", "path": "docs/design/nexuscrm-serviceification-target-architecture.md", "lines": "571-585"}
      ]
    },
    {
      "id": "selected-root-runtime-capability",
      "name": "Neutral selected-root Runtime capability",
      "author": "nexuscrm-contract protocol owner; Runtime implements and admits it.",
      "sole_intended_owner": "nexuscrm-contract owns semantic grammar/limits; Runtime owns enforcement; AppInstallation/session/workload authorities bound issuance.",
      "persisted_representation": [
        "Capability string appears in Runtime security binding Capabilities JSON; contract itself is source/versioned module data"
      ],
      "current_writers": [
        "Contract release defines the capability",
        "Runtime security projection publisher is intended to grant it but is not assembled in production"
      ],
      "current_readers": [
        "Delegation verifier supported-capability set",
        "Runtime SecurityAdmission",
        "RecordsService response receipts"
      ],
      "lifecycle_version": "runtime.records.read-selected-root.v1, protocol 1.0.",
      "classification": "authoritative",
      "duplicate_or_competing_paths": [
        "It is one Runtime RPC authorization capability, not a full App capability declaration model."
      ],
      "migration_or_deletion_prerequisite": "C0 decides the real CRM consumer; A1b must not infer a first-slice App capability solely from this existing RPC.",
      "evidence": [
        {"repository": "nexuscrm-contract", "path": "pkg/runtime/recordsv1/types.go", "lines": "5-29"},
        {"repository": "NexusCRM", "path": "backend/internal/runtimeapi/security_admission.go", "lines": "350-364"}
      ]
    },
    {
      "id": "flow-action-handler-binding",
      "name": "Flow actionCall declaration-to-implementation binding",
      "author": "The L1 pack authors the descriptor; the L1 binary authors the opaque handler implementation.",
      "sole_intended_owner": "Pack metadata owns actionType/handlerRef/policies; ProductHooks owns executable implementation; L0 resolves and checks exact agreement.",
      "persisted_representation": [
        "_System_FlowActionCallHandler descriptor rows",
        "No durable implementation registry"
      ],
      "current_writers": [
        "flow_action_call_handler component apply/upsert and pack sweeper",
        "CRM ProductHooks registers handler implementations at startup"
      ],
      "current_readers": [
        "Controlplane live verify",
        "serverruntime startup descriptor/implementation composition",
        "metadata program checker",
        "Flow dispatch registry"
      ],
      "lifecycle_version": "Global normalized actionType key, single OwnerPack, opaque HandlerRef, active/deleted lifecycle, exact runtime registry parity.",
      "classification": "transitional",
      "duplicate_or_competing_paths": [
        "Code explicitly calls the exact descriptor/implementation mirror transitional until dispatch reads source-backed rows directly."
      ],
      "migration_or_deletion_prerequisite": "A1b can reuse the split only after deciding the C0 capability; it must not create a parallel generic HandlerBinding table in A1a.",
      "evidence": [
        {"repository": "NexusCRM", "path": "nexuscrm-kernel/pkg/schemacatalog/system_tables.json", "lines": "12530-12557"},
        {"repository": "nexuscrm-controlplane", "path": "packs/flow_action_call_handler_component.go", "lines": "33-57"},
        {"repository": "nexuscrm-controlplane", "path": "packs/flow_action_call_handler_component.go", "lines": "252-294"},
        {"repository": "nexuscrm-controlplane", "path": "packs/flow_action_call_handler_component.go", "lines": "323-372"},
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/product.go", "lines": "1583-1602"},
        {"repository": "nexuscrm-app-packs", "path": "salesforce-crm-standard/pack.json", "lines": "191-231"}
      ]
    },
    {
      "id": "runtime-route-and-dialect-bindings",
      "name": "Compiled runtime route surfaces and dialect route ownership",
      "author": "The compiled L1 product distribution and dialect modules.",
      "sole_intended_owner": "L1 owns route grammar/handlers; the L0 host owns neutral mounting and active-pack gating.",
      "persisted_representation": [
        "No durable binding; ProductHooks callbacks and dialect manifests are compiled process state"
      ],
      "current_writers": [
        "CRM ProductHooks.RuntimeRouteSurfaces",
        "CRM dialect registrations/manifests"
      ],
      "current_readers": [
        "serverruntime composition",
        "Active-owner filtering",
        "api-host dialect transport mount"
      ],
      "lifecycle_version": "Binary release, OwningAppPacks, and active installed-pack catalog at process startup.",
      "classification": "transitional",
      "duplicate_or_competing_paths": [
        "RuntimeRouteSurface and dialect route manifests are two current compile-time route contribution mechanisms; they are not a durable target HandlerBinding."
      ],
      "migration_or_deletion_prerequisite": "C0 must identify a real route/capability before A1b chooses the minimum binding fact; old callbacks are deleted only with their consumer cutover.",
      "evidence": [
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/product.go", "lines": "62-85"},
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/product_route_surfaces.go", "lines": "39-105"},
        {"repository": "NexusCRM", "path": "backend/distributions/crm/product.go", "lines": "174-188"},
        {"repository": "NexusCRM", "path": "backend/pkg/serverruntime/routes.go", "lines": "148-176"}
      ]
    },
    {
      "id": "frontend-source-supply",
      "name": "App-pack frontend source manifests and downstream distribution selection",
      "author": "nexuscrm-app-packs authors frontend source; the L2 release BOM selects the exact supply revision.",
      "sole_intended_owner": "L1 owns frontend source/contribution shape and proof; L2 owns the exact release tuple; L0 owns only generic provisioning mechanics.",
      "persisted_representation": [
        "app-packs frontend/source-index.json and per-pack source-manifest.json",
        "L2 release BOM frontend app-packs commit"
      ],
      "current_writers": [
        "App-packs frontend source authors",
        "L2 release assembly"
      ],
      "current_readers": [
        "Generic L0 frontend provisioner using downstream root/ref inputs",
        "L2 frontend build",
        "Runtime active-app-pack inventory used to gate external registration"
      ],
      "lifecycle_version": "Frontend source schema v1 and source index v1; exact revision supplied by the downstream BOM.",
      "classification": "resolved",
      "duplicate_or_competing_paths": [
        "The retired L0 frontend revision and frontend proof locks duplicated L1/L2 ownership.",
        "P1x deleted the former non-product frontend source entry instead of promoting it into an App."
      ],
      "migration_or_deletion_prerequisite": "Complete: L0 no longer selects or proves a fixed L1 frontend revision.",
      "evidence": [
        {"repository": "nexuscrm-app-packs", "path": "frontend/source-index.json", "lines": "1-14"},
        {"repository": "nexuscrm-app-packs", "path": "salesforce-crm-standard/frontend/source-manifest.json", "lines": "1-41"},
        {"repository": "NexusCRM", "path": "frontend/scripts/provision-frontend-app-packages.mjs", "lines": "1-120"},
        {"repository": "nexuscrm-pingcap-pack", "path": "scripts/produce_serviceification_candidate.sh", "lines": "70-95"}
      ]
    },
    {
      "id": "frontend-runtime-contribution",
      "name": "Frontend app owner, route, registry, and navigation contributions",
      "author": "The L1 frontend package.",
      "sole_intended_owner": "L1 owns contribution data and owner ID; the app-blind frontend host owns collision checks, routing slots, and registries.",
      "persisted_representation": [
        "No durable contribution registry; loaded frontend module registers process-local host contributions"
      ],
      "current_writers": [
        "CRM frontend source contribution and host adapter"
      ],
      "current_readers": [
        "Host app/route/renderer/setup registries",
        "Router owner context",
        "Host runtime app loader"
      ],
      "lifecycle_version": "Frontend package/source revision and process startup registration.",
      "classification": "transitional",
      "duplicate_or_competing_paths": [
        "The frontend owner ID binds UI registries but is not target AppID or AppInstallationID.",
        "Legacy fallback frontend-owner registration coexists with explicit _System_App.FrontendAppId."
      ],
      "migration_or_deletion_prerequisite": "A1b must map FrontendManifestRef and owner identity before removing fallback matching or process-local registrations.",
      "evidence": [
        {"repository": "nexuscrm-app-packs", "path": "salesforce-crm-standard/frontend/src/frontend-contribution.ts", "lines": "80-132"},
        {"repository": "nexuscrm-app-packs", "path": "salesforce-crm-standard/frontend/src/host-adapter.tsx", "lines": "239-257"},
        {"repository": "nexuscrm-app-packs", "path": "salesforce-crm-standard/frontend/src/register.tsx", "lines": "582-609"},
        {"repository": "NexusCRM", "path": "frontend/src/host-sdk/app-runtime.ts", "lines": "97-149"},
        {"repository": "NexusCRM", "path": "frontend/src/host/Router.tsx", "lines": "99-141"}
      ]
    },
    {
      "id": "system-app-navigation-config",
      "name": "_System_App mutable UI/navigation configuration",
      "author": "Org metadata administrators through metadata/application-navigation authoring surfaces.",
      "sole_intended_owner": "Metadata/ApplicationNavigation owns mutable app navigation configuration; it is not product App identity authority.",
      "persisted_representation": [
        "_System_App",
        "ProfileAppVisibility and PermissionSetAppVisibility",
        "AppMenuItem projection"
      ],
      "current_writers": [
        "MetadataService/ApplicationNavigation create, update, delete",
        "MetadataRepository visibility and AppMenuItem synchronization"
      ],
      "current_readers": [
        "ApplicationNavigation list/get and visible-app filtering",
        "Salesforce-compatible UI API/Tooling app consumers",
        "CRM frontend app loader/navigation shell"
      ],
      "lifecycle_version": "Mutable org metadata with FrontendAppId owner, navigation/utility items, visibility/default settings, and timestamps; no release/installation version.",
      "classification": "authoritative",
      "duplicate_or_competing_paths": [
        "Its Id/Name use the word app but there is no AppRelease, AppInstallationID, workload, capability grant, source digest, or ownership contract.",
        "AssignedProfiles JSON coexists with canonical visibility tables; create clears AssignedProfiles and repository writes maintain ProfileAppVisibility."
      ],
      "migration_or_deletion_prerequisite": "Keep it as UI/navigation metadata. A1b must use a separate product App fact and explicitly map navigation ownership; never rename/reuse this row as AppManifest authority.",
      "evidence": [
        {"repository": "NexusCRM", "path": "nexuscrm-kernel/pkg/schemacatalog/system_tables.json", "lines": "2305-2393"},
        {"repository": "NexusCRM", "path": "nexuscrm-metadata/metadata_apps.go", "lines": "17-85"},
        {"repository": "NexusCRM", "path": "nexuscrm-metadata/metadata_apps.go", "lines": "88-160"},
        {"repository": "NexusCRM", "path": "nexuscrm-persistence/repo_app.go", "lines": "18-59"},
        {"repository": "NexusCRM", "path": "nexuscrm-persistence/repo_app.go", "lines": "150-223"},
        {"repository": "NexusCRM", "path": "backend/internal/application/services/application_navigation_contract.go", "lines": "31-97"},
        {"repository": "nexuscrm-app-packs", "path": "salesforce-crm-standard/frontend/src/platform/infrastructure/api/metadata.ts", "lines": "17-63"}
      ]
    }
  ]
}
