Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
When the agent writes a bad import, the write doesn’t land. The same check fails the pull request.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"arkgate": {
"command": "npx",
"args": [
"-y",
"arkgate",
"mcp",
"--root",
"."
]
}
}
}Ejecuta esto en tu terminal
claude mcp add arkgate -- npx -y arkgate mcp --root .Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"arkgate": {
"command": "npx",
"args": [
"-y",
"arkgate",
"mcp",
"--root",
"."
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"arkgate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"arkgate",
"mcp",
"--root",
"."
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub pedroknigge, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (4.8.24) llegó al registro hace 38 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, AvaHR
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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.
Read hiring data and create inactive assessment and questionnaire drafts for human review.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
When the agent writes a bad import, the write doesn’t land. The same check fails the pull request.
ArkGate is import rules for AI-written TypeScript. Contener · Guiar · Ordenar: contain what the AI may write, and in what shape. Guide the next step. Order leftover mess toward a clean tree, a little at a time.
AI takes the shortest path. One bad import lands, then another, and the product gets harder to change. A linter that runs only after the agent finishes sees the mess too late.
Design the boundary before you implement. Put a small interface in front of the work and keep the detail behind it. When leftover mess remains, the honest light is needs a refactor. Weakening the rules to paint the check green leaves that design unfinished.
One command. Preview only — no files change. Current release is 4.8.31 (check npm latest with npm view arkgate version):
npx arkgate@4.8.31 start
After a rules file exists, a domain file that imports infrastructure fails the check (exit 1). This is real output from arkgate-check on arkgate@4.8.20:
✖ LAYER_IMPORT_VIOLATION src/domain/order.ts:1
DomainModel → Infrastructure (src/infra/db.ts) DomainModel must not import Infrastructure. Next action: Classify the import: if it is constants/types/pure, adopt into DomainModel or SharedKernel; define a port only if the target is a real use-case. Then preflight again.
✖ 1 violation(s).
Do that next action. Classify the import, or introduce a port when the dependency is a real use case. Then run the check again.
That red line is the check. It does not stop every write. On Cursor, a hook without failClosed: true is fail-open: if the checker cannot run, the write still lands. Shell writes, hosted tools, and human edits are outside the local hook. The hard line for every path is a required GitHub status running arkgate-check --strict-merge. Until that status is required, the rules file is just documentation.
Anyone: Use ArkGate · Developers: Develop · This library: CONTRIBUTING
The minute above is the product. Below is reference: the longer introduction, what this is not, hosts, commands, extras, and where release history lives.
| You are… | Go here |
|---|---|
| Anyone (ship with AI, minimal jargon) | [Use ArkGate](docs/use.md) |
| Developer (hosts, CI, config, brownfield) | [Develop with ArkGate](docs/develop.md) |
| Contributor (improve this library) | [CONTRIBUTING](CONTRIBUTING.md) |
Full map: [docs/README.md](docs/README.md)
AI can build fast—and make a mess just as fast.
Keep the product easy to understand, change, and trust.
Contain what the AI may write, and in what shape. Guide you with proven patterns and one next step. Order leftover mess toward a clean tree, a little at a time.
Safer changes, fewer surprises, and extra protection only when you choose it.
That is Contener · Guiar · Ordenar.
Not an API Gateway. Not a folder linter. If the check is not required on the PR, the config is just documentation.
ArkGate is not a web framework, ORM, or job runner. The npm package is arkgate — not affiliated with the separate Archgate CLI project.
ArkRun is an optional experimental runtime. In-memory. Not Postgres. @arkgate/runtime is deprecated. ArkOrder does not replace import rules: layers can be green while the agent still rewrites the billing plan like a seat count.
src/domain/order.ts
│ import { db } from "../infra/postgres" ▼ ┌──────────────────────────────────────────┐ │ CHECK │ │ Domain ─✕─▶ Infrastructure │ │ write doesn't land · PR check fails │ └──────────────────────────────────────────┘
When the agent writes a bad import, the write doesn’t land. The same check fails the pull request. That is ArkGate — import rules, always on once you adopt (Contener). The other three are optional.
| Role | When | |
|---|---|---|
| While the agent writes | The write doesn’t land on supported hosts; warning only elsewhere | Always (ArkGate) |
| Before merge | arkgate-check as a required CI status | Always (ArkGate) |
| ArkRules | Optional policies *inside* a layer (Contener — shape) | When you ask |
| ArkRun | Optional experimental runtime (arkgate/runtime) (Guiar) | Off unless you turn it on |
| ArkOrder | Extra for the few big choices — billing plan, not seat counts (arkgate/order) (Ordenar) | Off unless you turn it on |
Layers (who may import whom) always run. ArkRules, ArkRun, and ArkOrder change no inter-layer verdict when absent. Label leftovers `[Layer]` vs `[ArkRules]` vs `[ArkRun]` vs `[ArkOrder]`. Details: configuration · use.
┌─────────┐ ┌─────────┐ ┌─────────┐
│ WRITE │────▶│ CHECK │────▶│ SHIP │ │ agent │ │ block │ │ merge │ └─────────┘ └────┬────┘ └─────────┘ │ ▼ bad import doesn't land
Adopted means a required GitHub status running arkgate-check --strict-merge, or an explicit advisory-only stance. Status is compact (arkgate-check --doctor; --all for details).
ArkGate is overkill for small trees with no AI agents and no multi-layer boundaries, for single-developer hobby CRUDs under no integration pressure, and for teams that will not maintain ark.config.json or a required CI status running arkgate-check --strict-merge. Without that status the rules file is just documentation — stay with a boundary linter alone (see Why not only ESLint / Nx / cruiser?). Anyone path: docs/use.md — When not to adopt. Limits of a green check: 4.3.0 — What ArkGate is / isn't.
[ Setup ] ──▶ [ In progress ] ──▶ [ Ready ]
│ └── Ready · needs a refactor
| Light | Means | Your move |
|---|---|---|
| Setup | Thin / new tree | Finish start → status |
| In progress | Not fully protected | Status action #1 |
| Ready | Honest import edges, and no new UI business-rule files vs merge-base | Keep write path + CI |
| Ready · needs a refactor | Edges clean; leftover design work remains | One small change — not “done” |
Details: docs/use.md.
npx arkgate start # preview files + commands
npx arkgate start --apply # compact config + host router + CI plan npx --package=arkgate arkgate-check --doctor # status — one next step npx --package=arkgate arkgate-check --doctor --all # full details
start --apply pins arkgate with this repo's package manager (pnpm add -w / yarn add -W at a workspace root). Do not run npm install -D arkgate at a workspace:* root — npm rejects that protocol. After a local install, npx arkgate-check --doctor also works. arkgate-check is a command in the arkgate package, not its own npm package. If pnpm Age (minimumReleaseAge) blocks a brand-new release, keep using npx --package=arkgate@ — do not re-run the same add. Put arkgate on minimumReleaseAgeExclude in pnpm config or pnpm-workspace.yaml (a CLI flag is not enough), or wait until the package is mature.
start --apply refuses when projected governed coverage is below 50% or shape confidence is weak (below 0.6 with coverage under 80%), or when the planned write is too big for compact start (more than 8 gate files or 32 KB). That lock is deliberate. Coverage/shape: lock with --archetype , --preset , or --force. Size: --force does not unlock. Next: npx arkgate-check --init. Or inspect ranked shapes with npx arkgate-check --recommend.
That is the fuller path. Stuck? Run status (--doctor) and do action #1.
start → doctor → new files in the right folder
↘ leftover mess: map, then one small refactor
Keep the rules file out of product PRs. Local check: ark-check --local --base origin/dev (same as --changed; refused with --strict-merge). Changing the rules themselves uses --contract-session.
Aliases ark / ark-check / ark-mcp still work. npm / pnpm / yarn. No install lifecycle scripts — and none on pack or prepare either, so pnpm add git+https://github.com/pedroknigge/arkgate installs at a pinned commit with no allowBuilds entry. A git install gives you the CLIs and the schemas; the library, MCP and ESLint entry points live in the built dist/ and come from npm. See docs/package-surface.md.
| Host | Local write boundary | MCP validation | CI / merge path | Repair payload |
|---|---|---|---|---|
| Claude Code | Hard block for listed ops (PreToolUse Write / Edit / MultiEdit) when installed + trusted | Advisory; the agent must call it | Required GitHub status context running arkgate-check --strict-merge (alias ark-check) | Emitted on hook deny; host must re-inject (hard path when installed + trusted) |
| Grok Build | Hard block for listed ops (PreToolUse write / search_replace (plus aliases)) when installed + trusted | Advisory; the agent must call it | Required GitHub status context running arkgate-check --strict-merge (alias ark-check) | Emitted on hook deny; host must re-inject (hard path when installed + trusted) |
| Google Antigravity | Hard block for listed ops (PreToolUse write_to_file / replace_file_content / multi_replace_file_content) when installed + trusted | Advisory; the agent must call it | Required GitHub status context running arkgate-check --strict-merge (alias ark-check) | Emitted on hook deny; host must re-inject (hard path when installed + trusted) |
| Cursor | Hard block for listed ops (preToolUse Write / StrReplace) when installed + trusted | Advisory; the agent must call it | Required GitHub status context running arkgate-check --strict-merge (alias ark-check) | Envelope may emit (--hook-repair); reinjection not guaranteed |
| OpenAI Codex | Hard block for listed ops (PreToolUse apply_patch in Codex CLI and local ChatGPT Desktop/App Server) when installed + trusted | Advisory; the agent must call it | Required GitHub status context running arkgate-check --strict-merge (alias ark-check) | Envelope may emit (--hook-repair); reinjection not guaranteed |
| OpenCode | Advisory / best-effort at write (MCP + optional plugin; not a hard boundary) | Advisory; the agent must call it | **Required GitHub
Solo se muestra el principio; lee el resto en el repo