GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
PR blast radius and 0-1 risk score from git history, so low-risk PRs can be auto-approved.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"opendrs": {
"command": "npx",
"args": [
"-y",
"@error-path/opendrs",
"mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
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"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"opendrs": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@error-path/opendrs",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub error-path ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.5.0) เข้า registry 14 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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 |
| [
ตัดมาแค่ช่วงต้น อ่านต่อใน repo