GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
PR blast radius and 0-1 risk score from git history, so low-risk PRs can be auto-approved.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"opendrs": {
"command": "npx",
"args": [
"-y",
"@error-path/opendrs",
"mcp"
]
}
}
}在终端中运行这条命令
claude mcp add opendrs -- npx -y @error-path/opendrs mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"opendrs": {
"command": "npx",
"args": [
"-y",
"@error-path/opendrs",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"opendrs": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@error-path/opendrs",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 error-path 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.5.0)于14天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A calibrated 0-1 risk score for every pull request, so AI-reviewed, low-blast-radius PRs can be auto-approved into the merge queue while risky ones still wait for a human.
AI agents now write and review code faster than people can read it, so human review has become the bottleneck. Most pull requests are low risk, and a few cause most incidents. opendrs measures each PR's blast radius and risk: what the change touches, how many files depend on it, the history of the files it changes, author experience, missing tests and critical paths. It turns that into a 0-1 score using signals from your own git history. A team then sets a policy. For example, a PR that scores below 0.3 and has passed an AI review (Claude, CodeRabbit, Copilot or any check run) is approved and sent to the merge queue or auto-merge. Riskier PRs still wait for a human. The approach follows Meta's Diff Risk Score (DRS); opendrs is an independent, open-source implementation that runs in any git repository, with no service to host.
Contents: Install · Quick start · How it works · Features · Results · CLI and MCP · Documentation · Limitations · Compared with other tools · Prior art
| Use it as | Command | Details |
|---|---|---|
| GitHub Action | uses: error-path/opendrs@v0 (Marketplace) | Comments, labels and, optionally, approves and merges. GitHub Action reference |
| CLI | npx @error-path/opendrs score | CLI, MCP server, Claude Code plugin and agent skill |
| MCP server (any agent) | npx -y @error-path/opendrs mcp | Tools: score_diff, explain_file_risk, list_hotspots, suggest_reviewers |
| Claude Code plugin (skill plus MCP server) | /plugin marketplace add error-path/opendrs, then /plugin install opendrs@opendrs | |
| Agent skill (Claude Code, Cursor, Codex and others) | npx skills add error-path/opendrs | skills/opendrs/SKILL.md |
| Docker (MCP server over stdio) | docker build -t opendrs . && docker run -i --rm -v "$PWD:/repo" opendrs | Mount the repository to score at /repo |
Website and guides: error-path.github.io/opendrs.
Score your current branch against the default branch. No configuration or API key is needed:
npx @error-path/opendrs score
You get a score, a tier (green, yellow or red), the signals that drove it with their evidence, and the policy decision. --json prints the full result, and --fail-above 0.6 makes the command exit 1 above a threshold.
To score every pull request, add .github/workflows/opendrs.yml (or run npx @error-path/opendrs init):
name: opendrs
on: pull_request: types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] permissions: contents: read pull-requests: write checks: read jobs: opendrs: runs-on: ubuntu-latest steps:
This only comments and labels. Approval is off until you turn it on in .opendrs.yml on your default branch; see how to auto-approve low-risk PRs and the GitHub Action reference.
flowchart LR
diff["git diff merge-base...head"] --> signals hist["git history"] --> signals imports["import graph"] --> signals llm["LLM judge (optional)"] --> signals signals["Signals each with evidence and provenance"] --> model["Logistic model score = sigmoid(b + Σ w·x)"] model --> tier["Tier green / yellow / red"] tier --> policy["Policy blocks, size cap, unknowns, AI review, sampling"] policy --> decision["auto-approve deferred-review waiting-ai-review human-review"]
observed, derived, inferred or unknown) and the evidence behind it. All signalsw·x is reported, so you can see why a PR scored what it did. Out of the box the weights are hand-set priors; opendrs calibrate fits them to your repository. Calibration and backtestingA PR now often gets two rounds of AI review before a human looks at it. Those rounds catch local defects: typos, missing null checks, an obvious off-by-one. By the time a human opens the PR, that work is done, and what is left is a design and architecture judgment call made with less context than before. opendrs is built for that moment: it tells the final human how much attention the PR needs and names up to five architecture and history facts — a new import between modules, a broken public contract, a file that usually changes with one the PR didn't touch — that neither the editor nor the AI review comments showed. See the captain brief.
| Feature | What it does | Default | Docs |
|---|---|---|---|
| Risk signals | Size, spread, file history, author experience, complexity, blast radius, critical paths, tests, language | on | Signals |
| Calibration and backtest | Fit the weights to your history and measure capture at 5 / 10 / 50 % gated | run on demand | Calibration |
| Hard blocks and safety rails | Blocked paths, binaries, submodules, self-modification guard, sampling, stale-approval checks | on | Policy |
| Auto-approval | Approve green PRs after your AI review passes, then auto-merge or the merge queue | off | Auto-approve guide |
| LLM judge | Classifies every hunk into safe or risk categories; can only raise the score | off | LLM judge |
requireSafe gate | Auto-approve only when the judge calls every hunk safe with enough confidence | off | LLM judge |
| Per-source policy | Human, bot or AI-agent PRs get their own stricter green, daily cap and track record | off | Policy |
| Deferred review | A PR just above green lands now and gets a post-merge review | off | Policy |
| Landing delay | An eligible PR waits before approval, so a human can veto | off | Policy |
| Freeze windows | Suspend or tighten auto-approval on weekends or peak dates | off | Policy |
| Content blocklist | Regexes on added lines send a PR to a human | off | Configuration |
| Reviewer assignment | One of the top three experts is asked to review risky PRs | on in the Action | Policy |
| Hotspots | Rank files by risk at rest | run on demand | CLI and MCP |
| Review brief | Ranks hunks to read first, fixed check questions, safe-to-skim list, hard-rule reasons — recipes for claude-code-action, Bugbot, CodeRabbit (limited), Copilot and Codex (paste) | on | LLM reviewers, CLI and MCP |
| Pre-PR self-check | Lists the ids an author agent should fix or explain before opening the PR; opendrs reads the verdicts back from the head commit and adds one advisory line, never part of the gate | off | Self-check recipe |
| Verification pass | One batched LLM call re-checks every captain fact, review-first hunk and check with fresh context and keeps, drops or downgrades each one; never changes the score, tier or policy | off | Verification pass |
| Incident feedback | opendrs feedback records incidents for calibration | run on demand | Calibration |
Every setting lives in .opendrs.yml, read from the base branch so a PR cannot loosen its own gate: configuration reference.
| Benchmark | Result | Details |
|---|---|---|
ApacheJIT (15 Apache Java projects, official 2017–2019 test years, apache/hadoop left out because it has no positive labels) | Calibrated opendrs: AUC 0.823; catches 67 % of buggy commits in its riskiest 30 %, on par with a regression on the classic JIT metrics (0.821, 66 %) | Results on ApacheJIT |
| ApacheJIT with the LLM judge (Claude Sonnet 5, 800 sampled test commits) | At confidence 8, the commits the judge calls all-safe are buggy at 5.3 %, against a 25.5 % base rate | With the structured LLM judge |
| 27 public repositories (calibrate, then backtest) | Calibration beat the default priors on held-out commits in all nine repositories of the first run | Benchmark results |
| Command | What it does |
|---|---|
opendrs score | Score merge-base(base, head)..head |
opendrs explain | A file's history, fixes, authors, dependents and path policy |
opendrs hotspots | Rank files by risk at rest |
opendrs calibrate / opendrs backtest | Fit the model to your history; compare default and calibrated models |
opendrs feedback | Record an incident in .opendrs/incidents.jsonl |
opendrs init | Write a commented .opendrs.yml and a comment-only workflow |
opendrs mcp | Run the MCP server |
Flags, exit codes, MCP tools and the agent skill: CLI, MCP server, Claude Code plugin and agent skill.
| Page | Read it when you want to |
|---|---|
| Auto-approve low-risk PRs | set up a risk-based approval gate step by step |
| GitHub Action reference | look up inputs, outputs, permissions, branch rules and the scheduled sweep |
| Policy and safety rails | know exactly why a PR was or was not approved |
| Configuration reference | change .opendrs.yml |
| Risk signals | see what opendrs measures and how |
| What is the blast radius of a PR? | understand blast radius |
| LLM judge | turn on the optional LLM judge or the requireSafe gate |
| Feeding the review brief to an LLM reviewer | get opendrs's findings in front of Claude Code, claude-code-action, Bugbot, CodeRabbit, Copilot or Codex |
| The captain brief | know what the final human reviewer sees: priority, reviewer, and the architecture and history facts |
| Verification pass | turn on an LLM re-check of the brief's facts before a human reads them |
| [
只显示了开头部分;其余内容请在仓库中阅读