Token导航 LogoToken导航TokenDH.com
wisegit (Sandip124) logo
开发工具stdio官方级别未说明来源级核验

wisegit (Sandip124)

MCP Server

@sandip124/wisegit

wisegit是一个本地MCP服务器,通过分析Git历史提取代码决策意图,防止AI修改有意为之的代码。

工具数

11

提示词数

0

GitHub Stars

1

资源数

0
版本控制TypeScriptClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Sandip124

提供方

Sandip124

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @sandip124/wisegit setup

详细介绍

威斯基特

](https://www.npmjs.com/package/@sandip124/wisegit) ![MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=wisegit) ![License: MIT](https://opensource.org/licenses/MIT)

*“在知道围栏建起来的原因之前,不要把它拆掉。”* --G.K.切斯特顿

威斯基特 是一个本地MCP服务器,它从git历史中提取决策意图,并保护有意代码免受AI修改。

当Claude Code(或任何兼容MCP的代理)即将编辑文件时,wisegit会注入一个 决策清单 显示哪些函数是冻结的、稳定的或开放的——因此人工智能尊重的是有意的,而不仅仅是编译的。

零配置。零外部服务。一切都是当地的。

安装

# Set up any repo (one command)
npx @sandip124/wisegit setup

# Or add as MCP server globally
claude mcp add wisegit -- npx @sandip124/wisegit serve

发表于

问题

LLMs没有概念 有意代码手动测试的修复程序和损坏的存根看起来完全相同——两者都只是文本。真实场景:

  1. 您可以通过以下方式修复Stripe比赛条件 sleep(350) --手动测试,提交。
  2. 下一节课:“查找bug。”Claude删除 sleep(350) --看起来像死代码。
  3. 生产事故。

根本原因: git历史包含意图证明。没有人提取它。

运作原理

Git History → Tree-sitter AST → Intent Extraction → SQLite Event Store → MCP Tools
  1. 索引您的git历史记录 --遍历每个提交,在AST级别解析差异(函数边界,而不是行数)
  2. 对提交进行分类 --结构化(fix:, feat:)、描述性(简单的句子)或噪音(wip, x)
  3. 提取意图 --基于规则的结构化/描述性提交,LLM用于噪声(第2阶段)
  4. 计算冻结分数 --每个功能0-1,来自保护信号(git、issue、代码结构、测试、结构、Naur、Aranda)减去自适应淘汰惩罚(8个信号,熵校准)。年龄使用威布尔生存\[18\];专业知识使用DOE模型\[19\]
  5. 通过MCP提供决策清单 --克劳德代码调用 get_file_decisions 编辑任何文件之前

AI看到了什么

[DECISION MANIFEST: payment.service.cs]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FROZEN:  ProcessPayment()  [score: 0.89] [Recovery: L1]
  - sleep(350) → Stripe race condition. Won't Fix.
    HIGH — commit a3f19b2

STABLE:  ValidateOrder()  [score: 0.55] [Recovery: L2]
  - Fixed null reference on Safari iOS WebKit.
    MEDIUM — commit 7c14694

OPEN:    FormatReceipt()  [score: 0.12] [Recovery: L3]
  ← safe to modify
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  • 冰冻 (得分>=0.80):未经用户明确批准,不得修改
  • 稳定 (0.50-0.79分):谨慎行事,先审查意图
  • 打开 (分数\=20

就是这样。没有Docker,没有PostgreSQL,没有外部服务。

1.设置存储库(一个命令)

cd /path/to/your/repo
npx @sandip124/wisegit setup

这个命令:

  • 在以下位置创建本地SQLite数据库 ~/.wisegit/wisegit.db
  • 对整个git历史进行索引(约13秒内462次提交)
  • 创建 .mcp.json 用于克劳德代码自动发现
  • 创建 CLAUDE.md 指示AI在编辑前进行检查的规则
  • 增加 .mcp.json.gitignore

2.丰富问题背景(可选)

# Fetch issue/PR details from GitHub/GitLab
GITHUB_TOKEN=ghp_... npx @sandip124/wisegit enrich

这获取了引用的问题(例如。, #134 在提交消息中),检测“无法修复/按设计”决策,并提高与这些问题相关的函数的冻结分数。

3.完成

在Claude Code中打开仓库。它将自动:

  1. 启动wisegit MCP服务器(通过 .mcp.json)
  2. 阅读保护规则(通过 CLAUDE.md)
  3. 呼叫 get_file_decisions 编辑任何文件之前

MCP工具

工具说明
get_file_decisions文件的决策清单——冻结分数、意图历史、恢复级别、覆盖状态
get_freeze_score特定功能的得分+信号分解
get_function_history按时间顺序排列的功能决策时间表
get_theory_gaps具有不可恢复理由的功能(不活跃的作者、时间线空白)
get_branch_context分支合并历史记录——迁移了什么以及为什么迁移
search_decisions在整个仓库中按关键字搜索过去的决策
create_override覆盖冻结的功能(用户在Claude Code UI中批准)
extract_intent使用主机LLM提取NOISE提交的意图——不需要Olama
find_similar_functions在编写新代码之前,搜索解决类似问题的现有函数
predict_impact预测如果修改给定函数,哪些函数会中断
get_codebase_conventions提取文件邻域的编码约定

MCP资源: wisegit://manifest/{filePath} --决策清单作为可自动发现的资源

MCP提示: check_before_edit --在编辑任何文件之前返回决策清单的强制工作流提示

LLM意图提取策略

wisegit使用智能回退链从NOISE提交中提取意图:

背景LLM使用方法如何使用
克劳德代码内部主机LLM(Claude)MCP采样——要求Claude分析diff.Zero设置。
CLI与OllamaOllama(通话3)wisegit init --ollama --使用本地Ollama实例
没有Ollama的CLI仅基于规则的提取,NOISE提交没有意图

在Claude Code内部,调用 extract_intent 追溯恢复NOISE提交的意图——使用Claude本身,不需要安装Ollama。

CLI命令

wisegit setup [--path ] [--global]         # One-command repo setup
wisegit init [--full-history] [--path ]     # Index git history
wisegit enrich [--path ]                    # Fetch issue/PR context from GitHub/GitLab
wisegit audit                              # Show decision manifest
wisegit history  [--file 
]         # Show decision timeline
wisegit recompute [--path ]                  # Recompute scores with PageRank + theory gaps
wisegit override  --file  --reason "..."  # Override a frozen function
wisegit overrides                                # List active overrides
wisegit sync                                     # Rebuild local cache from git + .wisegit/
wisegit config list                              # View team configuration
wisegit config set                   # Modify team policy
wisegit team-status                              # Team overview: enrichments, overrides, contributors
wisegit team-health                              # Theory health: healthy/fragile/critical functions
wisegit branch-capture                           # Capture branch context from last merge
wisegit branch-list                              # List all captured branch snapshots
wisegit branch-recover                      # Recover context from old merge commit
wisegit calibrate                                # Show adaptive obsolescence weights vs defaults
wisegit report [--output ]                 # Generate HTML report with scores + insights
wisegit serve                                    # Start MCP server (stdio)
wisegit hook install|uninstall                   # Manage git hooks (post-commit + post-merge)

配置Claude代码

选项A:每次回购(推荐)

npx @sandip124/wisegit setup 在任何回购中。它创造了 .mcp.json 自动。

选项B:全球注册

claude mcp add wisegit -- npx @sandip124/wisegit serve

选项C:手动 .mcp.json

创建 .mcp.json 在您的repo根目录中:

{
  "wisegit": {
    "command": "npx",
    "args": ["@sandip124/wisegit", "serve"]
  }
}

支持的语言

语言扩展
C .cs
TypeScript.ts, .tsx
JavaScript.js, .jsx, .mjs, .cjs
python .py
去吧.go
生锈.rs

可以通过Tree sitter语法配置添加更多语言 src/ast/languages/.

问题丰富

承诺说 fix: handle null token #134 指向一个包含复制步骤、根本原因和明确决策理由的问题——提交消息从未说过的一切。

# Fetch issue context from GitHub/GitLab
wisegit enrich --path /path/to/repo

# With auth (5000 req/hr instead of 60)
GITHUB_TOKEN=ghp_... wisegit enrich

支持的平台: GitHub、GitLab(Azure DevOps、Jira、Bitbucket计划)

身份验证令牌: GITHUB_TOKEN / GH_TOKEN 对于GitHub, GITLAB_TOKEN GitLab。从不使用wisegit存储。

发出冻结信号

信号冻结增强何时
无法修复/按设计+0.35问题已结束 not_planned,或已 wontfix/by-design 标签或评论说“有意”
复制步骤+0.15问题正文包含“复制步骤”
平台特定标签+0.10已标记问题 ios, safari, windows等等。
无法访问问题+0.10问题引用存在,但API返回404-缺少上下文=保护更多
PR审核意见+0.15链接PR有审核人讨论

冻结分数信号

冻结分数为 从不直接存储 --它是通过重放每个函数的事件流得出的。信号类别:

类别重量来源
Git历史0.20还原、验证关键字、事件引用、贡献者计数、威布尔年龄\[18\]
问题丰富0.20无法修复/按设计、复制步骤、平台标签
代码结构0.15内联注释、幻数、防御模式
测试信号0.15专用测试、边缘情况标签、共同提交测试
结构重要性0.15呼叫次数(PageRank),公共API,DOE专业模型\[19\]
诺尔理论0.10全球模式、有意矛盾、消除成本
Aranda Signals0.05被遗忘的模式、时间线差距、问题链接中断
过时(8个信号)自适应死码、过时子图、迁移剩余、过时deps、被取代、SAAD、变化突发缺失、共变发散

冻结分数公式:

freeze_score = base_score x (1 - obsolescence_penalty)

保护信号产生基本分数(当前信号类别的加权平均值,而不是加和);过时信号会产生惩罚。 过时重量为 自适应的 --使用香农熵对每个存储库进行校准 以及贝叶斯反馈。当\<20个函数有信号时,返回硬编码默认值。 年龄信号使用 Weibull生存模型 \[18\] (k=0.7,λ=2.4y);贡献者专业知识使用 DOE模型 \[19\] (4个变量:贡献份额、近期、持续时间、频率)。

学术基础:发表论文24篇。看 参考.md 完整引用。

交叉回购验证

在3个真实世界的开源代码库上进行了测试:

回购承诺功能冻结稳定最高得分
托盘/烧瓶556543557222720.927
expressjs/express638240912470.811
zeeguu/api4,5153,2161120.583

Flask的核心API(__init__, run, wsgi_app, url_for)正确得分为冷冻(0.87+)。快速路由原语(paramCallback, Route, Router)正确得分为冻结/稳定。分数适应每个代码库的历史,而不是产生统一的分布。

参考.md 了解详细的验证结果和实施更改。

遗留代码库演变

wisegit是为积累了多年有意决策的代码库而设计的。冻结分数并不意味着“永远不要改变这一点”,而是意味着“在改变之前理解这些决定”

渐进式迁移,而不是闪亮的重写。 Per Távora\[12\]:混乱代码中的业务规则是 *正确且有价值*技术债务在于结构,而非决策。在修复结构时,wisegit会保护决策。

阶段wisegit如何提供帮助
了解AS-ISwisegit audit 显示了什么是故意的。 wisegit team-health 显示了机构知识丢失的地方。
重构过程中的保护清单告诉开发人员+AI哪些行为是故意选择的
记录理由覆盖原因持续存在 .wisegit/overrides.jsonl --没有埋在Slack中
保留迁移上下文分支快照记录了被替换的内容和不应返回的内容
轨道跨境deps共变信号检测传统代码和替换代码之间的耦合

参考.md 完整的遗产进化部分有学术基础(24篇已发表论文)。

团队支持

wisegit使用三层架构,不需要单独的“团队模式”:

什么共享?
确定性基础提交分类、基于规则的意图、git信号通过git(自动)
团队知识丰富、覆盖、意图、分支上下文通过 .wisegit/ (跟踪git)
本地缓存SQLite位于 ~/.wisegit/wisegit.db从未(衍生)
.wisegit/                      # Tracked by git — shared with team
├── config.json                # Team policy (thresholds, AI authors)
├── enrichments.jsonl          # Issue enrichment cache
├── overrides.jsonl            # Override audit trail
└── branch-contexts.jsonl      # Branch merge snapshots

JSONL格式 --每行一个JSON对象。并发追加不会产生git合并冲突。

队友推后 .wisegit/ 更改,运行 wisegit sync 将它们导入到本地缓存中。

TEAM-ROADMAP.md 用于整个团队架构设计。

建筑

┌─────────────────────────────────────────────────┐
│  Claude Code / MCP Client                       │
│  ┌───────────────────────────────────────────┐  │
│  │ 1. Reads CLAUDE.md protection rules       │  │
│  │ 2. Calls get_file_decisions before edits  │  │
│  │ 3. Respects FROZEN / STABLE / OPEN        │  │
│  └───────────────────────────────────────────┘  │
└─────────────────┬───────────────────────────────┘
                  │ MCP (stdio)
┌─────────────────▼───────────────────────────────┐
│  wisegit MCP Server                             │
│  ┌──────────┐ ┌──────────┐ ┌─────────────────┐ │
│  │get_file_ │ │get_freeze│ │search_decisions │ │
│  │decisions │ │_score    │ │                 │ │
│  └────┬─────┘ └────┬─────┘ └───────┬─────────┘ │
└───────┼─────────────┼───────────────┼───────────┘
        │             │               │
┌───────▼─────────────▼───────────────▼───────────┐
│  SQLite (~/.wisegit/wisegit.db)                 │
│  ┌──────────────┐ ┌────────────┐ ┌───────────┐ │
│  │decision_events│ │freeze_scores│ │issue_     │ │
│  │(append-only) │ │(derived)   │ │enrichments│ │
│  └──────────────┘ └────────────┘ └─────┬─────┘ │
└────────────────────────────────────────┼────────┘
                                         │
┌────────────────────────────────────────▼────────┐
│  Issue Enrichment (wisegit enrich)              │
│  ┌─────────┐ ┌─────────┐ ┌──────────────────┐  │
│  │ GitHub  │ │ GitLab  │ │ Jira (planned)   │  │
│  │ REST API│ │ REST API│ │                  │  │
│  └─────────┘ └─────────┘ └──────────────────┘  │
└─────────────────────────────────────────────────┘

环境变量

变量默认值描述
WISEGIT_DB_PATH~/.wisegit/wisegit.dbSQLite数据库路径
GITHUB_TOKEN / GH_TOKEN-GitHub API令牌(5000请求/小时,60未经验证)
GITLAB_TOKEN-GitLab API代币用于问题丰富
OLLAMA_URLhttp://localhost:11434Ollama服务器URL(第2阶段)
OLLAMA_CHAT_MODELllama3意图提取模型(第2阶段)
OLLAMA_EMBED_MODELnomic-embed-text嵌入模型(第2阶段)

安全

  • 一切都在本地运行 -只有问题丰富才会进行出站API调用(通过 wisegit enrich)
  • 仅添加事件存储 --决策永远不会被删除,只会被添加
  • SQLite数据库 存储于 ~/.wisegit/wisegit.db --无网络暴露
  • MCP工具输入经过严格的Zod模式验证(路径遍历保护、长度限制)
  • 在返回MCP客户端之前,对错误消息进行了清理
  • 文件写入前检查符号链接
  • 仅使用分配的键解析配置文件(无原型污染)

路线图

  • \[x\] 第一阶段 --事件存储、AST分块、提交分类、意图提取、MCP服务器、CLI
  • \[x\] 第1.5阶段 --使用Won't Fix/By-Design检测问题丰富(GitHub、GitLab),冻结增强信号
  • \[x\] 第2阶段 --完全冻结分数:调用图+PageRank、理论差距检测(Naur死亡、遗忘模式)、共同变化信号、Aranda信号、Ollama客户端、Go+Rust支持
  • \[x\] 阶段4 --覆盖系统(强制原因、时间框到期、审计跟踪)、分支上下文保存(合并后挂钩、快照存储、恢复)
  • \[x\] A阶段 --共享团队知识层: .wisegit/ 包含JSONL文件的目录,用于丰富、覆盖、分支上下文和团队配置
  • \[x\] B阶段 --团队意识体现:理论持有者跟踪、风险水平(健康/脆弱/危急)、团队状态+健康命令
  • \[x\] 阶段C --AI时代的适应:提交来源检测(HUMAN/AI_REVIEWED/AI_UNREVIEWED)、来源加权冻结分数
  • \[x\] D阶段 --覆盖审批工作流、团队健康指标
  • \[x\] E阶段 --自适应淘汰校准:8个淘汰信号、熵校准权重、贝叶斯反馈、, wisegit calibrate 命令行界面

许可证

麻省理工学院

目录标签

目录标签

版本控制TypeScriptClaudeGit分析本地部署代码保护AI协作意图提取

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@sandip124/wisegit

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP