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 分