# Local release-ring reconciliation exercise

This exercise uses synthetic local evidence only. No production system, credential, customer data, live endpoint, or external target is required.

1. Run `python run_checks.py` to verify fixture structure.
2. Implement `analyze_ring(case)` in `starter.py`.
3. For each case, return these eight keys: `target_state`, `artifact_state`, `activation_state`, `cohort_state`, `health_gate`, `approval_gate`, `drift_state`, `transition_decision`.
4. Keep environment, artifact deployment, runtime activation, cohort, health, and approval as separate evidence classes.
5. Keep missing observations UNKNOWN. Do not infer runtime activation from artifact presence or health from approval.
6. Rebuild the transfer case from its own ring names, topology, activation mechanism, and evidence. Do not copy ring count or thresholds from the baseline cases.

The structural check does not reveal the expected classifications. It only proves that the evidence required for the exercise is present.
