# Local bounded-rollout 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_rollout(case)` in `starter.py`.
3. Return these eight keys: `deployment_state`, `targeting_state`, `cohort_state`, `activation_state`, `health_gate`, `bake_gate`, `recovery_state`, `lifecycle_decision`.
4. Keep deployment, targeting, cohort, activation, feature health, bake evidence, recovery, and retirement evidence separate.
5. Do not treat percentage exposure as proof of safety.
6. Do not treat flag disablement as complete recovery when durable side effects remain.
7. Rebuild the transfer case from its own cohort and signal evidence; do not copy baseline percentages or bake duration.

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