Claim Safety Review
Shared quality bar: ../references/output-standard.md. All numbers cited here
live in ../references/thresholds.md.
This is a pre-launch gate on wording. It flags exposure and routes restricted
categories to the platform, and it is not legal advice or a policy ruling.
Use this skill when
Copy exists and has not launched. Run it on a batch handed over by an agency or
freelancer, on copy generated by a model, on lines lifted from a sales deck or a
case study, and on anything a client wants live today. Run it again whenever a
line is edited after this review, because an edited line is an unreviewed line.
It examines the ad text only and never opens the landing page; the destination
belongs to ad-to-landing-page-match-ad-creative.
Required input
- Every line to be reviewed, exactly as it will run: headlines, descriptions,
primary text, on-image or on-video text, and the call to action button.
- The platform each line runs on, since restricted-category rules differ.
- The country or countries targeted.
- Any source the user already holds for each factual line: a document, a
dashboard, a dated study or a named customer.
- The advertiser's category and what the product actually does.
Analysis workflow
- Split the copy into individual claim units. One line can carry two claims and
only one of them may be a problem, so review at the claim, not at the asset.
- Classify each unit: factual claim, comparison, superlative, testimonial,
guarantee, or non-claim. Non-claims pass without a row and are counted so the
review shows its own scope.
- For every factual claim, apply
claims.evidence_rule. Ask for the named
source. A source is a document, a dashboard or a named customer, and an
internal assertion that a colleague said it is not one. Unsourced units are
marked [claim: needs source].
- For every superlative, apply
claims.superlative_rule. A qualified and cited
superlative passes. A bare one is cut, and softening it into a vaguer boast
does not fix it, since a vague unevidenced claim is the same defect with worse
copy.
- For every comparison against a competitor, check that the comparison is
like for like, dated, and that the competitor's own current terms were checked
on the date stated. An undated competitor comparison ages into a false claim
without anybody editing it.
- Screen every unit against
claims.restricted_topics. Where a unit lands in
one, do not issue a verdict. Route the reviewer to that platform's own policy
page for the named category and country, and mark the unit as blocked pending
that reading.
- Check implied claims, not just stated ones: a testimonial that implies a
typical result, an image of an outcome, an on-screen figure with no source, a
guarantee implied by a phrase like risk free.
- Return a per-line decision and a rewritten safe alternative wherever the idea
survives without the unevidenced part. Never invent the missing evidence, and
list every line you declined to rewrite.
Decision rules
- Factual claim with a named source supplied:
ship.
- Factual claim with no source:
rewrite to remove the number, or
approval_needed if the user says the source exists but has not produced it.
- Bare superlative:
cut under claims.superlative_rule. Offer one qualified
alternative only if the qualification is something the user has evidenced.
- Comparison with no date or no like-for-like basis:
rewrite.
- Testimonial with no permission on file:
approval_needed under
claims.testimonial_permission.
- Any unit in
claims.restricted_topics: investigate, pointing at the
platform's policy page. This pack issues no compliance verdict, ever.
- Guarantee, refund or outcome promise:
approval_needed from whoever can honour
it commercially.
Output format
Open with one line: is this batch launchable as written, yes or no.
| Line |
Claim unit |
Type |
Source supplied |
Issue |
Evidence label |
Decision |
Then the rewritten lines, then a short list of lines left unrewritten with the
reason, then What this could not see, Missing data, Approval gates.
This skill reads wording, not a test and not a time series, so it issues no
high confidence label and does not borrow the comparison family's conditions:
test.min_runtime and test.volume_floor describe a test, and no amount of
running time makes a claim sourced. What stands in its place is the evidence
label on each line, which is the whole judgement here: a claim whose source was
produced and read is ship, a claim whose source is asserted but not produced
is approval_needed, and a claim with no source is needs_data until one
arrives. A review of a batch is high in only one sense worth stating, and it
is stated in the output: every line was reviewed at the claim rather than at the
asset, and the count of non-claim units is given so the reader can see the
review's own scope.
Practical example
Illustrative made-up copy, not a real advertiser. Six lines submitted. Line 2:
"Cut your reporting time by 73%." Line 4: "The fastest onboarding in the
category." Line 5: "Approved in 24 hours, whatever your credit score."
Reading: "No, not launchable as written." Line 2 carries a real number and no
source, so it is [claim: needs source] and marked needs_data until the user
names the dashboard or study behind the 73%. Line 4 is a bare superlative and is
cut under claims.superlative_rule; a rewrite is offered only because the user
supplied a dated onboarding time of 11 minutes against a documented alternative.
Line 5 touches credit, which sits in claims.restricted_topics, so this review
refuses to rule on it and routes the reviewer to the platform's own credit
policy page for the target country, so it is neither passed nor rewritten and
carries no verdict from this review.
All six lines are accounted for, one outcome each. Lines 1 and 3 are non-claims
and pass unchanged. Line 4 is rewritten, on the dated onboarding time the user
supplied. Line 2 is not rewritten and does not pass: it keeps
[claim: needs source] and waits for the dashboard behind the 73%, because
removing the number would leave a different claim rather than a safer version of
this one. Line 5 is routed to the platform's policy page under
claims.restricted_topics and is blocked pending that reading. Line 6 is left
unrewritten because removing the unevidenced part leaves no idea behind. Two
pass, one is rewritten, one waits on a source, one is routed out of this
review's scope, one is refused.
Guardrails
- Never supply a source, a study, a statistic or a customer name the user did
not provide.
- Never issue a compliance or legal verdict on a restricted category.
- Never soften an unevidenced claim into a vaguer one to get it past this gate.
- Do not upload or launch anything. This gate ends in a human approval.
1---2name: claim-safety-review-ad-creative3description: Claim Safety Review4---56# Claim Safety Review78Shared quality bar: `../references/output-standard.md`. All numbers cited here9live in `../references/thresholds.md`.10This is a pre-launch gate on wording. It flags exposure and routes restricted11categories to the platform, and it is not legal advice or a policy ruling.1213## Use this skill when1415Copy exists and has not launched. Run it on a batch handed over by an agency or16freelancer, on copy generated by a model, on lines lifted from a sales deck or a17case study, and on anything a client wants live today. Run it again whenever a18line is edited after this review, because an edited line is an unreviewed line.19It examines the ad text only and never opens the landing page; the destination20belongs to `ad-to-landing-page-match-ad-creative`.2122## Required input2324- Every line to be reviewed, exactly as it will run: headlines, descriptions,25 primary text, on-image or on-video text, and the call to action button.26- The platform each line runs on, since restricted-category rules differ.27- The country or countries targeted.28- Any source the user already holds for each factual line: a document, a29 dashboard, a dated study or a named customer.30- The advertiser's category and what the product actually does.3132## Analysis workflow33341. Split the copy into individual claim units. One line can carry two claims and35 only one of them may be a problem, so review at the claim, not at the asset.362. Classify each unit: factual claim, comparison, superlative, testimonial,37 guarantee, or non-claim. Non-claims pass without a row and are counted so the38 review shows its own scope.393. For every factual claim, apply `claims.evidence_rule`. Ask for the named40 source. A source is a document, a dashboard or a named customer, and an41 internal assertion that a colleague said it is not one. Unsourced units are42 marked `[claim: needs source]`.434. For every superlative, apply `claims.superlative_rule`. A qualified and cited44 superlative passes. A bare one is cut, and softening it into a vaguer boast45 does not fix it, since a vague unevidenced claim is the same defect with worse46 copy.475. For every comparison against a competitor, check that the comparison is48 like for like, dated, and that the competitor's own current terms were checked49 on the date stated. An undated competitor comparison ages into a false claim50 without anybody editing it.516. Screen every unit against `claims.restricted_topics`. Where a unit lands in52 one, do not issue a verdict. Route the reviewer to that platform's own policy53 page for the named category and country, and mark the unit as blocked pending54 that reading.557. Check implied claims, not just stated ones: a testimonial that implies a56 typical result, an image of an outcome, an on-screen figure with no source, a57 guarantee implied by a phrase like risk free.588. Return a per-line decision and a rewritten safe alternative wherever the idea59 survives without the unevidenced part. Never invent the missing evidence, and60 list every line you declined to rewrite.6162## Decision rules6364- Factual claim with a named source supplied: `ship`.65- Factual claim with no source: `rewrite` to remove the number, or66 `approval_needed` if the user says the source exists but has not produced it.67- Bare superlative: `cut` under `claims.superlative_rule`. Offer one qualified68 alternative only if the qualification is something the user has evidenced.69- Comparison with no date or no like-for-like basis: `rewrite`.70- Testimonial with no permission on file: `approval_needed` under71 `claims.testimonial_permission`.72- Any unit in `claims.restricted_topics`: `investigate`, pointing at the73 platform's policy page. This pack issues no compliance verdict, ever.74- Guarantee, refund or outcome promise: `approval_needed` from whoever can honour75 it commercially.7677## Output format7879Open with one line: is this batch launchable as written, yes or no.8081| Line | Claim unit | Type | Source supplied | Issue | Evidence label | Decision |82|---|---|---|---|---|---|---|8384Then the rewritten lines, then a short list of lines left unrewritten with the85reason, then `What this could not see`, `Missing data`, `Approval gates`.8687This skill reads wording, not a test and not a time series, so it issues no88`high` confidence label and does not borrow the comparison family's conditions:89`test.min_runtime` and `test.volume_floor` describe a test, and no amount of90running time makes a claim sourced. What stands in its place is the evidence91label on each line, which is the whole judgement here: a claim whose source was92produced and read is `ship`, a claim whose source is asserted but not produced93is `approval_needed`, and a claim with no source is `needs_data` until one94arrives. A review of a batch is `high` in only one sense worth stating, and it95is stated in the output: every line was reviewed at the claim rather than at the96asset, and the count of non-claim units is given so the reader can see the97review's own scope.9899## Practical example100101Illustrative made-up copy, not a real advertiser. Six lines submitted. Line 2:102"Cut your reporting time by 73%." Line 4: "The fastest onboarding in the103category." Line 5: "Approved in 24 hours, whatever your credit score."104105Reading: "No, not launchable as written." Line 2 carries a real number and no106source, so it is `[claim: needs source]` and marked `needs_data` until the user107names the dashboard or study behind the 73%. Line 4 is a bare superlative and is108cut under `claims.superlative_rule`; a rewrite is offered only because the user109supplied a dated onboarding time of 11 minutes against a documented alternative.110Line 5 touches credit, which sits in `claims.restricted_topics`, so this review111refuses to rule on it and routes the reviewer to the platform's own credit112policy page for the target country, so it is neither passed nor rewritten and113carries no verdict from this review.114115All six lines are accounted for, one outcome each. Lines 1 and 3 are non-claims116and pass unchanged. Line 4 is rewritten, on the dated onboarding time the user117supplied. Line 2 is not rewritten and does not pass: it keeps118`[claim: needs source]` and waits for the dashboard behind the 73%, because119removing the number would leave a different claim rather than a safer version of120this one. Line 5 is routed to the platform's policy page under121`claims.restricted_topics` and is blocked pending that reading. Line 6 is left122unrewritten because removing the unevidenced part leaves no idea behind. Two123pass, one is rewritten, one waits on a source, one is routed out of this124review's scope, one is refused.125126## Guardrails127128- Never supply a source, a study, a statistic or a customer name the user did129 not provide.130- Never issue a compliance or legal verdict on a restricted category.131- Never soften an unevidenced claim into a vaguer one to get it past this gate.132- Do not upload or launch anything. This gate ends in a human approval.