← ChatGPT Ads ManagerCONTENT HISTORY

Update to ChatGPT Ads Manager

Snapshot Oct 3, 2026 · 00:02 UTC · version 0.1.27

WHAT CHANGED · RULE-BASED ANALYSIS

Package or technical metadata updated

Package contents changed in 15 files: .codex-plugin/plugin.json, action_ownership.json, shared-references/image-asset-contract.md, …. Open the file diff to inspect the edits.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Package file

Before

6d68c88ae516c23b4a5740803ed1536b3aa7d67af2b26d5ced3ec99c58efd61b

After

41a20989bb2ef34509ec296901d321bb50d7d8aba94bbbd1db3c9f9e392681d6

Package file

Before

9ca1026ec857c0dc70f23c8cb0872cf3d70e5f954dec66b34e743b9955d6f73b

After

485e1c1eca45a1fdf0b03e8a4b935ecae277aca97fce1ce4583c03a5c95b122a

Package file

Before

9315

After

9481

Package file

Before

97813ac10fdfa47351603404245379136ce19652079dc5473365e9d727e783ef

After

1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425

Compare saved observations

Download comparison JSON

skills/ads-manager-account-admin/SKILL.md

--- before
+++ after
@@ -11,6 +11,7 @@
   - set_account_logo
   - get_onboarding_status
   - show_account_setup_widget
+  - get_ads_manager_route_link
 ---
 
 # Ads Manager Account Admin
@@ -36,9 +37,11 @@
 
 For requests such as "what else needs to be done for account setup?" or "help me set up billing," call `get_onboarding_status` once for the resolved account. This read and displaying a widget do not require write confirmation or authorize a membership or logo change.
 
-Call `show_account_setup_widget` once when available only if the successful read confirms `billing_setup_status=required` or a missing logo (`has_account_logo=false` with `logo_in_review=false` and no known submission awaiting review). A pending submission is not a missing logo; if the read conflicts with that known submission, skip the widget. Unknown billing, pending review, completed setup, identity, or access issues alone do not qualify. Never infer missing setup from failed or inconclusive reads or `recommended_next_step` alone. Otherwise explain the confirmed status, or that status could not be verified. If the widget is unavailable or fails, state the confirmed setup need without claiming it displayed.
+Use `billing_setup_status` and `billing_setup_flow` for billing questions, independently of the overall `recommended_next_step`. `complete` means no billing setup action is needed, regardless of flow; it does not establish campaign launch readiness or clear payment holds. Report confirmed setup completion without saying ads are ready to run. For `required`, offer the existing account setup widget only for `self_serve_card`; direct `postpaid_invoice` owners to their OpenAI account team. Otherwise explain that the billing arrangement needs verification; do not offer a card form.
 
-Avoid repeating an unchanged active widget the user has already seen or deferred. Billing is completed through the widget's secure form, not chat: never collect payment details or invoke its private billing helpers from the model. Saving or closing billing updates that same widget; do not render another on save. A setup-complete result does not establish campaign launch readiness or clear independent identity, access, or account-review blockers.
+Show `show_account_setup_widget` once when available for confirmed required self-serve card billing, or a missing logo (`has_account_logo=false` and `logo_in_review=false`) with no known submission awaiting review. Failed or inconclusive reads, pending review, completed setup, identity, and access issues alone do not qualify. If status conflicts with a known logo submission, skip the widget. The widget is the primary card setup flow. Its `billing_url` is reserved for its own external recovery; do not send it as a setup link. If the widget is unavailable or fails after confirmed required self-serve card billing, call `get_ads_manager_route_link` with `route_kind="billing_settings"` for the same account and offer its returned ordinary billing settings page link. If that read fails, explain the confirmed need and offer to retry here later. Never claim the widget displayed or construct a URL.
+
+Avoid repeating an unchanged active widget the user has already seen or deferred. Self-serve card billing is completed through the widget's secure form, not chat: never collect payment details or invoke its private billing helpers from the model. Saving or closing billing updates that same widget; do not render another on save. A setup-complete result does not establish campaign launch readiness or clear independent identity, access, or account-review blockers.
 
 ## Membership Branch
 
@@ -65,7 +68,7 @@
 Resolve exactly one existing account before logo work. Accept only a user-supplied or explicitly approved logo candidate: a provided attachment, a direct public image URL, or a generated logo after the user explicitly chooses generation. Never inspect a website or its assets to discover a logo, and never treat a webpage URL, local filesystem path, selected image, generated image, or approval alone as an uploaded logo.
 
 1. Read and follow the linked image and write-safety references before accepting, generating, validating, uploading, applying, retrying, or reconciling the logo.
-2. Show the exact candidate logo and selected account. Ask for explicit approval of the exact sequence: upload that candidate for that account, then submit the returned upload as the account logo.
+2. Propose the exact candidate logo and selected account. Ask for explicit approval of the exact sequence: upload that candidate for that account, then submit the returned upload as the account logo.
 3. Use the matching account-scoped logo upload action once for that approved candidate. Continue only when it succeeds and returns a non-empty opaque `file_id`; retain that token privately and never treat upload alone as an applied logo.
 4. Call `set_account_logo` for the same selected account with that returned token and a short user-visible description grounded only in the exact approved candidate.
 5. Treat a successful apply result as submission for brand review. If a public logo already exists, it remains active until approval; do not claim the public logo changed immediately.
Full technical diff · 29 changed fields

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"6d68c88ae516c23b4a5740803ed1536b3aa7d67af2b26d5ced3ec99c58efd61b"
AFTER
"41a20989bb2ef34509ec296901d321bb50d7d8aba94bbbd1db3c9f9e392681d6"

changed /files/action_ownership.json/sha256

BEFORE
"9ca1026ec857c0dc70f23c8cb0872cf3d70e5f954dec66b34e743b9955d6f73b"
AFTER
"485e1c1eca45a1fdf0b03e8a4b935ecae277aca97fce1ce4583c03a5c95b122a"

changed /files/action_ownership.json/size

BEFORE
9315
AFTER
9481

changed /files/shared-references~1image-asset-contract.md/sha256

BEFORE
"97813ac10fdfa47351603404245379136ce19652079dc5473365e9d727e783ef"
AFTER
"1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425"

changed /files/shared-references~1image-asset-contract.md/size

BEFORE
10890
AFTER
10966

changed /files/skills~1ads-manager-account-admin~1SKILL.md/sha256

BEFORE
"d6767d1a9fc175dbb99efc29db3281a6b9fe0f0fe46dc82e620f227565fbe45f"
AFTER
"fd576fb77a9cf3f4f77259809c20e428ccb4eec1196e31192f362446fd992e58"

changed /files/skills~1ads-manager-account-admin~1SKILL.md/size

BEFORE
9698
AFTER
10516

changed /files/skills~1ads-manager-account-admin~1references~1_shared~1image-asset-contract.md/sha256

BEFORE
"97813ac10fdfa47351603404245379136ce19652079dc5473365e9d727e783ef"
AFTER
"1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425"

changed /files/skills~1ads-manager-account-admin~1references~1_shared~1image-asset-contract.md/size

BEFORE
10890
AFTER
10966

changed /files/skills~1ads-manager-ad-creation~1SKILL.md/sha256

BEFORE
"9cd50aa036ec1def28251b5dc72f2c37553dad5246895283c46635a0e2f96856"
AFTER
"bc82db6f2f94369050b34965bc3f22e50f66be90f4f59f0366b6b646a479d9f3"

changed /files/skills~1ads-manager-ad-creation~1SKILL.md/size

BEFORE
42124
AFTER
42842

changed /files/skills~1ads-manager-ad-creation~1references~1_shared~1image-asset-contract.md/sha256

BEFORE
"97813ac10fdfa47351603404245379136ce19652079dc5473365e9d727e783ef"
AFTER
"1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425"

changed /files/skills~1ads-manager-ad-creation~1references~1_shared~1image-asset-contract.md/size

BEFORE
10890
AFTER
10966

changed /files/skills~1ads-manager-ad-creation~1references~1website-brief.md/sha256

BEFORE
"087f31b5fcad399937725c84a247a29ff2c77441eac819197a45f75eebba2959"
AFTER
"7884d9da5aeb5eea26ce75f9db62e942a3157dcf8efdb0a56bbae7b2dca476a0"

changed /files/skills~1ads-manager-ad-creation~1references~1website-brief.md/size

BEFORE
893
AFTER
2044

changed /files/skills~1ads-manager-delivery-recovery~1SKILL.md/sha256

BEFORE
"16692f80ad5676e96e55eb4b317874f9498308d798f5f0a32843c2b8236d1bdc"
AFTER
"a57a76d5ab4a6239336aa7d03c8fb336568e25f9f6f77e1797ff64ce47a515bd"

changed /files/skills~1ads-manager-delivery-recovery~1SKILL.md/size

BEFORE
6309
AFTER
7231

changed /files/skills~1ads-manager-entity-management~1references~1_shared~1image-asset-contract.md/sha256

BEFORE
"97813ac10fdfa47351603404245379136ce19652079dc5473365e9d727e783ef"
AFTER
"1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425"

changed /files/skills~1ads-manager-entity-management~1references~1_shared~1image-asset-contract.md/size

BEFORE
10890
AFTER
10966

changed /files/skills~1ads-manager-help~1SKILL.md/sha256

BEFORE
"5402cdc30d61300eceb5db3f955584c6f81f9f65c4b76c9dff7dcef9ab14acab"
AFTER
"0d9935f0a93307df703fb95c0e661574475f62b4ec0e6ebfa23faa836c8b46b5"

changed /files/skills~1ads-manager-help~1SKILL.md/size

BEFORE
8583
AFTER
9510

changed /files/skills~1ads-manager-onboarding~1SKILL.md/sha256

BEFORE
"bc03bb0cf899a4c3296a1520b8cf141afd9aac93b4ba4f0aef2dc1ac46ca5027"
AFTER
"24a94961ed6e7577992634149ecf5107a3bc9f706d6b5c7afc272191e2c4c14b"

changed /files/skills~1ads-manager-onboarding~1SKILL.md/size

BEFORE
22268
AFTER
24981

changed /files/skills~1ads-manager-onboarding~1references~1_shared~1image-asset-contract.md/sha256

BEFORE
"97813ac10fdfa47351603404245379136ce19652079dc5473365e9d727e783ef"
AFTER
"1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425"

changed /files/skills~1ads-manager-onboarding~1references~1_shared~1image-asset-contract.md/size

BEFORE
10890
AFTER
10966

changed /files/skills~1ads-manager-review~1SKILL.md/sha256

BEFORE
"689655607379f81d99f10aecfe3249d8993d2d537824cb22a01972e235718d59"
AFTER
"a4a459402d5c99799d49ec54e2e1978250d6bddf71e60a491e7b8d7e43548f40"

changed /files/skills~1ads-manager-review~1SKILL.md/size

BEFORE
16340
AFTER
17264

changed /files/skills~1ads-manager-starter-campaign~1references~1_shared~1image-asset-contract.md/sha256

BEFORE
"97813ac10fdfa47351603404245379136ce19652079dc5473365e9d727e783ef"
AFTER
"1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425"

changed /files/skills~1ads-manager-starter-campaign~1references~1_shared~1image-asset-contract.md/size

BEFORE
10890
AFTER
10966
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "3180d05dc7ec07cd13350cdb3e78c71a806a3020973e9fed4ce1e1e158ada8a5",
      "size": 89
    },
    ".codex-plugin/plugin.json": {
      "sha256": "41a20989bb2ef34509ec296901d321bb50d7d8aba94bbbd1db3c9f9e392681d6",
      "size": 2363
    },
    "OWNERS": {
      "sha256": "f6e0b6dd73dd25cb708b1fcee790136c9b4accac838a271723be3c1d99f47cee",
      "size": 39
    },
    "README.md": {
      "sha256": "67cf86fe36b2a1e1e468124a023de0e9ffbc9b93b435356acde09e87f21993a2",
      "size": 5618
    },
    "action_ownership.json": {
      "sha256": "485e1c1eca45a1fdf0b03e8a4b935ecae277aca97fce1ce4583c03a5c95b122a",
      "size": 9481
    },
    "assets/composer-icon.svg": {
      "sha256": "2acbcc610b78d68e4743b99978dbdc570b72cd9867d12fe483b41ec0d82f7459",
      "size": 2630
    },
    "assets/icon.svg": {
      "sha256": "2acbcc610b78d68e4743b99978dbdc570b72cd9867d12fe483b41ec0d82f7459",
      "size": 2630
    },
    "assets/logo.svg": {
      "sha256": "2acbcc610b78d68e4743b99978dbdc570b72cd9867d12fe483b41ec0d82f7459",
      "size": 2630
    },
    "scripts/materialize_shared_references.py": {
      "sha256": "1df7e582ba67d63ae6d3317302719fc7677c74c00615f3c8fa804380a1ddf7b1",
      "size": 4010
    },
    "scripts/validate_asset.py": {
      "sha256": "5bd61e725254c0f6372df9438e3e4ff23c0a68005830901cb764a0f52bf6b821",
      "size": 4858
    },
    "shared-references/ads-structure-and-context-playbook.md": {
      "sha256": "d00be62061570de9dd55e7433a67f7deb017a2618df51e3ce11602423d6e9dd0",
      "size": 5598
    },
    "shared-references/auction-readiness-playbook.md": {
      "sha256": "555e08e61c6cceea729238e2ef08d899c25985926c139c3118bdf92578286962",
      "size": 2059
    },
    "shared-references/campaign-create-preflight.md": {
      "sha256": "6ea24a4f960a5708bdb7823f4695f0ad42c0db6488cc7c48df031a7085199834",
      "size": 6591
    },
    "shared-references/consumers.json": {
      "sha256": "766609dfa620e9914600e28e3f34ca2716f6b199fbb1a0cc653e365f3f7cbd7c",
      "size": 1768
    },
    "shared-references/event-quality.md": {
      "sha256": "8bccafa7d26fd7ddcd28f455553cee98de3c60f39b23d5f7fd4c59a6a9ba99af",
      "size": 4060
    },
    "shared-references/handoff-state.md": {
      "sha256": "f41de89315b839eb963b69e0b7d23bbb6409e145820d53930d9020f6a5f55b45",
      "size": 1277
    },
    "shared-references/help-center-guide.md": {
      "sha256": "6958929cdb159103c5bc591388a888056e06040d09404a48687b8a39ce2a1e98",
      "size": 5455
    },
    "shared-references/image-asset-contract.md": {
      "sha256": "1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425",
      "size": 10966
    },
    "shared-references/insights-contract.md": {
      "sha256": "7dd821497db67cca08806a1244400a8a6a0f67e3ef04d3517682f581ad5ca4a7",
      "size": 6724
    },
    "shared-references/measurement-readiness-playbook.md": {
      "sha256": "a668a2de302c287441f47a637b0b599b92e220226c1182a0b617a4f2af456861",
      "size": 2134
    },
    "shared-references/product-feed-contract.md": {
      "sha256": "4976811b5e9380f42be41460851f0a2798a1d55db3915101e1fb7c7d441f4512",
      "size": 3578
    },
    "shared-references/write-safety.md": {
      "sha256": "1e25b51a92ac126fe7cf5a3a41c1202b2a4ba6f67d2bcae428e606dc8a66ca98",
      "size": 3437
    },
    "skills/ads-manager-account-admin/SKILL.md": {
      "sha256": "fd576fb77a9cf3f4f77259809c20e428ccb4eec1196e31192f362446fd992e58",
      "size": 10516
    },
    "skills/ads-manager-account-admin/agents/openai.yaml": {
      "sha256": "d5166e3b6cebb860691efee75a56ca44bcedf70dbbb4351f4621a9ac4add7466",
      "size": 333
    },
    "skills/ads-manager-account-admin/references/_shared/image-asset-contract.md": {
      "sha256": "1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425",
      "size": 10966
    },
    "skills/ads-manager-account-admin/references/_shared/write-safety.md": {
      "sha256": "1e25b51a92ac126fe7cf5a3a41c1202b2a4ba6f67d2bcae428e606dc8a66ca98",
      "size": 3437
    },
    "skills/ads-manager-actionable-review/SKILL.md": {
      "sha256": "a8c002ad0d8153843a742eea7fb3e5681581bc554aa0d29a875a42a6aaca0162",
      "size": 16474
    },
    "skills/ads-manager-actionable-review/agents/openai.yaml": {
      "sha256": "f694214f4fc2fa512e58d29c23d9f7fe04fc262ab30b4dc3c5c2a5e04fbce526",
      "size": 292
    },
    "skills/ads-manager-actionable-review/references/_shared/insights-contract.md": {
      "sha256": "7dd821497db67cca08806a1244400a8a6a0f67e3ef04d3517682f581ad5ca4a7",
      "size": 6724
    },
    "skills/ads-manager-ad-creation/SKILL.md": {
      "sha256": "bc82db6f2f94369050b34965bc3f22e50f66be90f4f59f0366b6b646a479d9f3",
      "size": 42842
    },
    "skills/ads-manager-ad-creation/agents/openai.yaml": {
      "sha256": "74de43e3dc0db6758e557de3951f040ecec41fbdab622263ca67b029dc7ce5d7",
      "size": 234
    },
    "skills/ads-manager-ad-creation/references/_shared/ads-structure-and-context-playbook.md": {
      "sha256": "d00be62061570de9dd55e7433a67f7deb017a2618df51e3ce11602423d6e9dd0",
      "size": 5598
    },
    "skills/ads-manager-ad-creation/references/_shared/auction-readiness-playbook.md": {
      "sha256": "555e08e61c6cceea729238e2ef08d899c25985926c139c3118bdf92578286962",
      "size": 2059
    },
    "skills/ads-manager-ad-creation/references/_shared/campaign-create-preflight.md": {
      "sha256": "6ea24a4f960a5708bdb7823f4695f0ad42c0db6488cc7c48df031a7085199834",
      "size": 6591
    },
    "skills/ads-manager-ad-creation/references/_shared/image-asset-contract.md": {
      "sha256": "1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425",
      "size": 10966
    },
    "skills/ads-manager-ad-creation/references/_shared/measurement-readiness-playbook.md": {
      "sha256": "a668a2de302c287441f47a637b0b599b92e220226c1182a0b617a4f2af456861",
      "size": 2134
    },
    "skills/ads-manager-ad-creation/references/_shared/product-feed-contract.md": {
      "sha256": "4976811b5e9380f42be41460851f0a2798a1d55db3915101e1fb7c7d441f4512",
      "size": 3578
    },
    "skills/ads-manager-ad-creation/references/_shared/write-safety.md": {
      "sha256": "1e25b51a92ac126fe7cf5a3a41c1202b2a4ba6f67d2bcae428e606dc8a66ca98",
      "size": 3437
    },
    "skills/ads-manager-ad-creation/references/generated-image.md": {
      "sha256": "42bc47347ddf1c2fcb49f0557020dd72d89584127880bcaff5ed4f47ef22554d",
      "size": 1299
    },
    "skills/ads-manager-ad-creation/references/multi-ad.md": {
      "sha256": "a8044c903b2bf5acb0c3e74d0fa23435e82a363f13c8505437d2a313aabe83d3",
      "size": 3638
    },
    "skills/ads-manager-ad-creation/references/retry-recovery.md": {
      "sha256": "32fd3fe8b8ae0a3209d1e52dabaaecc59f5642860621288bf039075ee359b4b7",
      "size": 383
    },
    "skills/ads-manager-ad-creation/references/website-brief.md": {
      "sha256": "7884d9da5aeb5eea26ce75f9db62e942a3157dcf8efdb0a56bbae7b2dca476a0",
      "size": 2044
    },
    "skills/ads-manager-delivery-recovery/SKILL.md": {
      "sha256": "a57a76d5ab4a6239336aa7d03c8fb336568e25f9f6f77e1797ff64ce47a515bd",
      "size": 7231
    },
    "skills/ads-manager-delivery-recovery/agents/openai.yaml": {
      "sha256": "c66c69c015ac78d3f208ba3cb4a6ce89203f06841fe9988ff0c84e8161dc6196",
      "size": 285
    },
    "skills/ads-manager-delivery-recovery/references/_shared/help-center-guide.md": {
      "sha256": "6958929cdb159103c5bc591388a888056e06040d09404a48687b8a39ce2a1e98",
      "size": 5455
    },
    "skills/ads-manager-delivery-recovery/references/_shared/insights-contract.md": {
      "sha256": "7dd821497db67cca08806a1244400a8a6a0f67e3ef04d3517682f581ad5ca4a7",
      "size": 6724
    },
    "skills/ads-manager-entity-management/SKILL.md": {
      "sha256": "8d6272d37354ecdc530c8a22d43d8b159b5841707f19110dbf2b10e6deeea469",
      "size": 17447
    },
    "skills/ads-manager-entity-management/agents/openai.yaml": {
      "sha256": "c465c9cebe0ee77e80c6e0083839332a1b8815d838f9eb62d610912ccc0697bc",
      "size": 276
    },
    "skills/ads-manager-entity-management/references/_shared/ads-structure-and-context-playbook.md": {
      "sha256": "d00be62061570de9dd55e7433a67f7deb017a2618df51e3ce11602423d6e9dd0",
      "size": 5598
    },
    "skills/ads-manager-entity-management/references/_shared/auction-readiness-playbook.md": {
      "sha256": "555e08e61c6cceea729238e2ef08d899c25985926c139c3118bdf92578286962",
      "size": 2059
    },
    "skills/ads-manager-entity-management/references/_shared/campaign-create-preflight.md": {
      "sha256": "6ea24a4f960a5708bdb7823f4695f0ad42c0db6488cc7c48df031a7085199834",
      "size": 6591
    },
    "skills/ads-manager-entity-management/references/_shared/image-asset-contract.md": {
      "sha256": "1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425",
      "size": 10966
    },
    "skills/ads-manager-entity-management/references/_shared/measurement-readiness-playbook.md": {
      "sha256": "a668a2de302c287441f47a637b0b599b92e220226c1182a0b617a4f2af456861",
      "size": 2134
    },
    "skills/ads-manager-entity-management/references/_shared/product-feed-contract.md": {
      "sha256": "4976811b5e9380f42be41460851f0a2798a1d55db3915101e1fb7c7d441f4512",
      "size": 3578
    },
    "skills/ads-manager-entity-management/references/_shared/write-safety.md": {
      "sha256": "1e25b51a92ac126fe7cf5a3a41c1202b2a4ba6f67d2bcae428e606dc8a66ca98",
      "size": 3437
    },
    "skills/ads-manager-help/SKILL.md": {
      "sha256": "0d9935f0a93307df703fb95c0e661574475f62b4ec0e6ebfa23faa836c8b46b5",
      "size": 9510
    },
    "skills/ads-manager-help/agents/openai.yaml": {
      "sha256": "f58be5e02fe06f94ba88665931a2da529cb068ca81d04a44af1938021273d6a1",
      "size": 265
    },
    "skills/ads-manager-help/references/_shared/ads-structure-and-context-playbook.md": {
      "sha256": "d00be62061570de9dd55e7433a67f7deb017a2618df51e3ce11602423d6e9dd0",
      "size": 5598
    },
    "skills/ads-manager-help/references/_shared/auction-readiness-playbook.md": {
      "sha256": "555e08e61c6cceea729238e2ef08d899c25985926c139c3118bdf92578286962",
      "size": 2059
    },
    "skills/ads-manager-help/references/_shared/event-quality.md": {
      "sha256": "8bccafa7d26fd7ddcd28f455553cee98de3c60f39b23d5f7fd4c59a6a9ba99af",
      "size": 4060
    },
    "skills/ads-manager-help/references/_shared/help-center-guide.md": {
      "sha256": "6958929cdb159103c5bc591388a888056e06040d09404a48687b8a39ce2a1e98",
      "size": 5455
    },
    "skills/ads-manager-help/references/_shared/measurement-readiness-playbook.md": {
      "sha256": "a668a2de302c287441f47a637b0b599b92e220226c1182a0b617a4f2af456861",
      "size": 2134
    },
    "skills/ads-manager-help/references/_shared/product-feed-contract.md": {
      "sha256": "4976811b5e9380f42be41460851f0a2798a1d55db3915101e1fb7c7d441f4512",
      "size": 3578
    },
    "skills/ads-manager-insights/SKILL.md": {
      "sha256": "43577e0a95683796f48cb15e8ab91061504009c95edb6f510b431d49fdeb253f",
      "size": 13378
    },
    "skills/ads-manager-insights/agents/openai.yaml": {
      "sha256": "71dc94820ca1dc03f691cde9d423d887bade180729f5ec6fe18fa7ed672c2db9",
      "size": 318
    },
    "skills/ads-manager-insights/references/_shared/event-quality.md": {
      "sha256": "8bccafa7d26fd7ddcd28f455553cee98de3c60f39b23d5f7fd4c59a6a9ba99af",
      "size": 4060
    },
    "skills/ads-manager-insights/references/_shared/insights-contract.md": {
      "sha256": "7dd821497db67cca08806a1244400a8a6a0f67e3ef04d3517682f581ad5ca4a7",
      "size": 6724
    },
    "skills/ads-manager-onboarding/SKILL.md": {
      "sha256": "24a94961ed6e7577992634149ecf5107a3bc9f706d6b5c7afc272191e2c4c14b",
      "size": 24981
    },
    "skills/ads-manager-onboarding/agents/openai.yaml": {
      "sha256": "6b318dc6a1ecaa119e0823a4d4cc486ca521fb26a7e28af626d42bf7445c6dd6",
      "size": 254
    },
    "skills/ads-manager-onboarding/references/_shared/handoff-state.md": {
      "sha256": "f41de89315b839eb963b69e0b7d23bbb6409e145820d53930d9020f6a5f55b45",
      "size": 1277
    },
    "skills/ads-manager-onboarding/references/_shared/image-asset-contract.md": {
      "sha256": "1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425",
      "size": 10966
    },
    "skills/ads-manager-onboarding/references/_shared/write-safety.md": {
      "sha256": "1e25b51a92ac126fe7cf5a3a41c1202b2a4ba6f67d2bcae428e606dc8a66ca98",
      "size": 3437
    },
    "skills/ads-manager-review/SKILL.md": {
      "sha256": "a4a459402d5c99799d49ec54e2e1978250d6bddf71e60a491e7b8d7e43548f40",
      "size": 17264
    },
    "skills/ads-manager-review/agents/openai.yaml": {
      "sha256": "fcca9fd9eed863aea67daf8727d952901c73909b882e92b5c05d682a0bab4faf",
      "size": 277
    },
    "skills/ads-manager-review/references/_shared/ads-structure-and-context-playbook.md": {
      "sha256": "d00be62061570de9dd55e7433a67f7deb017a2618df51e3ce11602423d6e9dd0",
      "size": 5598
    },
    "skills/ads-manager-review/references/_shared/auction-readiness-playbook.md": {
      "sha256": "555e08e61c6cceea729238e2ef08d899c25985926c139c3118bdf92578286962",
      "size": 2059
    },
    "skills/ads-manager-review/references/_shared/event-quality.md": {
      "sha256": "8bccafa7d26fd7ddcd28f455553cee98de3c60f39b23d5f7fd4c59a6a9ba99af",
      "size": 4060
    },
    "skills/ads-manager-review/references/_shared/handoff-state.md": {
      "sha256": "f41de89315b839eb963b69e0b7d23bbb6409e145820d53930d9020f6a5f55b45",
      "size": 1277
    },
    "skills/ads-manager-review/references/_shared/insights-contract.md": {
      "sha256": "7dd821497db67cca08806a1244400a8a6a0f67e3ef04d3517682f581ad5ca4a7",
      "size": 6724
    },
    "skills/ads-manager-review/references/_shared/measurement-readiness-playbook.md": {
      "sha256": "a668a2de302c287441f47a637b0b599b92e220226c1182a0b617a4f2af456861",
      "size": 2134
    },
    "skills/ads-manager-review/references/_shared/product-feed-contract.md": {
      "sha256": "4976811b5e9380f42be41460851f0a2798a1d55db3915101e1fb7c7d441f4512",
      "size": 3578
    },
    "skills/ads-manager-setup/SKILL.md": {
      "sha256": "43c2e8304ea4170abf709fe72c6fc016b035a9611645fe361ed3045c8c431252",
      "size": 8289
    },
    "skills/ads-manager-setup/agents/openai.yaml": {
      "sha256": "4825c66feff429483645d87355b755d39d823fe0c5e7943bec884a3b598dac7f",
      "size": 255
    },
    "skills/ads-manager-start-agent/SKILL.md": {
      "sha256": "a7b904f92c83a7fea6663b8ee87f88c73b1b44a675f65ec2fa0917bba937e045",
      "size": 15978
    },
    "skills/ads-manager-start-agent/agents/openai.yaml": {
      "sha256": "a1b1c32daa1486e4bab5d506fdc494e2a782031c4d98e76c947187f7fc100bc1",
      "size": 272
    },
    "skills/ads-manager-start-agent/references/_shared/handoff-state.md": {
      "sha256": "f41de89315b839eb963b69e0b7d23bbb6409e145820d53930d9020f6a5f55b45",
      "size": 1277
    },
    "skills/ads-manager-starter-campaign/SKILL.md": {
      "sha256": "827ba661305927f4ed6c53d5488319048029a3c8317f3e7e07e84f4f05c0abbc",
      "size": 14542
    },
    "skills/ads-manager-starter-campaign/agents/openai.yaml": {
      "sha256": "74925e919173f528cd123b18e3f6a94ba2c9f98349ed4054d6d6c32de02f956d",
      "size": 289
    },
    "skills/ads-manager-starter-campaign/references/_shared/ads-structure-and-context-playbook.md": {
      "sha256": "d00be62061570de9dd55e7433a67f7deb017a2618df51e3ce11602423d6e9dd0",
      "size": 5598
    },
    "skills/ads-manager-starter-campaign/references/_shared/auction-readiness-playbook.md": {
      "sha256": "555e08e61c6cceea729238e2ef08d899c25985926c139c3118bdf92578286962",
      "size": 2059
    },
    "skills/ads-manager-starter-campaign/references/_shared/campaign-create-preflight.md": {
      "sha256": "6ea24a4f960a5708bdb7823f4695f0ad42c0db6488cc7c48df031a7085199834",
      "size": 6591
    },
    "skills/ads-manager-starter-campaign/references/_shared/handoff-state.md": {
      "sha256": "f41de89315b839eb963b69e0b7d23bbb6409e145820d53930d9020f6a5f55b45",
      "size": 1277
    },
    "skills/ads-manager-starter-campaign/references/_shared/image-asset-contract.md": {
      "sha256": "1d3cb064b9da109d054d4ac30f1ebf554d918400e15c30dfa92ab02cfde82425",
      "size": 10966
    },
    "skills/ads-manager-starter-campaign/references/_shared/write-safety.md": {
      "sha256": "1e25b51a92ac126fe7cf5a3a41c1202b2a4ba6f67d2bcae428e606dc8a66ca98",
      "size": 3437
    },
    "tests/test_action_ownership_contract.py": {
      "sha256": "0c8bc2a6e56ff84f7ba8549e513ed0bd178bc8632cea3c0c8c6a35d9f85e7a77",
      "size": 8321
    },
    "tests/test_creative_generation_contract.py": {
      "sha256": "da74830069a5459d865a20d8e0acbd95c48ccecf5876d1d9baa859fa78556b75",
      "size": 5090
    },
    "tests/test_reference_loading_contract.py": {
      "sha256": "8f1a018bb10526d612f37e6860399dc0aee67cb14d7ffc60ebd59ea73dc031df",
      "size": 3266
    }
  }
}

SHA-256 of public snapshot: bfd597109754976f12ab751538fcc52882b79a27d2617fdb9bc20f44a382e0d9