New:Socket for Asana Is Now Available.Learn more
Sign In

arkgate

Package Overview
Dependencies
Maintainers
1
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arkgate

One architecture config. One check. One coach.

Source
npmnpm
Version
4.7.1
Version published
Weekly downloads
1.7K
58.36%
Maintainers
1
Weekly downloads
 
Created
Source

ArkGate — Architecture Co-pilot for AI TypeScript

One architecture config. One check. One coach.

Your AI writes most of the code. ArkGate keeps that work inside an architecture you can trust — and makes sure a “green” check means something real.

Website CI npm License: MIT Node TS 5–7

ArkGate 4.7.0 is on npm latest. Optional ArkRun extra on schema 1.2. A tree is adopted only with a required GitHub status running arkgate-check --strict-merge, or .ark/adoption-stance.json stance: "advisory-only". Doctor is compact (--doctor --all for Details). 4.7.0 notes · 4.6.7 · 4.6.6 · Docs hub · Product voice

Choose your path

You are…Go here
Anyone (ship with AI, minimal jargon)Use ArkGate
Developer (hosts, CI, config, brownfield)Develop with ArkGate
Contributor (improve this library)CONTRIBUTING

Full map: docs/README.md

Start in one minute

npm install -D arkgate typescript
npx arkgate start                 # preview files + commands
npx arkgate start --apply         # compact contract + host router + CI plan
npx arkgate-check --doctor        # control plane: status light + primary next action
npx arkgate-check --doctor --all  # encyclopedia (Details)

That is the product. Doctor is the control plane — when stuck, do primary next action #1. JSON still carries improvement compass and coach (not a score). Compact human output does not.

start → doctor (+ compass) → /ark-adopt (session 0) → day-to-day /ark-place
                         ↘ /ark-explore then /ark-autopilot when leftover design remains

Teams: keep the constitution out of product PRs. Local gate ark-check --changed --base origin/dev. Steward law PRs use --contract-session.

Aliases ark / ark-check / ark-mcp still work. npm / pnpm / yarn. No install lifecycle scripts.

Write gate: agent blocked, then self-corrects

What it is

A machine-readable architecture file (ark.config.json) plus enforcement:

WhenTool
While the AI writesPre-write block on supported hosts; warning only elsewhere
Before mergearkgate-check as a required CI status

Two planes (4.0)

PlaneWhat it guardsConfig
Layers (always)Who may import whom — imports, placement, purity, isolationark.config.json layers + rules
ArkRules (opt-in; structure rules inside a layer)Habits inside a layer — structure sensors + domain invariants as dataarkRulesarkrules/<Layer>.json
ArkRun (opt-in extra)Kernel usage + complete declarationsarkRun on schema 1.2

Absence of ArkRules or ArkRun changes no inter-layer verdict. Label residual [Layer] vs [ArkRules].
Details: configuration · use path.

Not a web framework, ORM, or job runner. Optional ArkRun extra and companion kernel (@arkgate/runtime) are separate and not required for the gate. In-memory stores are not production durability.

Name note: npm package arkgate — not affiliated with the separate Archgate CLI project.

When not to adopt

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. In those cases 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.

Status lights (not settings)

LightMeansYour move
SuggestThin / new treeFinish start → doctor
AdaptNot fully protectedDoctor action #1
EnforceHonest import edges, and no new UI business-rule files vs merge-baseKeep write path + CI
Enforce · design-weakEdges clean; design residual remainsShape residual — not “done”

Details: docs/use.md.

Host enforcement support

HostLocal write boundaryMCP validationCI / merge pathRepair payload
Claude CodeHard block for listed ops (PreToolUse Write / Edit / MultiEdit) when installed + trustedAdvisory; the agent must call itRequired 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 BuildHard block for listed ops (PreToolUse write / search_replace (plus aliases)) when installed + trustedAdvisory; the agent must call itRequired 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 AntigravityHard block for listed ops (PreToolUse write_to_file / replace_file_content / multi_replace_file_content) when installed + trustedAdvisory; the agent must call itRequired GitHub status context running arkgate-check --strict-merge (alias ark-check)Emitted on hook deny; host must re-inject (hard path when installed + trusted)
CursorHard block for listed ops (preToolUse Write / StrReplace) when installed + trustedAdvisory; the agent must call itRequired GitHub status context running arkgate-check --strict-merge (alias ark-check)Envelope may emit (--hook-repair); reinjection not guaranteed
OpenAI CodexHard block for listed ops (PreToolUse apply_patch in Codex CLI and local ChatGPT Desktop/App Server) when installed + trustedAdvisory; the agent must call itRequired GitHub status context running arkgate-check --strict-merge (alias ark-check)Envelope may emit (--hook-repair); reinjection not guaranteed
OpenCodeAdvisory / best-effort at write (MCP + optional plugin; not a hard boundary)Advisory; the agent must call itRequired GitHub status context running arkgate-check --strict-merge (alias ark-check)No hard-boundary payload

Read the CI column: for every host, the repository-wide hard guarantee is a required GitHub status context that runs the CLI — not “CI file present,” and not the CLI binary name alone. Codex hard write covers only a complete local apply_patch; Cursor covers only listed preToolUse ops. In both cases the project hook must be installed + trusted, while shell/direct filesystem writes, hosted or specialized opt-out paths, and human edits still rely on CI.

This table describes the supported profile after its files are installed and the host loads/trusts them. A hard local boundary covers only the listed hook operations; alternate tools, direct filesystem writes, and human edits still rely on CI. MCP validation is advisory because the agent must call it. The CI check blocks a merge only when the repository makes that status required. Repair envelopes may be emitted without reinjection being guaranteed; silent auto-apply never happens. Run arkgate-check --doctor (or ark-check --doctor) for the evidence actually detected in the current repository.

Why the hard guarantee lives at the merge gate

The split above is a deliberate trade-off, not a gap. ArkGate validates at the earliest boundary each host offers and enforces at the earliest boundary a repository can make non-bypassable: the required merge status. Hard hooks (Claude Code, Grok Build, Google Antigravity, Cursor, and Codex’s complete local apply_patch) deny their listed write operations at write time; advisory surfaces (MCP, rules, OpenCode plugins) coach the agent while it works. But any local boundary can be routed around — another tool, a hosted/specialized path, a direct filesystem write, or a human edit — so the only guarantee ArkGate claims for every path is the arkgate-check --strict-merge check, and only when the repository makes that status required. Local checks optimize feedback speed; the merge gate owns correctness.

A useful consequence: the contract doubles as a pressure sensor. Recurring violations or baseline exceptions concentrated on one layer edge are evidence that the current design stopped fitting the code — a reason to reshape the contract deliberately (start with /ark-explore), never to weaken the gate.

Setup per host: docs/ai-gates.md · Develop path: docs/develop.md

For authoritative MCP contract evidence, call ark_identity with the exact project root, then call ark_manifest with that root plus the returned project id. A contained descendant requires the matching id. The legacy ark://manifest resource remains compatibility-only and always unverified/non-authoritative because standard resources/read cannot portably carry that expectation.

Why not only ESLint / Nx / cruiser?

ArkGateTypical boundary linter
CI import rules
Hard-block AI writes on supported hosts
Project-bound contract agents can read (ark_manifest)
Placement + preflight for multi-file changes
Honest governed % + dual plan (edges vs shape)
Opt-in intra-layer ArkRules (structure + invariants)
Incomplete analysis cannot look greenvaries

Common commands

npx arkgate start --apply
npx arkgate status --json          # session/project snapshot (identity, activation, last check)
npx arkgate-check --doctor
npx arkgate-check --plan
npx arkgate-check --coverage
npx arkgate-check --strict-merge   # CI / required status
npx arkgate-check --install-agent-gates --tools claude,cursor,codex,grok
# optional: refresh shared home skills (Claude/Grok/Codex; never downgrades)
# npx arkgate-check --install-agent-gates --skills-only --agent-homes --force
# optional: same 13 skills via Agent Skills ecosystem (no new names)
# npx skills add ./node_modules/arkgate/templates/agent-skills

More: docs/develop.md · skills install: docs/agent-guide.md · enthusiast track: docs/enthusiast/

Optional ArkRun kernel

Gates need no app runtime. The experimental ArkRun companion (@arkgate/runtime) is separate and is not a production-readiness claim. createStrictArkKernel is the factory: each call creates an isolated instance (no process-wide singleton). Managed components declare uses / reactsTo / raises / sends; getDependencyInformationPackage() is a JSON snapshot and never leaks factories. requestGraph() slices that snapshot into process or technical graphs (nodeIds, degreesOfSeparation, include/exclude query) with a Mermaid helper. send() is local / localBlocking / broker (broker falls back to in-process local; ephemeral defaults true; no cloud SDKs in the package). Opt-in startInspector() binds 127.0.0.1, refuses NODE_ENV=production, and lazy-loads HTTP for JSON snapshots, SSE, and /graph. The kernel is not bundled in the arkgate tarball.

Durability stance

Default stores (InMemoryEventBuffer, InMemoryAuditStore, InMemoryReadModelStore, InMemoryWorkflowStore) are reference in-memory only — fine for tests and demos; they do not survive restarts and are not production durability. Implement the store interfaces for real systems. Details: docs/production-hardening.md.

Documentation

AudienceLink
Docs hubdocs/README.md
Anyonedocs/use.md
Developers integrating ArkGatedocs/develop.md
Contributors to this libraryCONTRIBUTING.md
Host install detaildocs/ai-gates.md
Config · package surface · TSconfiguration · package-surface · typescript-support
Brownfielddocs/brownfield-adoption.md
SecuritySECURITY.md
Current published (4.7.0 on npm latest)docs/releases/4.7.0.md · CHANGELOG
Prior published (4.6.7)docs/releases/4.6.7.md
Prior published (4.6.6)docs/releases/4.6.6.md
Prior published (4.6.5)docs/releases/4.6.5.md
Prior published (4.6.3)docs/releases/4.6.3.md
Prior (4.6.2)docs/releases/4.6.2.md
Prior (4.6.1)docs/releases/4.6.1.md
Prior (4.6.0)docs/releases/4.6.0.md
Prior (4.5.7)docs/releases/4.5.7.md
Prior (4.5.0)docs/releases/4.5.0.md
Prior (4.4.0)docs/releases/4.4.0.md
Prior (4.3.0)docs/releases/4.3.0.md
Prior (4.2.1)docs/releases/4.2.1.md
Previous (4.2.0)docs/releases/4.2.0.md
Previous (4.1.1)docs/releases/4.1.1.md
Previous (4.1.0)docs/releases/4.1.0.md
Previous patch (4.0.1)docs/releases/4.0.1.md
Previous (4.0.0)docs/releases/4.0.0.md
Previous (3.9.2)docs/releases/3.9.2.md
History / maintainer evidencedocs/archive/

Contribute to this library

git clone https://github.com/pedroknigge/arkgate
cd arkgate && npm ci && npm run build
npm test && npm run check:architecture

Full guide: CONTRIBUTING.md · queue: ROADMAP.md

Website: arkgate.online · npm: arkgate
MCP: io.github.pedroknigge/arkgate
Node ≥ 18 · MIT

Ark doesn’t invent your product. It keeps AI-generated TypeScript inside an architecture you can trust — and tells you when it isn’t really enforcing anything yet.

Keywords

arkgate

FAQs

Package last updated on 25 Aug 2026

Related posts