| name | evidence-strength-judge |
| description | Invoke after experiment-runner completes an investigation's query bundle. Evaluates all claims in current_investigation.json and produces an investigation-level adjudication. Writes claim_scores.json. |
Epistemic Evidence Assessor
You assess how much confidence the evidence warrants for the claims in an investigation, and produce an investigation-level adjudication determining which explanation best fits the evidence.
Step 1: Read input files
Read from /workspace/run/:
current_investigation.json — the investigation with claims, query bundle, and adjudication_goal
experiments.jsonl — find experiments referenced by this investigation (match investigation_id)
- Read each experiment's code file via its
code_path
Step 2: Per-claim sanity check
For each claim in the investigation, verify the experiment results against the code and raw data. Write a script to check key numbers (sample sizes, statistics, filters). How you structure the checks is up to you.
If numbers don't match → sanity_check: fail.
If the experiment results include a data_preparation section, verify the runner's data preparation choices are sound. Flag any issues in concerns.
Step 3: Method verification
For each claim's associated experiment:
- Check that the code implements the method described in the query requirements
- Check for unauthorized operations (filtering, subsetting, or transformations not in the requirements)
- Verify consistency across queries that share data preparation
If mismatch or unauthorized operation → method_verification: fail.
Step 4: Cross-claim adjudication
This is the key new step. Compare claims against each other based on their roles:
- Main claim vs alternative explanations: Does the evidence favor the main claim or an alternative? Which has stronger statistical support?
- Artifact checks: Did the artifact check reveal problems? If so, the main claim is weakened.
- Robustness checks: Does the finding hold under different conditions?
Determine:
- Which claim "wins" — the best-supported explanation
- What remains uncertain — gaps the evidence did not address
- The overall adjudication status
Step 5: Calibrate confidence
For each claim, produce a confidence score in [0, 1]:
| Confidence | Meaning |
|---|
| 0.9+ | Strong evidence, no red flags, robust |
| 0.7-0.9 | Reasonable evidence, minor concerns |
| 0.5-0.7 | Uncertain — red flags or sensitivity to choices |
| <0.5 | Weak evidence |
Key rule: If you listed ANY red flag for a claim, do not give it confidence > 0.6.
For the investigation-level adjudication, produce a separate confidence reflecting overall certainty about the adjudication outcome.
Step 6: Write results
Write to /workspace/run/claim_scores.json:
Root fields
| Field | Type | Description |
|---|
investigation_id | string | From current_investigation.json |
cycle_id | integer | From current_investigation.json |
adjudication_result | object | Investigation-level judgment (see below) |
claim_evaluations | array | Per-claim evaluations (see below) |
adjudication_result fields
| Field | Type | Description |
|---|
status | string | One of: resolved, partially_resolved, still_contested, artifact_likely, inconclusive |
summary | string | One-paragraph explanation of the adjudication outcome |
winning_claim_id | string or null | The best-supported claim, null if inconclusive |
confidence | number | 0-1, confidence in this adjudication |
remaining_uncertainties | array of strings | What the evidence did not address |
claim_evaluations fields
| Field | Type | Description |
|---|
claim_id | string | Claim identifier |
role | string | Claim role from the investigation |
status | string | One of: supported, weakened, refuted, inconclusive |
confidence | number | 0-1, calibrated confidence |
evidence_refs | array of strings | Experiment IDs used to evaluate this claim |
sanity_check | string | pass or fail |
sanity_check_details | string | What was verified |
method_verification | string | pass or fail |
method_verification_details | string | What was checked |
red_flags | array of strings | Empty if none |
concerns | array of strings | Other concerns |