{
  "handle": "PerformanceSignal",
  "mechanism": "The typed artifact emitted by a Solver's Feedback surface — the downstream evaluation of how a completed transaction performed against its acceptance criteria, or the escalation signal that invokes a {{frame_error}} when failure is structural rather than local. Distinct from the general {{feedback}} primitive: PerformanceSignal is the contract-typed output that feeds {{pathway_memory}} (quality, depth, cost across problem classes) and drives localized learning at each node. The signal is produced by the consumer of a Result (parent Solver or end-caller) after the Acceptance Gate either admitted the Result as a Solution or rejected it back for reframing.",
  "gloss": "Typed artifact emitted by a Solver's Feedback surface — downstream evaluation that feeds Pathway Memory",
  "invariants": [
    "Typed: the signal conforms to a declared schema so {{pathway_memory}} can aggregate across instances.",
    "Attributable: names the Solver node that produced the evaluated Result, so learning is localized.",
    "Three-outcome: either a scored evaluation, a pass/accept confirmation, or a {{frame_error}} escalation."
  ],
  "failure_modes": [
    "Sycophantic drift: evaluator shares the generator's blind spots and rubber-stamps weak outputs.",
    "Signal poisoning in open commons: an untrusted consumer fabricates penalties to steal work (mitigated by {{receptivity_gate}}).",
    "Latency decay: the signal arrives long after the node has moved on, weakening the learning loop.",
    "Grade inflation: evaluators converge on 'good enough' scoring so all signals compress into a narrow band."
  ],
  "data_schema": {
    "type": "object",
    "required": [
      "solver_ref",
      "outcome"
    ],
    "properties": {
      "solver_ref": {
        "type": "string",
        "description": "sema_id of the Solver node being evaluated"
      },
      "outcome": {
        "type": "string",
        "enum": [
          "accepted",
          "scored",
          "frame_error"
        ],
        "description": "Shape of the signal"
      },
      "score": {
        "type": "number",
        "description": "Optional quality score when outcome=scored"
      },
      "frame_error_ref": {
        "type": "string",
        "description": "sema_id of the FrameError when outcome=frame_error"
      },
      "evaluator_ref": {
        "type": "string",
        "description": "Identity of the evaluating entity, for trust-weighted aggregation"
      }
    }
  },
  "_meta": {
    "tier": 1,
    "ring": 0,
    "path": [
      "Infrastructure",
      "Data Structures"
    ],
    "supersedes": [
      "sema:PerformanceSignal#mh:SHA-256:10af65000a53f88e121ac8edbc6b6d3a105a5a86a5b1b370cd227e2062a4dcd3",
      "sema:PerformanceSignal#mh:SHA-256:7dea9b2784b3fa72856ba2b90eedc79ceb7c0b499b1c2a2bfdac205a5dbc27bf",
      "sema:PerformanceSignal#mh:SHA-256:0f41b62437d210e1bf814dd145961f1ccd95661deaffa567989334ad298fdffb",
      "sema:PerformanceSignal#mh:SHA-256:b1306e8135cc948042a67d39d29dfe2e7bdce610371c733e9c415a8b26a677f6"
    ]
  },
  "sema_id": "sema:PerformanceSignal#mh:SHA-256:9dfb41dd2ac3f271ca5d4a3ab67219a5a18aa8dbd970cdb410e7c9c1ec85488c",
  "sema_ref": "PerformanceSignal#9dfb",
  "sema_stub": "9dfb",
  "dependencies": {
    "references": {
      "feedback": "sema:Feedback#mh:SHA-256:8821fbee51f9b6e495277b161e874a5ba2995bf7ce4fc6e9bc9801798a983c3d",
      "frame_error": "sema:FrameError#mh:SHA-256:1d0ac501f011a053fde50bef6bc2a781c2f916014f4b2b74de955f6d84db9c5d",
      "pathway_memory": "sema:PathwayMemory#mh:SHA-256:ce2e6ce822404fae0e60a43fc2c6fbe2e4d51ab9aefee1e7a9e21da75893e722",
      "receptivity_gate": "sema:ReceptivityGate#mh:SHA-256:0db58374b9595734af888df1f152aa802e6da20fb24e2786e44f1837f2a4f4fa"
    }
  },
  "sema_layer": "Infrastructure",
  "sema_category": "Data Structures",
  "used_by": {
    "references": {
      "PolymorphicSolver": "sema:PolymorphicSolver#mh:SHA-256:f7fe4635a7520f918c823f0047d6fed8e38fd820c1970ef4623cc8fd78d2b0bd",
      "Solver": "sema:Solver#mh:SHA-256:a4478611882cced1b069f8dc551d401c74b35cefe02ed67d37d1aa135e19825b"
    }
  }
}
