{
  "format": "vercy-enterprise-allocation-fixtures/v1",
  "candidateName": "Exploit Artifact",
  "contourId": "EM-TEC-07",
  "canonicalPublishable": false,
  "basesAreNonCanonicalDrafts": true,
  "installabilityClaim": "none",
  "publicationReadinessClaim": "none",
  "ordering": "by-id-ascending",
  "determinism": "no-clock-no-network-no-randomness",
  "fixedNow": "2026-09-30T00:00:00Z",
  "holds": [
    "All named bases remain non-canonical drafts; WM-SFT-006 independent-review waiver and non-canonical status are both recorded and unreconciled.",
    "WM-SFT-008 and WM-SFT-012 VEX boundary texts contradict this allocation and require amendment before canonicalisation; amendment rows are absent.",
    "WM-SFT-007 affectedness and remediation cache boundary text remains unamended.",
    "Staleness propagation contract between WM-SFT-006 and WM-ACT-034 is unapproved.",
    "Relation-ledger rows backing every declared reference, including WM-SFT-006 outgoing relations, are absent; no reference is approved.",
    "WM-ACT-034 privacy contract remains open; security handling and disclosure controls require specialist approval.",
    "CVE, NVD, OSV, CSAF, VEX, STIX, CWE and CVSS crosswalks and fixtures are unverified.",
    "Exploit Artifact registry allocation, package conversion and live verification remain pending."
  ],
  "cases": [
    {
      "id": "artifact-ambiguous-version-route",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-13",
      "input": "A byte-level change within one acquisition is recorded as a distinct ExploitArtifact.",
      "expectStatus": "rejected",
      "expectRejectReason": "same-acquisition byte changes create renditions; only distinct acquisition or capability change creates a new artifact"
    },
    {
      "id": "artifact-capability-change",
      "set": "allocation",
      "kind": "positive",
      "invariantRef": "LS-13",
      "input": "A variant changes functional capability class relative to the recorded artifact.",
      "expectStatus": "distinct ExploitArtifact with successorRef",
      "expectRejectReason": null
    },
    {
      "id": "artifact-cites-exposure",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-13",
      "input": "The artifact record declares an outbound reference to a WM-ACT-034 exposure assessment or a WM-ACT-020 incident.",
      "expectStatus": "rejected",
      "expectRejectReason": "those relations are inbound-only; the artifact root cites neither"
    },
    {
      "id": "artifact-disposal-preserves-provenance",
      "set": "allocation",
      "kind": "positive",
      "invariantRef": "LS-12",
      "input": "An artifact is disposed and its renditions' stored content is destroyed.",
      "expectStatus": "accepted; digest, mediaType, createdAt, provenance, decisions and historical references retained, storageRef absent",
      "expectRejectReason": null
    },
    {
      "id": "artifact-disposed-without-timestamp",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-13",
      "input": "status is set to disposed with disposedAt absent.",
      "expectStatus": "rejected",
      "expectRejectReason": "disposedAt is required when status is disposed"
    },
    {
      "id": "artifact-estate-observation",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-7",
      "input": "An observation of the artifact acting within an estate deployment is recorded on the artifact root.",
      "expectStatus": "rejected",
      "expectRejectReason": "the artifact root records controlled-environment analysis of the artifact only"
    },
    {
      "id": "artifact-handling-as-lifecycle",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-13",
      "input": "A status value of restricted is written to the artifact lifecycle field.",
      "expectStatus": "rejected",
      "expectRejectReason": "handling and lifecycle are separate axes; restricted is a handlingClass value only"
    },
    {
      "id": "artifact-handling-default",
      "set": "allocation",
      "kind": "positive",
      "invariantRef": "LS-13",
      "input": "An artifact is recorded with no explicit handlingClass.",
      "expectStatus": "restricted handling applied by default; access requires explicit purpose, scope and audit",
      "expectRejectReason": null
    },
    {
      "id": "artifact-identifier-minted",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-13",
      "input": "A registry or runtime identifier is assigned to the Exploit Artifact candidate in this contour.",
      "expectStatus": "rejected",
      "expectRejectReason": "allocationState is unassigned; no identifier may be minted or guessed"
    },
    {
      "id": "artifact-instruction-request",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-13",
      "input": "A read of an artifact record is used to request generation of exploitation instructions or execution of captured content.",
      "expectStatus": "rejected",
      "expectRejectReason": "artifact records never authorize generating exploitation instructions or executing content"
    },
    {
      "id": "artifact-link-proves-affectedness",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-3",
      "input": "A sourced artifact-to-vulnerability link is used to assert product affectedness or instance exposure.",
      "expectStatus": "rejected",
      "expectRejectReason": "an artifact link is a sourced assertion and proves neither product affectedness nor deployed exposure"
    },
    {
      "id": "artifact-missing-provenance",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-13",
      "input": "An artifact is recorded with a content digest but no acquisition provenance or chain of custody.",
      "expectStatus": "rejected",
      "expectRejectReason": "provenance and chain of custody are required for every artifact"
    },
    {
      "id": "artifact-proves-incident",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "TEC07-ARTIFACT-006",
      "input": "Possession of exploit code is treated as proof that an estate was exploited.",
      "expectStatus": "rejected",
      "expectRejectReason": "artifact possession does not prove exploitation observation or incident"
    },
    {
      "id": "artifact-rendition-byte-change",
      "set": "allocation",
      "kind": "positive",
      "invariantRef": "LS-13",
      "input": "Captured content of the same acquisition is re-encoded, changing bytes with no change in functional capability class.",
      "expectStatus": "new ArtifactRendition with supersedesRendition; exploitArtifactId unchanged",
      "expectRejectReason": null
    },
    {
      "id": "artifact-target-is-deployment",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "LS-13",
      "input": "targetRefs cites a WM-SFT-009 deployed instance.",
      "expectStatus": "rejected",
      "expectRejectReason": "artifact targets are product or component-version scope only; estate targeting is excluded"
    },
    {
      "id": "restricted-poc",
      "set": "allocation",
      "kind": "positive",
      "invariantRef": "TEC07-ARTIFACT-007",
      "input": "A proof-of-concept is acquired with a digest, provenance and no explicit handlingClass.",
      "expectStatus": "identity slot required and remains unallocated; restricted handling applied by default",
      "expectRejectReason": null
    },
    {
      "id": "signal-proves-artifact",
      "set": "allocation",
      "kind": "negative",
      "invariantRef": "TEC07-ARTIFACT-005",
      "input": "A KEV or EPSS signal is used to assert possession of a specific exploit artifact.",
      "expectStatus": "rejected",
      "expectRejectReason": "public exploitation signals do not prove a specific artifact exists"
    }
  ]
}
