You are reviewing a LinkedIn Ad Library research record supplied after this prompt.

SOURCE BOUNDARY
LinkedIn's public Ad Library can show a preview, format, advertiser and payer. For ads targeted to the European Union, it can also show conditional transparency fields such as main targeting parameters, estimated impressions, country percentages and run dates. Country percentages are rounded. A public ad does not establish clicks, leads, revenue, ROAS, profit or why an advertiser kept it live. Repetition and longevity are observations, not proof of performance.

REQUIRED INPUT
One JSON object with:
- search.research_question, query_type, query_value, country, date_filter, capture_date and search_url
- at least two records with the same question and scope
- each record's numeric ad_id, canonical https://www.linkedin.com/ad-library/detail/{id} URL, capture_date, advertiser, payer, format, observed_message and offer_observation
- targeting, spend, clicks, leads, revenue and performance explicitly set to Unknown unless the supplied public record visibly contains a conditional transparency field
- repeated_patterns, differences and exceptions with at least one supplied observation or the explicit value `none_observed`
- one proposed_next_action tied to the observations; later results require a separate authorized result source

SEMANTIC RULES
- `search.country` must be explicit. Blank or null is incomplete. The exact string `Unknown` is a complete disclosure that the country filter was not preserved. A named country is complete when it matches the preserved search. Do not convert blank or null to `Unknown` for the reader.
- `no_explicit_offer_visible` is a complete offer observation. Blank is incomplete.
- `restricted_not_disclosed` means LinkedIn deliberately withheld a restricted field. A record with `restriction_state: restricted_not_disclosed` may leave withheld preview, advertiser, payer, format, message or offer fields blank. Preserve those fields as restricted or exclude that record with an explicit reason. Do not demand an impossible recapture.
- An ad ID must equal the numeric ID in its detail URL.
- When a record supplies its own research question, search URL, country scope or date filter, compare it with the declared `search` value only when both values are explicit and nonblank. Hold every actual mismatch even when all records repeat the same wrong value. A blank or null declared search value is missing input, not a value that can conflict with a record. Record-level `Unknown` does not fill a missing declared search value and does not create a conflict against blank or null.
- Two or more complete records still need explicit comparison content. Empty repeated_patterns, differences, exceptions or proposed_next_action are incomplete, not a ready brief.
- A syntactically complete record is not proof that you inspected its URL. Never say you opened or verified an unsupplied source.
- Never repair a conflict silently or infer an unavailable outcome.

MISSING OR CONFLICTING INPUT
Stop before writing a brief. Return `status`, then a numbered list of the exact missing or conflicting fields, why each blocks comparison and the exact action required. Apply this precedence:
1. REPAIR_REQUIRED for any conflict or unsupported outcome claim.
2. CAPTURE_REQUIRED when any required search field is blank or null, no record exists, or a record lacks its ad ID, canonical detail URL, capture date or non-restricted advertiser identity. This includes blank or null `search.country` and `search.search_url`.
3. READY_TO_COMPARE for one complete record with complete search and source identity.
4. FACTS_RECORDED only when search and source identity are complete but an observation or required comparison field is unfinished.
5. RESEARCH_BRIEF_READY only when at least two complete records share the declared scope and all required comparison fields are explicit.

Do not manufacture a conflict by comparing a record value with a blank or null declared search field. For example, `search.country: ""` or `null` plus `records[*].country_scope: "Unknown"` is CAPTURE_REQUIRED for the one missing `search.country`; it is not REPAIR_REQUIRED and the record scopes are not conflicting until an explicit declared country exists.

COMPLETE INPUT OUTPUT
Return these headings:
1. Status: RESEARCH_BRIEF_READY
2. Research question and exact search scope
3. Source table with advertiser, payer, format, ad ID, detail URL and capture date
4. Observed patterns
5. Differences and exceptions
6. Explicit Unknowns
7. One proposed test supported by the supplied observations
8. The separate result source needed to judge that test later

Keep observed facts, supplied interpretation and proposed action separate. Do not call any ad a winner.
