{
  "handle": "AcceptSpec",
  "mechanism": "A strict, typed {{spec}} defining non-compensatory {{criteria}} and {{constraint}}s at solver boundaries. Each criterion is declared individually and carries a reframing hint for the FrameError emitted if it rejects. AcceptSpec is a Noun — it describes the contract. The active Verify surface of a Solver consumes the AcceptSpec, evaluates it against a Result, and yields either a Solution (on non-compensatory success) or a FrameError (on failure, carrying the specific rejecting gate and its reframing hint). A single AcceptSpec may be evaluated by multiple Verify surfaces. High quality in one dimension cannot compensate for failure in another.",
  "gloss": "Non-compensatory acceptance contract; consumer Verify yields Solution or FrameError",
  "failure_modes": [
    "Over-constraining: Setting specs so tight that no solution can pass (Deadlock).",
    "Spec Drift: The spec does not accurately reflect the true goal."
  ],
  "invariants": [
    "Non-Compensatory: Score(A) = 0 if any(Criterion) == Fail",
    "Typed Output: Result must match schema, not free text"
  ],
  "parameters": [
    {
      "name": "criterion_bar",
      "type": "Enum",
      "range": "{Lenient, Normal, Strict}",
      "description": "How high each individual criterion's pass bar sits. Moves the bars; does not tolerate a failure once one is recorded, which the non-compensatory invariant forbids."
    },
    {
      "name": "timeout",
      "type": "Duration",
      "range": "unspecified",
      "description": "How long evaluation may run before yielding."
    }
  ],
  "_meta": {
    "tier": 2,
    "ring": 0,
    "supersedes": [
      "sema:AcceptSpec#mh:SHA-256:70ddc45d00abda5ec5b7475b080d252f01c3db589490498563621665444293f1",
      "sema:AcceptSpec#mh:SHA-256:c1565bf022e5596a447f7c9d9687ac3cbf1e6960f871be16f386eec02b5df2c4",
      "sema:AcceptSpec#mh:SHA-256:a72492b72aac16bd5598ec5bfb9e0dffd7a53039c3217105996fa5cf062568f5"
    ],
    "path": [
      "Infrastructure",
      "Data Structures"
    ]
  },
  "data_schema": {
    "type": "object",
    "required": [
      "criteria"
    ],
    "properties": {
      "criteria": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "threshold": {
              "type": "number",
              "minimum": 0,
              "maximum": 1,
              "description": "Minimum acceptable score for this criterion"
            },
            "comparator": {
              "type": "string"
            }
          }
        },
        "description": "Non-compensatory acceptance criteria"
      },
      "timeout": {
        "type": "string",
        "description": "Max validation wait time"
      }
    }
  },
  "sema_id": "sema:AcceptSpec#mh:SHA-256:37fa28b93d390f8c8eb171eaab54ff4f9e57a95ef67af024422f823545a291cc",
  "sema_ref": "AcceptSpec#37fa",
  "sema_stub": "37fa",
  "dependencies": {
    "references": {
      "constraint": "sema:Constraint#mh:SHA-256:70136d525260a10eedf156aad1fe6c50510eadb10a89d063c7a85575b15708fc",
      "criteria": "sema:Criteria#mh:SHA-256:92ab804441f5ff5307c6e45905818372e6159c4bd64d264ac7fddd6705de8acb",
      "spec": "sema:Spec#mh:SHA-256:c9537551b2bfa2639c15270994fdbb5a52a41d098f499c5ed5d61945a7c50da7"
    }
  },
  "sema_layer": "Infrastructure",
  "sema_category": "Data Structures",
  "used_by": {
    "references": {
      "AgentProtocol": "sema:AgentProtocol#mh:SHA-256:86a3f129036a28bab76d60f15ac835dfe779536cf02fe916f7b21cb1369ebf6d",
      "BoundedTask": "sema:BoundedTask#mh:SHA-256:86dd552006f7636198f5d54e1beec2c5fa82b1f19aaf41ad8b45eecf9089b8fc",
      "DataMinimization": "sema:DataMinimization#mh:SHA-256:e8c8cd89b8e187d501000746c5216fef9ea41558a20fde07372881a2948994eb",
      "FailureTrace": "sema:FailureTrace#mh:SHA-256:8085febc5bf923c52ce1856893c7739e5d9be3bdc021767766ad949f717a974e",
      "FrameError": "sema:FrameError#mh:SHA-256:1d0ac501f011a053fde50bef6bc2a781c2f916014f4b2b74de955f6d84db9c5d",
      "OrchestrationLoop": "sema:OrchestrationLoop#mh:SHA-256:e8ba5873bab7bc8a60c971462d4c5a19d86ecf67c4526a516242e20aa388762e",
      "PromptChain": "sema:PromptChain#mh:SHA-256:02b5f2277c89d51e35336a8735f5a8bf26304332db887961bb23790c8c82b2f9",
      "ReceptivityGate": "sema:ReceptivityGate#mh:SHA-256:0db58374b9595734af888df1f152aa802e6da20fb24e2786e44f1837f2a4f4fa",
      "ScopeFreeze": "sema:ScopeFreeze#mh:SHA-256:548e48a88048b5383250dbf480e0b52ed61ed9cc2fd947d89fac68edc9737d21",
      "SynergisticMode": "sema:SynergisticMode#mh:SHA-256:0ec733cad8aec135dae1a1efb3ea244eb6e1d36a470492abccaaf5f8b121541d",
      "Validate": "sema:Validate#mh:SHA-256:ffd128811cea63d7a4dac2c45c95fd8ac1d8a7d3788423fb6710b622167305ed",
      "Workflow": "sema:Workflow#mh:SHA-256:808de72d3285e4ac086b85bfe4ba028ad2904b4088f7a22b60259ff8d8ffe057"
    },
    "accepts": {
      "DocumentedOverride": "sema:DocumentedOverride#mh:SHA-256:129bb6b19219e4afc278012f555b298980c4a74000195ae1e6766f2e5d40d940",
      "Elect": "sema:Elect#mh:SHA-256:53902a96572579889fc19d4c0100e7876fe566fba4cc846241e6b209b00bf52f",
      "Rally": "sema:Rally#mh:SHA-256:9ee797cd797df62b9883ead618c35eb8d8a5e86c171630cdc8f8ecc6066d6a89"
    },
    "yields": {
      "ProblemFramer": "sema:ProblemFramer#mh:SHA-256:ad6b7fc1f14f2e26dd0d230f81382a2c602c365ebe4b9ad5fd390fb0c2d4c4fc"
    }
  }
}
