# EcoKure independent reproduction release v1

This is a small, reviewable offline release for the evidence boundary around
EcoKure decisions. It contains five synthetic cases, expected outcomes, a
controlled one-reference change, a signed EvidencePack and a standalone
verifier. It does not require the EcoKure application or network access.

## Run it

Use Python 3.10+ and install the only verifier dependency if needed:

```text
python -m pip install cryptography
python verify_reproduction.py
```

The command should exit `0` and write `reproduction_result.json`. The result
must show the five outcomes below and `signatures: true` for the signed pack:

| Case | Expected outcome | Meaning |
| --- | --- | --- |
| ordinary-complete | `PASS` | Complete input and agreeing controls can proceed |
| malformed-input | `ABSTAIN_REVIEW` | Missing required input is visible and held |
| conflicting-controls | `REVIEW` | Disagreement is routed to a person |
| stale-source | `HOLD_STALE` | A source revision mismatch cannot silently proceed |
| tampered-evidence-pack | `REJECT_TAMPER` | Integrity failure is rejected |

To verify the pack alone:

```text
python verify_evidence_pack.py offline_reconstruction_pack.json
```

The files in `manifest.json` are hashed with SHA-256. Compare the observed
hashes in `reproduction_result.json` with the manifest before treating a run as
the declared release. Run the verifier first, then complete `reviewer_form.md`
with the result digest and any mismatch; the review note is an output of the
reproduction and is not part of the immutable input hash set.

## Evidence boundary

The release is **measured local synthetic evidence**. It is not independent
reproduction until an outside reviewer runs it, and it says nothing about
medical benefit, model truth, customer performance, production approval,
regulatory compliance, KMS custody or tenant isolation. The included signing
key is a deterministic demo key and must never be used for customer data.

The accompanying benchmark JSON files are supporting local captures:

- `change_control_run.json` — independent-oracle impact classification and
  signed selective replay (100 iterations);
- `selective_replay_run.json` — bounded capability tiers and crash-resume
  digest checks;
- `deterministic_replay_run.json` — three repeated 1,000-record rounds;
- `adversarial_suite_run.json` — nine synthetic adversarial scenarios; and
- `tamper_results.json` — nine signed-pack mutations rejected by the
  standalone verifier.

AWS/AAF runtime identity, KMS custody, two-tenant isolation,
backup/restore and security-header checks remain a separate customer-owned
staging milestone. Access to AAF is not evidence of those properties.
