ArkGate
4.8.4

Current

Current is 4.8.4. The gate stops saying green over nothing.

Patch over 4.8.3, from a field test on a 4511-file repository. Several answers described ArkGate’s own limits as facts about your code — and three of them said green over nothing at all. A false warning is annoying and visible. A false green is what CI believes. No required config migration.

Upgrade

Get 4.8.4

npm install -D arkgate@4.8.4
npx arkgate upgrade --apply
npx arkgate-check --install-agent-gates --skills-only --force
npx arkgate-check --doctor

Restart Codex / Claude / Cursor / Grok after the skill refresh. Restart Ark MCP so the process version matches the pin.

What changed

What 4.8.4 changes.

Coverage stops certifying tests nothing runs

ArkGate reads no runner config, so coverage could report zero uncovered over tests no runner executes. Declare where your tests run with coverage.coverageRoots. A covering test outside them is named, and cannot support a promotion. ArkGate still executes nothing.

An empty analysis refuses

A config whose globs matched nothing printed a passing verdict and exit 0. ANALYSIS_COVERS_NO_FILES now refuses instead. Greenfield with no source still passes — running init before the code is a real flow.

See the path inside a string

--path-drift finds repo paths living in strings, comments and docstrings — where a rename compiles green and lies afterwards. Anchored on the rename it proposes the replacement and can --write it.

Promotability before you pay for a run

--sensors lists every sensor with its mode and whether it can ever be enforced. --promote prices every rule in one run instead of one full run per attempt.

The wall enforces your design

peerIsolation denied on missing evidence, so shared code outside a slice read as a violation. Declare it: sharedRoots for roots that are shared on purpose, allowedCrossSlice for one directed edge. Undeclared slices still deny, and the denial now names its reason.

A green run names what it did not check

Passing now points at --plan when design bets are still open. Installing from git no longer needs a build allowlist entry.

Honest limits

What this release does not claim

  • Discards are counted, not eliminated. coverage.maxFiles bounds what is kept, not what is read, and the message says so.
  • The unanchored path sweep is opt-in: on a real repository most of its candidates are illustrative prose. The count always prints.
  • no-anemic-model and types-only stay permanently unpromotable by construction.
  • No new skill names or scores. Does not close the parked claim-gate residual.
  • Companion @arkgate/runtime stays deprecated.

Maintainer source: docs/releases/4.8.4.md ↗