From fullvision
Turn a described segment into a sized, floor-checked, consent-gated audience with a chosen destination. Emits an activation change-list; activation itself happens in the FullVision app.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fullvision:fv-build-audienceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Describe a segment, get back a real one: sized, checked against the destination platform's
Describe a segment, get back a real one: sized, checked against the destination platform's minimum, and gated on consent. The gate is the point of this skill — the segment SQL is the easy part.
Read shared/reading-fullvision-data.md, shared/safety-rails.md and
shared/sparse-data.md before calling anything. All three are binding.
1. size the segment
2. check the platform floor → route to email if it cannot clear it
3. check the consent flag → no consent ⇒ REFUSE ad upload, offer email
4. pick the destination
Never reorder these. Sizing before consent means proposing an upload that must then be retracted.
Compile the description to a ClickHouse SELECT. Use fullvision:compile_custom_view to check
it compiles, then fullvision:run_sql_query to count ($USER_ID required in every WHERE).
Report the raw count and the emailable count — they differ.
| Destination | Floor | Raw list needed at B2B ~20% match |
|---|---|---|
| Google Customer Match | 100 matched (lowered from 1,000 in 2026) | ~500 |
| Meta Custom Audiences | 100 matched | 300–500 |
| LinkedIn Matched Audiences | 300 matched (LinkedIn recommends 50k) | 1,500+ |
The ~20% B2B match rate is structural — people buy with work emails and use personal ones on ad platforms. Do not model a higher rate optimistically. If the raw list cannot clear the floor, route to email and say why; do not upload a list that will sit unmatched.
A German DPA has ruled that uploading customer lists to ad platforms without explicit consent
is illegal even when hashed, and rejected legitimate interest as a basis. Google requires
ad_user_data and ad_personalization both GRANTED per EEA user, with no B2B or
work-email carve-out.
Therefore:
Google Customer Match / Meta Custom Audience / LinkedIn Matched Audience / Brevo. Pick based
on floor clearance and consent state, and state which you picked and why. Per-platform floors,
match rates and consent rules are in shared/platforms/{google,meta,linkedin}.md.
There is no separate retargeting skill, because retargeting is not a different job — it is this preflight with a behavioural segment instead of a revenue one (visited pricing and did not convert; started a checkout and abandoned; trialled and went quiet). The floor check and the consent gate are identical and they are the hard part.
Two things change, and both make the gates stricter, never looser:
Use view:abandoned-checkouts and view:customer-journey for the behavioural side.
Audience create/sync is not exposed on the FullVision MCP surface. Per
shared/safety-rails.md §9 this is read-only mode, not an error:
fv-data-health returns 🚩 — segment membership would be built on broken identity data.npx claudepluginhub fullvision-team/fullvision-plugin --plugin fullvisionGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.