Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
One ship/no-ship verdict from aiglare, bouncer, tieline & repoctx — the unified merge gate.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"gate": {
"command": "npx",
"args": [
"-y",
"@nugehs/gate",
"mcp"
]
}
}
}在终端中运行这条命令
claude mcp add gate -- npx -y @nugehs/gate mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"gate": {
"command": "npx",
"args": [
"-y",
"@nugehs/gate",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"gate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@nugehs/gate",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 nugehs 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.3.0)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Tools MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Web production tools for AI agents: contrast, JP text, WebP, JSON-LD, slugs, dates and 40+ more
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
One ship/no-ship verdict from your whole nugehs toolchain.
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 repo
npx @nugehs/gate ./service --ci # fail the build on a blocking verdict npx @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
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:
| Status | Meaning |
|---|---|
pass | the check ran and is clean |
warn | ran, found something worth a look — not blocking |
fail | ran, found a blocking problem |
unknown | ran, but couldn't determine — explicitly not a pass |
skipped | not applicable / not configured for this repo |
error | the 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.
| Tool | Native signal | → gate |
|---|---|---|
| aiglare | a red surface on a side-effectful sink | fail; any red/amber → warn |
| bouncer | a fail finding (missing required control) | fail; any unknown control → unknown |
| tieline | drift > 0 (FE call with no BE route) | fail; unverifiable > 0 → warn |
| repoctx | FAIL/BLOCK merge verdict | fail; WARN → warn |
gate runs aiglare without
--ciand 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.
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 Run only these tools (aiglare,bouncer,tieline,repoctx) --skip 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.
gate doesn't bundle the four tools; it finds each one at runtime. Per tool, first hit wins:
GATE_ _BIN environment variable (explicit override)@nugehs/ package (from node_modules)../ (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.
- 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.
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 server
npx @nugehs/gate mcp
Tools:
| Tool | Returns |
|---|---|
gate_check | the unified verdict for a repo (path, optional only/skip/ci/strict) |
list_checks | the four checks gate runs, each with its domain and what it answers |
Registry manifest: server.json (io.github.nugehs/gate).
The same normalized verdict drives a VS Code / Cursor extension (clients/vscode) — the gates, shifted left from CI into the editor:
@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;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 sites.MIT © Oluwasegun Olumbe