Gate

io.github.nugehs由 GitHub 帳號 nugehs 發布v0.3.0更新於 Oct 24, 2026

One ship/no-ship verdict from aiglare, bouncer, tieline & repoctx — the unified merge gate.

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

執行 aiglare、bouncer、tieline、repoctx 四項倉庫檢查,並把結果合併成一個正規化的「能否發布」結論交給助理。

可以做什麼
  • 取得某個倉庫統一的發布/不發布結論,可選用 only、skip、ci、strict 參數
  • 列出 gate 執行的四項檢查,以及各自所屬領域和回答的問題
  • 檢視正規化為 pass、warn、fail、unknown、skipped、error 的各領域狀態與阻擋原因
  • 透過命令列、CI 或編輯器擴充功能執行同一套閘門
適用情境
當倉庫已使用 nugehs 工具鏈中的部分或全部工具,並希望助理用一次呼叫回答「這次改動能否發布」,而不必分別執行四個工具再自行比對不同格式的結果時使用。
執行需求
以本機 stdio 程序執行,透過 npx 從 npm 套件 @nugehs/gate 啟動(需要 Node.js)。四個底層工具並未一併打包,執行時依序從 GATE_ _BIN 環境變數、已安裝的 @nugehs 套件或同層目錄的原始碼取得。未宣告任何身分驗證。
安裝前請注意
gate 會對倉庫執行四個底層工具,也就是執行第三方程式碼,並可能對被檢查的倉庫造成副作用。找不到的工具會被記為 skipped 而非失敗,而什麼都沒檢查的執行會回報 NO CHECKS RAN,因此設定錯誤可能看起來像乾淨結果。在本機執行時合併就緒度常顯示為 warn,因為無法在本機核實審查狀態。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Gate,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

gate

One ship/no-ship verdict from your whole nugehs toolchain.

[npm] [license: MIT] [node]

[gate demo]

gate runs aiglare, bouncer, tieline and repoctx against a repo and merges their four dialects into one normalized verdict. Each tool already answers a different "can this ship?" question — gate is the place they finally agree on the answer.

npx @nugehs/gate                      # audit the current reponpx @nugehs/gate ./service --ci       # fail the build on a blocking verdictnpx @nugehs/gate --json               # the unified verdict, machine-readable
        ┌──────────────────────────────────────────────┐        │                   gate                         │        │   one config · one verdict · one report        │        └──────────────────────────────────────────────┘            │            │            │            │        aiglare       bouncer      tieline      repoctx       red/amber/    pass/fail/   matched/     PASS/WARN/         green        unknown      drift         FAIL            │            │            │            │            └──── normalize to pass · warn · fail ─────┘                          │                  ✗ FAIL   ⚠ WARN   ✓ PASS

What it reports

  gate · /path/to/repo
  ✗  AI governance    fail      2 red · 1 amber · 13 green · 1 blocking side-effect  ·  Compliance       skipped   not configured (run `bouncer init`)  ·  Contract drift   skipped   not configured (run `tieline init`)  ⚠  Merge readiness  warn      1 of 8 checks need attention
  verdict: FAIL — 1 blocking · 1 warn · 2 skipped

Each tool's native result is normalized onto one status vocabulary:

StatusMeaning
passthe check ran and is clean
warnran, found something worth a look — not blocking
failran, found a blocking problem
unknownran, but couldn't determine — explicitly not a pass
skippednot applicable / not configured for this repo
errorthe tool couldn't be run, or returned garbage

The top-level verdict is the worst across the domains that actually ran (skipped never counts). unknown and error roll up to warn so nothing slips through as a silent pass.

How each dialect maps

ToolNative signal→ gate
aiglarea red surface on a side-effectful sinkfail; any red/amber → warn
bouncera fail finding (missing required control)fail; any unknown control → unknown
tielinedrift > 0 (FE call with no BE route)fail; unverifiable > 0 → warn
repoctxFAIL/BLOCK merge verdictfail; WARN → warn

gate runs aiglare without --ci and derives the blocking verdict itself, so a tool that process.exit()s before flushing its pipe can't truncate the report it feeds us.

A run that checked nothing is not a pass. If every domain is skipped or deselected (e.g. --skip them all, or a typo'd --only), gate reports NO CHECKS RAN (ok:false) and fails under --ci — a misconfiguration can't silently turn the gate green.

On repoctx + local mode. repoctx's merge-readiness gate can only verify review state (approvals, CODEOWNERS, required checks) against a host like GitHub. Run locally it reports those as a WARN, so on a clean local repo gate will often show merge readiness: warn. That's repoctx being honest about what it can't see locally — not a problem with your change.

CLI

gate [path] [options]
  --json            Emit the unified verdict as JSON  --ci              Exit non-zero when the gate fails (blocking by default)  --strict          Treat WARN/UNKNOWN as blocking too  --only <list>     Run only these tools (aiglare,bouncer,tieline,repoctx)  --skip <list>     Skip these tools  -h, --help        Show this help
gate mcp            Start the MCP server (stdio)

By default only a fail verdict blocks under --ci — safe to adopt without drowning a team in warnings. Add --strict when you want warnings to gate too.

Tool resolution

gate doesn't bundle the four tools; it finds each one at runtime. Per tool, first hit wins:

  1. GATE_<TOOL>_BIN environment variable (explicit override)
  2. the installed @nugehs/<tool> package (from node_modules)
  3. a sibling checkout at ../<tool> (local development)

A tool that can't be resolved is reported as skipped, never a hard failure — so gate is safe to run in a repo that only uses some of the toolchain.

In CI

yaml
- run: npx @nugehs/gate . --ci

For a machine-readable record, --json emits the full verdict (schema version, per-domain results, counts, and the blocking reasons) for dashboards or audit evidence.

MCP

gate is also an MCP server, so an agent can ask "can this ship?" in one call — the unified verdict, not four separate tools.

gate mcp                 # stdio JSON-RPC servernpx @nugehs/gate mcp

Tools:

ToolReturns
gate_checkthe unified verdict for a repo (path, optional only/skip/ci/strict)
list_checksthe four checks gate runs, each with its domain and what it answers

Registry manifest: server.json (io.github.nugehs/gate).

Editor extension

The same normalized verdict drives a VS Code / Cursor extension (clients/vscode) — the gates, shifted left from CI into the editor:

  • a verdict cockpit and a checks tree in gate's own Activity Bar container;
  • inline diagnostics, hovers, Quick Fixes (mute / open docs) and CodeLens on located findings;
  • AI-native gating — an @gate chat participant, a gate_check tool agent mode can call before it says "done", and an MCP server provider — so the assistant writing the code is checked by the same gate as CI;
  • debounced run-on-save with in-flight cancellation, and multi-root support.

Roadmap

gate is the shared spine. The same JSON already drives the CLI, the --ci gate, the MCP server, and the editor extension above. Next client on the same JSON:

  • Web cockpit — a repo/PR verdict board over the JSON, unifying the four *-web sites.

License

MIT © Oluwasegun Olumbe

來源:README.md,提交 bb9ca33

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.3.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分