{
  "schema_version":"0.1",
  "control_id":"EXP02",
  "reviewed_on":"2026-09-16",
  "status":"implemented_portable_noncollecting_claim_packet_contract",
  "purpose":"Provide one portable, append-only evidence envelope from exploratory question through bounded claim and operational-utility testing.",
  "collection_state":"schema_only_no_live_packets",
  "public_data_class":"public_nonpersonal",
  "required_packet_fields":["packet_id","schema_version","version","title","maturity","parent_ids","supersedes","created_on","updated_on","question","candidate_relation","conventional_comparison","null_world","counterexplanations","discriminating_predictions","detector_and_frame","measurement_limits","protocol","analysis_plan","safety","sites_and_instruments","runs","raw_evidence_refs","analyses","reviews","replications","conflicts","null_results","non_comparability","uncertainty","limitations","contributors","ai_assistance","claim_statement","claim_decisions","corrections","withdrawals","license","export_manifest"],
  "sections":[
    {"id":"identity","required_fields":["packet_id","schema_version","version","title","maturity","parent_ids","supersedes","created_on","updated_on"],"rule":"Identifiers and versions are stable; corrections append history rather than replacing prior records."},
    {"id":"question_and_relation","required_fields":["question","candidate_relation","conventional_comparison","null_world","counterexplanations","discriminating_predictions"],"rule":"A candidate becomes experiment-ready only when outcomes can discriminate among the candidate, ordinary comparison, null world, and measurement artifacts."},
    {"id":"measurement","required_fields":["detector_and_frame","measurement_limits","sites_and_instruments"],"rule":"Record detector substrate, frame, calibration, resolution, environment, operator coupling, and detection limits without treating the detector as neutral."},
    {"id":"preregistration","required_fields":["protocol","analysis_plan"],"rule":"Freeze method, variables, controls, exclusions, stopping rules, permitted deviations, and analysis before protected results are known."},
    {"id":"safety_and_authority","required_fields":["safety"],"rule":"Record hazard class, containment, reversibility, stop authority, permissions, consent, incident path, expiry, and withdrawal; software cannot grant approval."},
    {"id":"evidence_and_analysis","required_fields":["runs","raw_evidence_refs","analyses","uncertainty","limitations"],"rule":"Raw evidence is immutable; each analysis is a separately versioned branch with code, environment, exclusions, and failure state."},
    {"id":"review_and_replication","required_fields":["reviews","replications","conflicts","null_results","non_comparability"],"rule":"Preserve named review roles, conflicts, independence, failures, and conditions that block comparison."},
    {"id":"attribution","required_fields":["contributors","ai_assistance"],"rule":"Record person-specific contributions and AI system, provider, roles, human direction, review, and limitations separately from source authorship or scientific authority."},
    {"id":"decision_and_recovery","required_fields":["claim_statement","claim_decisions","corrections","withdrawals","license","export_manifest"],"rule":"Claim status changes are append-only, evidence-linked, appealable, exportable, and reversible without erasing history."}
  ],
  "maturity_states":["E0_exploratory_question","E1_candidate_relationship","E2_experiment_design","E3_preregistered_protocol","E4_completed_run","E5_reviewed_observation","E6_independent_replication","E7_cross_site_supported_claim","E8_operational_utility_demonstrated"],
  "promotion_requirements":{
    "E0_to_E1":["declared variables","detector and frame","ordinary comparison","counterexplanations"],
    "E1_to_E2":["discriminating prediction","null world","measurement artifact model","controls","measurement limits"],
    "E2_to_E3":["frozen protocol","analysis plan","exclusions","stop rules","permitted deviations","safety routing"],
    "E3_to_E4":["authorized execution outside this Site","immutable run identifier","settings","raw evidence references","deviations","failures"],
    "E4_to_E5":["method review","analysis review","safety record","conflicts","limitations"],
    "E5_to_E6":["frozen parent protocol","independence statement","comparable evidence envelope","nulls and failures"],
    "E6_to_E7":["multiple independent sites","instrument and frame comparison","conflict preservation","bounded claim language","independent claim review"],
    "E7_to_E8":["approved bounded utility protocol","conventional comparator","reproducible intervention","benefit and failure bounds","reversibility where applicable"]
  },
  "required_nested_fields":{
    "protocol":["protocol_id","version","frozen_on","variables","controls","method","exclusions","stopping_rules","permitted_deviations","result_blinding"],
    "safety":["state","hazard_class","containment","reversibility","stop_authority","required_permissions","consent","incident_path","reviewers","decision_on","expires_on","withdrawal_path"],
    "run":["run_id","protocol_id","protocol_version","site_id","instrument_ids","started_on","completed_on","settings","environment","deviations","failure_state","raw_evidence_refs","custody"],
    "analysis":["analysis_id","version","run_ids","analyst_roles","blind_state","code_refs","environment","exclusions","uncertainty","outputs","failure_state"],
    "review":["review_id","role","actor_id","independence_statement","conflicts","scope","decision","rationale","limitations","decided_on","expires_on","appeal_state"],
    "replication":["replication_id","parent_protocol_id","independence_statement","site_id","run_ids","comparison_class","deviations","result_class","limitations"],
    "contributor":["display_name","roles","contribution_statement","public_name_consent"],
    "ai_assistance":["system","provider","roles","human_direction","reviewed_on","accepted_or_rejected_outputs","limitations","may_not_approve_own_output"],
    "claim_decision":["decision_id","from_maturity","to_maturity","evidence_refs","review_refs","rationale","limitations","decided_on","supersedes"]
  },
  "allowed_decisions":["retain","advance","correct","return_for_clarification","classify_non_comparable","withdraw"],
  "prohibited_promotion_inputs":["vote count","page traffic","agreement with Substrate Cosmology","funder prestige","institutional prestige","contributor seniority","AI confidence","AI self-review"],
  "ai_boundary":{"required":true,"rule":"AI assistance is attributed by documented role and cannot approve its own output, satisfy human safety or institutional authority, establish source authorship, or independently verify a physical claim."},
  "safety_boundary":"A packet may document approval evidence supplied by named qualified authorities, but this Site contract does not authorize physical execution or certify competence, facilities, ethics, legality, containment, or emergency readiness.",
  "privacy_boundary":"Public packets may contain approved public professional attribution and nonpersonal evidence references only. Contact details, precise private locations, credentials, account identifiers, protected research data, student data, and private institutional records require a separately reviewed restricted architecture.",
  "student_boundary":"No unsupervised minor account, submission, contact, experiment execution, or private evidence workspace is enabled by this contract.",
  "correction_rule":"Corrections and withdrawals append a new version, identify what changed and why, retain resolvable prior citations, and propagate status without deleting source evidence.",
  "exchange_rule":"Exports include this complete packet, referenced schema versions, checksums or immutable locators, relationship identifiers, limitations, and a manifest suitable for compatibility testing.",
  "hooks":["experiment.claim.schema.changed","experiment.ai.provenance.changed","experiment.protocol.changed","experiment.safety.changed","experiment.run.schema.changed","experiment.analysis.changed","experiment.replication.changed","experiment.claim.status.changed","experiment.exchange.changed"],
  "limitations":["contract validation is not scientific review","no live packet intake or storage","no identity institution laboratory or reviewer verification","no physical execution approval","no evidence has reached a supported-claim state"],
  "successor_path":"Version the schema, preserve field meanings and stable identifiers, supply aliases or a compatibility reader, validate old and new packets in parallel, retain correction and withdrawal history, and block promotion while any consumer cannot read the replacement.",
  "verification":{"checker":"scripts/check-experimental-claim-packets.mjs","command":"pnpm check:site"}
}
