ArkGate 4.1.0
- Status: prepared (not published to npm yet)
- npm (when published):
arkgate@4.1.0 - Git tag (when published):
v4.1.0
Minor over 4.0.1. Single ship train: field product phases + field-gap closure (S0–S7) +
maintainer CI PR-slim / full-matrix speed work.
Field product phases from Next monorepo dogfood + objective product review, re-verified on seven
real consumer repos:
Next API shell classification, anti false-green doctor packaging, monorepo config walk-up with
write-root split, SPA/lib classification vacuum fixes, ESLint path-alias parity, structure-sensor
false-positive tuning, ArkRules merge-plane honesty, type-edge placement debt, rules-inventory
UI noise reduction, migrate-contract retrofit, and config write containment.
No required config migration. Does not weaken write gate or CI value edges. Does not close
Z09 / RB-11 field claims.
What changed
| Area | 4.1.0 result |
|---|---|
| Next API shell (P0-A) | app/api/** / pages/api/** → ApplicationOrchestration by default (overlay + ui-surface + monorepo); UI routes stay Presentation |
| Product honesty (P0-B) | Doctor productHonesty + human section + HTML card — unfinished when design-weak / weak coverage / dirty freeze / dual-truth / residual pilots / blocking debt / ADAPT with debt |
| ESLint aliases (P0-C) | tsconfig paths / baseUrl (@/*) resolved in editor plugin; residual envelope documented; dual-driver parity tests |
| Structure sensors (P1-L) | Prefer false negatives on weak DDD evidence (readonly props, bare constructors); true positives retained |
| Merge planes (P1-M) | rulesUnderContract.mergePlanes — which plane fails merge; dual-plane stamp; no architecture score |
| Type edges (P1-type) | Type-only denied edges on violations list with failsStrict: false + warning severity (non-blocking); value edges still block; peerIsolation type-only stays hard; SharedTypes guidance |
| Inventory noise (P2-N) | Quieter UI/Next constants; still finds spaghetti seeds in controllers/domain |
| Monorepo walk-up (S2) | Nested package cwd finds monorepo config; mutative writes stay under write root unless --follow-config-root |
| SPA / vacuum (S3) | SPA preset + adopt/start reduce Application-empty and lib-as-Presentation lies; Domain specificity for nested domain paths |
| migrate-contract | Retrofit Next API shell patterns into existing configs without full re-init |
| Force-gates / digest (S4) | Force install preserves content-identity digests for managed upgrade honesty |
| Config write containment | Refuse mutative --config outside project root |
| Field dogfood | Offline gap assertions under scripts/field-dogfood/; 7-repo re-lab 15/15 critical assertions |
| Coverage floors (internal) | Statement/line 80→79.5, branch 82.5→82.0, function 85→76.5 (measured after field surfaces) |
| CI speed (maintainer) | PR slim vs full matrix (ci-profile); mutation + complete packed matrices remain on full-matrix / main / publish |
What did not change
- Write gate / CI fail-closed semantics for value layer edges
- ArkRules opt-in semantics (no
arkRules→ same inter-layer verdict as 4.0.x) - Host hardness claims
- Z09 / RB-11 field claims (still open — not closed by this release)
- Y07 / Y09 ROADMAP status (still parked)
- Package budget measured candidate remains the 4.0.0 clean candidate unless pack exceeds ceilings
- Plan B reshape remains judgment / never mechanical-safe by default
Field honesty (7-repo re-verify)
Re-verified against mother CLI 4.1.0 (not npm latest 4.0.1) on a hostile brownfield cohort:
Next App Router monorepos, Vite SPA, factory-bag kernels, and thin TS surfaces (seven private
consumer clones — host identities not named in the shipped tree).
Critical gap assertions (type-only control, monorepo walk-up, finished-with-debt ban, API→Application,
Domain specificity, dual-truth pin, migrate-contract retrofit, config containment, write-root split):
15/15 pass. Residual unfinished states (dual-truth pin, ADAPT without config, residual pilots)
are honest product states, not false greens.
Upgrade
Prepared only — npm latest remains 4.0.1 until this release is published.
# After publish:
npm install -D arkgate@4.1.0
# or: npm install -D arkgate@latest
npx arkgate-check --install-agent-gates --force
npx arkgate-check --doctor --json
# prefer project-local upgrade:
npx arkgate upgradeUntil publish, stay on arkgate@4.0.1 for registry installs. Dogfood this branch from the
git worktree (npm run build + local bin/).
No config migration. Optional after upgrade:
- Re-run
ark start/--initon Next trees so API shell patterns land if you regenerate from
presets; existing hand-tuned configs keep working. - On brownfield Next with an old config:
npx arkgate-check --migrate-contract --write
to classifyapp/api/**as Application without full re-init. - Prefer project-local
npx arkgate/pnpm exec arkgateover a global Homebrew/npmark.
Maintainer publication checklist
- CI green on the release SHA
npm run release:npm -- --dry- Signed tag
v4.1.0+ GitHub Release from this file gh workflow run publish-npm.yml -f tag=v4.1.0 -f dry_run=false- Verify:
npm view arkgate@4.1.0 versionandnpm view arkgate dist-tags.latest→4.1.0 - Flip CONTRIBUTING / README / this status to published
- Optional:
mcp-publisher publish server.json(requires valid registry JWT)
Security notes (honest)
No dependency CVE bumps unique to this prepare beyond what already landed on main (e.g. postcss
pin in the 4.0.1 line). Architecture gate semantics for value edges are unchanged; type-only edges
are reclassified as placement debt on the violations list (failsStrict: false, diagnostic severity
warning — not merge-blocking). peerIsolation type-only edges remain hard. Config write containment
fails closed on paths outside --root. Intentional product policy — not a silent weaken of
runtime coupling checks.