FACEBOOK CAROUSEL BUILD PROMPT — standalone v1.0 You are preparing one B2B Facebook carousel storyboard and production handoff. Use only the supplied facts and evidence pasted after this prompt. Do not assume access to an article, ad account, CRM, design file or live destination. Current Meta sources checked 2026-09-29: carousel cards may each have their own headline, description, link and call to action; Facebook Feed guidance lists 2–10 cards, recommends 1:1 and at least 1080 × 1080, and requires a landing-page URL. Meta may offer automatic best-performing-card order. Sources: https://www.facebook.com/business/help/1114358518575630/ ; https://www.facebook.com/business/ads-guide/update/carousel ; https://www.facebook.com/business/help/927639917355563/ . Recheck the selected objective, placements and current native UI before launch. Public examples are structure references only. They do not establish advertiser spend, targeting, delivery or results. Never invent an owner opinion, result, URL, customer proof, permission, account access or native receipt. CANONICAL RECORD CONTRACT — maestro.facebook-carousel-record.v1 Root keys, in order: schema_version, record_id, example_status, judgments, campaign, cards, stop_points, owners, checks, source_refs, missing_inputs, next_action. Judgment enums: format_fit = carousel_fits | simpler_format | hold_missing_evidence; storyboard_completeness/local_preflight/native_readiness = ready | hold; measured_outcome = measured | unknown. Campaign enums: pattern = problem_to_proof | step_by_step | product_range | feature_mechanism | objection_led | unknown; destination_mode = shared | per_card | unknown; card_order_mode = fixed | eligible_for_optimization | unknown. Check and stop-point states: passed | failed | unknown | not_applicable. Continuity: strong | partial | weak | not_assessable. Permission: approved | denied | pending | unknown | not_applicable. Arrival state: captured | supplied_fixture | missing | unknown. Each card must keep: card_id, index, role, supplied_fact, on_card_copy, headline, description, visual_brief, asset_ref, platform_cta, destination_url, utm_content, source_ref, permission_state, arrival_capture, continuity, owners, open_question. Unknown scalar facts are null. Do not delete required keys or turn unknowns into assumptions. Missing-input IDs are deterministic: campaign gaps use campaign-; card gaps use -; unresolved checks use check-; stop points use stop-; delivered evidence uses delivered-campaign-receipt. Replace underscores with hyphens and do not invent aliases. Use the exact supplied owner value when present; otherwise use one canonical owner slot: offer_and_claims, copy, design, paid_media, destination_and_tracking or final_reviewer. Keep one request per gap, in canonical field order, with a reason and the exact evidence that closes it. METHOD 1. Choose carousel_fits only when 2–10 distinct card jobs help the buyer. Choose simpler_format when one image or a video/document route is clearer. Choose hold_missing_evidence when buyer, offer or desired action is missing. Explain the reason without padding a carousel to a target count. 2. When carousel fits, choose one pattern. Card one must make a complete promise. Every later card adds a different step, product, fact, objection or proof point. The close continues the task. 3. Use only supplied facts. Put the supporting fact and source_ref on every card. If proof, permission, art, URL, tracking, owner or native evidence is absent, keep it null/unknown and add one deterministic missing_inputs request using the contract ID rule, owner and closing evidence. 4. Decide shared versus per_card destinations. For each card preserve platform CTA, URL, UTM content, captured arrival headline/action and continuity. A working URL with a different offer is weak; a broad umbrella page can be partial; an unavailable page is not_assessable. 5. Run the three stop points after card one, after card two and before the final card. Failed or unknown stop points hold storyboard_completeness until resolved. 6. Keep format fit, storyboard completeness, local preflight, native readiness and measured outcome independent. A draft can be ready while launch remains hold. Measured outcome stays unknown without actual delivered campaign evidence. MISSING CORE INPUT OVERRIDE If buyer, offer or desired action is absent, return the complete canonical record with format_fit hold_missing_evidence, all later states held/unknown, no invented card copy, and one focused request for each missing core field, ordered buyer, offer, desired_action. Preserve required keys and the supplied facts. OUTPUT Return: A) a short format decision; B) one valid JSON fence containing the canonical record itself, with every required key; C) the same cards as a readable Markdown table; D) missing inputs and one next action. No wrapper around the JSON record. BLANK CANONICAL RECORD ```json { "schema_version": "maestro.facebook-carousel-record.v1", "record_id": "facebook-carousel-blank", "example_status": "blank_template", "judgments": { "format_fit": { "state": "hold_missing_evidence", "reason": "Buyer, offer and card jobs are not supplied." }, "storyboard_completeness": { "state": "hold", "reason": "Required card fields are incomplete." }, "local_preflight": { "state": "hold", "reason": "Claims, assets, destinations and tracking are not reviewed." }, "native_readiness": { "state": "hold", "reason": "Account access and native preview are not evidenced." }, "measured_outcome": { "state": "unknown", "reason": "No delivered campaign outcome is supplied." } }, "campaign": { "company": null, "buyer": null, "situation": null, "offer": null, "desired_action": null, "primary_text": null, "pattern": "unknown", "destination_mode": "unknown", "card_order_mode": "unknown" }, "cards": [ { "card_id": "card-01", "index": 1, "role": null, "supplied_fact": null, "on_card_copy": null, "headline": null, "description": null, "visual_brief": null, "asset_ref": null, "platform_cta": null, "destination_url": null, "utm_content": null, "source_ref": null, "permission_state": "unknown", "arrival_capture": { "state": "unknown", "headline": null, "action": null, "observed_at": null, "evidence_ref": null }, "continuity": { "judgment": "not_assessable", "reason": "Destination has not been inspected." }, "owners": { "copy": null, "design": null, "destination": null }, "open_question": null }, { "card_id": "card-02", "index": 2, "role": null, "supplied_fact": null, "on_card_copy": null, "headline": null, "description": null, "visual_brief": null, "asset_ref": null, "platform_cta": null, "destination_url": null, "utm_content": null, "source_ref": null, "permission_state": "unknown", "arrival_capture": { "state": "unknown", "headline": null, "action": null, "observed_at": null, "evidence_ref": null }, "continuity": { "judgment": "not_assessable", "reason": "Destination has not been inspected." }, "owners": { "copy": null, "design": null, "destination": null }, "open_question": null } ], "stop_points": { "after_card_1": { "state": "unknown", "evidence_ref": null, "owner": null, "note": "Does card one give the buyer a complete reason to care?" }, "after_card_2": { "state": "unknown", "evidence_ref": null, "owner": null, "note": "Does card two add a distinct piece of information?" }, "before_final_card": { "state": "unknown", "evidence_ref": null, "owner": null, "note": "Is any essential condition or proof hidden on the close?" } }, "owners": { "offer_and_claims": null, "copy": null, "design": null, "paid_media": null, "destination_and_tracking": null, "final_reviewer": null }, "checks": { "claim_review": { "state": "unknown", "evidence_ref": null, "owner": null, "note": null }, "asset_rights": { "state": "unknown", "evidence_ref": null, "owner": null, "note": null }, "destination_inspection": { "state": "unknown", "evidence_ref": null, "owner": null, "note": null }, "tracking_review": { "state": "unknown", "evidence_ref": null, "owner": null, "note": null }, "native_preview": { "state": "unknown", "evidence_ref": null, "owner": null, "note": null }, "ad_account_access": { "state": "unknown", "evidence_ref": null, "owner": null, "note": null } }, "source_refs": [], "missing_inputs": [ { "request_id": "campaign-buyer", "owner": "offer_and_claims", "reason": "The intended buyer is missing.", "evidence_request": "Supply the intended buyer." }, { "request_id": "campaign-offer", "owner": "offer_and_claims", "reason": "The exact offer is missing.", "evidence_request": "Supply the exact offer." }, { "request_id": "campaign-desired-action", "owner": "offer_and_claims", "reason": "The desired action is missing.", "evidence_request": "Supply one desired action." } ], "next_action": "Supply the intended buyer, exact offer and one desired action." } ``` PASTE SUPPLIED FACTS AND EVIDENCE BELOW: