{
  "format": "vercy-world-model-fixtures/v1",
  "modelId": "WM-REC-006",
  "version": "0.1.0-candidate.3",
  "cases": [
    {
      "id": "done-tasks-failed-test",
      "kind": "negative",
      "input": "Requirement R@rev1 traces to three Done tasks and one failed test result.",
      "expect": "Requirement remains unsatisfied or inconclusive; task state has no evidential weight and the failed result stays visible."
    },
    {
      "id": "later-pass-retains-failure",
      "kind": "positive",
      "input": "A later test passes the same Requirement revision with qualified evidence.",
      "expect": "The pass may support satisfaction, but the earlier failure remains visible in lineage."
    },
    {
      "id": "tolerance-revision-local",
      "kind": "positive",
      "input": "A Requirement-local tolerance changes between caller-supplied revision sets S1 and S2.",
      "expect": "Append a new Acceptance Criterion and Requirement revision; derived comparison reports the delta and neither set view becomes authoritative."
    },
    {
      "id": "tolerance-revision-rule",
      "kind": "positive",
      "input": "A reusable Rule-owned tolerance changes between caller-supplied revision sets S1 and S2.",
      "expect": "Issue and pin a new WM-KNW-013 Rule revision, append a Requirement revision and derive the delta; never mutate the old Rule pin."
    },
    {
      "id": "baseline-population-collection",
      "kind": "positive",
      "input": "A caller supplies exact revisions of five Requirements for comparison.",
      "expect": "Compute a content-addressed non-authoritative RequirementRevisionSetView; do not create approval, effectivity or successor identity."
    },
    {
      "id": "baseline-per-requirement-child",
      "kind": "negative",
      "input": "A population comparison set is stored beneath only R1 as an authoritative child.",
      "expect": "Rejected: WM-REC-006 owns no authoritative Baseline; separate reservation review is required."
    },
    {
      "id": "configuration-baseline-smuggling",
      "kind": "negative",
      "input": "A revision-set view is asked to master design versions, test runs and evidence artifacts.",
      "expect": "Rejected: broader product/configuration Baseline stays external."
    },
    {
      "id": "baseline-membership-edit",
      "kind": "negative",
      "input": "A cached revision-set comparison is edited in place and treated as authoritative.",
      "expect": "Rejected: recompute from complete pinned inputs; the view owns no mutable set or authority."
    },
    {
      "id": "baseline-diff-tolerance",
      "kind": "positive",
      "input": "S1 contains R@rev1 and S2 contains R@rev2 after a tolerance change.",
      "expect": "Derived diff reports Requirement revision, criterion/tolerance and Rule-pin deltas; it stores no satisfaction verdict and is not a master record."
    },
    {
      "id": "stale-test-after-change",
      "kind": "negative",
      "input": "A test result for rev1 is reused automatically for changed rev2.",
      "expect": "Rejected unless byte-identical scope is explicitly reaffirmed with evidence."
    },
    {
      "id": "copied-rule-text",
      "kind": "negative",
      "input": "A reusable formal Rule is copied into many Acceptance Criteria.",
      "expect": "Use exact WM-KNW-013 revision pins and local bindings instead."
    },
    {
      "id": "local-condition-not-promoted",
      "kind": "positive",
      "input": "A one-off informal condition applies only to one Requirement revision.",
      "expect": "Keep it inside the contained Acceptance Criterion; do not mint a reusable Rule."
    },
    {
      "id": "work-order-ac-collision",
      "kind": "negative",
      "input": "A WM-ACT-007 work-order acceptance finding is treated as the Requirement Acceptance Criterion.",
      "expect": "Rejected: the finding remains work-order-local; the Requirement criterion defines its revision’s satisfaction clause."
    },
    {
      "id": "outbound-trace-pinned",
      "kind": "positive",
      "input": "R@rev1 asserts a typed trace to design D@v3 with asserter and time.",
      "expect": "Store a Requirement-contained outbound association; D remains externally mastered."
    },
    {
      "id": "unpinned-trace",
      "kind": "negative",
      "input": "A trace references a mutable task or design without a revision.",
      "expect": "It is not Baseline-eligible and cannot support satisfaction."
    },
    {
      "id": "trace-endpoint-revised",
      "kind": "negative",
      "input": "The external target advances from D@v3 to D@v4 and the old trace is silently retargeted.",
      "expect": "Rejected: the original assertion remains and is marked suspect or superseded by a new assertion."
    },
    {
      "id": "trace-presence-not-proof",
      "kind": "negative",
      "input": "A satisfies or verifies link exists with no qualified result or evidence.",
      "expect": "The link is only an assertion and cannot prove satisfaction."
    },
    {
      "id": "inbound-trace-external",
      "kind": "positive",
      "input": "A test-result master asserts an inbound relation to R@rev1.",
      "expect": "The assertion remains owned by the test-result master and is not duplicated as an outbound Requirement Trace Link."
    },
    {
      "id": "conflicting-alternatives",
      "kind": "positive",
      "input": "Two Requirement alternatives conflict and one is selected by an external decision.",
      "expect": "Both revisions and the conflict remain; resolution references authority and selected revision."
    },
    {
      "id": "need-not-edited-requirement",
      "kind": "negative",
      "input": "A stakeholder Need is overwritten with authoritative Requirement wording.",
      "expect": "Rejected: Need wording remains as authored and the Requirement records a derivation reference."
    },
    {
      "id": "waiver-not-pass",
      "kind": "negative",
      "input": "An active waiver coexists with an open failed test.",
      "expect": "The waiver remains external and bounded; it does not erase the failure or silently mark satisfaction."
    },
    {
      "id": "access-intersection",
      "kind": "negative",
      "input": "A reader can access R@rev1 but not a confidential evidence or waiver record.",
      "expect": "The contained view redacts the inaccessible reference without confirming hidden-record existence."
    },
    {
      "id": "no-catalogue-ids-for-parts",
      "kind": "negative",
      "input": "A criterion, RM Baseline or Trace Link is assigned a new catalogue model ID by this contour.",
      "expect": "Rejected: contained records use local scoped addresses and EM-PRD-03 allocates no new model ID."
    },
    {
      "id": "authoritative-baseline-hidden-root",
      "kind": "negative",
      "input": "A RequirementRevisionSetView receives approval, effectivity and successor lifecycle.",
      "expect": "Rejected: those semantics require separate Requirement Baseline reservation review."
    },
    {
      "id": "baseline-verdict-freeze",
      "kind": "negative",
      "input": "A sealed comparison input stores Requirement satisfaction status as part of its digest.",
      "expect": "Rejected: the view pins identities and content digests only; verdicts remain time-varying external facts."
    },
    {
      "id": "derived-diff-not-master",
      "kind": "negative",
      "input": "A diff between S1 and S2 is assigned an authoritative lifecycle and reused without recomputation.",
      "expect": "Rejected: diff is a reproducible derived result, never a master record."
    },
    {
      "id": "external-conflict-owner",
      "kind": "positive",
      "input": "Two Requirement families conflict and an external issue/case records the dispute and decision.",
      "expect": "WM-REC-006 preserves revision references but owns no pairwise conflict aggregate."
    },
    {
      "id": "local-conflict-hidden-root",
      "kind": "negative",
      "input": "A pairwise conflict between two Requirement families is given an owner-local key under only one family.",
      "expect": "Rejected: conflict identity and lifecycle must be externally mastered."
    },
    {
      "id": "rule-pin-local-override",
      "kind": "negative",
      "input": "A criterion pins Rule K@v3 but overrides its tolerance locally.",
      "expect": "Rejected: re-pin a new Rule revision or explicitly convert to an informal condition with provenance and a new Requirement revision."
    },
    {
      "id": "rule-to-informal-conversion",
      "kind": "positive",
      "input": "A project intentionally stops using reusable Rule K and adopts a one-off local condition.",
      "expect": "Remove the Rule pin, record conversion provenance and append a new Requirement revision."
    },
    {
      "id": "requirement-to-requirement-trace",
      "kind": "positive",
      "input": "R1@rev2 traces to R2@rev4 inside WM-REC-006.",
      "expect": "One record is owned by R1@rev2; R2 shows only a derived inbound projection."
    },
    {
      "id": "mirrored-trace-forbidden",
      "kind": "negative",
      "input": "The same R1→R2 assertion is stored independently under both Requirements.",
      "expect": "Rejected: mirrored records can diverge; the source revision is the single owner."
    },
    {
      "id": "redacted-view-incomplete",
      "kind": "negative",
      "input": "A reader receives a revision-set view with inaccessible members, but the result is labelled complete.",
      "expect": "Rejected: mark partial-redacted and do not disclose withheld identities or counts."
    }
  ]
}
