{
  "format": "vercy-enterprise-allocation-fixtures/v1",
  "candidateName": "Selection Criteria Set",
  "cases": [
    {
      "id": "reused-across-portfolios",
      "kind": "positive",
      "input": "Two portfolios use the same approved criteria-set version with different candidate sets.",
      "expect": "The set is reused without merging portfolios, candidates or prioritization releases."
    },
    {
      "id": "successor-weighting",
      "kind": "positive",
      "input": "A later review changes weights while criterion semantics remain stable.",
      "expect": "A successor version or separately pinned weighting release is created and old rankings remain reproducible."
    },
    {
      "id": "shared-initiative-funding",
      "kind": "positive",
      "input": "Two portfolios admit one initiative with shares 0.6 and 0.25, both with shareBasis capital, from distinct released sources.",
      "expect": "Memberships and allocation intents remain independent; no completeness or exclusivity is inferred, and consolidated reporting derives no actual, capacity, outcome or benefit from the shares."
    },
    {
      "id": "rank-intrinsic",
      "kind": "negative",
      "input": "A rank from one review is written as an intrinsic property of the initiative.",
      "expect": "The write is rejected."
    },
    {
      "id": "compare-incompatible-ranks",
      "kind": "negative",
      "input": "Ranks using different criteria versions and price bases are compared directly.",
      "expect": "The comparison is rejected."
    },
    {
      "id": "criteria-own-observations",
      "kind": "negative",
      "input": "Observed metric values are stored as mutable properties of the criteria definition.",
      "expect": "The ownership merge is rejected."
    },
    {
      "id": "scenario-is-baseline",
      "kind": "negative",
      "input": "The highest-ranked scenario becomes approved automatically.",
      "expect": "The transition is rejected without authorized decision and issued baseline."
    },
    {
      "id": "criteria-set-resolvable-after-portfolio-closure",
      "artifact": "allocation-candidate",
      "kind": "positive",
      "input": "Set S, version v2, status effective, cited by prioritization release PR-1 of portfolio PF-1; PF-1 is subsequently closed.",
      "expect": "S/v2 remains resolvable at every knowledge time and its lifecycle state is unchanged by PF-1 closure.",
      "invariant": "criteria-set-independent-identity"
    },
    {
      "id": "criteria-set-master-is-not-a-portfolio",
      "artifact": "allocation-candidate",
      "kind": "negative",
      "input": "Set S records mastership as the governance body of portfolio PF-1.",
      "expect": "Rejected; mastership must be an investment-methodology authority external to any portfolio.",
      "invariant": "adoption-confers-no-mastership"
    },
    {
      "id": "weighting-pinned-independently",
      "artifact": "allocation-candidate",
      "kind": "positive",
      "input": "Prioritization release PR-1 pins set S version v2 and weighting scheme W version v1, each resolved independently.",
      "expect": "PR-1 is accepted and both pins resolve without traversing any portfolio.",
      "invariant": "prioritization-pins-set-and-weighting"
    },
    {
      "id": "weighting-embedded-in-set-version",
      "artifact": "allocation-candidate",
      "kind": "negative",
      "input": "Weights and a normalization rule are written as fields of set version S/v2.",
      "expect": "Rejected; weighting is a separately identified and separately versioned scheme.",
      "invariant": "criteria-weighting-observation-rank-distinct"
    },
    {
      "id": "criterion-missing-preference-direction",
      "artifact": "allocation-candidate",
      "kind": "negative",
      "input": "Criterion C-1 in S/v2 declares measureRef, scale and unit but no preferenceDirection.",
      "expect": "Rejected at set-version approval; the version cannot reach approved state.",
      "invariant": "criterion-required-fields"
    },
    {
      "id": "criterion-missing-mandatory-class",
      "artifact": "allocation-candidate",
      "kind": "negative",
      "input": "Criterion C-2 in S/v2 declares no criterionClass value from {mandatory, compensatory}.",
      "expect": "Rejected at set-version approval.",
      "invariant": "criterion-required-fields"
    },
    {
      "id": "set-effectivity-without-effective-version",
      "artifact": "allocation-candidate",
      "kind": "negative",
      "input": "Set S is asserted effective while all of its versions are draft or superseded.",
      "expect": "Rejected; effectivity is carried only by versions and a closed or version-less set holds none.",
      "invariant": "single-locus-effectivity"
    },
    {
      "id": "as-of-replay-after-supersession",
      "artifact": "allocation-candidate",
      "kind": "positive",
      "input": "S/v2 is superseded by S/v3; PR-1, decision D-7 and record REC-7 are replayed at the knowledge time preceding supersession.",
      "expect": "PR-1, D-7 and REC-7 reproduce byte-identically against S/v2 with recordedAt and assertedFrom unchanged.",
      "invariant": "as-of-reproducibility"
    },
    {
      "id": "incommensurable-observation-authority",
      "artifact": "profile-candidate",
      "kind": "negative",
      "input": "PF-1 and PF-2 both pin S/v2 and W/v1 but cite different observationAuthorityRef values; their ranks for component INI-1 are compared on one scale.",
      "expect": "Rejected; the comparability pin set is not identical.",
      "invariant": "rank-comparability-pins"
    },
    {
      "id": "conflicting-cross-portfolio-ranks-permitted",
      "artifact": "profile-candidate",
      "kind": "positive",
      "input": "PF-1 ranks INI-1 first and PF-2 ranks INI-1 seventh, each in its own prioritization release.",
      "expect": "Both releases stand; no reconciliation, precedence or merge is performed and no rank is written to the INI-1 master.",
      "invariant": "rank-is-release-scoped"
    },
    {
      "id": "two-discriminator-values",
      "artifact": "profile-candidate",
      "kind": "negative",
      "input": "One WM-ACT-029 instance asserts discriminator values Program and Portfolio simultaneously.",
      "expect": "Rejected; exactly one enumerated value is permitted and a profile change is supersession with new identity.",
      "invariant": "single-discriminator"
    },
    {
      "id": "program-semantics-not-inherited",
      "artifact": "profile-candidate",
      "kind": "negative",
      "input": "A Portfolio instance asserts an exclusive child set, rolls component actuals to portfolio level, and requires component relatedness.",
      "expect": "Rejected on all three assertions by the profile disabling constraint.",
      "invariant": "program-semantics-disabled"
    },
    {
      "id": "shares-not-summing-to-one",
      "artifact": "profile-candidate",
      "kind": "positive",
      "input": "PF-1 allocates share 0.6 and PF-2 share 0.25 to component INI-1, both with shareBasis capital, from distinct released sources.",
      "expect": "Both allocations are accepted; no completeness, exclusivity or residual third share is inferred.",
      "invariant": "shares-need-not-sum-to-one"
    },
    {
      "id": "share-basis-undeclared",
      "artifact": "profile-candidate",
      "kind": "negative",
      "input": "An InvestmentAllocation declares share 0.4 with no shareBasis value.",
      "expect": "Rejected; no default basis is applied and the allocation cannot be released.",
      "invariant": "share-basis-required"
    },
    {
      "id": "actual-derived-from-share",
      "artifact": "profile-candidate",
      "kind": "negative",
      "input": "Consolidated reporting computes PF-1's accounting actual for INI-1 as 0.6 of the component actual, and sums expected benefit across PF-1 and PF-2 shares.",
      "expect": "Rejected; actuals, capacity, outcomes and benefits are never derived or apportioned from allocation shares.",
      "invariant": "no-derivation-from-shares"
    },
    {
      "id": "allocation-exceeds-released-source",
      "artifact": "profile-candidate",
      "kind": "blocked",
      "input": "Allocations drawn on one released funding source and period exceed its released amount.",
      "expect": "Not executable: the Funding Source referent is unallocated, so the case fails closed and asserts no funding-integrity outcome.",
      "invariant": "source-non-exceedance-suspended"
    },
    {
      "id": "portfolio-closure-does-not-cascade",
      "artifact": "profile-candidate",
      "kind": "negative",
      "input": "PF-1 transitions to closed and the transition attempts to close component INI-1 and void its baseline and actuals.",
      "expect": "Rejected; memberships end prospectively and the component master, lifecycle, baseline, actuals and evidence are untouched.",
      "invariant": "no-lifecycle-cascade"
    },
    {
      "id": "component-cancelled-upstream",
      "artifact": "profile-candidate",
      "kind": "positive",
      "input": "INI-1 is cancelled on its own master after scenario SC-3 was selected and baselined.",
      "expect": "Affected memberships end prospectively at the recorded effective instant, forward allocation intent terminates, and SC-3, D-7, REC-7 and the baseline release are unmutated.",
      "invariant": "upstream-disruption-prospective-only"
    },
    {
      "id": "component-split-no-share-inheritance",
      "artifact": "profile-candidate",
      "kind": "negative",
      "input": "INI-1 splits into INI-1a and INI-1b and the existing 0.6 share is automatically carried to both successors.",
      "expect": "Rejected; each successor master requires a new membership assertion and a newly declared share.",
      "invariant": "no-automatic-share-inheritance"
    },
    {
      "id": "component-re-mastered",
      "artifact": "profile-candidate",
      "kind": "positive",
      "input": "INI-1 is re-mastered from WM-ACT-030 to WM-ACT-005 following authorization.",
      "expect": "Prior memberships end prospectively, a new membership is asserted against the new master, and no released prioritization, allocation, scenario or baseline is rewritten.",
      "invariant": "upstream-disruption-prospective-only"
    },
    {
      "id": "baseline-release-distinct-from-scenario",
      "artifact": "profile-candidate",
      "kind": "positive",
      "input": "Decision D-7 approves scenario SC-3 and issues REC-7.",
      "expect": "A distinct immutable composition-and-allocation baseline release is created referencing SC-3, D-7 and REC-7; SC-3 remains an unmodified hypothesis release and absorbs no decision body.",
      "invariant": "baseline-is-distinct-release"
    },
    {
      "id": "alignment-claim-misowned",
      "artifact": "profile-candidate",
      "kind": "negative",
      "input": "A strategic-alignment contribution claim is written onto set version S/v2 and onto the INI-1 master.",
      "expect": "Rejected on both writes; the claim is owned by the prioritization release and references WM-KNW-011 without asserting causal or realized benefit.",
      "invariant": "alignment-claim-ownership"
    },
    {
      "id": "unrelated-components-form-no-program",
      "artifact": "profile-candidate",
      "kind": "positive",
      "input": "PF-1 holds three mutually unrelated components with no dependency, shared outcome or benefit hypothesis.",
      "expect": "PF-1 remains a Portfolio profile; no Program is formed, inferred or required.",
      "invariant": "membership-implies-no-program"
    },
    {
      "id": "rebalance-preserves-prior-releases",
      "artifact": "profile-candidate",
      "kind": "positive",
      "input": "An authorized rebalance follows a funding change after SC-3 was baselined.",
      "expect": "Successor prioritization, allocation, scenario and baseline releases are issued; SC-3, D-7, REC-7 and the prior baseline remain immutable and resolvable.",
      "invariant": "rebalance-creates-successors"
    },
    {
      "id": "unverified-base-pin-blocks-conformance",
      "artifact": "profile-candidate",
      "kind": "blocked",
      "input": "The profile is asserted conformant, installable or publication-ready while one or more entries in basePins carry pinState unverified.",
      "expect": "Rejected; unverified base pins support no conformance, installability or publication claim.",
      "invariant": "unverified-pins-block-claims"
    }
  ],
  "candidateRevision": 3,
  "oracleMode": "exact-expectation"
}
