# Facebook and Instagram ad file handoff

## Decision: Needs file details

Local state: `DRAFT`  
Record: `Unknown`  
Owner: Unassigned  
Next action: Assign one stable record ID.

## Asset checked

- Asset ID: `Unknown`
- Asset owner: Unassigned
- Expected file name: `Unknown`
- Media type: `Unknown`
- Placements: `[]`
- File: `Not attached`
- SHA-256: `Unknown`
- Detected MIME / bytes: `Unknown` / Unknown
- Decoded dimensions: Unknown × Unknown
- Decode evidence: `local_binary_decode` / `pending`
- Decoder: `Unknown`
- Decoded at: Unknown

## Rule source

- Contract: `maestro.facebook_ad_file_check` version `0.1.0`
- Source observed: Unknown
- Source manifest SHA-256: `Unknown`

## Placement results

## Additional export requests

No additional export is requested by the current recommendation checks.

## Open evidence requests

### req-record-id
Owner: Unassigned  
Field: `record_id`  
Reason: The handoff needs a stable identity.  
Expected: `"Stable nonblank record ID"`  
Supplied: `""`  
Next: Assign one stable record ID.

### req-record-owner
Owner: Unassigned  
Field: `record_owner`  
Reason: The next file, repair and native requests need an owner.  
Expected: `"Named owner for this handoff"`  
Supplied: `""`  
Next: Assign the operator responsible for this handoff.

### req-media-type
Owner: Unassigned  
Field: `media_type`  
Reason: The selected media type is missing or unsupported.  
Expected: `["single_image","single_video"]`  
Supplied: `""`  
Next: Choose single_image or single_video.

### req-placements
Owner: Unassigned  
Field: `placement_ids`  
Reason: The file cannot be checked without intended placements.  
Expected: `"One or more supported placement ID strings"`  
Supplied: `[]`  
Next: Select at least one supported placement.

### req-final-asset
Owner: Unassigned  
Field: `asset`  
Reason: The final bytes are not bound to this record.  
Expected: `{"file_name":"final file","sha256":"64 lowercase hex","byte_count":"integer"}`  
Supplied: `{"asset_id":"","owner":"","expected_file_name":"","file_name":"","sha256":"","byte_count":null}`  
Next: Attach the final file and compute its SHA-256 and exact byte count.

## Native checks

Native checks will be created after the final asset and supported placements are selected.

## Evidence boundary

LOCAL_READY means the attached bytes passed the locally testable Technical Requirements encoded for every selected supported cell. It does not establish Meta upload acceptance, objective or placement eligibility, native crop or overlays, safe-zone compliance, policy approval, delivery or performance.
