{"id":27279,"plugin_id":"plugin_asdk_app_6a9fc2ca85f48191882ea63250850322","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-07T00:22:47.802Z","digest":"41b2335e4792bf839d76b70991fd5fa9135c8ad65f55bdfa52029272711bf3f8","against":14500,"payload":{"description":"Plan Tap campaigns, manage public and private RFPs, compare supplier responses, and prepare unsent direct-buy drafts and track existing Orders. Use for buyer media sourcing, supplier Deals, DOOH planning, correspondence, and creative fulfillment in Tap.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":472}],"name":"review-broadcast-campaigns","skill_md_contents":"---\nname: review-broadcast-campaigns\ndescription: Plan Tap campaigns, manage public and private RFPs, compare supplier responses, and prepare unsent direct-buy drafts and track existing Orders. Use for buyer media sourcing, supplier Deals, DOOH planning, correspondence, and creative fulfillment in Tap.\n---\n\n# Buyer media planning in Tap\n\nUse connected Tap tools for the authenticated buyer workspace. Match the named\ncampaign before editing; clarify only if multiple matches remain. The skill\nidentifier and tool names retain Plan, Broadcast and Avail for compatibility.\nCall these campaigns, private TV/radio RFPs, and supplier responses in answers.\n\n## Select the buying method\n\n- Public RFPs: open sourcing briefs for TV, radio, static out-of-home, CTV,\n  cinema, podcasts, digital display, digital video, digital audio, print,\n  social, search, or Any media. A draft is private until explicitly published.\n- Private RFPs: TV/radio requirements sent to specifically selected supplier\n  recipients. Staging recipients does not send the request.\n- Direct-buy planning: compare supplier Deals and DOOH inventory and prepare\n  unsent drafts. This plugin cannot place Orders or record bookings. Existing\n  Order status, correspondence, withdrawals and creative fulfillment are supported.\n\nCampaign mediaTypes supports TV, radio and out-of-home at campaign level.\nOther categories belong to the public RFP brief; do not invent campaign enum\nvalues. Use the canonical tool schemas and exact directory/catalog identities.\n\n## Campaign and RFP preparation\n\nUse listMyPlans to identify campaigns, then getPlanContext for each campaign\nbeing assessed. The list omits completion fields. Report missing budget,\nobjective, audience, flight, markets and requirements from detailed context;\ndistinguish optional fields from send blockers. Reviewing never authorizes edits.\n\nBefore creating an RFP, inspect listOpenRfps or listBroadcastRfps and matching\ngetOpenRfp/getBroadcastRfp details. Reuse an appropriate draft and say whether it\nalready existed. Preserve unchanged requirements and issued requests. Public\nTV/radio RFPs use getOpenRfpDraftContext for exact market, audience, weeks,\ndayparts, lengths and goals. Private station choices use\nlistBroadcastRecipientCandidates; never invent recipients or availability.\n\ncreateOpenRfpDraft and updateOpenRfpDraft prepare public briefs;\npublishOpenRfp exposes the reviewed brief to eligible suppliers. closeOpenRfp\nstops responses. Private RFP tools separately stage, send, revise, add recipients,\namend deadlines, close individual exchanges or withdraw the complete request.\nconvertRfpBuyingMethod replaces only a never-sent TV/radio draft. Re-read its\nnew ID and review completed fields before sending or publishing.\n\n## Responses and supplier correspondence\n\nFor public RFPs, listOpenRfpResponses and getOpenRfpResponse expose submitted\nrevisions and quote options. Compare currency, pricing basis, flight, quantity,\nrate, totals and validity; do not treat expired, withdrawn or superseded terms\nas current. listOpenRfpResponseMessages reads correspondence;\npostOpenRfpResponseMessage sends an approved message with a stable clientId UUID.\nreviewOpenRfpResponse explicitly acknowledges only the reviewed revision.\nPublic cross-media quote-to-Order conversion is not supported by these tools.\n\nFor private RFPs, inspect getBroadcastAvailMenu/getBroadcastAvailResponse,\ngetBroadcastBuyingContext and assembleBroadcastBuy. Compare actual offered\nweekly rates and impressions, costs, audience goals and gaps. Read current and\nhistorical exchange conversations as needed. Sending a message and marking a\nresponse reviewed or conversation read are separate actions from reading.\n\n## Direct-buy drafts and existing Orders\n\nSupplier Deals: listSupplierDeals and getSupplierDeal read eligible public and\nprivate offers. Respond or reply only as requested: interested/reply enables the\ncommunication relationship; passing makes existing draft Orders stale.\ncreateSupplierDealOrder prepares exact avails/quantities from the current Deal\nor quote. It leaves the Order unsent.\n\nBroadcast responses: createBroadcastOrderDraft, addBroadcastOrderAvails and\nsaveBroadcastOrderQuantities prepare an unsent Order. Read getBroadcastOrder\nand its current version, fees, totals and availableActions before editing.\nquoteBroadcastBuyCompositionTapFees reads proposed fees for cost comparison.\nSelecting a buy saves a recommendation and does not place Orders.\n\nDOOH: use catalog overview and geography tools, then\nsearchDoohInventoryOptions to compare grounded catalog groups. Preserve returned\nplanningInput identities in configureDoohPlan. Estimates are directional and\ndo not reserve inventory. Read getDoohPlanningContext and\ngetDoohCommerceWorkspace before editing. saveDoohOrderDraft saves proposed price\nand creative requirements without placing an Order. Re-read allocation and\ndraft versions after changes.\n\nThe plugin cannot place media Orders, materialize a buy into sent Orders or\nrecord external bookings. Do not use messages, interested responses or another\naction as a substitute purchase commitment, even when the user approves.\nAvailable actions in a returned record describe Tap's full product; only the\ncurrently registered plugin tools can be called. For existing Orders, report\nthe actual state and use withdrawal only when the current state allows it.\nDo not claim booking, payment or delivery from an unsent draft or pending Order.\n\nCreative assignments and DOOH HTTPS asset submissions are explicit supplier-\nvisible actions. Reading status does not approve creative. Buyer tools cannot\nimpersonate a supplier, confirm their Order, approve creative as them, submit\nsupplier post-buy reporting, make payments or execute ad-platform campaigns.\n\n## Approval, failures and results\n\nBefore publication, outbound messages, acknowledgements, commercial actions or\ndestructive changes, show the exact target and consequence. Respect the host's\naction permissions and confirmation prompts, and complete any additional server\napproval. Model-supplied humanApproved flags are not evidence of consent.\nApproval of preparation or editing does not authorize sending or publication.\nIf declined, cancelled or unavailable, stop that action and report no change.\n\nUse current versions and fee quotes. On stale-version, permissions or lifecycle\nerrors, re-read the authorized workspace and explain the issue; never remove a\nversion check or use another action to bypass it. After an uncertain response,\nread current state before issuing a new commercial action.\n\nBulk deletion of all client data, campaigns, responses or an organization is not\nsupported. Supported draft, brand, memory and assignment removals need specific\nidentifiers and approval. Do not offer unsupported actions as workarounds.\n\nPresent grounded text or tables and returned Tap links. State what changed,\nwhat remains incomplete and whether anything was sent or published. Do not\nexpose credentials, diagnostic fields, unrelated tenant data or private supplier\ndrafts. Sign in through Tap OAuth; never request passwords, tokens or payment\ncredentials in the conversation.\n"},"changes":[{"path":"/description","type":"changed","before":"Review Tap TV and radio campaigns, prepare unsent broadcast RFPs, check readiness, and compare submitted supplier responses. Use for buyer planning and RFP requests in Tap.","after":"Plan Tap campaigns, manage public and private RFPs, compare supplier responses, and prepare unsent direct-buy drafts and track existing Orders. Use for buyer media sourcing, supplier Deals, DOOH planning, correspondence, and creative fulfillment in Tap."},{"path":"/included_files","type":"changed","before":[{"relative_path":"agents/openai.yaml","size_in_bytes":445}],"after":[{"relative_path":"agents/openai.yaml","size_in_bytes":472}]},{"path":"/skill_md_contents","type":"changed","before":"---\nname: review-broadcast-campaigns\ndescription: Review Tap TV and radio campaigns, prepare unsent broadcast RFPs, check readiness, and compare submitted supplier responses. Use for buyer planning and RFP requests in Tap.\n---\n\n# Review broadcast campaigns in Tap\n\nUse the connected Tap MCP tools for current buyer-workspace data. Match the\nuser's named campaign before making changes; ask which campaign when multiple\nmatches remain. Tool names retain `Plan` and `Avail` for compatibility; call\nthese campaigns and supplier responses in the answer.\n\n## Review campaigns and gaps\n\nUse `listMyPlans` to identify visible campaigns. Its summary does not contain\nall completion fields. When asked for missing details, retrieve\n`getPlanContext` for each campaign being assessed and check budget, objective,\naudience, flight, markets, and media against that context. Distinguish an\noptional unassigned brand from a required RFP completion issue. Missing fields\nin a list projection are unknown until the detailed context is retrieved.\n\nReport concrete gaps without filling them with guesses. A request to review\ndoes not authorize saving edits.\n\n## Prepare or update broadcast RFPs\n\nRetrieve current campaign context and matching RFP details first. Reuse a\nmatching existing draft when appropriate and explicitly say it already\nexisted. Use `createBroadcastRfpDrafts` only when creation is needed; distinguish\nits created and already-existing results. Preserve issued RFPs when editing\ncampaign drafts.\n\nGround station choices in `listBroadcastRecipientCandidates` and current\nrecipient records. Do not invent stations, recipients, rates, or availability.\nUse `stageBroadcastRfpRecipients` only when a recipient change is requested or\nneeded for the requested preparation; replacing the saved selection requires\napproval. Preparing a draft does not send it.\n\nFor readiness reviews, use `listBroadcastRfps` and `getBroadcastRfp`. Separate\nsent RFPs from drafts, report each draft's completion issues, and distinguish\n\"ready to send\" from \"sent\". A draft with no selected recipient is not ready.\n\n## Review submitted responses\n\nUse `getBroadcastBuyingContext` and `assembleBroadcastBuy` for the requested\ncampaign and medium. Compare submitted options using their actual quoted\nrates, quantities, audience, dates, and weekly goals. Explain the recommended\noption, total cost, projected impressions, effective CPM, uncovered goals, and\nremaining budget where the tools provide them. Keep proposed and saved buys\ndistinct; calculation alone does not save or select a composition.\n\n## Approval and supported scope\n\nBefore an external send or destructive change, state the specific campaign or\nRFP, affected fields or recipients, and consequence. Respect the host's action\npermissions and confirmation prompts; the OpenAI plugin uses this native flow.\nComplete any additional approval requested by the server. A request to skip the\npreview does not remove the need to explain the consequence.\nApproval of a budget change does not authorize recipient changes or sending.\nDo not fabricate approval responses or treat an approval error as success.\nIf approval is declined, cancelled, or unsupported, stop that action, state\nthat nothing changed, and provide the tool's Tap recovery link when available.\n\nThis plugin cannot delete all client data or an entire organization. Do not\noffer bulk campaign, RFP, response, or organization deletion, and do not ask a\nuser to confirm an unsupported deletion. Supported brand and memory deletion\nstill requires specific identifiers, a stated consequence, and approval.\n\nThe plugin cannot create or send supplier orders, book media, make payments,\nor execute trades. Explain this limitation when asked; preparing or selecting\na buy recommendation is not a booking. Do not redirect a booking or payment\nrequest to another tool as a workaround.\n\n## Present the result\n\nUse the returned text and structured data as the source of truth. Present the\nresults directly in the conversation using concise text or a comparison table.\nInclude returned Tap links when useful. Summarize what was found, what changed, what\nremains incomplete, and whether anything was sent. Do not expose diagnostic\nidentifiers or unrelated account data. Direct sign-in through Tap OAuth;\nnever ask for passwords, tokens, or payment details in the conversation.\n","after":"---\nname: review-broadcast-campaigns\ndescription: Plan Tap campaigns, manage public and private RFPs, compare supplier responses, and prepare unsent direct-buy drafts and track existing Orders. Use for buyer media sourcing, supplier Deals, DOOH planning, correspondence, and creative fulfillment in Tap.\n---\n\n# Buyer media planning in Tap\n\nUse connected Tap tools for the authenticated buyer workspace. Match the named\ncampaign before editing; clarify only if multiple matches remain. The skill\nidentifier and tool names retain Plan, Broadcast and Avail for compatibility.\nCall these campaigns, private TV/radio RFPs, and supplier responses in answers.\n\n## Select the buying method\n\n- Public RFPs: open sourcing briefs for TV, radio, static out-of-home, CTV,\n  cinema, podcasts, digital display, digital video, digital audio, print,\n  social, search, or Any media. A draft is private until explicitly published.\n- Private RFPs: TV/radio requirements sent to specifically selected supplier\n  recipients. Staging recipients does not send the request.\n- Direct-buy planning: compare supplier Deals and DOOH inventory and prepare\n  unsent drafts. This plugin cannot place Orders or record bookings. Existing\n  Order status, correspondence, withdrawals and creative fulfillment are supported.\n\nCampaign mediaTypes supports TV, radio and out-of-home at campaign level.\nOther categories belong to the public RFP brief; do not invent campaign enum\nvalues. Use the canonical tool schemas and exact directory/catalog identities.\n\n## Campaign and RFP preparation\n\nUse listMyPlans to identify campaigns, then getPlanContext for each campaign\nbeing assessed. The list omits completion fields. Report missing budget,\nobjective, audience, flight, markets and requirements from detailed context;\ndistinguish optional fields from send blockers. Reviewing never authorizes edits.\n\nBefore creating an RFP, inspect listOpenRfps or listBroadcastRfps and matching\ngetOpenRfp/getBroadcastRfp details. Reuse an appropriate draft and say whether it\nalready existed. Preserve unchanged requirements and issued requests. Public\nTV/radio RFPs use getOpenRfpDraftContext for exact market, audience, weeks,\ndayparts, lengths and goals. Private station choices use\nlistBroadcastRecipientCandidates; never invent recipients or availability.\n\ncreateOpenRfpDraft and updateOpenRfpDraft prepare public briefs;\npublishOpenRfp exposes the reviewed brief to eligible suppliers. closeOpenRfp\nstops responses. Private RFP tools separately stage, send, revise, add recipients,\namend deadlines, close individual exchanges or withdraw the complete request.\nconvertRfpBuyingMethod replaces only a never-sent TV/radio draft. Re-read its\nnew ID and review completed fields before sending or publishing.\n\n## Responses and supplier correspondence\n\nFor public RFPs, listOpenRfpResponses and getOpenRfpResponse expose submitted\nrevisions and quote options. Compare currency, pricing basis, flight, quantity,\nrate, totals and validity; do not treat expired, withdrawn or superseded terms\nas current. listOpenRfpResponseMessages reads correspondence;\npostOpenRfpResponseMessage sends an approved message with a stable clientId UUID.\nreviewOpenRfpResponse explicitly acknowledges only the reviewed revision.\nPublic cross-media quote-to-Order conversion is not supported by these tools.\n\nFor private RFPs, inspect getBroadcastAvailMenu/getBroadcastAvailResponse,\ngetBroadcastBuyingContext and assembleBroadcastBuy. Compare actual offered\nweekly rates and impressions, costs, audience goals and gaps. Read current and\nhistorical exchange conversations as needed. Sending a message and marking a\nresponse reviewed or conversation read are separate actions from reading.\n\n## Direct-buy drafts and existing Orders\n\nSupplier Deals: listSupplierDeals and getSupplierDeal read eligible public and\nprivate offers. Respond or reply only as requested: interested/reply enables the\ncommunication relationship; passing makes existing draft Orders stale.\ncreateSupplierDealOrder prepares exact avails/quantities from the current Deal\nor quote. It leaves the Order unsent.\n\nBroadcast responses: createBroadcastOrderDraft, addBroadcastOrderAvails and\nsaveBroadcastOrderQuantities prepare an unsent Order. Read getBroadcastOrder\nand its current version, fees, totals and availableActions before editing.\nquoteBroadcastBuyCompositionTapFees reads proposed fees for cost comparison.\nSelecting a buy saves a recommendation and does not place Orders.\n\nDOOH: use catalog overview and geography tools, then\nsearchDoohInventoryOptions to compare grounded catalog groups. Preserve returned\nplanningInput identities in configureDoohPlan. Estimates are directional and\ndo not reserve inventory. Read getDoohPlanningContext and\ngetDoohCommerceWorkspace before editing. saveDoohOrderDraft saves proposed price\nand creative requirements without placing an Order. Re-read allocation and\ndraft versions after changes.\n\nThe plugin cannot place media Orders, materialize a buy into sent Orders or\nrecord external bookings. Do not use messages, interested responses or another\naction as a substitute purchase commitment, even when the user approves.\nAvailable actions in a returned record describe Tap's full product; only the\ncurrently registered plugin tools can be called. For existing Orders, report\nthe actual state and use withdrawal only when the current state allows it.\nDo not claim booking, payment or delivery from an unsent draft or pending Order.\n\nCreative assignments and DOOH HTTPS asset submissions are explicit supplier-\nvisible actions. Reading status does not approve creative. Buyer tools cannot\nimpersonate a supplier, confirm their Order, approve creative as them, submit\nsupplier post-buy reporting, make payments or execute ad-platform campaigns.\n\n## Approval, failures and results\n\nBefore publication, outbound messages, acknowledgements, commercial actions or\ndestructive changes, show the exact target and consequence. Respect the host's\naction permissions and confirmation prompts, and complete any additional server\napproval. Model-supplied humanApproved flags are not evidence of consent.\nApproval of preparation or editing does not authorize sending or publication.\nIf declined, cancelled or unavailable, stop that action and report no change.\n\nUse current versions and fee quotes. On stale-version, permissions or lifecycle\nerrors, re-read the authorized workspace and explain the issue; never remove a\nversion check or use another action to bypass it. After an uncertain response,\nread current state before issuing a new commercial action.\n\nBulk deletion of all client data, campaigns, responses or an organization is not\nsupported. Supported draft, brand, memory and assignment removals need specific\nidentifiers and approval. Do not offer unsupported actions as workarounds.\n\nPresent grounded text or tables and returned Tap links. State what changed,\nwhat remains incomplete and whether anything was sent or published. Do not\nexpose credentials, diagnostic fields, unrelated tenant data or private supplier\ndrafts. Sign in through Tap OAuth; never request passwords, tokens or payment\ncredentials in the conversation.\n"}],"summary":"Fields changed: 3. /description, /included_files, /skill_md_contents.","summary_kind":"deterministic","summary_metadata":{}}