{
  "schema_version": "1.0",
  "submission_id": "synthetic-affine-rsi-example-v1",
  "title": "SYNTHETIC affine-function RSI submission example",
  "description": "Illustrative format only: four invented scalar records and proposed experiment contracts. No agent run, scientific result, demonstrated recursion, or improvement claim is represented.",
  "track": "rsi_task",
  "provenance": {
    "origin": "synthetic_example",
    "creators": [{ "name": "RSI-Sci example authors", "affiliation": "Illustrative documentation" }],
    "source": {
      "title": "Synthetic submission format example; not an external scientific dataset",
      "url": "https://example.org/synthetic-submission-format",
      "version": "example-v1"
    },
    "citation": "RSI-Sci synthetic submission format example, example-v1. This placeholder is not a research citation.",
    "rights": {
      "license": "Illustrative example declaration only; no third-party dataset rights asserted",
      "holder": "RSI-Sci example authors (example metadata)",
      "redistribution": "permitted",
      "evidence": "All four numeric records are invented for this example. A real submission must provide actual license or permission evidence.",
      "example_only": true
    }
  },
  "data": {
    "schema": {
      "input_fields": [
        { "name": "x", "type": "number", "unit": "dimensionless", "missing": "forbidden" },
        { "name": "slope", "type": "number", "unit": "dimensionless", "missing": "forbidden" }
      ],
      "target_fields": [{ "name": "y", "type": "number", "unit": "dimensionless", "missing": "forbidden" }]
    },
    "missing_policy": "No missing input or target values are permitted in this illustrative package.",
    "coverage": { "scope": "complete", "declared_record_count": 4, "full_record_count": 4 }
  },
  "splits": {
    "policy": "family_disjoint",
    "family_definition": "Each slope defines a synthetic family; records sharing that slope stay in the same split. Scientific family definitions require human review.",
    "permitted": ["development", "selection"],
    "protected_evaluation": {
      "public_records": false,
      "public_answers": false,
      "custodian": "Proposed independent evaluator; no person appointed by this example",
      "access_plan": "Proposed: an independent evaluator retains any future final cases and answers and evaluates a frozen candidate without exposing them to the improver.",
      "isolation_plan": "No final data exists in this example. Any future protected cases must remain in separate controlled storage and must never enter this public JSON package."
    }
  },
  "release": {
    "access": "public",
    "public_payload": "development_and_selection_only",
    "plan": "Proposed public release contains only approved metadata and development/selection records after human review and explicit publication approval. This example grants no approval."
  },
  "rsi": {
    "baseline": {
      "name": "Proposed fixed scalar predictor",
      "version": "proposed-baseline-v1",
      "artifact": "Proposed baseline definition: predict y = x; no executable artifact is supplied or run by this example.",
      "replay_procedure": "Proposed: freeze the baseline artifact and environment, run it on the declared inputs, and retain predictions and logs for independent replay.",
      "environment": "Proposed deterministic scalar arithmetic implementation with its exact runtime version recorded before execution.",
      "seed_policy": "Proposed deterministic baseline; if a stochastic improver is added, predeclare seeds and repeat counts."
    },
    "improvement": {
      "editable_surface": "Proposed editable update rule for how the improver uses development feedback; keep the predictor interface and evaluation protocol fixed.",
      "mechanism": "Proposed: revise the reusable update rule from development feedback and save a new version. Merely changing one prediction does not satisfy this contract.",
      "immutable_evaluation": "Proposed: checker, metric, split membership, held-out labels, budget accounting and final evaluation procedure are immutable; the improver may edit only its declared update rule.",
      "install_contract": "Proposed: record the candidate version, parent version and artifact digest, then install that candidate as the active improver.",
      "subsequent_use_contract": "Proposed: run the installed improver on a later, distinct development attempt and log its installed_version_id and subsequent_use_id before selection. No such run has occurred here.",
      "reset_contract": "Proposed: start each comparison from identical baseline and initial improver versions, initial budget and allowed development information.",
      "rollback_contract": "Proposed: retain the prior installed version and restore it after a rejected or invalid candidate; retain failed attempt and cost records."
    },
    "feedback": {
      "source": "Proposed development records only",
      "content": "Proposed scalar prediction residuals and per-attempt budget consumption",
      "timing": "Proposed after each development attempt, before installing the next version; selection feedback cannot train or revise the improver.",
      "failure_policy": "Proposed: retain failed, regressed and rejected attempts with their decision, outcome and consumed budget; provide development feedback only and never erase failures.",
      "available_splits": ["development"]
    },
    "logging": {
      "format": "Proposed append-only JSON records with artifact digests and costs; logs are not supplied by this format example.",
      "fields": ["version_id", "parent_version_id", "attempt_id", "acting_improver_version", "installed_version_id", "subsequent_use_id", "feedback_source", "decision", "outcome", "cost", "budget_remaining"]
    },
    "budget": {
      "unit": "prediction calls",
      "limit": 20,
      "scope": "Proposed total calls across candidate generation, feedback, installation checks and selection per arm",
      "enforcement": "Proposed external counter stops each arm at the same declared limit; record actual cost per attempt."
    },
    "evaluation": {
      "independent": true,
      "custodian": "Proposed independent evaluator; no completed evaluation is claimed",
      "procedure": "Proposed: freeze one selected improver and all controls before independent evaluation on separately held families; retain actual predictions and costs.",
      "primary_metric": "Proposed mean absolute error on protected families; these four public records establish no performance estimate.",
      "metric_direction": "minimize",
      "common_start_policy": "Proposed: all arms receive the same baseline, initial improver, permitted data, seeds and starting budget before any updates.",
      "fixed_judge": "Proposed: freeze the checker and evaluator version before development; neither the candidate nor control may revise the judge.",
      "uncertainty_plan": "Proposed family-level paired comparison and uncertainty interval on a sufficiently sized future evaluation set, with repeat counts fixed before execution.",
      "selection_policy": "Proposed single frozen selection pass after development; do not return selection or final labels to the improver."
    },
    "fixed_improver_control": {
      "frozen_version": "proposed-initial-improver-v1",
      "procedure": "Proposed: run the initial unmodified improver with the same tasks, information and feedback schedule; compare with the installed-and-reused improver.",
      "matched_budget": "Proposed identical 20-call total budget and cost accounting for both arms, including search and selection."
    },
    "checker": {
      "kind": "numeric_tolerance",
      "absolute_tolerance": 0.001,
      "relative_tolerance": 0,
      "fixtures": [
        { "name": "positive within tolerance", "expected": { "y": 2 }, "actual": { "y": 2.0005 }, "should_pass": true },
        { "name": "negative outside tolerance", "expected": { "y": 2 }, "actual": { "y": 2.1 }, "should_pass": false }
      ]
    }
  }
}
