Answer
The list of what we may say about Brew in any page, post, pitch or reply, each claim with the code that proves it and its exact words, plus the lines we never say; if a claim is not on this page, nobody uses it until it is added with its proof.
Today
Claims we may make now, v1
| Claim | Exact words to use | Proof | Source |
|---|---|---|---|
| It reads the store and what is said around it | Reads your store, catalog, reviews, ads, search, AI answers, socials and rivals | The read stage list | brew/SCOPE.md:11 |
| It reads many sources | Reads 60 sources today, and 7 more once you connect an account | The source inventory: 68 in all, 60 read today, 7 on connect, 1 off | brand-directions/docs2/content/inventory.mjs |
| It writes Plays | Writes Plays for your store, each with why, what we found, the plan and what to watch | 65 kinds of Play | brand-directions/docs2/data/plays.json |
| Every card shows its proof | Every card shows why it is there and the proof behind each number | Why this, and the proof, on every card | brew/SCOPE.md:13 brew/evidence.js |
| A number with no source says so | Numbers with no source are named, never hidden | The proof sheet names unmatched numbers | memory brew-proof-plain-make |
| Plain words | Every card is written in everyday words, every number kept exactly | The plain words pass, numbers checked in code | brew/SCOPE.md:13 brew/plain.js |
| Drafts carry no invented claims | Drafts never invent a discount code, a guarantee, a timed result or a health claim your store does not back | The claims check on every draft and brief | brew/claims.js:1-7 brew/claims.js:88 |
| It drafts the work | Images, carousels, six second videos, voice and text, from your own product photos | The jam's first drafts; the video is a 6 second clip | brew/SCOPE.md:18 brew/drafts.js:47 |
| Every version is kept | Every version is kept, with who made it | Jam versions record their maker | brew/SCOPE.md:18 |
| Stories last a day | Story rings that last 24 hours | Story life in the feed | brew/feed-service.js:1306 |
| It writes a brief for whoever ships | A brief written for your team, your agency, a designer, a media buyer, a creator, a video editor or our team | The brief recipients | brew/team-brief.js:20 |
| Connections are read only | Read only connections: Shopify, Meta Ads, Google Analytics, Google Ads, Klaviyo and Judge.me | Read only scopes | brew/SCOPE.md:14 |
| Slack is the one that posts | Slack posts the cards and jams your team sends, to the channel you pick | The connector access line | brew/public/app.js:3334 brew/SCOPE.md:14 |
| Your brand stays with your team | Only your brand's own email or an invite opens your brand | Domain check and invites | brew/SCOPE.md:24 memory brew-access-rules |
| Deletion is a request a person handles | Ask us to delete your data and our team deletes it within 7 days | The deletion sheet | brew/DUMMY.md:22 |
| Free in the preview | Free during the design partner preview | The preview terms | brew/legal-pages.js:40 |
| AI answers are checked | Checks whether ChatGPT, Gemini, Perplexity and Claude name your store, every week | The weekly AI answers check | brew/live-watch.js:4-6 |
Figures we may quote
| Figure | Exact words | Status | Source |
|---|---|---|---|
| Read time | About 3 to 4 minutes for a read | Timed in the demo guide, 16 Oct; time it again before each campaign | brew/docs/handover/product/08-demo-guide.md:8 |
| Video | Six second videos | In the code | brew/drafts.js:47 |
| Stories | 24 hour story rings | In the code | brew/feed-service.js:1306 |
| AI answers example | The brand was named in 12 of 32 AI answers, said only as an example finding from one brand's read, never with the brand's name | One partner's read on 16 Oct; naming the brand needs its written yes | brew/docs/handover/product/08-demo-guide.md:16 brand-directions/BRIEF.md:97 |
| Sources | 60 sources read today | From the inventory | brand-directions/docs2/content/inventory.mjs |
Old figures that are now wrong
| Old wording | Why it goes | Source |
|---|---|---|
| Seven sources: store, brand, catalog, reviews, ads, site, AI answers | The read covers far more; the inventory counts 68 | brand-directions/BRIEF.md:92-97 brand-directions/docs2/content/inventory.mjs |
| About 160 cards for the prepared demo brand | No count in the code or the demo guide backs it; do not use until counted again | brand-directions/BRIEF.md:94 |
| No sign in is needed to start | The build asks for Google sign in with a work email | brand-directions/BRIEF.md:36 brew/SCOPE.md:24 |
| 51 strategy Plays | There are more; say Plays, never a count, unless counted that day | brew/docs/handover/product/08-demo-guide.md:17 brew/SCOPE.md:12 |
Never say
| Line | Why | Source |
|---|---|---|
| It posts, sends, schedules, launches or measures for you | Cut from v1: no writes to accounts, no sends to customers, no measuring | brew/SCOPE.md:36-39 |
| Your sales went up, any lift, revenue or growth number | Nothing is measured in v1 | brew/SCOPE.md:39 |
| A customer name, logo or quote as proof | No partner has given written permission | memory brew-live-stores |
| Works for any store | Built for founder led stores with their own catalog | brand-directions/BRIEF.md:92-97 |
| Verified, approved, checked by a third party | No third party checks anything | brand-directions/BRIEF.md:92-97 |
| Works while you sleep, in about 20 minutes, in about 2 hours, 51 plans | The honesty tests forbid these in the product | brew/test/honest-copy.test.js:11-15 |
| Verified this morning, cleared, used with consent | The honesty tests forbid canned sign offs | brew/test/honesty.test.js:11-18 |
| A price, a plan name or a trial length | Pricing is parked | memory brew-pricing-parked |
| Moves | The product says Plays | handbook decisions-log 26 Oct |
Places that still break the rules
| Where | What it says | Fix | Source |
|---|---|---|---|
| The live landing's sample cards | 14 people asked the same sizing question on Reddit, with no Sample label | Label them Sample or replace with a real finding with permission | brew/public/app.js:402 |
| The live landing's foot line | Says the product writes its moves | Say Plays | brew/public/app.js:409 |
| The preview terms | Say moves | Say Plays | brew/legal-pages.js:42 |
Tomorrow
| Item | Version | Tag |
|---|---|---|
| This page replaces the old allowed figures list in BRIEF.md as the one list | v1 | Changes |
| Every claim on a public page links back to a row here | v1 | New |
| It posts and schedules on your accounts, only after your yes | v2 | New, only once shipped |
| It shows how each live pick went | v3 | New, only once shipped |
| It runs ads inside the rules and budget you set, with undo | v4 | New, only once shipped |
| Never a claim about a later version before it ships | v1 to v4 | Stays |
| Ads and posts stay confident and plain, with no hedging labels; honesty lives in what is claimed | v1 to v4 | Stays memory no-disclaimers-in-ads |
How we do it
- Before writing any public line, find the claim in the tables above and copy its exact words.
- A new claim needs three things: the code at brew origin/main that does it, the exact words, and Param's yes. Find the proof with:
git -C /Users/param/Documents/ChatGPT/brew grep -n "<what it does>" origin/main -- '*.js' '*.md'
- Add the row here with its
…, then use it. - A figure is timed or counted again before each campaign; if it moved, change the row the same day.
- Run the product's honesty tests before any copy change ships in the app:
cd /Users/param/Documents/ChatGPT/brew && node --test test/honest-copy.test.js test/honesty.test.js
- When a claim stops being true, move it to Old figures that are now wrong, never delete it.
Numbers
| Metric | Definition | Where measured | Status |
|---|---|---|---|
| Unbacked claims live | Public lines with no row on this page | A monthly read of the landing, docs site and posts | Proposed, target zero |
| Stale figures | Figures not timed or counted in the last 30 days | The Status column above | Proposed |
Open
- Do we retire about 160 cards for good? Proposal: yes; quote no card count until a partner's feed is counted on the day.
- Do we say 60 sources in public? Proposal: yes, as "reads 60 sources today", since the inventory backs it and it is checked by the docs truth check.
- Do we name the AI tools we check? Proposal: yes, ChatGPT, Gemini, Perplexity and Claude, since the weekly check asks them; under Gemini the Claude ask is skipped, so check the setting before a campaign.
- May we name the partner behind 12 of 32? Proposal: no; keep it as an example finding from one brand's read until that partner says yes in writing.
- Who fixes the three places that break the rules? Proposal: one product change in the next release, checked on staging.