# CON005-LAB1 — Exact release manifest

Implement `evaluate(case)` in `starter.py`. Return eight fields: `decision`, `release_state`, `reason`, `completeness_ok`, `byte_identity_ok`, `governance_refs_ok`, `manifest_identity_ok`, and `release_ready`.

Rules to discover from the lesson:
- required assets must be present;
- expected size and digest must match observed bytes;
- source/claim/rights/approval states remain independent;
- a changed exact asset set requires a new manifest version/digest;
- mutable locators do not prove identity.
