Skip to content

docs: correct claims the code does not support - #17

Merged
ribdsp merged 1 commit into
mainfrom
docs/correct-unsupported-claims
Aug 31, 2026
Merged

ribdsp merged 1 commit into
mainfrom
docs/correct-unsupported-claims

Conversation

@ribdsp

@ribdsp ribdsp commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Three prose claims that the code does not support. Docs and one comment only — no behaviour change, and registerDynamicTool is left exactly as it is, marker included.

What was wrong, and what it says now

1. CLAUDE.md — "every stub has been implemented"

There are none left — every stub from the original build has been implemented.

False in two ways. traces/src/lib/webmcp/register-tools.ts:133 still reads:

export function registerDynamicTool(_hypothesisId: string): void {
  throw new Error('registerDynamicTool: not implemented')
}

and the TODO: Day 6 marker is still on line 131, directly above it. A repo-wide grep (excluding node_modules) finds exactly three references to the symbol: the two definition lines, and one comment in tool-status-banner.tsx. Nothing calls it.

Now names the stub, says it throws, says nothing calls it, and states the consequence — promoting a hypothesis does not grow a 17th tool. The rest of the section (why markers must not be deleted) is untouched.

2. CLAUDE.md — the test count

All 285 tests pass.

Measured on this branch: 25 files, 303 tests. Updated to 303.

3. tool-status-banner.tsx — the toolchange comment

toolchange is how a surface that grew a tool mid-investigation shows up here without a reload — the promoted-hypothesis tool from registerDynamicTool is the case worth demoing.

Read as documentation of something the app does. It reads as a conditional now, and says plainly that registerDynamicTool is a stub that throws with no callers, so the only thing that can move the counter is the host changing its own tool list. The rest of the comment — the EventTarget note, ChatGPT Desktop, why the count is changes rather than a total — is accurate and unchanged.

Everything else was checked and is correct

Every other absolute claim in CLAUDE.md and README.md was verified against the code rather than assumed:

Claim Verified against Result
16 tools, and all 16 names registry.ts, register-tools.ts correct
7 predicate shapes evaluate-predicate.ts correct
60 lines / 1200 chars budget compress-dom.ts:16-17 correct
60-char text, 20-char value truncation compress-dom.ts:19,100 correct
Compression 2,026→663 chars, 17 lines, 3.06× (+2.68×, 2.57×) re-ran scripts/measure-compression.mjs correct
3 recordings at 184 / 210 / 213 KiB public/recordings/ correct
209–223 events counted per fixture: 222 / 209 / 223 correct
4 blocking tools, 64 MB ceiling, src/app/fonts.ts source correct

docs/tools.md:579 was already fixed and is untouched. The tagline is untouched in all four places.

Notes

One drift from the brief. The test-count line is CLAUDE.md:39, not :37 (:37 is the section heading). Fixed by content.

One understatement left in place, deliberately. CLAUDE.md:43 describes no-eval.test.ts as failing "if eval( or new Function appears anywhere". That is true, but the test enforces five patterns across all of traces/src, not two — it also catches setTimeout/setInterval with a string first argument and .innerHTML assignment from anything named like args|input|params|predicate|payload. Understated rather than false, so it is reported here rather than rewritten; correcting it properly means rewriting the paragraph, which is a bigger edit than this PR is for.

Forward dependency. "does not grow a 17th tool" is correct at 16 tools. If a seventeenth tool lands, that word has to move with the rest of the 16→17 sweep.

Verification

npx tsc --noEmit     exit 0
npx vitest run       25 files, 303 tests passed
npm run lint         exit 0 (8 pre-existing warnings, unchanged from #16)

Three statements that were not true of the code:

- CLAUDE.md said every stub from the original build had been implemented.
  `registerDynamicTool` is still a stub that throws, nothing calls it, and its
  marker is still on the line above it. Named, with the consequence stated:
  promoting a hypothesis does not grow a 17th tool.

- CLAUDE.md said "All 285 tests pass". Measured: 25 files, 303 tests.

- The `toolchange` comment in tool-status-banner.tsx presented the dynamic
  registration mechanism as something the app does. It is a stub; the only
  thing that can move that counter is the host changing its own tool list.

No behaviour change. `registerDynamicTool` is left exactly as it is, marker
included.
@vercel

vercel Bot commented Aug 31, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
traces Ready Ready Preview Aug 31, 2026 6:05am

@ribdsp
ribdsp merged commit f56488c into main Aug 31, 2026
4 of 5 checks passed
@ribdsp
ribdsp deleted the docs/correct-unsupported-claims branch August 31, 2026 06:07

This branch was successfully deployed

1 active deployment
Preview — f57902f7 Deployed Aug 31, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant