Git-history hole detector: flags files and C# members that co-change with your edit but are absent
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Catch the files you β or your AI agent β forgot to change. Unwritten learns
from your git history which files usually change together and warns when one is
missing from your edit: "you changed OrderService.cs but not
OrderServiceTests.cs, and they change together 94% of the time." It calls
these missing companions holes, and every warning comes with its confidence
score and real example commits as proof.
It runs as an MCP server so AI coding agents (Claude Code, Copilot) can check
their own edits mid-session, and as a CLI for pre-commit hooks.
One dotnet tool execute, an index in .unwritten/, no server, no subscription,
no tokens.
Works on any language. File-level rules only need git history, so hole detection works the same on Python, TypeScript, Go, or mixed repos. C# repos additionally get method-level rules and cosmetic-edit filtering; JSON files get key-level noise filtering. Running the tool requires the .NET SDK (10+), but the repos it analyzes can be anything.
From your repo's root:
That's it β your agent can now call check_holes after editing, and the hooks
catch the cases where it forgets to.
https://github.com/user-attachments/assets/4ae7a22d-c611-458f-8c48-08f87eca1d29
stats shows what the tool has learned β here, one file pair coupled strongly
enough (confidence β₯ 0.7) to block a commit if one side is missing:

After editing one file of that pair, check warns that its companion is
missing and spells out the three ways to resolve it β update the companion,
commit anyway, or mute the rule:

With the pre-commit hook installed, the same check runs automatically on every commit and blocks it while the companion is still missing:

Everything else lives in docs/README.md:
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/unwritten)<a href="https://allmcps.com/mcp/unwritten"><img src="https://allmcps.com/api/badge/unwritten?style=directory" alt="Unwritten on AllMCPs" /></a>