arkgate 4.8.15 → 4.8.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/README.md +7 -5
- package/bin/ark-shared.mjs +2 -0
- package/bin/ark.mjs +17 -8
- package/bin/lib/analysis-engine.mjs +5 -5
- package/bin/lib/architecture-scan.mjs +17 -0
- package/bin/lib/baseline-key.mjs +2 -0
- package/bin/lib/config-contract.mjs +1 -1
- package/bin/lib/diagnostic-catalog.mjs +2 -0
- package/bin/lib/doctor-advisories.mjs +26 -0
- package/bin/lib/doctor-green-cite.mjs +139 -0
- package/bin/lib/doctor-human.mjs +98 -63
- package/bin/lib/doctor-next-actions.mjs +9 -0
- package/bin/lib/doctor-plan.mjs +6 -3
- package/bin/lib/field-install.mjs +47 -7
- package/bin/lib/first-run-help.mjs +1 -0
- package/bin/lib/improvement-compass-doctor.mjs +3 -1
- package/bin/lib/improvement-compass-map.mjs +3 -1
- package/bin/lib/invariant-coverage.mjs +121 -0
- package/bin/lib/invariant-tests-path.mjs +212 -0
- package/bin/lib/package-manager.mjs +8 -0
- package/bin/lib/prototype-shortcuts.mjs +224 -0
- package/bin/lib/remediation.mjs +11 -0
- package/bin/lib/start-preview.mjs +20 -1
- package/dist/{configTypes-Dt3DpVbd.d.ts → configTypes-VD0qcubY.d.ts} +2 -1
- package/dist/{diagnosticCatalog-BEg85XlE.d.ts → diagnosticCatalog-KWvGLI1U.d.ts} +24 -3
- package/dist/eslint/index.cjs +4 -4
- package/dist/eslint/index.d.ts +1 -1
- package/dist/eslint/index.js +4 -4
- package/dist/index.cjs +31 -31
- package/dist/index.d.ts +5 -5
- package/dist/index.js +31 -31
- package/dist/nestjs/index.cjs +1 -1
- package/dist/nestjs/index.d.ts +3 -3
- package/dist/nestjs/index.js +1 -1
- package/dist/runtime/index.cjs +10 -10
- package/dist/runtime/index.d.ts +6 -6
- package/dist/runtime/index.js +10 -10
- package/dist/{types-TBiv0WHL.d.ts → types-BSzRy2X1.d.ts} +1 -1
- package/dist/{types-CN9tVMPz.d.ts → types-D5GT5ZT8.d.ts} +1 -1
- package/docs/README.md +1 -1
- package/docs/agent-guide.md +2 -0
- package/docs/configuration.md +11 -3
- package/docs/develop.md +3 -1
- package/docs/diagnostics.md +25 -1
- package/docs/package-surface.md +1 -1
- package/docs/use.md +5 -3
- package/package.json +1 -1
- package/schemas/ark.config.schema.json +1 -1
- package/server.json +2 -2
- package/templates/agent-skills/README.md +1 -1
- package/templates/agent-skills/ark-adopt/SKILL.md +15 -0
- package/templates/agent-skills/ark-autopilot/SKILL.md +6 -1
- package/templates/agent-skills/ark-coverage/SKILL.md +1 -1
- package/templates/agent-skills/ark-explain/SKILL.md +2 -1
- package/templates/agent-skills/ark-explore/SKILL.md +19 -0
- package/templates/agent-skills/ark-place/SKILL.md +4 -0
- package/templates/skills/ark-adopt.md +15 -0
- package/templates/skills/ark-autopilot.md +6 -1
- package/templates/skills/ark-coverage.md +1 -1
- package/templates/skills/ark-explain.md +2 -1
- package/templates/skills/ark-explore.md +19 -0
- package/templates/skills/ark-place.md +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -96,6 +96,45 @@ in the immutable pre-2.0 archive linked below.
|
|
|
96
96
|
Existing configs keep whatever URL they already have. Editor completion
|
|
97
97
|
matches the 4.x line you just installed.
|
|
98
98
|
|
|
99
|
+
## 4.8.16 — 2026-09-16
|
|
100
|
+
|
|
101
|
+
**Patch** over **4.8.15**. Daily accumulate of the five ships that landed
|
|
102
|
+
after 4.8.15 published: invariant tests path
|
|
103
|
+
([#255](https://github.com/pedroknigge/arkgate/pull/255)), doctor green
|
|
104
|
+
cites ([#256](https://github.com/pedroknigge/arkgate/pull/256)),
|
|
105
|
+
coverageRoots when enforced
|
|
106
|
+
([#257](https://github.com/pedroknigge/arkgate/pull/257)),
|
|
107
|
+
`start --apply` install honesty
|
|
108
|
+
([#259](https://github.com/pedroknigge/arkgate/pull/259)), and prototype
|
|
109
|
+
shortcuts ([#260](https://github.com/pedroknigge/arkgate/pull/260)).
|
|
110
|
+
**Write. Check. Ship.** **No required config migration.** No
|
|
111
|
+
`schemaVersion` bump. Does not close `K01` / `Z09`. This mother
|
|
112
|
+
`ark.config.json` still does **not** turn `arkOrder` on.
|
|
113
|
+
|
|
114
|
+
**Status: prepared** (npm `latest` remains **4.8.15** until Actions `publish-npm`
|
|
115
|
+
runs with `tag=v4.8.16` and `dry_run=false`).
|
|
116
|
+
|
|
117
|
+
### Added
|
|
118
|
+
- Adopted trees with domain invariants must name a real tests path, so
|
|
119
|
+
coverage cannot certify a test no runner runs
|
|
120
|
+
([#255](https://github.com/pedroknigge/arkgate/pull/255)).
|
|
121
|
+
- Doctor green / healthy lines now cite a file, config key, or test — an
|
|
122
|
+
uncited line cannot look healthy
|
|
123
|
+
([#256](https://github.com/pedroknigge/arkgate/pull/256)).
|
|
124
|
+
- When a domain invariant is enforced, `coverage.coverageRoots` is
|
|
125
|
+
required. Test globs alone are not enough
|
|
126
|
+
([#257](https://github.com/pedroknigge/arkgate/pull/257)).
|
|
127
|
+
- Soft residual when SQLite, a JSON-file store, or admin literals stand
|
|
128
|
+
in for Persistence or Domain
|
|
129
|
+
([#260](https://github.com/pedroknigge/arkgate/pull/260)).
|
|
130
|
+
|
|
131
|
+
### Changed
|
|
132
|
+
- `start --apply` fails closed if the package install fails, and names
|
|
133
|
+
the exact command to recover
|
|
134
|
+
([#259](https://github.com/pedroknigge/arkgate/pull/259)).
|
|
135
|
+
- Pack ceilings remeasured on the IT01 CI pack (run 34848276803).
|
|
136
|
+
≥10% headroom. No new product surface.
|
|
137
|
+
|
|
99
138
|
## 4.8.15 — 2026-09-13
|
|
100
139
|
|
|
101
140
|
**Patch** over **4.8.14**. Pre-adoption ship bar: opt-in `--local` /
|
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ Works with Cursor, Claude, Codex, and Grok.
|
|
|
39
39
|
|
|
40
40
|
</div>
|
|
41
41
|
|
|
42
|
-
> **ArkGate 4.8.
|
|
42
|
+
> **ArkGate 4.8.16** is prepared on this tree; npm `latest` remains **4.8.15** until `publish-npm` for `v4.8.16`.
|
|
43
43
|
> Write. Check. Ship. Adopted = required GitHub
|
|
44
44
|
> status running `arkgate-check --strict-merge`, or an explicit `advisory-only` stance.
|
|
45
45
|
> Status is compact (`arkgate-check --doctor`; `--all` for Details). Optional **ArkRun**
|
|
@@ -47,7 +47,7 @@ Works with Cursor, Claude, Codex, and Grok.
|
|
|
47
47
|
> (`arkgate/order`) stops rewriting a big product choice — like the billing plan —
|
|
48
48
|
> as if it were a seat count. Change those choices through a valve, not a generic update.
|
|
49
49
|
> `@arkgate/runtime` is deprecated.
|
|
50
|
-
> [4.8.
|
|
50
|
+
> [4.8.16 prepared](CHANGELOG.md) · [4.8.11 published](docs/releases/4.8.11.md) · [4.8.10](docs/releases/4.8.10.md) · [4.8.9](docs/releases/4.8.9.md) · [4.8.8](docs/releases/4.8.8.md) · [4.8.7](docs/releases/4.8.7.md) · [4.8.6](docs/releases/4.8.6.md) · [4.8.5](docs/releases/4.8.5.md) · [4.8.4](docs/releases/4.8.4.md) · [4.8.3](docs/releases/4.8.3.md) · [4.8.2](docs/releases/4.8.2.md) · [4.8.1](docs/releases/4.8.1.md) · [4.8.0](docs/releases/4.8.0.md) · [Docs hub](docs/README.md) · [Voice](docs/product-voice.md)
|
|
51
51
|
|
|
52
52
|
---
|
|
53
53
|
|
|
@@ -69,10 +69,12 @@ Full map: **[docs/README.md](docs/README.md)**
|
|
|
69
69
|
npm install -D arkgate typescript
|
|
70
70
|
npx arkgate start # preview files + commands
|
|
71
71
|
npx arkgate start --apply # compact config + host router + CI plan
|
|
72
|
-
npx arkgate-check --doctor # status — one next step
|
|
73
|
-
npx arkgate-check --doctor --all # full details
|
|
72
|
+
npx --package=arkgate arkgate-check --doctor # status — one next step
|
|
73
|
+
npx --package=arkgate arkgate-check --doctor --all # full details
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
+
`arkgate-check` is a command in the `arkgate` package, not its own npm package. After a local install, `npx arkgate-check --doctor` also works.
|
|
77
|
+
|
|
76
78
|
`start --apply` refuses when projected governed coverage is below 50% or
|
|
77
79
|
shape confidence is weak (below 0.6 with coverage under 80%). That lock is
|
|
78
80
|
deliberate. Lock the shape with `--archetype <id>`, `--preset <name>`, or
|
|
@@ -342,7 +344,7 @@ Compact starters leave the extra off. Details: [ArkOrder](docs/arkorder.md).
|
|
|
342
344
|
| Config · package surface · TS | [configuration](docs/configuration.md) · [package-surface](docs/package-surface.md) · [typescript-support](docs/typescript-support.md) |
|
|
343
345
|
| Brownfield | [docs/brownfield-adoption.md](docs/brownfield-adoption.md) |
|
|
344
346
|
| Security | [SECURITY.md](SECURITY.md) |
|
|
345
|
-
| Prepared (4.8.
|
|
347
|
+
| Prepared (4.8.16; not published) | [CHANGELOG](CHANGELOG.md) |
|
|
346
348
|
| Current published (4.8.11 on npm `latest`) | [docs/releases/4.8.11.md](docs/releases/4.8.11.md) · [CHANGELOG](CHANGELOG.md) |
|
|
347
349
|
| Prior published (4.8.10) | [docs/releases/4.8.10.md](docs/releases/4.8.10.md) · [CHANGELOG](CHANGELOG.md) |
|
|
348
350
|
| Prior published (4.8.9) | [docs/releases/4.8.9.md](docs/releases/4.8.9.md) · [CHANGELOG](CHANGELOG.md) |
|
package/bin/ark-shared.mjs
CHANGED
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
normalizeArkgateInstallSpec,
|
|
23
23
|
packageInstallArgv,
|
|
24
24
|
installDevHint,
|
|
25
|
+
arkPackageRecoveryCommand,
|
|
25
26
|
} from './lib/package-manager.mjs';
|
|
26
27
|
|
|
27
28
|
/**
|
|
@@ -674,6 +675,7 @@ export {
|
|
|
674
675
|
normalizeArkgateInstallSpec,
|
|
675
676
|
packageInstallArgv,
|
|
676
677
|
installDevHint,
|
|
678
|
+
arkPackageRecoveryCommand,
|
|
677
679
|
};
|
|
678
680
|
|
|
679
681
|
// FX01–FX02: registry-aware skip lives in upgrade-package-decision (injectable probe).
|
package/bin/ark.mjs
CHANGED
|
@@ -22,7 +22,12 @@ import {
|
|
|
22
22
|
} from './ark-shared.mjs';
|
|
23
23
|
import { pinArkgateDevDependency, FALSE_GREEN_GAP_ID } from './lib/field-install.mjs';
|
|
24
24
|
import { validateHardWriteRequest } from './lib/enforcement-profiles.mjs';
|
|
25
|
-
import {
|
|
25
|
+
import {
|
|
26
|
+
applyStartPreview,
|
|
27
|
+
formatStartPackageInstallFailure,
|
|
28
|
+
planStart,
|
|
29
|
+
renderStartPreview,
|
|
30
|
+
} from './lib/start-preview.mjs';
|
|
26
31
|
import { runUpgradeCommand } from './lib/upgrade-command.mjs';
|
|
27
32
|
import { detectActiveAgentHost } from './lib/skill-install.mjs';
|
|
28
33
|
import { loadArkConfigContract } from './lib/config-contract.mjs';
|
|
@@ -489,7 +494,8 @@ async function start(args) {
|
|
|
489
494
|
const skip = shouldSkipArkgateInstall(args.root, cliVersion());
|
|
490
495
|
if (!skip.skip) {
|
|
491
496
|
const [command, commandArgs] = packageInstallArgv(args.root, `^${cliVersion()}`);
|
|
492
|
-
|
|
497
|
+
const installCommand = `${command} ${commandArgs.join(' ')}`;
|
|
498
|
+
if (!args.json) console.log(`Installing package: ${installCommand}`);
|
|
493
499
|
// Keep stdout clean for --json consumers (package managers are chatty on stdout).
|
|
494
500
|
const status = args.json
|
|
495
501
|
? (spawnSync(command, commandArgs, {
|
|
@@ -498,10 +504,9 @@ async function start(args) {
|
|
|
498
504
|
encoding: 'utf8',
|
|
499
505
|
}).status ?? 1)
|
|
500
506
|
: runCommand(command, commandArgs, args.root);
|
|
501
|
-
if (status !== 0
|
|
502
|
-
console.
|
|
503
|
-
|
|
504
|
-
);
|
|
507
|
+
if (status !== 0) {
|
|
508
|
+
console.error(formatStartPackageInstallFailure({ exitStatus: status, installCommand }));
|
|
509
|
+
return status;
|
|
505
510
|
}
|
|
506
511
|
}
|
|
507
512
|
}
|
|
@@ -568,8 +573,12 @@ async function start(args) {
|
|
|
568
573
|
if (pinned.changed) {
|
|
569
574
|
console.log(` Pinned arkgate@${pinned.version} in package.json devDependencies.`);
|
|
570
575
|
if (installStatus !== null && installStatus !== 0) {
|
|
571
|
-
|
|
572
|
-
|
|
576
|
+
const [command, commandArgs] = packageInstallArgv(root, pinned.version);
|
|
577
|
+
console.error(
|
|
578
|
+
formatStartPackageInstallFailure({
|
|
579
|
+
exitStatus: installStatus,
|
|
580
|
+
installCommand: `${command} ${commandArgs.join(' ')}`,
|
|
581
|
+
})
|
|
573
582
|
);
|
|
574
583
|
}
|
|
575
584
|
} else if (pinned.reason === 'already-present') {
|