Crosswake.SupportMatrix (crosswake v0.1.0)

View Source

Canonical support-matrix truth shared across manifest generation, doctor, and docs.

Summary

Functions

Returns the canonical taxonomy of prerequisite classes that may be referenced by commerce corridor entries. Every prerequisite_classes value on a commerce corridor entry must be drawn from this set so doctor/support/guides taxonomy stays parity-locked.

Returns the canonical commerce corridor proof-class mapping.

Functions

canonical(opts \\ [])

@spec canonical(keyword()) :: Crosswake.Manifest.Types.SupportMatrix.t()

capability_families(support_matrix)

@spec capability_families(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
  Crosswake.Manifest.Types.CapabilitySupportEntry.t()
]

change_classes(support_matrix)

@spec change_classes(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
  Crosswake.Manifest.Types.ChangeClassEntry.t()
]

commerce_corridor_denial_codes()

@spec commerce_corridor_denial_codes() :: [String.t()]

commerce_corridor_prerequisite_taxonomy()

@spec commerce_corridor_prerequisite_taxonomy() :: [atom()]

Returns the canonical taxonomy of prerequisite classes that may be referenced by commerce corridor entries. Every prerequisite_classes value on a commerce corridor entry must be drawn from this set so doctor/support/guides taxonomy stays parity-locked.

commerce_corridor_proof_classes()

@spec commerce_corridor_proof_classes() :: %{
  required(String.t()) => %{
    proof_class: :merge_blocking | :advisory,
    advisory_provider_proof: boolean()
  }
}

Returns the canonical commerce corridor proof-class mapping.

Every commerce corridor declares whether its hermetic Phoenix-owned contract proof is :merge_blocking (core route/manifest/denial truth that must pass before merge) and whether it also carries an advisory_provider_proof flag for storefront/simulator evidence (StoreKit, Play Billing) that stays advisory in v3.2.

commerce_corridors()

@spec commerce_corridors() :: [map()]

fetch_status(support_matrix, category, version)

@spec fetch_status(Crosswake.Manifest.Types.SupportMatrix.t(), atom(), String.t()) ::
  {:ok, Crosswake.Manifest.Types.SupportEntry.status()} | :error

package_surfaces(support_matrix)

@spec package_surfaces(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
  Crosswake.Manifest.Types.PackageSurfaceEntry.t()
]

release_boundaries(support_matrix)

@spec release_boundaries(Crosswake.Manifest.Types.SupportMatrix.t()) :: [
  Crosswake.Manifest.Types.ReleaseBoundaryEntry.t()
]

statuses()

@spec statuses() :: [atom()]

validate(support_matrix)

@spec validate(Crosswake.Manifest.Types.SupportMatrix.t()) :: [map()]