Conflict Check
Before you pitch a creator to a brand, you need to know whether they're already
working with that brand's competitors. This skill pulls each creator's
corpus-derived brand affiliations and screens them against the competitor list
you supply — and is scrupulously honest that affiliation data is corpus-derived
and not exhaustive, so a clean result is always "no conflicts found in our
corpus", never "no conflicts". For casting directors and brand-side managers.
Read first: ${CLAUDE_PLUGIN_ROOT}/shared/conventions.md (tool schemas, credit
prices, the nine conventions). This skill honors thrifty/thorough credit modes
(${CLAUDE_PLUGIN_ROOT}/shared/credit-modes.md) and the Freshness Gate
(${CLAUDE_PLUGIN_ROOT}/shared/freshness-gate.md).
For the full standardized dossier on one creator, use creator-diligence-report
(it embeds a conflict screen). This skill is the focused, fast conflict pass
across one creator or a slate.
Inputs to collect
- Creator(s) (required) — one creator or a slate, in any format (handles,
a sheet, a prior shortlist in-session). Map each to one identifier type.
- Competitor brands (required) — the brands a conflict would be against.
If the user hasn't named any, ask once: "Which brands should I screen
against?" Without them there is nothing to check.
- Discovery option (optional, thorough) — also surface candidate
conflicts the corpus suggests, by reading the competitor's affinity cohort
via
search_creators brand_affinities (see step 3). Off by default.
- Credit mode — default
thorough; thrifty on the standard triggers.
Flow
Profile each creator for affiliations — get_creator_profile
{ "identifier": { "type": "social_handle", "platform": "<platform>", "handle": "<handle>" } }
(exactly one identifier type per call). Read the brand affiliations
field (pro plan). If affiliations are absent (free plan), the screen is
unavailable — say so explicitly and stop; never report "no conflicts"
when the field simply wasn't present. Also read data freshness:
affiliations on a stale profile may have drifted (a new competitor deal
could post-date the sync) — flag stale rows. 1 credit × N. Credit
estimate fires when N > 30 (a large slate): state it before fan-out.
Thrifty: same calls (profiling is the whole job here) but cap the slate
size and report any creators not screened.
Match affiliations against the competitor list (no tool call) — for
each creator, compare corpus affiliations to the named competitors.
Overlap → conflict flag naming the brand and that it came from the
profile's corpus affiliations. No overlap → "no conflict found in our
corpus" (the honest phrasing — not "no conflict").
Affinity cross-check (optional, thorough only) — corroborate by
checking whether the creator sits in a competitor's affinity cohort:
search_creators { "mode": "brief", "filters": { "brand_affinities": ["<competitor brand>"] }, "limit": 50, "precision": "tight" }
and see whether the screened creator appears. This is a soft corroborating
signal (affinity ≠ confirmed deal) — report it as such, never as a
confirmed conflict. 2 credits per competitor checked this way. Skip in
thrifty.
Deliverable
A conflict-screen table in markdown:
# Conflict Check — <slate / creator name>
_Screened against: <competitor brands> · Creatorland Data · <date>_
| Creator | Corpus affiliations (relevant) | Verdict | Freshness |
|---|---|---|---|
| @<handle> | <brands overlapping the list, or "—"> | ✅ no conflict found in our corpus / ⚠ CONFLICT — affiliated with <brand> / 🔶 soft signal — sits in <competitor> affinity cohort | fresh / aging / ⚠ stale |
<one row per creator>
## Flagged for review
<each ⚠ / 🔶 row with the specifics; or "None found in corpus.">
## What this screen does and does not cover
- Affiliations are **derived from the Creatorland corpus** — they are NOT an
exhaustive record of every deal a creator has done. A clean result means
**no conflict found in our corpus**, not a guarantee of none.
- Unreported, in-flight, or just-signed deals may not appear, especially on
profiles flagged stale above.
- Affinity-cohort signals (🔶) indicate audience/brand affinity, not a
confirmed commercial relationship.
- Free plan: brand affiliations are pro-gated; on free plan this screen is
unavailable.
---
Data freshness: <N>/<M> creators synced within the last sync window; <K>
flagged — affiliations may have drifted.
Provenance: Creatorland Data MCP · <M> profiles<+ R affinity searches> · <date>.
Credits used this run: ~<N> (<M> profiles ×1<+ R affinity searches ×2>).
Honesty rules
- A clean result is "no conflicts IN OUR CORPUS" — never "no conflicts".
This phrasing is mandatory everywhere it appears; the corpus is not
exhaustive.
- Absent affiliations ≠ clean. On free plan or when the field is missing,
the screen is unavailable; report that, never a false all-clear.
- Affinity ≠ deal. Step 3 signals are corroborating, soft, labeled 🔶 —
never reported as confirmed conflicts.
- Stale profiles get a drift caveat — a recent competitor deal may
post-date the sync.
- PII invariant (convention 7). No contact info appears, regardless of
source; scrub bio snippets.
Credit footprint
thorough: ~(N + 2×C) credits for N creators and C optional affinity
cross-checks (e.g. 8 creators + 2 competitors via affinity = 12) · thrifty:
~N credits (profiles only, no affinity cross-check, slate cap reported).
Estimate stated up front when N exceeds ~30.
1---2name: conflict-check3description: Screen one or more creators for competitor-brand conflicts before pitching — pull each creator's corpus-derived brand affiliations and flag overlaps with the competitor brands you name. Use when the user says "conflict check", "any conflicts with [creator]", "is [creator] working with competitors", "screen this creator/slate against [brands]", or before sending a pitch. Honestly framed — a clean result is "no conflicts in our corpus", never a guarantee of none.4---56# Conflict Check78Before you pitch a creator to a brand, you need to know whether they're already9working with that brand's competitors. This skill pulls each creator's10corpus-derived brand affiliations and screens them against the competitor list11you supply — and is scrupulously honest that affiliation data is corpus-derived12and not exhaustive, so a clean result is always "no conflicts found in our13corpus", never "no conflicts". For casting directors and brand-side managers.1415Read first: ${CLAUDE_PLUGIN_ROOT}/shared/conventions.md (tool schemas, credit16prices, the nine conventions). This skill honors thrifty/thorough credit modes17(${CLAUDE_PLUGIN_ROOT}/shared/credit-modes.md) and the Freshness Gate18(${CLAUDE_PLUGIN_ROOT}/shared/freshness-gate.md).1920> For the full standardized dossier on one creator, use `creator-diligence-report`21> (it embeds a conflict screen). This skill is the focused, fast conflict pass22> across one creator or a slate.2324## Inputs to collect2526- **Creator(s)** (required) — one creator or a slate, in any format (handles,27 a sheet, a prior shortlist in-session). Map each to one identifier type.28- **Competitor brands** (required) — the brands a conflict would be against.29 If the user hasn't named any, ask once: "Which brands should I screen30 against?" Without them there is nothing to check.31- **Discovery option (optional, thorough)** — also surface candidate32 conflicts the corpus suggests, by reading the competitor's affinity cohort33 via `search_creators` `brand_affinities` (see step 3). Off by default.34- **Credit mode** — default `thorough`; `thrifty` on the standard triggers.3536## Flow37381. **Profile each creator for affiliations** — `get_creator_profile`39 `{ "identifier": { "type": "social_handle", "platform": "<platform>", "handle": "<handle>" } }`40 (exactly one identifier type per call). Read the **brand affiliations**41 field (pro plan). If affiliations are absent (free plan), the screen is42 **unavailable** — say so explicitly and stop; never report "no conflicts"43 when the field simply wasn't present. Also read **data freshness**:44 affiliations on a stale profile may have drifted (a new competitor deal45 could post-date the sync) — flag stale rows. 1 credit × N. **Credit46 estimate fires when N > 30** (a large slate): state it before fan-out.47 Thrifty: same calls (profiling is the whole job here) but cap the slate48 size and report any creators not screened.49502. **Match affiliations against the competitor list** (no tool call) — for51 each creator, compare corpus affiliations to the named competitors.52 Overlap → conflict flag naming the brand and that it came from the53 profile's corpus affiliations. No overlap → "no conflict found in our54 corpus" (the honest phrasing — not "no conflict").55563. **Affinity cross-check (optional, thorough only)** — corroborate by57 checking whether the creator sits in a competitor's affinity cohort:58 `search_creators { "mode": "brief", "filters": { "brand_affinities": ["<competitor brand>"] }, "limit": 50, "precision": "tight" }`59 and see whether the screened creator appears. This is a soft corroborating60 signal (affinity ≠ confirmed deal) — report it as such, never as a61 confirmed conflict. 2 credits per competitor checked this way. Skip in62 thrifty.6364## Deliverable6566A conflict-screen table in markdown:6768```markdown69# Conflict Check — <slate / creator name>70_Screened against: <competitor brands> · Creatorland Data · <date>_7172| Creator | Corpus affiliations (relevant) | Verdict | Freshness |73|---|---|---|---|74| @<handle> | <brands overlapping the list, or "—"> | ✅ no conflict found in our corpus / ⚠ CONFLICT — affiliated with <brand> / 🔶 soft signal — sits in <competitor> affinity cohort | fresh / aging / ⚠ stale |75<one row per creator>7677## Flagged for review78<each ⚠ / 🔶 row with the specifics; or "None found in corpus.">7980## What this screen does and does not cover81- Affiliations are **derived from the Creatorland corpus** — they are NOT an82 exhaustive record of every deal a creator has done. A clean result means83 **no conflict found in our corpus**, not a guarantee of none.84- Unreported, in-flight, or just-signed deals may not appear, especially on85 profiles flagged stale above.86- Affinity-cohort signals (🔶) indicate audience/brand affinity, not a87 confirmed commercial relationship.88- Free plan: brand affiliations are pro-gated; on free plan this screen is89 unavailable.9091---92Data freshness: <N>/<M> creators synced within the last sync window; <K>93flagged — affiliations may have drifted.94Provenance: Creatorland Data MCP · <M> profiles<+ R affinity searches> · <date>.95Credits used this run: ~<N> (<M> profiles ×1<+ R affinity searches ×2>).96```9798## Honesty rules99100- **A clean result is "no conflicts IN OUR CORPUS" — never "no conflicts".**101 This phrasing is mandatory everywhere it appears; the corpus is not102 exhaustive.103- **Absent affiliations ≠ clean.** On free plan or when the field is missing,104 the screen is *unavailable*; report that, never a false all-clear.105- **Affinity ≠ deal.** Step 3 signals are corroborating, soft, labeled 🔶 —106 never reported as confirmed conflicts.107- **Stale profiles get a drift caveat** — a recent competitor deal may108 post-date the sync.109- **PII invariant (convention 7).** No contact info appears, regardless of110 source; scrub bio snippets.111112## Credit footprint113114thorough: ~(N + 2×C) credits for N creators and C optional affinity115cross-checks (e.g. 8 creators + 2 competitors via affinity = 12) · thrifty:116~N credits (profiles only, no affinity cross-check, slate cap reported).117Estimate stated up front when N exceeds ~30.