DEV Community

Cover image for Your 'first' AI memory claim dies in one store search
Chad Priest
Chad Priest

Posted on Originally published at blog.vodou.ai

Your 'first' AI memory claim dies in one store search

On September 11 I was drafting a press release for our public alpha, and the phrase "world's first" came up. By the end of that day my memory system held a new rule, filed as a GOTCHA: never claim "world's first" or "nothing else does AI memory that follows you."

That rule wasn't new to me. I had worked out the same lesson on July 31, written it into a positioning doc with a table and a source list, and then spent six weeks drafting my way straight back to the same sentence. This post is about why the first fix didn't hold. The reason has nothing to do with marketing taste. It is a verification bug, and it has the same shape as the ones I usually write about.

Six products already led with "One Memory for ChatGPT, Claude & 21+ AI"

The July positioning doc opened with a product wedge: "One memory across Claude, ChatGPT, coding agents, and local models." It listed three headline candidates: Start where you left off, Decisions that stay decided, and Switch models, keep everything. Next to the second one I had written that it "names a pain nobody else names." The moat section said the model vendors were "structurally forbidden" from serving this category.

That same afternoon I did the competitive research. MemoryPlugin's homepage headline was, word for word, "One Memory for ChatGPT, Claude & 21+ AI." Six products led with some version of our wedge. The verdicts I wrote down were:

  • Switch models, keep everything: dead as a differentiator. It's table stakes.
  • Decisions that stay decided: weakened. Supermemory already sells contradiction resolution as an API, and BEAM, a public memory benchmark, scores contradiction handling as one of its ten categories.
  • Start where you left off: contested. Unifie and MemoryPlugin inject context silently. We needed a keystroke on 22 of 24 surfaces.

The moat claim failed too. Anthropic shipped memory import from ChatGPT, Gemini and Grok in early 2026, and Google followed about three weeks later. What still holds is narrower: no model vendor will keep your context current inside a rival's product. My surface count was only parity as well. We capture on 22 AI sites, MemoryPlugin claims 21+, and ByteRover claims 22+ coding agents.

So on July 31 I had the evidence, and I wrote it down. That should have been the end of it.

A claims ledger with 17 green rows checked our code, not the shelf

The doc was built around a claims ledger. Its stated purpose was to map "every GTM sentence to shipped code, so nothing on the homepage is ahead of the binary." It had 17 green rows, and every one pointed at something a reviewer could open. "Inject across the same 22, one uniform mechanism" pointed at extension/Store-vodou-bridge/sites.js and the test that checks inject logic against the site list. "Nothing is sent on your behalf" pointed at the commit that made injection composer-only.

It was honest, and it caught real problems. It banned accuracy claims outright because our strict retrieval bench scored 57 to 66 against a target of 90. The doc called an accuracy headline "the one claim a skeptical reader can disprove in ten minutes."

My first false lead was deciding the ledger just needed more rigor: more evidence per row, re-verified against the tree more often. That would have changed nothing. Every row in that ledger had evidence pointing inward, at a file, a test or a commit. "Nothing else does this" can't have evidence in your own repo, because it isn't a statement about your repo. It is a statement about every other repo, store listing and landing page. The ledger had no column for that, so a novelty claim could never turn red. It just never got checked.

Ten minutes was also generous. A novelty claim can be disproved faster than an accuracy claim, because the disproof is a search box.

Eleven extensions on the store shelf, and none were on July's list

On September 10 I looked at where our Chrome extension actually sits, on the Web Store shelf next to its neighbors. I counted eleven adjacent extensions: ContinueVault, ConvoFlow, MoveChat, AI Chat Exporter, AIChatClip, Briefed (AI Context Vault), Prompt Bridge, Relay, Continuum, and LLM Context Bridge. On the developer side there were agent harnesses like Hermes and OpenClaw, which an engineer would name before any extension. Our own listing had 3 users and 0 ratings, which is a useful number to keep in mind before calling anything first.

The detail that cracked it for me is that the two research passes had no names in common. July's table plus its long tail listed thirteen products. September's shelf listed eleven. None appeared on both lists.

The market didn't turn over in six weeks. I had searched two different places. July was a web search for "AI memory products," which surfaces funded companies with homepages. September was the shelf where our extension is actually installed, which surfaces exporters and context-carriers that ship without a homepage. Both lists were accurate. Each one was incomplete in its own way.

So the root cause had two parts. First, a novelty claim is a universal statement, and I had checked it against one sample of the universe. Second, that sample lived in a doc nobody opened while drafting, so the press session wrote from the mantra instead of from the research.

The standard advice here is April Dunford's first step, which GTM Labs adapts for developer tools: name your competitive alternatives, including open-source projects and homegrown internal tools. That advice is right, and I followed it. It doesn't cover the case where your list of alternatives depends on where you searched, and you ship on more surfaces than you searched. My two honest lists, six weeks apart, shared zero names.

Mina Mankarious argues that phrases like "AI-powered" have become semantic wallpaper, and the fix is to get specific. That's true too, but specificity is exactly where false novelty hides. "AI-powered" can't be proven wrong. "Nothing else does AI memory that follows you" can be proven wrong by anyone with a browser. The one-line pitch in Mneme's BRIEF.md, "the open, user-sovereign memory layer for AI" that is "portable across every model and tool," is nearly our July wedge. Two teams writing the same sentence independently tells you the sentence is the category, not a position in it.

"First" is a claim about the world, so grep for it and date the search

This failure isn't about AI memory. Any team verifies its self-descriptions with evidence from its own codebase, and a novelty claim is the one kind of self-description that evidence can't reach. You'll find it in MCP memory server READMEs that say "the only server with persistent memory," in agent harness landing pages that say "the first agent that remembers across sessions," in RAG knowledge assistants pitched as "the only one that reads all your notes," and in Show HN titles.

The rule that was violated can be checked against any repo:

Every "first", "only" or "nothing else" sentence in shipped copy must have a dated alternatives search on each channel the product is distributed through, and a sentence without one counts as false.

Here is the check. It takes five minutes and needs nothing from our stack.

Step 1: find the claims. Use -w rather than \b, because on macOS grep -E with \b silently matches nothing, and a zero count looks like a clean pass.

grep -rniwE "first|only|nothing else|no other|unlike any|world's" \
  README.md docs/ site/ store-listing/ press/ 2>/dev/null
Enter fullscreen mode Exit fullscreen mode

Passing output contains only incidental uses. When I ran this over our press release, the hits were "first-party memory outranks throwaway imports" and "not only remember," and both are fine. Failing output looks like README.md:3:The first memory layer that works across every AI tool.

Step 2: for each real hit, search every surface you ship on, not just the web.

gh search repos "mcp memory" --sort stars --limit 15 \
  --json fullName,stargazersCount,updatedAt
npm search --json "mcp memory" | jq -r '.[].name' | head -15
Enter fullscreen mode Exit fullscreen mode

The Chrome Web Store, VS Code Marketplace and plugin registries have no convenient CLI. Type the two phrases a user would type and read the first page. You pass if no result's one-line description could replace your headline. You fail if one could, which is what happened to me with MemoryPlugin.

Step 3: record the search so the next draft can't skip it.

CREATE TABLE claims (
  id    INTEGER PRIMARY KEY,
  copy  TEXT NOT NULL,
  kind  TEXT NOT NULL CHECK (kind IN ('self', 'novelty'))
);
CREATE TABLE claim_searches (
  claim_id           INTEGER NOT NULL REFERENCES claims(id),
  surface            TEXT NOT NULL,  -- 'web', 'github', 'chrome_web_store', ...
  searched_at        TEXT NOT NULL,  -- UTC 'YYYY-MM-DD HH:MM:SS'
  alternatives_found TEXT NOT NULL
);

-- novelty claims missing a recent search on a surface you ship to
SELECT c.id, c.copy, s.surface
FROM claims c
CROSS JOIN (SELECT 'web' AS surface
            UNION ALL SELECT 'github'
            UNION ALL SELECT 'chrome_web_store') s
LEFT JOIN claim_searches cs
  ON cs.claim_id = c.id
 AND cs.surface = s.surface
 AND cs.searched_at >= datetime('now', '-30 days')
WHERE c.kind = 'novelty'
  AND cs.claim_id IS NULL;
Enter fullscreen mode Exit fullscreen mode

Passing output is zero rows. Failing output is the claim I would have shipped: 1|Nothing else does AI memory that follows you|chrome_web_store. Put in the surfaces you actually distribute through. A spreadsheet works just as well. What matters is that the surface and searched_at columns exist.

The September press release names "portable chat exporters" out loud

The draft that exists now doesn't claim to be first. It names the alternative and says where we differ: portable chat exporters move transcripts, and they don't run one memory under ChatGPT, Claude and a coding agent at the same time. A stranger can check that sentence against the eleven extensions, and it holds.

The July doc settled on memory plus execution as the wedge, and called it "the only claim in this research where nobody competes." That sentence is itself an only-claim. It passes the rule because it has a date and a list attached. It's also the next one that will go stale, and I'll find out on whichever shelf I haven't searched yet.

If your pitch has a superlative in it, grep for it, search every shelf you ship on, and write down the date. If a novelty claim has no search record behind it, it hasn't been checked, and one stranger with a browser will find that out.


Source: Your 'first' AI memory claim dies in one store search by Chad Priest, from Building Vodou in Public.

Top comments (0)