ArkGate
4.8.21

Published

Daily accumulate.

ArkGate 4.8.21 is published. Current is 4.8.25. Accumulates #319, #320, #318, #316, #317, #306, and #315. No config migration, but two behavior changes can turn a green repo or a script red. That is Contener · Guiar · Ordenar.

Upgrade

Install 4.8.21

npm install -D arkgate@4.8.21
npx arkgate upgrade --json
npx arkgate-check --doctor

Current is 4.8.25 on npm latest. Install that unless you need this patch pinned. No schema bump. Read the coverage and upgrade exit-code notes below before you upgrade.

What shipped

Coverage means a test title. Upgrade tells the truth.

Behavior change: a mention is not coverage (#319)

A comment, a string, a test body, or an import that merely mentions an invariant id no longer counts as coverage. Only a describe / it / test title does. Repos that were green that way will turn red. One-line fix: move the id into the it() title. coverage.symbol accepts type, interface, and enum again, and INVARIANT_UNCOVERED says what it found.

Behavior change: upgrade exit 3 (#320)

arkgate upgrade --apply reports one outcome. Exit 3 means applied but red, so scripts that compare against exit 1 must compare non-zero. JSON names the failing rules and the behavior changes to read first. A missing gitignored per-machine file (such as .mcp.json) is recreated without consent.

Optional sliceIdentity: "stars" (#318)

A per-rule sliceIdentity of stars names a starred sliceFolders slice by its last literal plus the star bindings, so parallel trees share one id. Absent or path keeps today’s ids byte for byte. Doctor warns when two prefixes collapse onto one id.

Grouped SHARED_IMPORTS_SLICE output (#316)

Human ark-check prints one line per rule and layer edge (count plus three examples) instead of one line per import. --json and doctor still list every edge.

Pilot loop sees reshape pilots (#317)

Doctor pilotLoop turns on whenever a pilot is proposed, including a physical-cohesion reshape card. It still names one extraction card at a time.

One-minute README and docs fixes (#306, #315)

The README first screen is what, why, one command, and one honest red check. The 4.8.20 notes now state their behavior change, and starred slice id wording matches the code.

Honesty

What stayed the same.

Import rules still hold at write and at merge. Required CI is still the hard line. Cursor, Grok, and Claude can block listed writes when hooks are trusted.

Maintainer source: CHANGELOG.md ↗