{
  "task_id": "causal-circuits",
  "version": "0.2.0",
  "budget": 8,
  "cost_semantics": "Every accepted experiment costs one credit; at most two repeats per action. Invalid requests cost nothing. The budget is a hard constraint; unused credits do not directly increase the score.",
  "measurement_noise": "Independent additive zero-mean Gaussian noise per output and replicate, with the listed fixed standard deviations. Readouts are not clipped. Each measurement has equal synthetic exposure/cost. Repeating observe_initial returns the same initial data, not new measurements.",
  "split_definition": "Train and test use independent parameter/noise draws from the same published distributions. No claim of out-of-family generalization.",
  "status": "Original synthetic prototype; no physical calibration or LLM training result.",
  "submission": "Submit one finite numeric matrix in the exact prediction_shape. Submission is terminal and cannot be retried after acceptance.",
  "scoring": {
    "name": "inverse_normalized_mse",
    "formula": "score = 1 / (1 + mean(((prediction - noiseless_hidden_target) / scale)^2))",
    "scale": [
      0.035,
      0.035
    ],
    "range": [
      0,
      1
    ],
    "meaning": "Higher is better. Exact latent-mean prediction scores 1. A normalized RMSE equal to one measurement-noise standard deviation scores 0.5. Measurement noise is not added to hidden targets."
  },
  "title": "Synthetic causal circuits",
  "outputs": [
    "x",
    "y"
  ],
  "noise_std": [
    0.035,
    0.035
  ],
  "instructions": "Infer a synthetic nonlinear causal circuit from noisy single-node interventions. Use up to eight experiments, then predict x and y under the listed combined interventions. The causal equations and prior are known; their coefficients are hidden. There is no score for identifying a unique graph.",
  "model": "x=tanh(bx+wu*u+wv*v), y=tanh(by+wx*x+yu*u+yv*v). Interventions replace the equation of the clamped node. Unclamped roots u=v=0.",
  "prior": "bx,by independently Uniform(-0.2,0.2); wu,wv,wx,yu,yv independently Uniform(-0.9,0.9).",
  "initial_queries": [
    {
      "u": 0.0,
      "v": 0.0
    }
  ],
  "prediction_queries": [
    {
      "u": -0.8,
      "v": -0.8
    },
    {
      "u": -0.8,
      "v": 0.8
    },
    {
      "u": 0.8,
      "v": -0.8
    },
    {
      "u": 0.8,
      "v": 0.8
    },
    {
      "u": -0.4,
      "v": 0.7
    },
    {
      "u": 0.6,
      "v": -0.3
    },
    {
      "u": -0.6,
      "x": 0.6
    },
    {
      "v": 0.6,
      "x": -0.6
    }
  ],
  "experiments": [
    {
      "id": "clamp-u-0",
      "label": "Clamp u to -1",
      "query": {
        "u": -1.0
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-u-1",
      "label": "Clamp u to -0.4",
      "query": {
        "u": -0.4
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-u-2",
      "label": "Clamp u to 0.4",
      "query": {
        "u": 0.4
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-u-3",
      "label": "Clamp u to 1",
      "query": {
        "u": 1.0
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-v-0",
      "label": "Clamp v to -1",
      "query": {
        "v": -1.0
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-v-1",
      "label": "Clamp v to -0.4",
      "query": {
        "v": -0.4
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-v-2",
      "label": "Clamp v to 0.4",
      "query": {
        "v": 0.4
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-v-3",
      "label": "Clamp v to 1",
      "query": {
        "v": 1.0
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-x-0",
      "label": "Clamp x to -1",
      "query": {
        "x": -1.0
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-x-1",
      "label": "Clamp x to -0.4",
      "query": {
        "x": -0.4
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-x-2",
      "label": "Clamp x to 0.4",
      "query": {
        "x": 0.4
      },
      "cost": 1,
      "max_replicates": 2
    },
    {
      "id": "clamp-x-3",
      "label": "Clamp x to 1",
      "query": {
        "x": 1.0
      },
      "cost": 1,
      "max_replicates": 2
    }
  ],
  "action_schema": {
    "type": "object",
    "properties": {
      "action_id": {
        "type": "string",
        "enum": [
          "clamp-u-0",
          "clamp-u-1",
          "clamp-u-2",
          "clamp-u-3",
          "clamp-v-0",
          "clamp-v-1",
          "clamp-v-2",
          "clamp-v-3",
          "clamp-x-0",
          "clamp-x-1",
          "clamp-x-2",
          "clamp-x-3"
        ]
      }
    },
    "required": [
      "action_id"
    ],
    "additionalProperties": false
  },
  "prediction_shape": [
    8,
    2
  ]
}
