No Testimonial Beats a Fake One
For seven months KittyLog's README carried a quote from "Happy Customer," who never existed. How filler proof survives, and why absence beats invention.
"KittyLog transformed our release process. What used to take hours now happens automatically." - Happy Customer 🎉
That quote sat at the very bottom of KittyLog's README from December 15, 2025 until July 31, 2026. There is no such customer. "Happy Customer" was not an anonymized real person; it was filler that went unreplaced for seven and a half months, complete with a party emoji.
I want to walk through how it got there, why it stayed so long, and why the rules KittyLog now binds itself to name that exact line as the pattern we banned.
How a fake quote gets written
The quote was never a plan to invent social proof. It arrived in a documentation sweep, a commit titled "update documentation to reflect current project state" that rewrote the README, CLAUDE.md, and AGENTS.md in one pass. Rewrites like that produce a certain kind of cheerful filler: a sign-off tagline, a mascot emoji, and, apparently, a testimonial from a customer who does not exist. It reads like scaffolding because it is scaffolding. The intent was almost certainly "replace this with a real quote later."
Later never has a date attached, which is the whole problem.
How it survived
The survival interests me more than the origin. That README was edited repeatedly while the quote sat there, including for stale pricing that had drifted from the live site (down to a tier name we had renamed). Two passes in July 2026 fixed that pricing in the same README, and both walked right past the fake testimonial at the bottom.
Nothing exotic is going on: nobody reads their own README top to bottom. You open it to fix the one line someone flagged, you fix that line, you close the file. The bottom of a README is the least-read text in a repository that anyone can technically see. Filler copy survives because no one is looking where it lives, not because anyone defends it.
The rule it produced
Those pricing-drift fixes led to a source-of-truth skill for marketing claims, added on July 21, 2026. Every public claim now has to resolve against a binding hierarchy: decided facts first, then the generated pricing constants, then the live model config. The README is explicitly listed as not a claim source, and the skill cites the "Happy Customer" line by name as the banned pattern. The rule it records is short: real quotes with documented permission, or none. Running without social proof is acceptable.
One admission: the first draft of this post said the quote was still there, because on the day I drafted it, it was. The rule banning it had been on the books for ten days by that point, and the line had outlived it. The quote finally came out less than an hour after the draft landed, in commit 97bcc38b. Seven and a half months from filler to fix, and it apparently took writing a blog post about the bottom of the README to get anyone, me included, to look at the bottom of the README. The git history keeps the receipt.
Why absence beats invention
The argument for running with zero social proof comes down to arithmetic about trust, not ethics posturing.
A real testimonial does two jobs. It says the product worked for someone, and it says the company reports facts accurately. A fabricated one fails the first job invisibly and the second job loudly. The moment a reader notices "Happy Customer" is nobody, every other claim on the page gets re-priced. The stale pricing, the provider list, the feature table: all of it now carries a discount, even the parts that were true. Absence of proof costs you a little credibility with people who wanted reassurance. Invented proof costs you credibility with everyone who catches it, and developers are exactly the audience that catches it.
The same logic covers numbers. Our claims rules only allow a statistic when it is computed from real data with the denominator shown. "Trusted by thousands" is banned. "Of N repos active 30 days, X published a changelog" would be allowed, if we had computed it. A number without its denominator is just a vibe wearing a costume.
KittyLog is early. The honest inventory of our social proof is: we use it on our own repos, and the changelog you can read on our site is generated by the product. That is thin, and I know it is thin. When a real user says something quotable and gives written permission, it will go up with their name. Until then, the testimonial section stays empty, and yes, that stings a little every time I look at a competitor's wall of logos. It is still the right trade.
Source records
- The "Happy Customer" line: introduced in
README.mdin commit0ee9627b, December 15, 2025; removed in commit97bcc38b, July 31, 2026. - Issue #1325 and commit
a1e6cc88, the marketing-claims-and-pricing skill that names the line as the banned pattern. - Commits
6ddaf63d(#1317/#1335) andd81efd01(#1340), README fixes that edited the file without removing the quote. .claude/skills/marketing-claims-and-pricing/SKILL.md, the claims discipline and copy vetoes.