The README's tool table lost a tool, and two directories copied the gap - #94
Merged
Conversation
write_report shipped and its row was never added to the root README, so the table listed nine tools and the sentence under it said "the first seven run entirely on the machine" when eight did. src/SignsOfAI.Mcp/README.md had it right the whole time; only the file that visitors read was wrong. That file is what directory listings copy from. Six weeks later the merged TensorBlock entry and the open punkpeye one both describe six tools and tell people to install from source, in repositories where we have no guard. So the guard reads the server's own [McpServerTool] attributes -- including OpenWorld, which is what actually means a tool leaves the machine -- and requires both READMEs to agree. Verified by reverting the fix: it fails on exactly the two real defects and passes on the correction. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015PEbbiYSNPw7jE3LrPNhyF
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
write_reportshipped and its row was never added to the root README. The table listed nine tools, and the sentence under it said "the first seven run entirely on the machine" when eight do.src/SignsOfAI.Mcp/README.mdhad it right the whole time. Only the file visitors read was wrong — and that is the file directory listings copy from. Found today while auditing those listings:dotnet buildfrom source.Neither is a repository where we can leave a guard, so the guard goes here.
The guard
McpToolDocumentationTestsreadssrc/SignsOfAI.Mcp/Tools/*.csfor[McpServerTool(Name = ...)]and requires both READMEs to mention every tool. The on-device/server split is derived fromOpenWorld = true— the flag that actually means a tool leaves the machine — never typed, so the counts cannot drift from the code.It follows
WhyPageTests, which exists for the same reason: a comment asking the next person to remember is not a guarantee.Proved by reverting the fix. On the stale README it fails 2 of 4, naming
write_reportand the wrong sentence. On the correction, 4 of 4. Full suite: 438 passing.This is the fifth time something the tool says about itself went stale without anyone measuring it.
🤖 Generated with Claude Code
https://claude.ai/code/session_015PEbbiYSNPw7jE3LrPNhyF