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

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

一个本地 MCP 服务器,从 git 历史学习哪些文件通常一起改动,并在 AI 编程代理编辑后遗漏配套文件时发出警告。

可以做什么
根据 git 历史学到的共同改动模式,检查编辑是否遗漏配套文件(holes),并给出置信度和真实提交示例作为依据。报告已学到的文件对统计,显示哪些关联强到足以阻止提交。安装 git pre-commit 钩子和 Claude Code Stop 钩子,使检查在提交前确定性地运行。文件级规则适用于任何语言;C# 仓库还提供方法级规则和表面修改过滤,JSON 文件提供键级噪声过滤。
适用场景
适合 AI 编程代理修改代码仓库、可能忘记同步测试等相关文件的场景,提供基于历史的自动提醒。也适合希望对强关联文件对设置提交前检查的团队。
运行要求
通过 .NET 工具(dotnet tool execute)作为本地进程运行,需要 .NET SDK 10 或更高版本。被分析的仓库需有 git 历史,索引保存在 .unwritten/ 目录。未声明服务器、订阅、令牌、环境变量或请求头。
安装前请注意
pre-commit 和 Stop 钩子可能在存在遗漏时阻止提交,在静音规则或补齐配套文件前会打断流程。警告基于统计,可能出现误报。它会读取仓库的 git 历史并向 .unwritten/ 写入索引。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Unwritten,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

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.

text
1 possible hole(s):
  src/Orders/OrderServiceTests.cs    expected because you changed src/Orders/OrderService.cs    confidence 0.826 (90 co-changes in 100 changes)    e.g. 3f2a1c9 Add surcharge handling to freight calculation
FAIL: at least one hole at confidence >= 0.70.

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:

  1. 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).
bash
dotnet tool execute Unwritten --yes -- reindex
  1. Register as an MCP server (Claude Code):
bash
claude mcp add unwritten -- dotnet tool execute Unwritten --yes -- mcp
  1. (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:
bash
dotnet tool execute Unwritten --yes -- install-hook --git --claude-code

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:

License

MIT

来源:README.md,提交 313eb89

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.4.6最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分