
Unwritten
io.github.Byggarepop由 GitHub 账号 Byggarepop 发布v0.4.6更新于 Oct 24, 2026
Catches files and C# members you forgot to change, learned from your repo's git history
概览
一个本地 MCP 服务器,从 git 历史学习哪些文件通常一起改动,并在 AI 编程代理编辑后遗漏配套文件时发出警告。
- 可以做什么
- 根据 git 历史学到的共同改动模式,检查编辑是否遗漏配套文件(holes),并给出置信度和真实提交示例作为依据。报告已学到的文件对统计,显示哪些关联强到足以阻止提交。安装 git pre-commit 钩子和 Claude Code Stop 钩子,使检查在提交前确定性地运行。文件级规则适用于任何语言;C# 仓库还提供方法级规则和表面修改过滤,JSON 文件提供键级噪声过滤。
- 适用场景
- 适合 AI 编程代理修改代码仓库、可能忘记同步测试等相关文件的场景,提供基于历史的自动提醒。也适合希望对强关联文件对设置提交前检查的团队。
- 运行要求
- 通过 .NET 工具(dotnet tool execute)作为本地进程运行,需要 .NET SDK 10 或更高版本。被分析的仓库需有 git 历史,索引保存在 .unwritten/ 目录。未声明服务器、订阅、令牌、环境变量或请求头。
安装
在 SourceWeft 中
- 打开 控制台中的 Unwritten,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Unwritten
[NuGet] [Downloads] [License: MIT]
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.
Quick start
From your repo's root:
- Warm up the index (optional — every command builds it on first use and keeps it current by itself; this just makes the first query fast).
- Register as an MCP server (Claude Code):
- (Recommended if using Claude Code) Make the check deterministic — a git pre-commit hook and a Claude Code Stop hook that feeds failing holes back to the agent before a commit is made:
That's it — your agent can now call check_holes after editing, and the hooks
catch the cases where it forgets to.
Explanatory video
https://github.com/user-attachments/assets/4ae7a22d-c611-458f-8c48-08f87eca1d29
See it in action
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:
[Index stats showing one high-confidence file pair]
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:
[check reporting a missing companion file with resolution options]
With the pre-commit hook installed, the same check runs automatically on every commit and blocks it while the companion is still missing:
[Pre-commit hook blocking a commit on a missing companion file]
Documentation
Everything else lives in docs/README.md:
- Background & the research behind it
- Why these thresholds (tested on real data)
- Use: MCP server, CLI, hooks, muting false rules
- Configuration reference
- How it works
- What it does NOT do (yet)
License
来源:README.md,提交 313eb89
工具
0版本历史
1- v0.4.6最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分