Skip to content
Back to skills

Mcp Playbook

ASecurity

Deep reference / playbook for correctly driving the crevideo-reach MCP — TikTok Shop affiliate (分销) and affiliate (分销) work: tool map (79 tools), the affiliate create flow, TC automation-wrapper vs direct entity, Open Collaboration (OC), read-side tool choice, filter schema, ID-space gotchas, message components, naming, reporting gotchas, sample approval, email centre, and debugging. Use when creating/listing/debugging outreach automations (TC / DM), running Open Collaborations, pulling affil...

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 24, 2026
ai-agentsjavascriptgojavareactdebugginggitbackendperformance

Works with

  • cursor
  • cli
  • mcp

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 24, 2026

npx -y skills add crevideo/crevideo-reach --skill mcp-playbook --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mcp Playbook?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mcp Playbook
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/crevideo-mcp-playbook/badge)](https://www.skillsdirectory.com/skills/crevideo-mcp-playbook)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mcp-playbook
description: >-
  Deep reference / playbook for correctly driving the crevideo-reach MCP — TikTok Shop affiliate (分销) and affiliate (分销) work:
  tool map (79 tools), the affiliate create flow, TC automation-wrapper vs direct entity, Open Collaboration (OC),
  read-side tool choice, filter schema, ID-space gotchas, message components, naming, reporting gotchas,
  sample approval, email centre, and debugging. Use when creating/listing/debugging outreach automations
  (TC / DM), running Open Collaborations, pulling affiliate analytics (collaboration / product /
  shoppable-video GMV / orders), managing affiliate creators (list / detail / blacklist / tags / lists /
  segments / journeys), discovering creators, approving sample requests, handling DM / email conversations,
  Campaign/marketing remains out of scope. Triggers on
  自动化/目标合作/公开合作/给达人发消息/发邮件/分销报表/分销订单/
  GMV/达人表现/我的达人/找达人/黑名单/分群/申样/私信 and the English equivalents.
---

# Crevideo Reach MCP — Playbook

> **Output language**: respond in the merchant's working language — Chinese for China-POP sellers (分级 / 真实抽成 / 触达阶梯 …), English for US sellers (tier / all-in take-rate / outreach waterfall …). Tool names stay identical in both.


The **deep-reference layer** for the `crevideo-reach` MCP server. The MCP itself ships a baseline tool-map + typical flow via `SERVER_INSTRUCTIONS`; this skill covers what that baseline can't — the create flow, non-obvious constraints, and how to debug when behavior diverges from the brands-app UI.

> **Source of truth**: if anything here disagrees with the **live tool list** in the running session, the **live tools win** (this doc can lag the MCP version). Only call tools that actually exist in the session; never assume historical or future tools.

## When NOT to use
- Pure MCP-protocol or Claude-skill mechanics questions → wrong skill.
- Nothing about automations, creators, affiliate analytics, TikTok Shop, or the reach area → don't invoke.

## Scope: affiliate (分销)
The MCP exposes affiliate/distribution features. Product onboarding tools are temporarily hidden. Campaign/marketing surfaces (campaign management, `/report/*` campaign reports, creator **marketplace** discovery, custom products, brand sampling) are **not** tools here — say they're out of scope. `query_*_performance` covers **collaboration / affiliate-product / shoppable-video** (affiliate), not campaign reports.
There is **no** natural-language→filter and **no** copy-polish endpoint — **you (the LLM) translate the user's words into structured filters yourself**, and you write/edit message copy yourself.

## Tool map (79 tools, 15 groups)
Many tools **fold multiple endpoints behind a `view` / `action` / `scope` / `op_type` param** — pass those to drill in; don't expect one tool per endpoint.

- **Automations (💳 on create):** `list_automations`, `get_automation_detail`, `get_automation_task_results`, `preview_target_collab` (free, 10-min token), `create_target_collab`, `create_dm_automation`, `create_tc_dm_automation`, `clone_and_modify_automation`, `start_automation` / `pause_automation` / `delete_automation`, `update_dm_automation_text`, `create_bulk_tc_operation`, `manage_message_templates`, `get_dm_task_message_template`.
- **TC direct entity (no automation wrapper):** `list_target_collaborations`, `get_target_collaboration_detail`, `preview_target_collab_direct`, `create_target_collab_direct`, `update_target_collab_direct`, `cancel_target_collaboration`, `add_creator_to_target_collaboration`. See "TC: two creation paths" below.
- **Open Collaboration (OC):** `list_open_collaborations`, `get_open_collaboration_detail`, `create_open_collaboration`, `modify_open_collaboration`, `remove_open_collaboration`, `manage_open_collaboration_settings` (get/edit), `manage_open_collaboration_sample_rule` (get/edit), `remove_creator_from_open_collaboration`, `list_not_added_open_collaboration_products`, `get_open_collaboration_product_count`, `get_open_collaboration_status_counts`.
- **Reporting (read-only, 3 tools):** `query_collaboration_performance` (`scope`: target/open/both), `query_product_performance`, `query_shoppable_video_performance`. Product/video breakdown/detail views run on **TT-official REAL-TIME data** (matches the brand-app page; video adds GPM + daily avg customers, product AOV is derived GMV÷orders); overview/trend stay on legacy aggregates — small drift between the two is expected, explain it rather than "fix" it. Breakdown lists use cursor pagination: pass each returned `next_page_token` back unchanged as `page_token`; the legacy `page` number does not advance them. **There is NO `query_ai_insight` tool — produce insight yourself by reading these three reports.**
- **Affiliate orders:** `list_affiliate_orders` (TC dimension — the canonical "我分销卖了多少" answer; `target_collaboration_id` REQUIRED), `list_customer_creator_orders` (🚨 naming trap — CA dimension, NOT distribution GMV).
- **Creators:** `list_affiliate_creators`, `get_creator_detail`, `manage_creator_blacklist` (list/add/remove/modify), `update_creator_metadata`, `manage_segment`, `manage_journey`, `manage_creator_lists`, `get_creator_list_overview`, `search_affiliate_creators` (filters **or `creator_keyword` to resolve a @handle → user_id**), `find_similar_creators`, `recommend_creators` (达人罗盘 — backend match-score recommendation by product), `list_customer_advocates`, `manage_customer_advocates` (6 actions — collect/collect_history/set_notes/get_detail/list_records/get_overview; no add_tag), `manage_contact_enrichment` (add_creators is a source switch: manual/filter/list/segment/journey/target_collab).
- **Content:** `list_affiliate_content` (TT-official REAL-TIME published videos — needs `shop_cipher`, optional date range/`account_type`/`page_token`; pass returned `next_page_token` back as `page_token` to continue), `get_affiliate_content_products`, `manage_affiliate_content` (list/add_notes — legacy row ids; use its ids for notes, not the real-time list's).
- **DM conversations:** `list_conversations`, `get_conversation_messages` (cursor-paginated, default 20 per page), `send_message` (real outbound — `text`, `image`, `text_image_card`, or `text_products_card`; by conversation_id OR unique_id='@handle' which auto-finds/opens the thread; all modes require confirm), `search_conversations`, `create_conversation`, `list_conversation_groups`, `list_group_conversations`, `manage_conversation_groups`.
- **Email (10 tools, LIVE):** `list_email_conversations`, `get_email_detail`, `send_email`, `reply_email`, `manage_email_templates` (CRUD), `manage_email_drafts` (CRUD), `mark_email_as_read`, `move_emails_to_trash`, `manage_email_groups` (folders — list/create/rename/delete/add/move/remove), `manage_email_trash` (list/restore/delete_permanently). `send_email` / `reply_email` are **real outbound** — confirm intent first.
- **Samples (申样):** `manage_sample_auto_approval` (get/update rules), `manage_sample_applications` (list/approve/reject the manual queue).
- **Shop/catalog reads:** `list_shops`, `list_products`, `get_product_detail`, `list_creator_categories`.

> **Renamed tools — never call the old names**: `list_email_templates` → `manage_email_templates` with `action:'list'`; `list_shop_orders` → `list_affiliate_orders`; `list_segments` / `list_journeys` → `manage_segment` / `manage_journey` with `action:'list'` (list returns both official + custom entries).

## Product-listing availability
Product onboarding is temporarily unavailable. Do not claim that an affiliate automation creates a new TikTok Shop listing, and do not call historical product-listing tool names.

## The canonical affiliate-automation create flow
Every automation create chains these 6 phases — don't jump to the final call:
```
1. Shop         → list_shops if user hasn't specified one
2. Product      → list_products, validate ACTIVATE status, pick commission rate
3. Category IDs → list_creator_categories if filter mentions categories by name
4. Preview      → preview_target_collab with filter + first_count → preview_token
5. Confirm      → show match count + 5 samples + warnings, ASK USER to confirm
6. Create       → create_* with preview_token + final params
```
**Only skip a phase** when the user explicitly supplied that data. Don't invent defaults for shop or products.

## Multi-market scope

The account's actual authorized markets always come from `list_shops`.
GMV and GPM values are in the selected market's local currency.
Start with `list_shops`; its returned regions and shop IDs are the account's authority. Currently configured examples include `US`, `GB`, `DE`, `IT`, `FR`, `ES`, `MY`, `ID`, `VN`, `PH`, `TH`, `SG`, `JP`, `BR`, and `MX`, but this is not a permanent whitelist. Never default an unknown or omitted market to US.

Pass `region` to market-level operations, `shop_id_list` to multi-shop reads, and `shop_cipher` to single-shop operations. Do not mix shop IDs across regions. GMV/GPM filters and displayed money use the selected market.s local currency; enum boundaries, labels, symbol placement, compact units, and decimal digits differ by market. Never reuse US ranges or apply exchange-rate conversion.

**Read completeness rules:**
- `get_creator_detail`: select the creator.s market first and pass `region`; when a shop is known, also pass its `shop_cipher`. Never reuse a `user_id` across markets without resolving scope again.
- `get_affiliate_content_products`: always pass the `shop_cipher` of the shop that produced the `content_id`; a shop-wide product overview without shop scope is invalid.
- If a tool returns `Partial result` or non-empty `structuredContent.partial_errors`, report which subsection failed. Do not reinterpret missing metrics, dashes, or empty arrays from that subsection as real zero/no-data values.

**Creator source alternates** (skip preview; need `shop_cipher`): `source='manual'` takes `appoint_creator_list` = **TikTok handles** (unique_id, `@` ok) — the MCP resolves them to the right wire ID space automatically; unknown handles fail fast. `'list'` / `'segment'` / `'journey'` take IDs from the matching `manage_*` list action; `'target_collab'` (DM-only) re-targets a TC automation's creators; `'intelligent_recommend'` (**TC/combined only — needs a product**) takes `appoint_creator_list` = **creator_open_ids from `recommend_creators`** (达人罗盘 / AI Creator Compass). `clone_and_modify_automation` is filter-source-only — manual-source automations can't be cloned, create anew.

**Timing parameters** (2026-06-11): `tc_schedule`/`tc_delay_time`/`tc_time_unit` (TC/combined — delay the TC entity creation), `send_schedule`/... (DM-only — delay the whole send), `dm_schedule`/... (combined — delay the DM part). All default immediate; `'delay'` needs raw amount (NOT seconds) + unit. **Follow-ups are delay-only** (immediate removed from the product 2026-06-10; default 10 minutes after the previous message) — the initial message still sends immediately. Backend doesn't echo these inputs; verify via `tasks[].pending_excute_time` on the list row.

## TC: two creation paths (NOT interchangeable)
| Path | Entry | Produces | When |
|---|---|---|---|
| **Automation-wrapper** (default) | `preview_target_collab` → `create_target_collab` / `create_tc_dm_automation` | An *automation* that owns a TC — templates, follow-ups, schedule | User says "建一个推广 / 自动化 / outreach" |
| **Direct entity** | `preview_target_collab_direct` → `create_target_collab_direct` | A bare TC, no wrapper / DM / follow-ups; manage via `update_target_collab_direct`, `cancel_target_collaboration`, `add_creator_to_target_collaboration` | User has exact **`creator_open_ids`** (NOT user_ids, NOT handles) and wants the offer pushed now, or batch work via `create_bulk_tc_operation` |

Direct-entity TCs **don't appear in `list_automations`** — list via `list_target_collaborations`. Wrapper TCs appear in both. Never control a wrapper TC with direct-entity tools — use `clone_and_modify_automation` / `create_bulk_tc_operation`.

🆕 `update_target_collab_direct` can full-replace the **products** (incl. commission), and **creators** (`creator_open_ids`) of a direct TC (mirrors the Edit-Collab drawer; only fields you pass change; message is NOT editable once created). **Ad commission (广告佣金, `shop_ads_commission_rate_pct` 1-80 per product)** is supported on `create_target_collab` / `create_tc_dm_automation` / `update_target_collab_direct` / bulk `add_products` — pass it alongside the standard commission for shop-ads accounts.

## OC vs TC (scope mistake to avoid)
"公开合作 / open collab / 让达人主动申请" = **OC** (public offer, creators apply, you approve — no preview, no creator filter), NOT TC (you invite specific creators). For OC reporting use `query_collaboration_performance` with `scope:'open'`. OC sample policy lives in `manage_open_collaboration_sample_rule`; shop-wide OC defaults in `manage_open_collaboration_settings`.

## Target Collaboration cleanup evidence (read-only)
When asked which creators in a TC can be removed, audit evidence first. A TC-level count or an invitation status such as `NORMAL` does not identify which creator joined the showcase, posted TC content, or applied for a sample.

1. Use `list_target_collaborations` with the authorized region/shop and read the required pages. Its `pagination.count=10000` can be a backend cap, not an exact total. If a list row says 6 invited but detail lists 50, report the conflict and stop; do not choose one count as truth.
2. Call `get_target_collaboration_detail(target_collaboration_id=<UUID id from the list>, shop_cipher=<same shop>, include_sample_audit=true)`. The detail endpoint requires the internal UUID. The audit internally queries sample applications with the distinct `tts_target_collaboration_id` (TikTok TC ID); sending the UUID to the sample endpoint yields code 101. Do not swap these IDs manually. If querying the generic sample list directly, pass that TikTok numeric ID as a string in `manage_sample_applications(action='list', target_collaboration_id=...)`, never the detail UUID.
3. Use the TC-specific invited, showcase, and content creator lists plus the audit's creator-matched sample application statuses. `has_free_sample` only means samples are offered. Group totals, global video counts, and `NORMAL` are not per-creator evidence of showcase/content/sample activity.
4. Treat count/list disagreement, missing per-TC lists or TikTok TC ID, incomplete sample pagination/query, or unmatched creator identities as **BLOCKED / unknown**. Do not turn a failed sample lookup into "no sample application". A displayed "review candidate" is not deletion approval.
5. This workflow is read-only. Never call `create_bulk_tc_operation(remove_creators)`, `update_target_collab_direct`, or another write tool from an audit request. A later removal requires separate account-specific reconciliation, an explicit candidate list, and explicit user confirmation.

## Read-side: pick the right tool
| Tool | Answers | When |
|---|---|---|
| `list_automations` | "What does the list look like?" | Browsing / finding an ID / filtering by status+type |
| `get_automation_detail` | "What is this configured to do + overall stats?" | Name/ID → config / shop / product / filter / overview |
| `get_automation_task_results` | "What did this task actually do?" | Per-creator outreach results or TC bulk-operation metrics |

- `list_automations` — **always pass arrays** for `statuses` / `automation_types` (scalar is silently ignored). Statuses: `pending`(=`draft`)/`active`/`paused`/`completed`/`failed`. Types: `tc`/`dm`/`combined`. Page ≤ 50, default 10. `search_by:'no'` matches `automation_no`; default matches name LIKE.
- `get_automation_task_results` **auto-detects** `kind`+`task_id` only when the automation has one unambiguous matching task. Draft automations return empty (start first). If a TC automation has multiple tasks, call `get_automation_detail`, choose the intended task, and pass its `task_id`; never silently use the first task.

### TC task-result semantics
Treat `task_type` as the contract for interpreting TC task results. Numeric strings such as `"103"` mean the same thing as numbers.

| `task_type` | Meaning | Report as |
|---|---|---|
| `101` | Create / initial TC outreach | Per-creator invitation outcomes |
| `102` | Add creators | Planned creators, actually added creators, failures |
| `103` | Remove creators | Planned removals, actually removed creators, failures |
| `104` | Add products | Planned products, actually added products, failures |
| `105` | Remove products | Planned removals, actually removed products, failures |
| `106` | Edit TC settings | Fields requested, success/failure, failure reason if present |
| `107` | Cancel TC | Cancellation outcome and failure reason if present |

- `creator_planned` / `product_planned` are the intended scope before execution; `creator_added`, `creator_removed`, `product_added`, and `product_removed` are actual outcomes. They describe different stages of the **same operation**: never add them together and never relabel a removal as `Invited`.
- The backend historically spells the payload field `excute_result`; `execute_result` is also accepted. Interpret either using the selected `task_type`, not with the generic TC invitation table.
- `result: "Success!"` is an execution outcome, not a failure reason. Show failure reasons only for failed/skipped entries or explicit failure fields.
- If `task_type` is unknown, say that the subtype is unsupported and preserve the raw result. Do not guess a task meaning, synthesize a missing reason, or force the payload into another task's table.

## Editing without recreate
- `update_dm_automation_text` — replace one text body in a running DM (text components only; image/product/collab → clone instead).
- `create_bulk_tc_operation` — 6 `action`s (`add_creators` / `remove_creators` / `add_products` / `remove_products` / `edit_settings` / `cancel`) batch-mutating the TC behind an automation. TC only — for DM-only automations, clone.
- `get_dm_task_message_template` — read the template a DM task actually used (diagnose "why did the wire body differ from my draft").
- Anything else (filter / schedule / follow-up structure / non-text component) → `clone_and_modify_automation` + `delete_automation` the old one.

## Result completeness and pagination
Treat every list response as a page unless completeness is proven by the response.

- Cursor tools: `list_affiliate_content`, `list_conversations`, `get_conversation_messages`, and product/video performance breakdowns. Pass every returned `next_page_token` back unchanged as `page_token`.
- Page-number tools include `get_affiliate_content_products`, `search_conversations`, the TC section of `get_creator_detail`, creator-list/segment/journey show actions, email-group conversations, and email trash. Continue with `page + 1` when the output says more may be available.
- A displayed row count is the current page count, not the total. If `total` is absent and the page is full, describe the result as a page and preserve the possibility of more data.
- Default to `page_size=20` to control latency and token cost. Fetch additional pages only when the user asks for complete history/results or the task cannot be answered from the current page.
- Never claim "all", "complete", or "full history" while a next token/next-page hint exists. When full retrieval is requested, stop only when no token remains or a page-number response is shorter than the requested page size.
- If output says records were omitted to control response size, disclose that limitation instead of treating the displayed subset as the complete backend result.

## High-leverage gotchas (memorize)
- **FOUR creator ID spaces** ⚠️ (the #1 cause of 101 "bad request"): `user_id` (numeric — detail / notes / find_similar seed / create_conversation / send_email) · record `id` (row UUID — tags / blacklist) · `creator_open_id` (long base64-ish — direct-TC flow only) · `unique_id` (TikTok handle — what humans type; `appoint_creator_list` + bulk `creator_unique_ids` take handles, MCP resolves internally). Rule of thumb: human inputs = handles, analytics = user_id, blacklist/tags = record id, direct-TC = open_id.
- **Preview token**: 10-min lifetime, **one-shot** (consumed even if the create later throws), **scope-bound** to shop+filter+first_count. If a create fails, **re-run `preview_target_collab`** before retrying — don't reuse the token.
- **Product status = ACTIVATE only**: creates hard-fail if any product isn't `ACTIVATE` (also the Copy-flow silently drops non-ACTIVATE products). Tell the user to reactivate; no workaround.
- **`*_increment` fields are period TOTALS, not deltas** — don't read them as growth % (legacy views only; TT-official rows use plain names like gmv/orders).
- **TT-official lists use token pagination** — tools return `page_size` rows (≤ 50) + a "Showing N of M" line. If output includes `next_page_token`, pass it back as `page_token` to continue; there is no numeric `page` param. Responses carry `latest_available_date` ("data as of") — data lags 1-2 days, a missing "today" is not zero performance. For `list_affiliate_content`, date params mirror brand-app's current performance-window request and are not guaranteed strict `video_post_time` filters until the backend changes.
- **`detail` view rates are derived, not raw fields** (mirrors the brand-app detail drawers): product detail = Sales (AOV=GMV÷orders) + Sales-by-channel (share%) + Traffic funnel (CTR=clicks÷impressions, conversion=orders÷clicks) + Ratings + Top contents/creators; video detail = Sales (GMV/GPM/items/customers) + Conversion funnel (exposure=impressions÷views, CTR-to-views=clicks÷views, conversion=units÷clicks) + ER=(likes+comments+shares)÷views + Audience. Don't look for a "conversion_rate" field — produce/cite the derived value.
- **`list_affiliate_orders` needs `target_collaboration_id`** (backend 504s without it). Cross-TC view: `list_target_collaborations` first → loop per TC. OC dimension not supported.
- **Naming**: names are server-allocated; user-facing names get an `mcp_YYMMDDHHmm_` prefix. The TC "定向计划名称" is capped at **12 chars** and sanitized to `[A-Za-z0-9_]`; **pure-Chinese input falls back to the literal `mcp`** (so multiple Chinese-named automations collide) — keep the part that lands in the automation name **short ASCII**.
- **Paid-tier features**: customer-advocates + contact-enrichment are yearly add-ons — a 403 / empty response usually means the account lacks the add-on, not a bug.

## Anti-spam / advanced settings (DM & combined)
| Param | Effect | Default |
|---|---|---|
| `reply_handling: 'continue' \| 'stop_on_reply'` | stop pinging creators who replied | `continue` |
| `skip_creators_with_prior_replies: bool` | skip creators with prior replies | `false` |
| `skip_messaged_within_days: number` (0=off) | skip anyone messaged within N days | off |

## Message components (summary)
Automation DM messages support `text`, `image`, `text_image_card`, `product`, `text_products_card`, and `collab` components. Direct `send_message` supports the same native composite card meanings through its `mode` parameter. Full wire formats and the distinction between these surfaces → **`references/message-components.md`**.

## Conversations + email
- DM: `list_conversations` / `get_conversation_messages` / `send_message` (real outbound — confirm). Triage by group: `list_conversation_groups` → `list_group_conversations` (don't client-side filter the flat list for "unread").
- `get_conversation_messages` returns **one page**, not the full conversation. The displayed count is the current page count. For recent context, one page is enough; only when the user explicitly requests complete/full history, pass every returned `next_page_token` back as `page_token` until no token remains. Never claim the history is complete while a next token exists.
- Interpret rich messages by their customer-visible meaning: text+image card, text+products card, product card, target-collaboration invite, free-sample card, and Spark Code authorization request. Report the returned title/text, media URL, products, status, and authorization fields. Preserve the type plus useful primitive and nested structured fields for unknown future message types; explicitly disclose any display truncation.
- 🚨 **DMing a creator NOT in your inbox (not in `list_conversations`, `search_conversations` returns nothing, or you only have their @handle):** "not in the inbox" means no DM thread exists yet — it does **NOT** mean they're unreachable. **Just call `send_message(unique_id='@handle', message_content=...)`** — it finds-or-opens the conversation and sends, all FREE (exactly the brand-app's "open a chat from the creator's profile"). You do **NOT** need to chain `search_affiliate_creators` → `create_conversation` → `send` yourself — the tool does it internally. **Never stop at "can't find the conversation".** (For just opening a thread without sending, `create_conversation` still exists.)
  Do **NOT** fall back to a manual-source `create_dm_automation` (spends 3 credits + creates a standing automation) for a single cold DM — that's only for *bulk* outreach.
- Email: `thread_id` = root_email_id (a per-message id returns code=-1); read `get_email_detail` before `reply_email`. `send_email` requires `shop_id` (auto-resolves single-shop). Templates are starting drafts, not verbatim sends. Both send tools need `confirm:true`.

## Sample approval (申样)
`manage_sample_auto_approval` `get`/`update` sets the rule thresholds; `manage_sample_applications` `list` uses `region` + optional decimal shop IDs in `shop_id_list` (preserve the exact ID string; do not round a 19-digit ID through a JavaScript number; omit for all authorized shops in that region; never pass `shop_cipher`) → `approve` / `reject` uses `shop_cipher` + `application_ids` + `confirm:true` to clear what the rule did not cover. To filter the list to one TC, use its `tts_target_collaboration_id` (TikTok numeric ID, as a string) from `list_target_collaborations`; the internal `id`/UUID is only for `get_target_collaboration_detail`, not this sample filter. For per-TC cleanup evidence, prefer `get_target_collaboration_detail(include_sample_audit=true)` instead of inferring from the generic sample queue. Backend code 101 (bad parameters), code 102 (rate limit), or incomplete pagination means the applications are unknown, not zero; do not use such a result to clear a creator for removal.

## Safety defaults (do NOT change without explicit user intent)
- `start_immediately` defaults to **false** — only `true` on literal "立即启动/send now/start now/发吧". Treat `true` as **destructive** (messages go to real creators); confirm first.
- `per_target_collaboration_creator_count` defaults to 50; override only on explicit ask (bound-checked vs shop limit).
- `has_free_sample` defaults to false.
- Blacklist / segment / journey / creator-list mutations, sample approve/reject, OC removals, email/DM sends — all need `confirm:true`. Surface the plan, then wait.

## Deep references (load on demand)
- **`references/filters.md`** — full `preview_target_collab` filter schema: every field shape, enum buckets, the ×100 / no-×100 rules, and a natural-language→filter example.
- **`references/message-components.md`** — the 4 component types' wire formats, image OSS upload, collab-card scope, unsupported composites, and follow-up sequence wire detail.
- **`references/debugging.md`** — the 3-layer (curl readback → wire capture → source read) debugging method, common error→cause table, Copy-flow template requirement, sample-approval radios, and the version-change history.

Files in this skill

  • SKILL.md27.5 KB
  • references/debugging.md4.4 KB
  • references/filters.md2.3 KB
  • references/message-components.md5.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.