paid-media-writes

$npx mdskill add langchain-ai/paid-media-agent/paid-media-writes

Use this skill whenever a request would change campaign, budget, bid, status, targeting, creative, conversion, audience, or another provider resource.

SKILL.md

.github/skills/paid-media-writesView on GitHub ↗
---
name: paid-media-writes
description: Prepare, review, edit, approve, reject, or reconcile a paid-media change while preserving the human approval and provider verification boundary.
---

# Paid-media writes

Use this skill whenever a request would change campaign, budget, bid, status, targeting, creative,
conversion, audience, or another provider resource.

1. Read `/skills/paid-media-wiki/write-safety.md`.
2. Confirm the user asked for a change, not only an analysis.
3. Call `discover_write_operations`. It lists the admitted operations with their editable fields,
   units, risk, and the current execution gate. Never guess a mutation name or field.
4. Identify the target from an authorized read (for example the campaign id in a
   `<platform>__get_campaign_performance` or `<platform>__list_campaigns` result).
5. Call `propose_change` with the account alias, the admitted operation name, the target id, the
   changed fields, the reason, a measurement plan, and a reversal plan. The host reads the current
   value, derives risk flags, builds the typed proposal, and persists it. Nothing executes.
6. In one reply: write the proposal fields and risk flags exactly as returned as your message text,
   and call `execute_change` with the proposal id and revision in that same message. The runtime interrupts and
   shows a generic approve or reject card under your text, so the text is the reviewer's evidence.
   Do not ask for approval in prose and do not wait for a chat reply first.
   Only the runtime approval action authorizes execution; chat text does not.
   Requester and approver identity come from the host's verified runtime, never from chat or tool arguments.
7. On edit, the host creates a new revision; earlier approvals are invalid. Re-present the new
   revision.
8. After resume, report the receipt: `verified`, `rejected`, `failed`, or `unknown`, with the
   verified state, whether the provider acknowledged the call, and the reason. Do not claim success
   from anything except a `verified` receipt. A `rejected` receipt with a gate reason
   (`writes_disabled`, `kill_switch`, `tool_not_released`) means the operator has not released the
   live path; say so plainly.
9. If the receipt is `unknown`, explain that no blind retry is safe, check state with a read tool, and
   offer a new proposal if needed.

If execution returns `proposal_changed`, reload it with `get_proposal`. Do not resubmit a proposal
that is executing or verifying. If its worker stopped, check the provider through read-only tools
before proposing another change.

Never call a provider mutation directly, reveal raw ids or credentials, or suggest that a prompt can
bypass the approval policy.

More from langchain-ai/paid-media-agent