arkgate 4.6.0 → 4.6.2
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 +54 -1
- package/README.md +11 -5
- package/bin/ark-check-runtime.mjs +115 -128
- package/bin/ark-mcp-runtime.mjs +86 -48
- package/bin/ark.mjs +21 -78
- package/bin/lib/agent-projection.mjs +1 -1
- package/bin/lib/analysis-engine.mjs +3 -3
- package/bin/lib/ci-and-commands.mjs +11 -11
- package/bin/lib/config-contract.mjs +2 -0
- package/bin/lib/contract-smells.mjs +5 -5
- package/bin/lib/design-smells.mjs +1 -1
- package/bin/lib/doctor-advisories.mjs +9 -0
- package/bin/lib/doctor-next-actions.mjs +92 -0
- package/bin/lib/doctor-plan.mjs +61 -71
- package/bin/lib/field-install.mjs +1 -1
- package/bin/lib/first-run-help.mjs +221 -0
- package/bin/lib/html-report-advisories.mjs +20 -0
- package/bin/lib/improvement-compass-map.mjs +20 -20
- package/bin/lib/pilot-loop.mjs +1 -1
- package/bin/lib/post-green-path.mjs +2 -2
- package/bin/lib/prepare-change.mjs +9 -0
- package/bin/lib/product-copy.mjs +1 -1
- package/bin/lib/start-preview.mjs +17 -10
- package/bin/lib/status-command.mjs +19 -0
- package/bin/lib/status-manifest.mjs +23 -0
- package/bin/lib/team-parliament-io.mjs +338 -0
- package/bin/lib/team-parliament.mjs +383 -0
- package/bin/lib/upgrade-whats-new.mjs +16 -0
- package/bin/lib/violations.mjs +8 -4
- package/dist/{configTypes-CC0FEXoF.d.ts → configTypes-B8uIcLaG.d.ts} +5 -0
- package/dist/eslint/index.cjs +2 -2
- package/dist/eslint/index.d.ts +1 -1
- package/dist/eslint/index.js +2 -2
- package/dist/index.cjs +8 -8
- package/dist/index.d.ts +66 -2
- package/dist/index.js +8 -8
- package/docs/README.md +5 -5
- package/docs/agent-guide.md +21 -17
- package/docs/configuration.md +36 -2
- package/docs/develop.md +13 -1
- package/docs/enthusiast/README.md +1 -1
- package/docs/enthusiast/how-to-agent-gates.md +3 -3
- package/docs/enthusiast/how-to-pick-shape.md +2 -2
- package/docs/enthusiast/tutorial-first-project.md +4 -3
- package/docs/package-surface.md +5 -3
- package/docs/product-voice.md +48 -10
- package/docs/use.md +10 -5
- package/package.json +2 -2
- package/schemas/ark.config.schema.json +9 -0
- package/schemas/ark.status-manifest.schema.json +51 -0
- package/server.json +3 -3
- package/templates/agent-skills/README.md +1 -1
- package/templates/agent-skills/ark-adopt/SKILL.md +59 -23
- package/templates/agent-skills/ark-architect/SKILL.md +24 -145
- package/templates/agent-skills/ark-autopilot/SKILL.md +49 -32
- package/templates/agent-skills/ark-contract/SKILL.md +21 -105
- package/templates/agent-skills/ark-coverage/SKILL.md +7 -3
- package/templates/agent-skills/ark-explain/SKILL.md +8 -4
- package/templates/agent-skills/ark-explore/SKILL.md +38 -21
- package/templates/agent-skills/ark-fix/SKILL.md +34 -157
- package/templates/agent-skills/ark-loop/SKILL.md +31 -153
- package/templates/agent-skills/ark-place/SKILL.md +35 -14
- package/templates/agent-skills/ark-runtime/SKILL.md +3 -3
- package/templates/agent-skills/ark-think/SKILL.md +6 -2
- package/templates/agent-skills/ark-upgrade/SKILL.md +21 -10
- package/templates/skills/ark-adopt.md +59 -23
- package/templates/skills/ark-architect.md +24 -145
- package/templates/skills/ark-autopilot.md +49 -32
- package/templates/skills/ark-contract.md +21 -105
- package/templates/skills/ark-coverage.md +7 -3
- package/templates/skills/ark-explain.md +8 -4
- package/templates/skills/ark-explore.md +38 -21
- package/templates/skills/ark-fix.md +34 -157
- package/templates/skills/ark-loop.md +31 -153
- package/templates/skills/ark-place.md +35 -14
- package/templates/skills/ark-runtime.md +3 -3
- package/templates/skills/ark-think.md +6 -2
- package/templates/skills/ark-upgrade.md +21 -10
package/docs/README.md
CHANGED
|
@@ -53,15 +53,15 @@ These are **not** the day-to-day product path. They stay in the repo for evidenc
|
|
|
53
53
|
| Area | Path |
|
|
54
54
|
|------|------|
|
|
55
55
|
| Release notes (by version) | [releases/](releases/) · [CHANGELOG.md](../CHANGELOG.md) |
|
|
56
|
-
| Epic plans (seeded + shipped) | [plans/](plans/) — maintainer seeds (e.g. [understandable-ark-4.6](plans/understandable-ark-4.6/README.md) **4.6.0**; [field-upgrade-mcp-truth](plans/field-upgrade-mcp-truth/README.md) **shipped in 4.5.6**; deep-module coach **shipped in 4.5.5**; domain fitness & session truth for **4.5.0**; improvement compass for **4.4.0**; agent contract surface for **4.3.0**). Product how-to stays in use/develop/agent-guide; plans are not required reading to use the package. |
|
|
56
|
+
| Epic plans (seeded + shipped) | [plans/](plans/) — maintainer seeds (e.g. [team-parliament](plans/team-parliament/README.md) **shipped in 4.6.1**; [five-door-autonomy](plans/five-door-autonomy/README.md) **shipped in 4.6.1**; [understandable-ark-4.6](plans/understandable-ark-4.6/README.md) **4.6.0**; [field-upgrade-mcp-truth](plans/field-upgrade-mcp-truth/README.md) **shipped in 4.5.6**; deep-module coach **shipped in 4.5.5**; domain fitness & session truth for **4.5.0**; improvement compass for **4.4.0**; agent contract surface for **4.3.0**). Product how-to stays in use/develop/agent-guide; plans are not required reading to use the package. |
|
|
57
57
|
| Claims audit | [audit/claims-matrix.md](audit/claims-matrix.md) |
|
|
58
58
|
| Field adoption kit (scaffolding, not closed) | [field/](field/) |
|
|
59
59
|
| Runtime hardening (experimental) | [production-hardening.md](production-hardening.md) |
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
Prior: [releases/4.
|
|
64
|
-
Previous: [releases/4.3.0.md](releases/4.3.0.md) · [releases/4.2.1.md](releases/4.2.1.md) · [releases/4.2.0.md](releases/4.2.0.md) · [releases/4.1.1.md](releases/4.1.1.md).
|
|
61
|
+
Prepared: [releases/4.6.2.md](releases/4.6.2.md) (`arkgate@4.6.2` — not yet npm `latest`).
|
|
62
|
+
Current published: [releases/4.6.1.md](releases/4.6.1.md) (`arkgate@4.6.1` on npm `latest`).
|
|
63
|
+
Prior: [releases/4.6.0.md](releases/4.6.0.md) (`arkgate@4.6.0`).
|
|
64
|
+
Previous: [releases/4.5.7.md](releases/4.5.7.md) · [releases/4.5.6.md](releases/4.5.6.md) · [releases/4.5.5.md](releases/4.5.5.md) · [releases/4.5.0.md](releases/4.5.0.md) · [releases/4.4.0.md](releases/4.4.0.md) · [releases/4.3.0.md](releases/4.3.0.md) · [releases/4.2.1.md](releases/4.2.1.md) · [releases/4.2.0.md](releases/4.2.0.md) · [releases/4.1.1.md](releases/4.1.1.md).
|
|
65
65
|
Previous major: [releases/4.0.0.md](releases/4.0.0.md) (`arkgate@4.0.0`).
|
|
66
66
|
Config: [configuration.md](configuration.md) · Agent skills dual-plane: [agent-guide.md](agent-guide.md).
|
|
67
67
|
|
package/docs/agent-guide.md
CHANGED
|
@@ -233,7 +233,7 @@ When the top two shapes are close or projected governed coverage is below 90%, J
|
|
|
233
233
|
`requiresConfirmation: true` and explains why in `confirmationReasons`.
|
|
234
234
|
|
|
235
235
|
Human output highlights phase-1 layers and the analogy; JSON is the stable contract for
|
|
236
|
-
MCP `ark_recommend` and the `/ark-architect`
|
|
236
|
+
MCP `ark_recommend` and the `/ark-adopt` skill (leftover name `/ark-architect` is a shortcut).
|
|
237
237
|
|
|
238
238
|
### Terminal onboarding (Phase B)
|
|
239
239
|
|
|
@@ -270,13 +270,17 @@ To remove a compact host integration, preview `ark start --remove-host <host>` a
|
|
|
270
270
|
only after review. Ark removes only its exact compact artifacts, leaves customized files untouched
|
|
271
271
|
as unresolved decisions, and restores the integration with `ark start --tools <host> --apply`.
|
|
272
272
|
|
|
273
|
-
**
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
273
|
+
**Five doors (emphasize):** `/ark-adopt` = session 0 (greenfield scaffold + brownfield honesty —
|
|
274
|
+
write the path). `/ark-place` = new feature (place **and write**). `/ark-autopilot` = apply
|
|
275
|
+
plan A + one Shape refactor (invoke = approval). `/ark-explore` = map + dual-plan seed (no
|
|
276
|
+
apply). `/ark-upgrade` = preview then apply in-turn. Other `/ark-*` names stay installed as
|
|
277
|
+
**shortcuts**. Empty plan A is not “architecture healthy” if leftover design remains.
|
|
278
|
+
|
|
279
|
+
**Team parliament:** adopt is a **contract session** (law-only). Feature work must not edit
|
|
280
|
+
`ark.config.json` / `arkrules/*` / `.ark-baseline.json`. Prefer
|
|
281
|
+
`ark-check --changed --base <merge-ref>` in local gates. `--contract-diff` + `--author`
|
|
282
|
+
when `stewards` is set (`--author` is a GitHub handle or email, not git `user.name`).
|
|
283
|
+
`ark status --vs <ref>` prints pin / contract / baseline drift.
|
|
280
284
|
|
|
281
285
|
**Design fitness (3.0.1+ / Phase Q 3.0.3):** after checked edges are clean, doctor can still
|
|
282
286
|
report **SUGGEST / ADAPT / ENFORCE · design-weak** using the mode it actually observed; a weak
|
|
@@ -290,7 +294,7 @@ npx ark-check --doctor --fail-on-new-smells --base-ref origin/main --json # opt-
|
|
|
290
294
|
|
|
291
295
|
**Post-green path (Q01):** when design-weak, doctor sets `postGreenPath` / `primaryNextAction`
|
|
292
296
|
(`clarify-for-ai`) — **one** Shape door: `/ark-explore` shape-focus → dual-plan B, then
|
|
293
|
-
`/ark-autopilot`
|
|
297
|
+
`/ark-autopilot` applies one pilot. Do not skill-shop coverage/think for the same residual.
|
|
294
298
|
|
|
295
299
|
**Pilot loop (Q04):** when design-weak, `pilotLoop.nextPilot` is **one** extraction card
|
|
296
300
|
(pilot target, move, success, kill-switch). Apply **that one pilot only**, then re-doctor.
|
|
@@ -363,7 +367,7 @@ clusters per anchor directory (concentration, not volume — dispersed hooks nev
|
|
|
363
367
|
fixed corpus-calibrated thresholds; anchors under `app/`/`pages/` are `fixedByConvention` and
|
|
364
368
|
never move. `reshapePilot.nextPilot` is a **proposed** one-at-a-time card (`moveSample`,
|
|
365
369
|
`movesTotal`, `successSignal`, `killSwitch`, `doNot[]`): run it only via `/ark-loop` through the
|
|
366
|
-
write gate + atomic preflight; merges are `/ark-
|
|
370
|
+
write gate + atomic preflight; merges are `/ark-adopt` / `/ark-autopilot` judgment cards. `notAScore`, never a
|
|
367
371
|
verdict/`designFitness` input; there is no apply path.
|
|
368
372
|
|
|
369
373
|
**Reshape decision memory (Y01):** when the team accepts, defers, or rejects that target, record
|
|
@@ -479,21 +483,21 @@ in `ark.config.json`.
|
|
|
479
483
|
closed solely by `import type` (common with generated route trees) is **not** reported as
|
|
480
484
|
`CIRCULAR_DEPENDENCY`. Value cycles still fail.
|
|
481
485
|
|
|
482
|
-
### MCP `ark_recommend` and `/ark-
|
|
486
|
+
### MCP `ark_recommend` and `/ark-adopt` (Phase C)
|
|
483
487
|
|
|
484
488
|
The `ark-mcp` server exposes **`ark_recommend`** — same JSON as
|
|
485
|
-
`ark-check --recommend --json`. Call it (or invoke `/ark-
|
|
489
|
+
`ark-check --recommend --json`. Call it (or invoke `/ark-adopt`) before
|
|
486
490
|
generating project structure on greenfield or early-adoption repos.
|
|
487
491
|
|
|
488
492
|
`ark-mcp --session-context` appends a one-line enthusiast hint when governed
|
|
489
493
|
coverage is low or the config is fresh:
|
|
490
494
|
|
|
491
495
|
```
|
|
492
|
-
New to Ark?
|
|
496
|
+
New to Ark? /ark-adopt or: arkgate-check --doctor
|
|
493
497
|
```
|
|
494
498
|
|
|
495
|
-
The `/ark-
|
|
496
|
-
via `ark-check --install-agent-gates`.
|
|
499
|
+
The `/ark-adopt` skill ships in `templates/skills/ark-adopt.md` (leftover
|
|
500
|
+
`/ark-architect` is a shortcut) and installs via `ark-check --install-agent-gates`.
|
|
497
501
|
|
|
498
502
|
### Adoption plan artifact (Phase E)
|
|
499
503
|
|
|
@@ -588,9 +592,9 @@ checks; this improves early feedback without upgrading Codex's bypassable hook t
|
|
|
588
592
|
boundary. Removing `AGENTS.md`, skills, or session context never changes the contract verdict.
|
|
589
593
|
|
|
590
594
|
Do not invent layers outside the 11-layer profile or named presets. Unrecognized
|
|
591
|
-
directories (`utils/`, `lib/`) must be classified explicitly via `/ark-
|
|
595
|
+
directories (`utils/`, `lib/`) must be classified explicitly via `/ark-adopt`.
|
|
592
596
|
|
|
593
|
-
**Brownfield** (existing messy repo): use `/ark-adopt` and [brownfield-adoption.md](brownfield-adoption.md)
|
|
597
|
+
**Brownfield** (existing messy repo): use `/ark-adopt` and [brownfield-adoption.md](brownfield-adoption.md). `/ark-architect` is a leftover shortcut to the same door.
|
|
594
598
|
|
|
595
599
|
## Supported agent hosts
|
|
596
600
|
|
package/docs/configuration.md
CHANGED
|
@@ -190,7 +190,7 @@ a hash-bound policy weakening. Empty `appliesTo: []` fails closed; zero-match gl
|
|
|
190
190
|
|
|
191
191
|
**What they do not do:** prove business semantics end-to-end; replace Layers import edges;
|
|
192
192
|
make “green” mean elegant Shape. Promoting structure to enforced can force rename-to-pass
|
|
193
|
-
heuristics — prefer judgment extraction via `/ark-
|
|
193
|
+
heuristics — prefer judgment extraction via `/ark-autopilot` when the real goal is
|
|
194
194
|
Domain ownership.
|
|
195
195
|
|
|
196
196
|
```bash
|
|
@@ -198,7 +198,7 @@ Domain ownership.
|
|
|
198
198
|
npx arkgate-check --rules-inventory --json
|
|
199
199
|
```
|
|
200
200
|
|
|
201
|
-
Edit ArkRules through
|
|
201
|
+
Edit ArkRules through `/ark-adopt` (session 0) or `/ark-autopilot`; extract/implement via `/ark-autopilot`.
|
|
202
202
|
|
|
203
203
|
## Contract transitions
|
|
204
204
|
|
|
@@ -239,6 +239,40 @@ JSON artifact passed with `--policy-ack`:
|
|
|
239
239
|
The acknowledgement must list every blocking finding exactly. It is not a permanent allowlist:
|
|
240
240
|
changing either contract changes its hash and invalidates the acknowledgement.
|
|
241
241
|
|
|
242
|
+
## Team parliament (law vs feature)
|
|
243
|
+
|
|
244
|
+
Optional `stewards` lists **GitHub handles or emails** who may **loosen** the contract or
|
|
245
|
+
**grow** the baseline (`pedroknigge` or `pedroknigge@users.noreply.github.com` — not
|
|
246
|
+
`Pedro Knigge`). The field is metadata — it does not change the policy hash. The lock
|
|
247
|
+
matches `--author`, then `GITHUB_ACTOR` / `ARK_STEWARD`, then `GIT_AUTHOR_EMAIL`. A
|
|
248
|
+
noreply GitHub mail and the handle are the same person. Git `user.name` is not identity.
|
|
249
|
+
|
|
250
|
+
Doctor detects several recent authors or a CODEOWNERS file (`doctor.stewardNudge`).
|
|
251
|
+
When `stewards` is empty it **asks** who owns the law and proposes handles or emails.
|
|
252
|
+
When the list exists but CODEOWNERS is ahead, or you started with one steward and git
|
|
253
|
+
now shows more authors, it shows the **gap** and asks whether to update. `/ark-adopt`
|
|
254
|
+
writes only after you confirm — it does not invent names or remove entries.
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
"stewards": ["pedroknigge", "Amarilla-David"]
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Law files (`ark.config.json`, `arkrules/*`, `.ark-baseline.json`) are a different change
|
|
261
|
+
type than product source:
|
|
262
|
+
|
|
263
|
+
| Check | What it does |
|
|
264
|
+
|-------|----------------|
|
|
265
|
+
| `ark-check --changed --base origin/dev` | Layer check on touched sources only. A CSS/i18n PR pays almost nothing. |
|
|
266
|
+
| `ark-check --against origin/dev` | New violation keys vs **that ref's** baseline (not only HEAD). |
|
|
267
|
+
| `ark-check --contract-diff --base origin/dev` | Classifies tighten / loosen / reclassify / baseline-grow. |
|
|
268
|
+
| `--contract-session --author <id>` | Law-only PR. Mixed law+product still fails. Loosen/grow need a listed steward. |
|
|
269
|
+
| `--persona touch\|contributor\|agent\|steward` | Budget presets for the same teeth. |
|
|
270
|
+
| `ark status --vs origin/dev` | One line: pin / contract / baseline drift vs that ref. |
|
|
271
|
+
|
|
272
|
+
Write-gate ApplyPatch denies a batch that mixes law files with product source. Humans who
|
|
273
|
+
never hit PreToolUse are unchanged. Local `pnpm` gates should call `--changed --base`, not
|
|
274
|
+
only full-tree `--strict-merge`.
|
|
275
|
+
|
|
242
276
|
MCP clients can call `ark_policy_delta` with the previous `baseConfig`, an optional candidate
|
|
243
277
|
contract (the current project contract is the default), and the same optional acknowledgement.
|
|
244
278
|
It invokes the public classifier directly, is read-only, and marks a blocking result as an MCP
|
package/docs/develop.md
CHANGED
|
@@ -65,7 +65,7 @@ can show `runtimeObserved: true` even when branch-protection policy is plan-unav
|
|
|
65
65
|
| Concern | Doc / tool |
|
|
66
66
|
|---------|------------|
|
|
67
67
|
| Layers, rules, globs | [configuration.md](configuration.md) · `ark.config.json` |
|
|
68
|
-
| ArkRules (structure + invariants) | [configuration.md](configuration.md#arkrules-intra-layer-opt-in) · `arkRules` / `arkrules/*` · skill `/ark-
|
|
68
|
+
| ArkRules (structure + invariants) | [configuration.md](configuration.md#arkrules-intra-layer-opt-in) · `arkRules` / `arkrules/*` · skill `/ark-adopt` (session 0) or `/ark-autopilot` |
|
|
69
69
|
| Rules inventory (brownfield) | `arkgate-check --rules-inventory` · MCP `ark_rules_inventory` |
|
|
70
70
|
| Stable package API | [package-surface.md](package-surface.md) |
|
|
71
71
|
| Diagnostic codes (`ruleId` why/fix) | [diagnostics.md](diagnostics.md) · root `DIAGNOSTIC_CATALOG` |
|
|
@@ -133,10 +133,22 @@ npx arkgate agents-md --write # embed/refresh projection markers
|
|
|
133
133
|
npx arkgate preflight --changes changes.json --json
|
|
134
134
|
npx arkgate upgrade --json # managed content preview
|
|
135
135
|
npx arkgate upgrade --apply
|
|
136
|
+
npx arkgate-check --changed --base origin/dev
|
|
137
|
+
npx arkgate-check --against origin/dev
|
|
138
|
+
npx arkgate status --vs origin/dev
|
|
136
139
|
```
|
|
137
140
|
|
|
138
141
|
---
|
|
139
142
|
|
|
143
|
+
## Team parliament (law vs feature)
|
|
144
|
+
|
|
145
|
+
`ark.config.json`, `arkrules/*`, and `.ark-baseline.json` are a **constitution**. A product PR
|
|
146
|
+
must not amend them. Optional `stewards` (GitHub handle or email) makes loosen / baseline-grow
|
|
147
|
+
steward-only. Doctor `stewardNudge` asks who owns the law or shows list drift — never invents
|
|
148
|
+
names. Details: [configuration.md](configuration.md#team-parliament-law-vs-feature).
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
140
152
|
## Optional experimental runtime
|
|
141
153
|
|
|
142
154
|
Gates need **no** runtime kernel. `@arkgate/runtime` is experimental, separate package, not the day-zero product. See [package-surface.md](package-surface.md) and [production-hardening.md](production-hardening.md).
|
|
@@ -70,7 +70,7 @@ Deep teaching example (runnable API + break exercises): [hexagonal-order-api](ht
|
|
|
70
70
|
|
|
71
71
|
| Situation | Use |
|
|
72
72
|
|-----------|-----|
|
|
73
|
-
| New or empty repo | `/ark-
|
|
73
|
+
| New or empty repo | `/ark-adopt`, `ark-check --recommend`, gallery starters |
|
|
74
74
|
| Existing messy codebase | `/ark-adopt`, [brownfield playbook](../brownfield-adoption.md) |
|
|
75
75
|
|
|
76
76
|
## Related
|
|
@@ -15,8 +15,8 @@ Installs:
|
|
|
15
15
|
Still exit 2 / hard block; never silent write. Drop `--hook-repair` for
|
|
16
16
|
reject-only prose, or set `ARK_HOOK_REPAIR=0` and omit the flag.
|
|
17
17
|
- MCP server entry (`.mcp.json`, Cursor/Codex/Grok equivalents)
|
|
18
|
-
- `/ark-*` skills
|
|
19
|
-
(
|
|
18
|
+
- `/ark-*` skills: five doors **`/ark-adopt`**, **`/ark-place`**, **`/ark-autopilot`**,
|
|
19
|
+
**`/ark-explore`**, **`/ark-upgrade`** (other names are shortcuts)
|
|
20
20
|
|
|
21
21
|
| Host | Extra paths |
|
|
22
22
|
|------|-------------|
|
|
@@ -33,7 +33,7 @@ local, MCP, CI, and repair guarantees. The table above only lists installed path
|
|
|
33
33
|
`arkgate-mcp --session-context` appends when governed coverage is low:
|
|
34
34
|
|
|
35
35
|
```
|
|
36
|
-
New to Ark?
|
|
36
|
+
New to Ark? /ark-adopt or: arkgate-check --doctor
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
## Verify gates
|
|
@@ -14,7 +14,7 @@ Call tool **`ark_recommend`** — same JSON as `--recommend --json`.
|
|
|
14
14
|
|
|
15
15
|
## Skill
|
|
16
16
|
|
|
17
|
-
Run **`/ark-
|
|
17
|
+
Run **`/ark-adopt`** on a greenfield or early-adoption repo (leftover `/ark-architect` is a shortcut).
|
|
18
18
|
|
|
19
19
|
## What to read in the output
|
|
20
20
|
|
|
@@ -37,7 +37,7 @@ If `confidence < 0.5`, ask:
|
|
|
37
37
|
1. Will this app save data between sessions?
|
|
38
38
|
2. Is this one app or several in one repository?
|
|
39
39
|
|
|
40
|
-
Then re-run `--recommend` or continue with `/ark-
|
|
40
|
+
Then re-run `--recommend` or continue with `/ark-adopt`.
|
|
41
41
|
|
|
42
42
|
## Reference
|
|
43
43
|
|
|
@@ -61,7 +61,7 @@ Or copy a [gallery starter](../enthusiast/how-to-gallery-starter.md) and run `np
|
|
|
61
61
|
npx ark-check --install-agent-gates
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
This installs `/ark-
|
|
64
|
+
This installs the five doors (`/ark-adopt`, `/ark-place`, `/ark-autopilot`, `/ark-explore`, `/ark-upgrade`) and leftover shortcut names for Claude, Cursor, Codex, Grok, and other detected hosts.
|
|
65
65
|
|
|
66
66
|
## 6. Verify honestly
|
|
67
67
|
|
|
@@ -75,9 +75,10 @@ Report `governed.percent` truthfully. An empty layer is fine; an ungoverned `lib
|
|
|
75
75
|
|
|
76
76
|
## 7. Build a feature with the agent
|
|
77
77
|
|
|
78
|
-
Invoke `/ark-
|
|
78
|
+
Invoke `/ark-adopt` once at the start, then `/ark-place` for each new file. The agent
|
|
79
79
|
should place use cases in `application/`, ports in `domain/`, and never import the database
|
|
80
|
-
into `domain/`.
|
|
80
|
+
into `domain/`. Do not edit `ark.config.json` in the same change as a feature — that is a
|
|
81
|
+
steward contract session. Teams: `ark-check --changed --base origin/dev`.
|
|
81
82
|
|
|
82
83
|
## Next steps
|
|
83
84
|
|
package/docs/package-surface.md
CHANGED
|
@@ -47,6 +47,7 @@ hardening guide remains repository-hosted rather than duplicated in the gate tar
|
|
|
47
47
|
| **Managed upgrade self-service honesty (4.5 / DF05)** | `ark upgrade [--json]` → `selfService` (+ human “Self-service honesty” lines) | Additive, advisory. Answers without a maintainer: write-path activation labels per selected host (`hard`\|`advisory`\|`unavailable`) and customized content-identity preserve (`customizedPaths` / `customizedContentPreserved`). Soft hosts never hard; upgrade never invents `hardWriteActive` from disk alone. Always `notAScore: true`. Not a gate input; not part of `planDigest`. |
|
|
48
48
|
| **Product honesty readiness split (4.1.1)** | doctor JSON `productHonesty` | Additive. `unfinished` / `headline` / `primaryNextAction` / `reasonIds` remain; EH adds `contractReadiness` (`ready`\|`partial`\|`not-ready`), `localWriteBoundary` (`advisory`\|`hard`\|`unverified`\|`unknown`), `architectureReasonIds`, `environmentResidualIds` / `environmentResiduals`. Soft-write hosts stay in evidence without alone forcing global **Not finished**. `notAScore: true` always. |
|
|
49
49
|
| **Policy transition analysis (3.1.0)** | `analyzePolicyDelta(...)`; MCP `ark_policy_delta`; CLI `--policy-base` / `--policy-base-ref` / `--policy-ack`; check JSON `policyDelta` | Additive schema `1.0`. Classifications and finding ids are deterministic. Weakening/judgment requires an acknowledgement bound to both policy hashes and the exact blocking finding set. |
|
|
50
|
+
| **Team parliament (law vs feature)** | Optional `stewards` on `ark.config.json` (GitHub handle or email); CLI `--changed` / `--against` / `--base` / `--contract-diff` / `--contract-session` / `--persona` / `--author`; check JSON `teamParliament`; `ark status --vs`; write-gate mixed-batch deny | Additive. Law files must not mix with product source. Loosen / baseline-grow are steward-only when `stewards` is set. `--against` ratchets vs the base-ref baseline. `--changed` scans touched sources. `stewards` is excluded from policy hash. Identity is handle or email, not git `user.name`. No org plane. |
|
|
50
51
|
| **Atomic change preflight (3.1.0)** | `preflightChange(...)`; CLI `ark preflight --changes <file> --json`; MCP `ark_prepare_change` | Additive schema `1.0`. One complete governed production-source `{path,content}` / `{path,delete:true}` batch; read-only; returns operation, content/tree/policy/compiler fingerprints and stable graph findings. MCP availability alone is advisory. |
|
|
51
52
|
| **Architecture change map (3.1.0)** | `arkgate/schema/change-map` or `arkgate/schema/ark.change-map.schema.json`; CLI `ark preflight --change-map <file>`; MCP `ark_prepare_change.changeMap` | Optional strict schema `1.0`. Canonical planned paths + operations + resolved Ark layers + dependencies between planned files. Preflight returns `changeMapHash`; absence is normal and adds no project file. Structural intent only, never behavioral completion. |
|
|
52
53
|
| **Structural convergence (3.1.0)** | `analyzeArchitectureConvergence(...)`; map-enabled `preflightChange(...)`; existing CLI/MCP preflight adapters | Additive `convergence` result with stable `satisfied`, `missing`, `contradictory`, and `unplanned` findings. Uses the supplied/current project tree as base and the explicit complete change set as candidate; no implicit Git or LLM input. `readOnly: true`; `behavioralCompletion: "not-evaluated"`. Structural mismatch makes preflight invalid. |
|
|
@@ -56,7 +57,7 @@ hardening guide remains repository-hosted rather than duplicated in the gate tar
|
|
|
56
57
|
| **`arkgate/schema/analysis-result`** or **`arkgate/schema/ark.analysis-result.schema.json`** | Public CLI/MCP/hook diagnostic envelope (`schemaVersion`, `mode`, `valid`, `completeness`, `completenessReasons`, `diagnostics`, resolved identities) | Schema **`1.5`** adds optional stable finding refs on diagnostics: `findingRef` (`fnv1a-` + hex), `targetKey` (baseline-compatible freeze identity), `docsCodePath` (`docs/diagnostics.md#RULE_ID`). Factory-emitted diagnostics always include them; consumer-owned 1.0–1.4 values remain valid without them. `1.4` added optional `evidence.arkruleId` / `evidence.arkruleSource` for ArkRules; `1.3` distinguished `resolved-candidate-facts` from `lexical-compatibility`; partial/unavailable analysis is always non-green, and resolved complete/partial results require policy/resolver/facts/tree identities. `1.2` added completeness and remains accepted alongside consumer-owned 1.0/1.1 values. |
|
|
57
58
|
| **Stable finding refs (4.3)** | Root API `adapterFindingTargetKey` / `adapterFindingRefFromTargetKey` / `toAdapterDiagnostic` / `createAdapterResult`; CLI/MCP/repair envelopes via analysis-result diagnostics | Multi-turn re-address without fuzzy message match. `targetKey` **is** the baseline (occurrence) key so freeze identity is never orphaned; `findingRef` is a compact FNV-1a of that key. Line/message drift does not change the ref. Multi-turn fixture: `tests/fixtures/finding-refs/multi-turn-stability.json`. |
|
|
58
59
|
| **Diagnostic code catalog** | Root API `DIAGNOSTIC_CATALOG` / `getDiagnosticCatalogEntry` / `diagnosticDocsPath`; docs [diagnostics.md](diagnostics.md) (`#RULE_ID` anchors) | Closed vocabulary of public `ruleId`s with why/fix anchors. Cataloguing only — no new rule semantics. Remediation parity is test-guarded. Docs ship in the npm tarball. |
|
|
59
|
-
| **Status manifest** | CLI `ark status [--json]`; MCP `ark_status`; `arkgate/schema/status-manifest`; root API `buildStatusManifest` / `ARK_STATUS_MANIFEST_SCHEMA` / `projectStatusImprovementCompass` | Schema `1.0`. One session/project snapshot: identity binding, honest write-path activation (`hard`\|`advisory`\|`unavailable`), last-check summary, rules residual counts, primary next action,
|
|
60
|
+
| **Status manifest** | CLI `ark status [--json] [--vs <ref>]`; MCP `ark_status`; `arkgate/schema/status-manifest`; root API `buildStatusManifest` / `ARK_STATUS_MANIFEST_SCHEMA` / `projectStatusImprovementCompass` | Schema `1.0`. One session/project snapshot: identity binding, honest write-path activation (`hard`\|`advisory`\|`unavailable`), last-check summary, rules residual counts, primary next action, **`improvementCompass`** with honesty **`mode`** `full`\|`subset`\|`unavailable` (residual ids only; always `notAScore: true`; optional `reasonCode`/`reason`/`factsSource`/`contractHash`), and optional **`vsBase`** (pin / contract / baseline grow vs a git ref; advisory only). **Not a score.** Residual never changes gate verdicts. Never prompts (`CI=1` forces JSON). Optional `--expected-root` / `--expected-project-id` (MCP `project`) for matched vs stale identity. |
|
|
60
61
|
| **Agent contract projection** | CLI `ark agents-md [--write] [--check] [--stdout] [--json]`; install/upgrade AGENTS templates; root API `buildAgentProjectionBlock` / `mergeAgentProjectionDocument` | Schema `1.0` (projection markers). Version-stamped managed block (`arkgateVersion` + contract summary + diagnostic short list). **Non-authoritative** — not a gate input; enforcement is ark-check / hooks / CI. Content-identity merge preserves customized regions outside markers. Drift: `--check` vs package version. |
|
|
61
62
|
| **Agent Skills packaging** | `templates/agent-skills/<name>/SKILL.md` (+ package README); root API `ARK_SKILL_NAMES` / `validateAgentSkillsPackage`; `npm run check:agent-skills` | Schema `1.0` (package contract). Same **13** skill names as flat templates; Agent Skills–compatible layout for `npx skills add`. No new skill names. Layout is generated 1:1 from `templates/skills/*.md`. |
|
|
62
63
|
| **`arkgate/schema/arkrules`** or **`arkgate/schema/ark.arkrules.schema.json`** | Per-layer structure sensors + invariant catalog (ADR 0012) | Schema `1.0`. Opt-in via root `arkRules` map (`ark.config` schema `1.1`). |
|
|
@@ -209,8 +210,9 @@ production deployment would need to satisfy; it is not a readiness certification
|
|
|
209
210
|
## Release notes (maintainers)
|
|
210
211
|
|
|
211
212
|
Ship notes for a version live under [releases/](https://github.com/pedroknigge/arkgate/tree/main/docs/releases)
|
|
212
|
-
(
|
|
213
|
-
|
|
213
|
+
(prepared: [4.6.2.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.6.2.md);
|
|
214
|
+
current published: [4.6.1.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.6.1.md);
|
|
215
|
+
prior published: [4.6.0.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.6.0.md), [4.5.7.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.5.7.md), [4.5.6.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.5.6.md), [4.5.0.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.5.0.md), [4.4.0.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.4.0.md), [4.3.0.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.3.0.md),
|
|
214
216
|
[4.2.1.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.2.1.md);
|
|
215
217
|
previous: [4.2.0.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.2.0.md),
|
|
216
218
|
[4.1.1.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.1.1.md),
|
package/docs/product-voice.md
CHANGED
|
@@ -22,6 +22,13 @@ because the design space is small and honest.
|
|
|
22
22
|
inside a layer) opt-in.
|
|
23
23
|
- **Coach side:** where code belongs, who talks to whom, how; fix imports first, then leftover
|
|
24
24
|
design work; one small refactor at a time; never silent auto-reshape; never weaken the config.
|
|
25
|
+
- **Five-door autonomy:** invoking `/ark-adopt`, `/ark-place`, `/ark-autopilot`, `/ark-explore`,
|
|
26
|
+
or `/ark-upgrade` **is** the approval. The agent writes or maps in that turn. CLI/MCP are
|
|
27
|
+
sensor + gate. Silent reshape from the compact router (unasked) stays forbidden.
|
|
28
|
+
- **Team parliament:** the architecture file is a **constitution**. A product change must not
|
|
29
|
+
amend it. Stewards own loosen and baseline-grow. The ratchet is **new vs the branch you
|
|
30
|
+
merge to**, not only the file on this checkout. A small PR pays `--changed --base`, not
|
|
31
|
+
the whole tree. Humans who never hit the write hook are allowed to ignore Ark.
|
|
25
32
|
- **Agent contract surface (4.3.0):** agents read **guardrail catalogs** and **scan** evidence;
|
|
26
33
|
they **process** (judge / coach) outside the package. Projection and skills never become the
|
|
27
34
|
pass/fail gate.
|
|
@@ -83,7 +90,13 @@ stay stable unless a change explicitly adds an alias.
|
|
|
83
90
|
| **don’t show green if unverified** | fail-closed | Incomplete analysis or unproven enforcement never looks green |
|
|
84
91
|
| **honest coverage** | honest coverage | Governed % and empty scope that cannot false-green |
|
|
85
92
|
| **safe to auto-apply** | mechanical-safe | Deterministic auto-apply class only |
|
|
86
|
-
| **your judgment** | judgment | Human/agent design work;
|
|
93
|
+
| **your judgment** | judgment | Human/agent design work; invoke of an apply door is the approval — not silent compact-router reshape |
|
|
94
|
+
| **five doors** | skill menu of 13 | adopt · place · autopilot · explore · upgrade — other names are shortcuts |
|
|
95
|
+
| **law / constitution** | contract + baseline + ArkRules files | `ark.config.json`, `arkrules/*`, `.ark-baseline.json` — a different change type than product |
|
|
96
|
+
| **steward** | contract owner | GitHub handle or email in `stewards`; only they may loosen the law or grow the baseline |
|
|
97
|
+
| **several hands** | multi-author / CODEOWNERS | Doctor asks for stewards or shows list drift; adopt proposes handles or emails, never invents names |
|
|
98
|
+
| **contract session** | `--contract-session` | Explicit “this diff is a law change”; still never mixed with product files |
|
|
99
|
+
| **vs the base branch** | `--against` / `--changed --base` / `status --vs` | Ratchet and honesty against the ref you merge to |
|
|
87
100
|
| **doctor** | doctor | Status light + next action |
|
|
88
101
|
| **short agent router** | compact router | Default onboarding agent instructions (not the full skill pack) |
|
|
89
102
|
| **right project?** | matched binding / project identity | Live MCP answered for this exact project root (+ id). `ark_identity` |
|
|
@@ -271,7 +284,7 @@ Each model line follows the sentence template: **plain fact · term · next acti
|
|
|
271
284
|
| **Suggest** | Thin or new tree. Architecture config is not yet in charge. Next: `ark start` preview, then `--apply`; re-run doctor. |
|
|
272
285
|
| **Adapt** | Config and tree still disagree, or debt is open. The write path does not fully protect you yet. Next: doctor top action #1. |
|
|
273
286
|
| **Enforce** | Honest coverage and clean checked imports. Keep the host write path + required CI. |
|
|
274
|
-
| **Enforce · leftover design work** | Import rules check out; design smells remain. Green is not elegant design. Next:
|
|
287
|
+
| **Enforce · leftover design work** | Import rules check out; design smells remain. Green is not elegant design. Next: map (`/ark-explore` shape-focus) then apply one small refactor with `/ark-autopilot` (invoke = apply). |
|
|
275
288
|
|
|
276
289
|
### Primary next action
|
|
277
290
|
|
|
@@ -281,10 +294,17 @@ Each model line follows the sentence template: **plain fact · term · next acti
|
|
|
281
294
|
### Deny / gate failure
|
|
282
295
|
|
|
283
296
|
```text
|
|
284
|
-
[What failed in plain terms]. [Rule or evidence id]. Next: [one fix path — /ark-
|
|
297
|
+
[What failed in plain terms]. [Rule or evidence id]. Next: [one fix path — /ark-autopilot, /ark-place, or /ark-adopt].
|
|
285
298
|
```
|
|
286
299
|
|
|
287
300
|
Never: mock the user, imply the gate is optional, or suggest disabling rules to “finish.”
|
|
301
|
+
Never: tell an agent to edit `ark.config.json` to clear a product-PR red. That is a **contract
|
|
302
|
+
session** for a steward — split the PR.
|
|
303
|
+
|
|
304
|
+
```text
|
|
305
|
+
This change mixes the constitution with product files. Next: split the PR, or run a steward
|
|
306
|
+
--contract-session that touches only ark.config / arkrules / .ark-baseline.json.
|
|
307
|
+
```
|
|
288
308
|
|
|
289
309
|
### Healthy finished
|
|
290
310
|
|
|
@@ -295,11 +315,13 @@ Otherwise name the leftover work.
|
|
|
295
315
|
|
|
296
316
|
## Compact router model
|
|
297
317
|
|
|
298
|
-
Keep short.
|
|
318
|
+
Keep short. Five doors only:
|
|
299
319
|
|
|
300
320
|
1. Point at **doctor** as status.
|
|
301
|
-
2. Day-to-day
|
|
302
|
-
3.
|
|
321
|
+
2. Session 0: **`/ark-adopt`**. Day-to-day new files: **`/ark-place`**.
|
|
322
|
+
3. Apply / leftover design: **`/ark-explore`** then **`/ark-autopilot`** (invoke = apply one refactor).
|
|
323
|
+
4. Bump: **`/ark-upgrade`**.
|
|
324
|
+
5. Full skill pack is optional expert depth — not a 13-name exam.
|
|
303
325
|
|
|
304
326
|
---
|
|
305
327
|
|
|
@@ -307,11 +329,27 @@ Keep short. Three jobs only:
|
|
|
307
329
|
|
|
308
330
|
| Skill role | Frontmatter tone |
|
|
309
331
|
|------------|------------------|
|
|
310
|
-
| `/ark-
|
|
311
|
-
| `/ark-
|
|
312
|
-
|
|
|
332
|
+
| `/ark-adopt` | Session 0 — write the path (greenfield + brownfield) |
|
|
333
|
+
| `/ark-place` | New feature — place **and write** |
|
|
334
|
+
| `/ark-autopilot` | Apply A + one Shape refactor; invoke = approval |
|
|
335
|
+
| `/ark-explore` | Map / dual-plan **seed** only |
|
|
336
|
+
| `/ark-upgrade` | Preview then apply in-turn |
|
|
337
|
+
| Others | Shortcut to a door above |
|
|
338
|
+
|
|
339
|
+
Autonomy contract on every door. Never claim silent full-tree reshape from the compact router.
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Autonomy contract (skills)
|
|
344
|
+
|
|
345
|
+
Invoking a five-door skill **is** the approval. Write or map in the same turn.
|
|
346
|
+
|
|
347
|
+
**CLI budget:** identity only if using MCP; one doctor / recommend / upgrade preview; then work;
|
|
348
|
+
then check. Forbidden as the deliverable: dumping `--plan` JSON, “approve?”, or
|
|
349
|
+
`STOP — invoke /ark-X` for work that door absorbs.
|
|
313
350
|
|
|
314
|
-
|
|
351
|
+
**Still never:** weaken the architecture config; invent `mechanical-safe` kinds; claim finished
|
|
352
|
+
while leftover design work remains; batch every Shape bet in one turn.
|
|
315
353
|
|
|
316
354
|
---
|
|
317
355
|
|
package/docs/use.md
CHANGED
|
@@ -49,9 +49,9 @@ In those cases a boundary linter or editor rules may be enough; see [README —
|
|
|
49
49
|
| Before merge | Make the Ark job a **required GitHub status context** running `arkgate-check --strict-merge` (alias `ark-check`) |
|
|
50
50
|
| Anytime | Doctor: Suggest / Adapt / Enforce (+ leftover design work if the design is still messy) |
|
|
51
51
|
|
|
52
|
-
**
|
|
52
|
+
**Cursor:** pre-write block for Write/StrReplace when `.cursor/hooks.json` is trusted. **Codex / OpenCode:** local write stays advisory (warning only, not blocked) — that is not unfinished architecture. Doctor may say **contract ready** while still reminding you that those hosts do not hard-block writes; **Not finished** is reserved for real project/contract debt.
|
|
53
53
|
|
|
54
|
-
ArkGate is **not** a web framework, ORM, or app runtime. It is architecture enforcement +
|
|
54
|
+
ArkGate is **not** a web framework, ORM, or app runtime. It is architecture enforcement + a coach for AI TypeScript.
|
|
55
55
|
|
|
56
56
|
### Two planes (you choose)
|
|
57
57
|
|
|
@@ -83,7 +83,7 @@ list: [configuration.md](configuration.md).
|
|
|
83
83
|
| **Suggest** | New or thin project | Finish `start`, re-run doctor |
|
|
84
84
|
| **Adapt** | Not fully protected yet | Doctor action #1 until clean |
|
|
85
85
|
| **Enforce** | Edges honest under the contract | Keep write path + CI |
|
|
86
|
-
| **Enforce · design
|
|
86
|
+
| **Enforce · leftover design work** | Edges clean; design still messy | Shape door — not “done” |
|
|
87
87
|
|
|
88
88
|
**Green edges ≠ elegant design.** Empty remediation plan is not “architecture finished” if design residual remains.
|
|
89
89
|
|
|
@@ -97,9 +97,14 @@ outside the package. **Enforce green ≠ feature done.**
|
|
|
97
97
|
That is **Shape** work (plan B) — suggested, never auto-applied as silent magic.
|
|
98
98
|
|
|
99
99
|
1. Doctor confirms leftover design work (and residual lenses on the improvement compass)
|
|
100
|
-
2. Guided map / dual plan (skill pack: `/ark-explore` then `/ark-autopilot`
|
|
100
|
+
2. Guided map / dual plan (skill pack: `/ark-explore` then `/ark-autopilot` applies one refactor)
|
|
101
101
|
3. One small refactor at a time · re-run doctor
|
|
102
102
|
|
|
103
|
+
**Teams:** do not amend `ark.config.json` in a product PR. Local gate:
|
|
104
|
+
`npx arkgate-check --changed --base origin/dev`. Law-only PRs use
|
|
105
|
+
`--contract-session` (stewards own loosen / baseline-grow). Checkout honesty:
|
|
106
|
+
`npx arkgate status --vs origin/dev`.
|
|
107
|
+
|
|
103
108
|
Install skills only when you want that guided path:
|
|
104
109
|
|
|
105
110
|
```bash
|
|
@@ -170,7 +175,7 @@ Human doctor prints the short section above.
|
|
|
170
175
|
| **Stabilize** | Edges under Enforce | Real debt only in baseline; write path + CI honest |
|
|
171
176
|
| **Shape** | One golden pattern + pilots | Residual lenses shrink pilot by pilot — never silent multi-pilot |
|
|
172
177
|
|
|
173
|
-
Green edges under **Enforce · design
|
|
178
|
+
Green edges under **Enforce · leftover design work** mean Align/Stabilize may be fine while Shape remains open.
|
|
174
179
|
Empty plan A is **not** “architecture finished.”
|
|
175
180
|
|
|
176
181
|
---
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arkgate",
|
|
3
|
-
"version": "4.6.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "4.6.2",
|
|
4
|
+
"description": "One architecture config. One check. One coach.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -292,6 +292,57 @@
|
|
|
292
292
|
"minLength": 1
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
+
},
|
|
296
|
+
"vsBase": {
|
|
297
|
+
"type": "object",
|
|
298
|
+
"description": "Checkout vs a git base ref: pin, contract identity, baseline grow. Advisory honesty only — never a gate input.",
|
|
299
|
+
"additionalProperties": false,
|
|
300
|
+
"required": [
|
|
301
|
+
"baseRef",
|
|
302
|
+
"line",
|
|
303
|
+
"pinLocal",
|
|
304
|
+
"pinBase",
|
|
305
|
+
"contractEqual",
|
|
306
|
+
"baselineGrew"
|
|
307
|
+
],
|
|
308
|
+
"properties": {
|
|
309
|
+
"baseRef": {
|
|
310
|
+
"type": "string",
|
|
311
|
+
"minLength": 1
|
|
312
|
+
},
|
|
313
|
+
"line": {
|
|
314
|
+
"type": "string",
|
|
315
|
+
"minLength": 1
|
|
316
|
+
},
|
|
317
|
+
"pinLocal": {
|
|
318
|
+
"anyOf": [
|
|
319
|
+
{
|
|
320
|
+
"type": "string",
|
|
321
|
+
"minLength": 1
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"type": "null"
|
|
325
|
+
}
|
|
326
|
+
]
|
|
327
|
+
},
|
|
328
|
+
"pinBase": {
|
|
329
|
+
"anyOf": [
|
|
330
|
+
{
|
|
331
|
+
"type": "string",
|
|
332
|
+
"minLength": 1
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"type": "null"
|
|
336
|
+
}
|
|
337
|
+
]
|
|
338
|
+
},
|
|
339
|
+
"contractEqual": {
|
|
340
|
+
"type": "boolean"
|
|
341
|
+
},
|
|
342
|
+
"baselineGrew": {
|
|
343
|
+
"type": "boolean"
|
|
344
|
+
}
|
|
345
|
+
}
|
|
295
346
|
}
|
|
296
347
|
}
|
|
297
348
|
}
|
package/server.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "io.github.pedroknigge/arkgate",
|
|
4
|
-
"description": "ArkGate
|
|
4
|
+
"description": "When your agent writes TypeScript, ArkGate stops it from breaking the layers — and CI rejects the merge if it still does.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/pedroknigge/arkgate",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "4.6.
|
|
9
|
+
"version": "4.6.2",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "arkgate",
|
|
14
|
-
"version": "4.6.
|
|
14
|
+
"version": "4.6.2",
|
|
15
15
|
"runtimeHint": "npx",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
This directory is the **Agent Skills–compatible** packaging of the same **13**
|
|
8
8
|
`/ark-*` skills shipped as flat templates for Ark install. **No new skill names.**
|
|
9
9
|
|
|
10
|
-
Package version when last generated context: **arkgate@4.6.
|
|
10
|
+
Package version when last generated context: **arkgate@4.6.2**
|
|
11
11
|
Schema: agent-skills package contract `1.0`
|
|
12
12
|
|
|
13
13
|
## Skills (frozen catalog)
|