{
  "id": "eval-advisories-accumulate-in-evaluation-order",
  "title": "Two nudges at one occurrence both appear, in evaluation order, neither discarding the other",
  "covers": [
    "OAR-EVAL-8",
    "OAR-EVAL-19",
    "OAR-EVAL-20",
    "OAR-COPY-7",
    "OAR-COPY-9",
    "OAR-CONF-37"
  ],
  "rules": [
    {
      "oar": "1.0",
      "namespace": "oar.test",
      "kind": "policy",
      "anchor": "tool.pre_invoke",
      "id": "A_SPEND",
      "effect": "nudge",
      "copy": {
        "what": "Session is near the spend ceiling.",
        "fix": "Finish in-flight work and record follow-ups."
      }
    },
    {
      "oar": "1.0",
      "namespace": "oar.test",
      "kind": "policy",
      "anchor": "tool.pre_invoke",
      "id": "B_GROUND",
      "effect": "nudge",
      "copy": {
        "what": "The last claim was ungrounded.",
        "fix": "Cite a recorded observation before closing."
      }
    }
  ],
  "input": {
    "capability": {
      "oar_capability_version": "1.0",
      "host": "oar.testhost",
      "anchors": {
        "core": {
          "tool.pre_invoke": "tool.pre_invoke",
          "tool.handler": "tool.handler",
          "tool.post_invoke": "tool.post_invoke",
          "agent.post_turn": "agent.post_turn",
          "agent.finalize": "agent.finalize",
          "model.input": "model.input",
          "model.output": "model.output",
          "model.tool_result": "model.tool_result"
        },
        "unsupported": []
      },
      "profiles": [],
      "activity_window": 0,
      "detectors": [],
      "expression_nodes_max": 1024,
      "supports_transform": false
    },
    "anchor": "tool.pre_invoke"
  },
  "expected": {
    "decision": "nudge",
    "code": "A_SPEND",
    "rule": "oar.test/A_SPEND",
    "copy": {
      "what": "Session is near the spend ceiling."
    },
    "advisories": [
      {
        "code": "A_SPEND",
        "rule": "oar.test/A_SPEND",
        "copy": {
          "what": "Session is near the spend ceiling.",
          "fix": "Finish in-flight work and record follow-ups."
        }
      },
      {
        "code": "B_GROUND",
        "rule": "oar.test/B_GROUND",
        "copy": {
          "what": "The last claim was ungrounded.",
          "fix": "Cite a recorded observation before closing."
        }
      }
    ],
    "applied": [
      "oar.test/A_SPEND:fired",
      "oar.test/B_GROUND:fired"
    ]
  }
}
