{
  "protocols": [
    {
      "authority_boundary": "Uninstantiated concept template only; it carries no research, collection, or publication authority.",
      "companion_issue": 4041,
      "evidence": [],
      "evidence_origin": "unavailable",
      "history": [],
      "links": {
        "calculation_artifacts": [],
        "claim_ids": [],
        "claim_link_next_gate": "Register bounded claims before evidence review.",
        "claim_link_status": "unavailable",
        "critique_ids": [],
        "critique_link_next_gate": "Register applicable critiques before evidence review.",
        "critique_link_status": "unavailable",
        "datasets": [],
        "route_audits": [],
        "validation_release": {
          "next_gate": "Only #4042 may supply publication authority.",
          "status": "unavailable"
        },
        "workflow_artifacts": []
      },
      "owner": "Replace with the accountable protocol owner before registration",
      "participant_scope": "none",
      "promotion_attempts": [],
      "protocol_id": "ad-protocol-template-example-000",
      "protocol_revision": "97a795ed9f94b66aea103693958cbd8c762f6a90005970220dc3cfa257e3b85b",
      "record_revision": "2c5fd210759eb0ff71f8e19cd384a46d56cd5eb4839a206ef0eb115aa444e799",
      "specification": {
        "analysis": {
          "deviation_policy": "Append and review deviations before analysis.",
          "exclusion_rules": [
            "Reject undeclared exclusions."
          ],
          "falsifiers": [
            "Reject promotion when declared falsifiers are absent."
          ],
          "null_result_policy": "Retain negative, null, and unavailable outcomes.",
          "power_plan": "Unavailable; replace before pilot-ready promotion.",
          "promotion_criteria": [
            "Satisfy every declared target-state gate."
          ],
          "uncertainty_plan": "Unavailable; replace with a bounded uncertainty plan.",
          "workflow_path": "scripts/generate_research_readiness_library.py"
        },
        "calibrations": [
          {
            "calibration_id": "cal-template-example",
            "plan": "Replace with traceability and acceptance criteria.",
            "status": "unavailable"
          }
        ],
        "data_dictionary": {
          "path": "data/research_protocols/data_dictionary.json",
          "sha256": "a39b4ee56f9ecee321f2d2fe1612b351c201e1c813aaf258f99d6e087d4a1720"
        },
        "estimands": [
          {
            "contrast": "Replace with the declared comparison.",
            "description": "Replace with the quantity to be estimated.",
            "estimand_id": "est-template-example",
            "outcome": "Replace with the declared outcome.",
            "population": "Replace with the bounded target population or modeled system."
          }
        ],
        "governance": {
          "animal_approval_required": false,
          "consent": "No participants are in scope for the neutral template.",
          "ethics": "No participants or private data are permitted by this template.",
          "human_approval_required": false,
          "license": "Unavailable; define before any data-ready transition.",
          "privacy": "Unavailable; define before any data-ready transition.",
          "private_data_approval_required": false
        },
        "hypotheses": [
          {
            "direction": "none",
            "falsifier": "Replace with evidence that would reject the statement.",
            "hypothesis_id": "hyp-template-example",
            "null_handling": "Retain negative, null, and unavailable outcomes.",
            "statement": "Replace with a falsifiable statement."
          }
        ],
        "intervention_exposure": {
          "comparator": "Unavailable in the neutral template.",
          "description": "Unavailable in the neutral template.",
          "type": "none"
        },
        "measurements": [
          {
            "calibration_id": "cal-template-example",
            "frame": "Replace with a declared frame.",
            "name": "Replace with a declared measurement.",
            "quantity_class": "unavailable",
            "unit": "Replace with a declared unit."
          }
        ],
        "population": {
          "authority": "No population authority is present.",
          "exclusion": [
            "Replace with explicit exclusion rules."
          ],
          "inclusion": [
            "Replace with explicit inclusion rules."
          ],
          "sampling_frame": "Unavailable in the neutral template.",
          "target_population": "Replace before promotion beyond concept."
        },
        "question": "Replace with one bounded, falsifiable research question."
      },
      "state": "concept",
      "title": "New Research Protocol Concept Template",
      "unavailable_boundaries": [
        "Protocol-specific scientific specification and accountable owner",
        "Evidence, calculation, workflow, dataset, critique, claim, and route-audit joins",
        "Every readiness gate beyond concept"
      ]
    }
  ],
  "schema_version": "affinedrift.research-protocol-readiness/v1"
}
