
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 分