io.github.nugehs/gate

Registre officiel Autres

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

Que pouvez-vous faire avec io.github.nugehs/gate ?

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

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package @nugehs/gate
Claude Code
claude mcp add gate -- npx -y @nugehs/gate@0.3.0 mcp
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "gate": {
            "command": "npx",
            "args": [
                "-y",
                "@nugehs/gate@0.3.0",
                "mcp"
            ]
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. gate
  2. What it reports
  3. How each dialect maps
  4. CLI
  5. Tool resolution
  6. In CI
  7. MCP
  8. Editor extension
  9. Roadmap
  10. License

gate

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

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

- 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 server
npx @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

Questions fréquentes

Qu'est-ce que io.github.nugehs/gate ?

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

Comment installer io.github.nugehs/gate ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add gate -- npx -y @nugehs/gate@0.3.0 mcp. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour io.github.nugehs/gate ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

io.github.nugehs/gate est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient io.github.nugehs/gate ?

Il est publié par nugehs. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.