{"schemaVersion":"1.0.0","rulesVersion":"2026-10-02.1","reviewedOn":"2026-10-02","language":"ru","status":"production_rules_baseline_not_publication_authorization","sourceOfTruth":"docs/social-content-rules-20261002/rules.json","classificationPolicy":{"presets":"editorialRecommendation","platformNumbers":"Require explicit verifiedConstraints and sourceIds","unknownLimits":null,"nativePreviewFirst":true,"refreshBeforeRelease":true,"capabilityDoesNotAuthorizePublication":true},"presets":{"cover_video_16x9":{"presetId":"cover_video_16x9","classification":"editorialRecommendation","surfaceIds":["youtube_video"],"dimensions":[3840,2160],"ratio":"16:9","safeInsetsPx":{"left":192,"top":108,"right":192,"bottom":108},"mobileProofWidthPx":320,"notes":"Keep essential text away from duration/UI badges; test actual placement."},"cover_vertical_9x16":{"presetId":"cover_vertical_9x16","classification":"editorialRecommendation","surfaceIds":["youtube_shorts","instagram_reels","instagram_stories","facebook_reels","facebook_stories","snapchat_stories","snapchat_spotlight","whatsapp_status"],"dimensions":[1080,1920],"ratio":"9:16","safeInsetsPx":{"left":90,"top":250,"right":90,"bottom":420},"mobileProofWidthPx":360,"highResolutionVariant":[2160,3840],"notes":"Scale safe insets proportionally for high-resolution variant. UI crop and overlays require account-specific proof."},"carousel_portrait_4x5":{"presetId":"carousel_portrait_4x5","classification":"editorialRecommendation","surfaceIds":["instagram_feed_carousel","facebook_feed_multi_image"],"dimensions":[1080,1350],"ratio":"4:5","safeInsetsPx":{"left":80,"top":80,"right":80,"bottom":80},"mobileProofWidthPx":360},"carousel_square_1x1":{"presetId":"carousel_square_1x1","classification":"editorialRecommendation","surfaceIds":["instagram_feed_carousel","facebook_feed_multi_image"],"dimensions":[1080,1080],"ratio":"1:1","safeInsetsPx":{"left":80,"top":80,"right":80,"bottom":80},"mobileProofWidthPx":360}},"generalRules":[{"ruleId":"facts_and_preview","severity":"error","check":"manual_review","params":{},"requirement":"Обложка и первый кадр честно соответствуют содержанию; цены, доступность, обещания и цифры подтверждаются источником."},{"ruleId":"real_assets","severity":"error","check":"manual_review","params":{},"requirement":"Использовать утверждённые реальные логотипы и медиа; хранить происхождение/права. Генерация не подменяет документальную съёмку."},{"ruleId":"native_surface_first","severity":"error","check":"manual_review","params":{},"requirement":"Проверить точную поверхность, нативный редактор, выбор обложки, crop и ограничения конкретного аккаунта/метода перед выпуском."},{"ruleId":"limits_refresh","severity":"error","check":"manual_review","params":{},"requirement":"Обновить platform capability profile: UI и API отдельно, дата, endpoint/API-version, sources; неизвестный предел не считается разрешением."},{"ruleId":"one_message","severity":"warning","check":"manual_review","params":{},"requirement":"Одна главная мысль и один CTA; короткий заголовок, содержание понятно без чтения подписи."},{"ruleId":"mobile_readability","severity":"error","check":"manual_review","params":{},"requirement":"Просмотреть уменьшенную обложку и карусель на мобильной ширине; сократить текст, если он не читается, не уменьшать его до микротекста."},{"ruleId":"crop_separation","severity":"error","check":"manual_review","params":{},"requirement":"Сохранять отдельно full cover, первый кадр и profile-grid crop; не считать один файл гарантированно правильным во всех поверхностях."},{"ruleId":"language_layout","severity":"error","check":"manual_review","params":{},"requirement":"Следовать языковому профилю бренда; сохранять Unicode shaping/RTL, отдельные языковые блоки, пунктуацию и LTR контакты."},{"ruleId":"carousel_one_ratio","severity":"error","check":"consistent_dimensions","params":{},"requirement":"Все карточки одной серии имеют одинаковый размер и отношение сторон; fallback пересобирается целиком."},{"ruleId":"carousel_narrative","severity":"warning","check":"manual_review","params":{},"requirement":"Карусель ведёт от крючка через контекст и содержание к конкретному CTA; каждый слайд даёт самостоятельную мысль."},{"ruleId":"accessibility","severity":"error","check":"manual_review","params":{},"requirement":"Подготовить содержательный alt text каждого изображения и текстовый эквивалент важных надписей; передавать через native field только где поддерживается."},{"ruleId":"no_false_publish","severity":"error","check":"manual_review","params":{},"requirement":"Prepared, reviewed, approved и published_verified — разные состояния; пакет для ручного выпуска не является публикацией."}],"coverEditorial":{"classification":"editorialRecommendation","headlineWordsPerLanguage":[3,7],"maxHeadlineLinesPerLanguage":2,"subjectCount":1,"thumbnailMustMatchContent":true,"avoid":"Мелкие подписи, фальшивые UI badges, переполненный фон, заголовок-обещание вне содержания."},"carouselEditorial":{"classification":"editorialRecommendation","recommendedSlideCount":[6,8],"sameRatio":true,"order":["hook","context","content_1","content_2","content_3","cta"],"sixSlideTemplate":[{"slide":1,"role":"hook","text":"Одна причина открыть серию; сильный реальный кадр."},{"slide":2,"role":"context","text":"Что зритель узнает и какой контекст нужен."},{"slide":3,"role":"content_1","text":"Первая мысль или наблюдаемый факт."},{"slide":4,"role":"content_2","text":"Деталь, пример или подтверждение."},{"slide":5,"role":"content_3","text":"Практический вывод или следующий ракурс."},{"slide":6,"role":"cta","text":"Один следующий шаг без неподтверждённых обещаний."}],"extraSlides":"Insert useful content before CTA; do not pad to a target count.","platformMaxSlides":null},"brandOverrides":{"salalah_eye":{"nameEn":"Salalah Eye","nameAr":"عين صلالة","localeOrder":["ar","en"],"directionByLocale":{"ar":"rtl","en":"ltr"},"textBlocks":"AR first; EN separate, not interleaved","shortHeadingFont":"Aref Ruqaa Bold","bodyFonts":{"ar":"IBM Plex Sans Arabic","en":"IBM Plex Sans"},"brandAssets":"Use approved local Salalah Eye logos/palette/media; never regenerate logo","assetReferences":["web/public/brand/salalah-eye.svg","web/public/fonts/"],"contactRule":"Copy contacts only from the current approved brief; no project contact becomes a global default.","unknownFacts":["prices","opening_hours","capacity","age_or_access_rules","launch_status","visitor_counts"],"carouselExample":["صلالة من الأعلى | Salalah from above","الساحل من منظور مختلف | A different view of the coast","تفاصيل العجلة | Wheel details","بين البحر والمدينة | Between sea and city","من النهار إلى المساء | From day to evening","احفظ المنشور | Save this post"],"exampleStatus":"Editorial outline only; media/facts/CTA destination require review."}},"approvalGate":{"mode":"no_autopost","requiresHumanApproval":true,"autoPublish":false,"explicitUserAuthorizationRequired":true,"approvalsNeverInferredFromCapabilities":true,"requiredStates":["prepared","reviewed","approved_for_publish"],"publicationEvidenceState":"published_verified","manualHandoffState":"manual_handoff","note":"Existing explicit user authorization may cover an action; do not invent approval from a capability or plan. This baseline does not grant it."},"packageContract":{"requiredFields":["contentId","contentVersion","rulesVersion","rulesSha256","surfaceId","presetId","localeOrder","sourceAssets","verifiedFacts","unknownFacts","capabilityProfileVersion","publicationRoute","reviewEvidence"],"requiredArtifacts":["editable_source","exported_media","cover_or_first_frame","profile_crop_preview_if_applicable","ordered_contact_sheet_for_carousel","copy_by_locale","alt_text_by_slide","asset_manifest","qa_report"],"requiredReviewIds":["facts","rights","native_surface_and_limits","mobile_legibility","crop","language","sequence","cta","accessibility","publish_authorization"],"pinRulesBy":["rulesVersion","sha256"],"unknownMajorSchema":"reject"},"reviewChecklist":[{"id":"facts","check":"manual_review","severity":"error","requirement":"Claims and thumbnail promise match source content."},{"id":"rights","check":"manual_review","severity":"error","requirement":"Logo/media/music provenance and intended use reviewed."},{"id":"native_surface_and_limits","check":"manual_review","severity":"error","requirement":"Current native/API route and numerical limits checked for the exact account."},{"id":"mobile_legibility","check":"manual_review","severity":"error","requirement":"Reduced previews inspected; no clipped or unreadable text."},{"id":"crop","check":"manual_review","severity":"error","requirement":"Cover, feed and profile-grid previews inspected separately."},{"id":"language","check":"manual_review","severity":"error","requirement":"Brand language order, RTL shaping, contacts and translation reviewed."},{"id":"sequence","check":"manual_review","severity":"error","requirement":"Carousel order, single ratio, progression and final CTA reviewed."},{"id":"cta","check":"manual_review","severity":"error","requirement":"Destination and action verified; no implied purchase/booking/price without evidence."},{"id":"accessibility","check":"manual_review","severity":"error","requirement":"Alt text and readable text equivalents packaged and mapped to supported fields."},{"id":"publish_authorization","check":"manual_review","severity":"error","requirement":"Scope of explicit user authorization recorded; MVP never auto-posts."}],"sources":[{"id":"yt_help","url":"https://support.google.com/youtube/answer/72431?hl=en","checkedOn":"2026-10-02","scope":"Current custom video/Shorts thumbnails, desktop/mobile limits and recommended dimensions.","status":"verified"},{"id":"yt_api","url":"https://developers.google.com/youtube/v3/docs/thumbnails/set","checkedOn":"2026-10-02","scope":"thumbnails.set, MIME and 50MB limit; page updated 2026-09-14.","status":"verified"},{"id":"meta_ig_sdk","url":"https://github.com/facebook/facebook-python-business-sdk/blob/main/facebook_business/adobjects/iguser.py","checkedOn":"2026-10-02","scope":"create_media parameters children/is_carousel_item/cover_url/thumb_offset/alt_text; no numerical carousel maximum proven.","status":"verified"},{"id":"meta_page_sdk","url":"https://github.com/facebook/facebook-python-business-sdk/blob/main/facebook_business/adobjects/page.py","checkedOn":"2026-10-02","scope":"Page feed attached_media and video_reels/photo_stories/video_stories; not personal-profile API.","status":"verified"},{"id":"meta_ig_guide","url":"https://developers.facebook.com/docs/instagram-platform/content-publishing/","checkedOn":"2026-10-02","scope":"Numerical media/carousel limits require fresh accessible docs/account preflight; request returned429.","status":"blocked_429"},{"id":"snap_assets","url":"https://developers.snap.com/marketing-api/Public-Profile-API/ProfileAssetManagement","checkedOn":"2026-10-02","scope":"Public Story/Saved Story/Spotlight surfaces; returned thumbnail_url is not a writable cover capability.","status":"verified"},{"id":"snap_access","url":"https://developers.snap.com/marketing-api/Public-Profile-API/GetStarted","checkedOn":"2026-10-02","scope":"Public Profile API access conditions, allowlisting.","status":"verified"},{"id":"snap_saved_story","url":"https://help.snapchat.com/hc/en-us/articles/7012381865236-How-do-I-add-a-Story-to-my-Public-Profile","checkedOn":"2026-10-02","scope":"Native saved Public Profile Story title and cover selection.","status":"verified"},{"id":"wa_status","url":"https://faq.whatsapp.com/643144237275579/?cms_platform=iphone&locale=en_US","checkedOn":"2026-10-02","scope":"Status manual creation,24h expiry,noHD; no organic Status publication API established here.","status":"verified"}],"limitations":["Meta Help/Developer Guides returned429/login barriers; no current carousel maximum or universal profile-grid ratio asserted.","Capabilities documented here are not verified access for any Salalah Eye account.","Safe insets, words and 6–8 slides are proposed editorial presets, not platform hard limits."],"surfaces":[{"surfaceId":"youtube_video","presetIds":["cover_video_16x9"],"coverCapability":{"status":"documented","ui":"Verified account custom image","api":"Authorized thumbnails.set; account permissions checked separately"},"profileGridCrop":{"status":"placement_specific","universalRatio":null},"carouselCapability":{"status":"not_assumed","maxItems":null,"adaptation":"Native sequence or separate posts; never invent a carousel endpoint."},"publicationRoute":"conditional_api_or_manual","sourceIds":["yt_help","yt_api"],"verifiedConstraints":[{"key":"recommendedThumbnailDimensions","value":[3840,2160],"classification":"platformRecommendation","sourceIds":["yt_help"],"check":"manual_review","params":{},"severity":"error"},{"key":"apiMaxUploadMB","value":50,"classification":"documentedApiLimit","sourceIds":["yt_api"],"check":"max_file_size_mb","params":{"max":50},"severity":"error"},{"key":"apiMimeTypes","value":["image/jpeg","image/png","application/octet-stream"],"classification":"documentedApiConstraint","sourceIds":["yt_api"],"check":"manual_review","params":{},"severity":"error"}]},{"surfaceId":"youtube_shorts","presetIds":["cover_vertical_9x16"],"coverCapability":{"status":"documented_ui","ui":"Custom image in desktop Studio for verified account; not frame-only","api":"General thumbnails.set exists; Shorts/account capability requires verification"},"profileGridCrop":{"status":"placement_specific","universalRatio":null},"carouselCapability":{"status":"not_assumed","maxItems":null,"adaptation":"Native sequence or separate posts; never invent a carousel endpoint."},"publicationRoute":"manual_or_capability_verified_api","sourceIds":["yt_help","yt_api"],"verifiedConstraints":[{"key":"recommendedThumbnailDimensions","value":[2160,3840],"classification":"platformRecommendation","sourceIds":["yt_help"],"check":"manual_review","params":{},"severity":"error"},{"key":"desktopThumbnailMaxMB","value":50,"classification":"documentedUiLimit","sourceIds":["yt_help"],"check":"manual_review","params":{},"severity":"error"}]},{"surfaceId":"instagram_reels","presetIds":["cover_vertical_9x16"],"coverCapability":{"status":"documented_parameters","apiFields":["cover_url","thumb_offset"],"note":"SDK fields do not prove account support or grid cropping."},"profileGridCrop":{"status":"requires_account_preview","universalRatio":null,"simulationRatios":["3:4","4:5","1:1"],"simulationClassification":"editorialStressTests","requireNativePreview":true},"carouselCapability":{"status":"not_assumed","maxItems":null,"adaptation":"Native sequence or separate posts; never invent a carousel endpoint."},"publicationRoute":"conditional_professional_api_or_manual","sourceIds":["meta_ig_sdk"],"verifiedConstraints":[]},{"surfaceId":"instagram_stories","presetIds":["cover_vertical_9x16"],"coverCapability":{"status":"first_card_design","separateThumbnailUpload":"not_confirmed","note":"Opener is content; Highlight covers are a different surface."},"profileGridCrop":{"status":"not_same_as_feed_grid"},"carouselCapability":{"status":"not_assumed","maxItems":null,"adaptation":"Native sequence or separate posts; never invent a carousel endpoint."},"publicationRoute":"business_capability_check_or_manual","sourceIds":["meta_ig_sdk"],"verifiedConstraints":[]},{"surfaceId":"instagram_feed_carousel","presetIds":["carousel_portrait_4x5","carousel_square_1x1"],"coverCapability":{"status":"first_slide_design","note":"Review first-slide thumbnail and native ordered preview."},"profileGridCrop":{"status":"requires_account_preview","universalRatio":null,"simulationRatios":["3:4","4:5","1:1"],"simulationClassification":"editorialStressTests","requireNativePreview":true},"carouselCapability":{"status":"documented_parameters","apiFields":["children","is_carousel_item"],"maxItems":null,"limitStatus":"requires_fresh_ui_and_api_preflight","note":"App limit is not API limit."},"publicationRoute":"conditional_professional_api_or_manual","sourceIds":["meta_ig_sdk","meta_ig_guide"],"verifiedConstraints":[]},{"surfaceId":"facebook_feed_multi_image","presetIds":["carousel_portrait_4x5","carousel_square_1x1"],"coverCapability":{"status":"native_multi_image_layout","note":"Verify final arrangement; do not promise Instagram swipe layout."},"profileGridCrop":{"status":"placement_specific","universalRatio":null},"carouselCapability":{"status":"multi_image_feed_parameters_documented","apiFields":["attached_media"],"maxItems":null,"limitStatus":"requires_fresh_endpoint_preflight","notEquivalentTo":"paid carousel ad or Instagram carousel"},"publicationRoute":"page_api_conditional_personal_profile_manual","sourceIds":["meta_page_sdk"],"verifiedConstraints":[]},{"surfaceId":"facebook_reels","presetIds":["cover_vertical_9x16"],"coverCapability":{"status":"requires_native_or_endpoint_check","fallback":"Honest frame if supported; separate cover upload not promised."},"profileGridCrop":{"status":"placement_specific","universalRatio":null},"carouselCapability":{"status":"not_assumed","maxItems":null,"adaptation":"Native sequence or separate posts; never invent a carousel endpoint."},"publicationRoute":"page_api_conditional_or_manual","sourceIds":["meta_page_sdk"],"verifiedConstraints":[]},{"surfaceId":"facebook_stories","presetIds":["cover_vertical_9x16"],"coverCapability":{"status":"first_card_design","separateThumbnailUpload":"not_confirmed"},"profileGridCrop":{"status":"not_same_as_feed_grid"},"carouselCapability":{"status":"not_assumed","maxItems":null,"adaptation":"Native sequence or separate posts; never invent a carousel endpoint."},"publicationRoute":"page_api_conditional_personal_profile_manual","sourceIds":["meta_page_sdk"],"verifiedConstraints":[]},{"surfaceId":"snapchat_stories","presetIds":["cover_vertical_9x16"],"coverCapability":{"status":"surface_specific","publicStory":"First Snap is an opener; thumbnail_url readback is not a writable cover field.","savedStory":"Native saved Public Profile Story supports title and cover; separate surface."},"profileGridCrop":{"status":"native_profile_preview_required","universalRatio":null},"carouselCapability":{"status":"story_sequence_not_feed_carousel","maxItems":null,"adaptation":"Native sequence or separate posts; never invent a carousel endpoint."},"publicationRoute":"allowlisted_public_profile_api_or_manual","sourceIds":["snap_assets","snap_access","snap_saved_story"],"verifiedConstraints":[]},{"surfaceId":"snapchat_spotlight","presetIds":["cover_vertical_9x16"],"coverCapability":{"status":"requires_native_or_endpoint_check","separateThumbnailUpload":"not_confirmed","fallback":"Representative frame; no invented cover endpoint."},"profileGridCrop":{"status":"native_profile_preview_required","universalRatio":null},"carouselCapability":{"status":"not_assumed","maxItems":null,"adaptation":"Native sequence or separate posts; never invent a carousel endpoint."},"publicationRoute":"allowlisted_public_profile_api_or_manual","sourceIds":["snap_assets","snap_access"],"verifiedConstraints":[]},{"surfaceId":"whatsapp_status","presetIds":["cover_vertical_9x16"],"coverCapability":{"status":"first_card_design","separateThumbnailUpload":"not_confirmed"},"profileGridCrop":{"status":"not_applicable"},"carouselCapability":{"status":"status_sequence_not_feed_carousel","maxItems":null},"publicationRoute":"manual_status_handoff","sourceIds":["wa_status"],"verifiedConstraints":[{"key":"hdStatusSupported","value":false,"classification":"documentedUiCapability","sourceIds":["wa_status"],"check":"manual_review","params":{},"severity":"error"},{"key":"statusExpiresHours","value":24,"classification":"documentedUiBehavior","sourceIds":["wa_status"],"check":"manual_review","params":{},"severity":"error"}]}]}