Answer
A draft may promise only what the brand itself already says and can prove; invented codes, guarantees, timed results, health endorsements and measured results are flagged or cut before anyone ships them, for every brand and category, and the brand stays responsible for what it publishes.
Today
The five kinds of claim the code catches
| Kind | Example | Passes only when | Source |
|---|---|---|---|
| Code | "Use code PURE25" | The code is in the brand's own words; product codes like SPF50 are not codes | brew/claims.js:22-24, 68-69 |
| Guarantee | "money back", "risk free" | The store already offers it | brew/claims.js:25, 70 |
| Timed result | "visible results in 14 days", "overnight" | The store says the same time | brew/claims.js:26-27, 71-72 |
| Absolute or health endorsement | "clinically proven", "dermat approved", "doctor recommended", "cures" | The store names the study, test or certificate beside the same words, or the team approved it in the Brand Book | brew/claims.js:29-31, 73-77 |
| Measured result | "60% less hair fall", "3x thicker" | The store says where it was measured, or it is an approved claim | brew/claims.js:32-43, 78-80 |
Being on the product page is not enough for a health or measured claim since 23 Oct. brew/claims.js:29-31 handbook content/company-and-strategy/decisions-log.md:40
Where it runs
- Every writer prompt carries the rule
CLAIMS_RULE. brew/claims.js:87-88 checkCopyis the one entry point for every surface that writes words someone may copy: static ads, plain card words, briefs, the weekly digest, Slack replies, jam answers, ideas, cards, message templates. brew/claims.js:215-232 memory brew-qa-round2-2026-10-24- A draft made with nobody watching drops every flagged sentence, and a flagged headline never goes on the picture. brew/claims.js:139-150
- A Play is the team's plan, so a claim stays readable but is marked
Proposed (team decides):. brew/claims.js:98-106 - A paid final never runs over a flagged claim. brew/finals-routes.js:75, 143
- Numbers have their own gate: every money amount and percentage on a card must be in the fact sheet. brew/fact-gate.js:1-6
- The Brand Book's "claims we may make" are backed only inside that list, never anywhere in the brand's words. brew/claims.js:45-51
Rivals and creators
- A rival's picture appears only labelled as theirs, never as ours. memory brew-rival-pictures
- Make our version gives the image model only the brand's own photo and a written breakdown of the rival's ad, never the rival's picture. brew/SCOPE.md:19
- A viral creator's words are named as never to be reused. memory brew-viral-remakes
What the terms say
Plays, cards and drafts are suggestions; check before you spend or publish. brew/legal-pages.js:42
Tomorrow
| Item | Version | Tag |
|---|---|---|
| Flag and cut on every surface that writes | v1 | Stays |
| A plain "Claims to check" list on the brief, so the person who ships it sees them | v1 | Changes, proposed |
| Category rules for India: health, cosmetics, food and supplements, lawyer reviewed | v1 | New, proposed |
| Disclosure on creator and paid partnership drafts: "#ad" or the platform's own label | v1 | New, proposed |
| A post or schedule never goes out while a claim is flagged | v2 | New |
| A measured result only from the brand's own v3 measurement, with its grade | v3 | New |
| Ad rules refuse an ad with a flagged claim | v4 | New |
How we do it
- Never write a claim into a prompt, template or default; claims come only from the brand's own words or the Brand Book.
- A new surface that writes words for a shopper calls
checkCopyorcheckCopyInbefore it shows them. - When a check misses a phrasing, add it to the pattern in
claims.jsfor every brand and category, with a test:
cd /Users/param/Documents/ChatGPT/brew && AI_MOCK=1 node --test test/claims.test.js test/claim-rules.test.js test/claim-kinds.test.js test/round2-claims.test.js
- Never fix a claim for one brand only.
Numbers
| Metric | Definition | Where measured | Status |
|---|---|---|---|
| Claims flagged | Flags per brand per week, by kind | checkCopy results |
Proposed, not logged today |
| Claims shipped after a flag | Drafts sent or downloaded while flagged | Not recorded | Proposed |
| Approved claims | Entries in each Brand Book's claims we may make | Brand Book | Proposed |
Open
- Who checks the claim rules against Indian advertising law? Proposal: the same lawyer as the privacy policy reads this page and the category word lists once, before the first brand outside the partners.
- Do creator drafts carry a disclosure by default? Proposal: yes, "#ad" on any draft written for a creator to post for the brand.
- Log every flag? Proposal: yes, one row per flag with brand, kind and surface, so we can see what writers get wrong.