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.
Files changed (78) hide show
  1. package/CHANGELOG.md +54 -1
  2. package/README.md +11 -5
  3. package/bin/ark-check-runtime.mjs +115 -128
  4. package/bin/ark-mcp-runtime.mjs +86 -48
  5. package/bin/ark.mjs +21 -78
  6. package/bin/lib/agent-projection.mjs +1 -1
  7. package/bin/lib/analysis-engine.mjs +3 -3
  8. package/bin/lib/ci-and-commands.mjs +11 -11
  9. package/bin/lib/config-contract.mjs +2 -0
  10. package/bin/lib/contract-smells.mjs +5 -5
  11. package/bin/lib/design-smells.mjs +1 -1
  12. package/bin/lib/doctor-advisories.mjs +9 -0
  13. package/bin/lib/doctor-next-actions.mjs +92 -0
  14. package/bin/lib/doctor-plan.mjs +61 -71
  15. package/bin/lib/field-install.mjs +1 -1
  16. package/bin/lib/first-run-help.mjs +221 -0
  17. package/bin/lib/html-report-advisories.mjs +20 -0
  18. package/bin/lib/improvement-compass-map.mjs +20 -20
  19. package/bin/lib/pilot-loop.mjs +1 -1
  20. package/bin/lib/post-green-path.mjs +2 -2
  21. package/bin/lib/prepare-change.mjs +9 -0
  22. package/bin/lib/product-copy.mjs +1 -1
  23. package/bin/lib/start-preview.mjs +17 -10
  24. package/bin/lib/status-command.mjs +19 -0
  25. package/bin/lib/status-manifest.mjs +23 -0
  26. package/bin/lib/team-parliament-io.mjs +338 -0
  27. package/bin/lib/team-parliament.mjs +383 -0
  28. package/bin/lib/upgrade-whats-new.mjs +16 -0
  29. package/bin/lib/violations.mjs +8 -4
  30. package/dist/{configTypes-CC0FEXoF.d.ts → configTypes-B8uIcLaG.d.ts} +5 -0
  31. package/dist/eslint/index.cjs +2 -2
  32. package/dist/eslint/index.d.ts +1 -1
  33. package/dist/eslint/index.js +2 -2
  34. package/dist/index.cjs +8 -8
  35. package/dist/index.d.ts +66 -2
  36. package/dist/index.js +8 -8
  37. package/docs/README.md +5 -5
  38. package/docs/agent-guide.md +21 -17
  39. package/docs/configuration.md +36 -2
  40. package/docs/develop.md +13 -1
  41. package/docs/enthusiast/README.md +1 -1
  42. package/docs/enthusiast/how-to-agent-gates.md +3 -3
  43. package/docs/enthusiast/how-to-pick-shape.md +2 -2
  44. package/docs/enthusiast/tutorial-first-project.md +4 -3
  45. package/docs/package-surface.md +5 -3
  46. package/docs/product-voice.md +48 -10
  47. package/docs/use.md +10 -5
  48. package/package.json +2 -2
  49. package/schemas/ark.config.schema.json +9 -0
  50. package/schemas/ark.status-manifest.schema.json +51 -0
  51. package/server.json +3 -3
  52. package/templates/agent-skills/README.md +1 -1
  53. package/templates/agent-skills/ark-adopt/SKILL.md +59 -23
  54. package/templates/agent-skills/ark-architect/SKILL.md +24 -145
  55. package/templates/agent-skills/ark-autopilot/SKILL.md +49 -32
  56. package/templates/agent-skills/ark-contract/SKILL.md +21 -105
  57. package/templates/agent-skills/ark-coverage/SKILL.md +7 -3
  58. package/templates/agent-skills/ark-explain/SKILL.md +8 -4
  59. package/templates/agent-skills/ark-explore/SKILL.md +38 -21
  60. package/templates/agent-skills/ark-fix/SKILL.md +34 -157
  61. package/templates/agent-skills/ark-loop/SKILL.md +31 -153
  62. package/templates/agent-skills/ark-place/SKILL.md +35 -14
  63. package/templates/agent-skills/ark-runtime/SKILL.md +3 -3
  64. package/templates/agent-skills/ark-think/SKILL.md +6 -2
  65. package/templates/agent-skills/ark-upgrade/SKILL.md +21 -10
  66. package/templates/skills/ark-adopt.md +59 -23
  67. package/templates/skills/ark-architect.md +24 -145
  68. package/templates/skills/ark-autopilot.md +49 -32
  69. package/templates/skills/ark-contract.md +21 -105
  70. package/templates/skills/ark-coverage.md +7 -3
  71. package/templates/skills/ark-explain.md +8 -4
  72. package/templates/skills/ark-explore.md +38 -21
  73. package/templates/skills/ark-fix.md +34 -157
  74. package/templates/skills/ark-loop.md +31 -153
  75. package/templates/skills/ark-place.md +35 -14
  76. package/templates/skills/ark-runtime.md +3 -3
  77. package/templates/skills/ark-think.md +6 -2
  78. 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
- Current published: [releases/4.5.7.md](releases/4.5.7.md) (`arkgate@4.5.7` on npm `latest`).
62
- Prepared: [releases/4.6.0.md](releases/4.6.0.md) (`arkgate@4.6.0`).
63
- Prior: [releases/4.4.0.md](releases/4.4.0.md) (`arkgate@4.4.0`).
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
 
@@ -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` skill.
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
- **Skill roles (expert depth — avoid overlap):** `/ark-autopilot` = **guided end-to-end** default
274
- when skills are installed (explore apply A + propose/apply-with-ok B). `/ark-explore` = map +
275
- dual-plan **seed** + Shape residual (no apply); primary post-green map half. `/ark-coverage` = Ark
276
- **fitness** only (governed/gates). `/ark-think` = one decision (2–3 options). `/ark-adopt` =
277
- brownfield Align/Stabilize + seed Shape B. `/ark-loop` = plan A only. Empty plan A is not
278
- “architecture healthy” if design-weak residual remains. Full routing table: full-install
279
- `AGENTS.md` / [README expert skills](../README.md#expert-skills-escapes--not-onboarding).
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` only to apply B with your OK. Do not skill-shop coverage/think for the same residual.
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-architect` judgment cards. `notAScore`, never a
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-architect` (Phase C)
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-architect`) before
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? Run /ark-architect or: ark-check --recommend
496
+ New to Ark? /ark-adopt or: arkgate-check --doctor
493
497
  ```
494
498
 
495
- The `/ark-architect` skill ships in `templates/skills/ark-architect.md` and installs
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-contract`.
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), not `/ark-architect`.
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
 
@@ -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-fix` / `/ark-loop` when the real goal is
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 skill `/ark-contract`; extract/implement via `/ark-fix` or `/ark-loop`.
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-contract` |
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-architect`, `ark-check --recommend`, gallery starters |
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 including **`/ark-architect`**, **`/ark-autopilot`**, **`/ark-loop`**
19
- (with current `mechanical-safe` remediation kinds)
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? Run /ark-architect or: ark-check --recommend
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-architect`** on a greenfield or early-adoption repo.
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-architect`.
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-architect`, `/ark-place`, `/ark-autopilot`, and the other `/ark-*` skills for Claude, Cursor, Codex, Grok, and other detected hosts.
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-architect` once at the start, then `/ark-place` for each new file. The agent
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
 
@@ -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, and **`improvementCompass`** with honesty **`mode`** `full`\|`subset`\|`unavailable` (residual ids only; always `notAScore: true`; optional `reasonCode`/`reason`/`factsSource`/`contractHash`). **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
+ | **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
- (current published: [4.5.7.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.5.7.md);
213
- prior published: [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),
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),
@@ -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; never silent auto-apply |
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: one Shape door — map (`/ark-explore` shape-focus) plan B apply B only with `/ark-autopilot` and OK. |
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-fix, prepare-write, or contract edit].
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. Three jobs only:
318
+ Keep short. Five doors only:
299
319
 
300
320
  1. Point at **doctor** as status.
301
- 2. Day-to-day place / validate / check.
302
- 3. Point at **full skill pack install** as optional expert depth not a skill catalog dump.
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-autopilot` | Guided **end-to-end** path (explore dual plan apply A; B with OK) |
311
- | `/ark-explore` | Map / dual-plan **seed** only; primary post-green map half |
312
- | Others | Specialized escape; name when **not** to use them |
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
- Keep dual-engine rules and **STOP** handoffs. Never claim silent full-tree reshape.
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
- **Codex / Cursor / OpenCode:** local write stays advisory forever — that is not unfinished architecture. Doctor may say **contract ready** while still reminding you that local writes are advisory; **Not finished** is reserved for real project/contract debt.
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 + co-pilot for AI TypeScript.
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-weak** | Edges clean; design still messy | Shape door — not “done” |
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` with your OK)
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-weak** mean Align/Stabilize may be fine while Shape remains open.
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.0",
4
- "description": "ArkGate \u2014 architecture co-pilot for AI TypeScript (write gate, CI gate, plan/loop; optional ArkRules)",
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",
@@ -632,6 +632,15 @@
632
632
  "minLength": 1
633
633
  },
634
634
  "default": {}
635
+ },
636
+ "stewards": {
637
+ "type": "array",
638
+ "items": {
639
+ "type": "string",
640
+ "minLength": 1
641
+ },
642
+ "uniqueItems": true,
643
+ "default": []
635
644
  }
636
645
  },
637
646
  "$defs": {
@@ -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 \u2014 architecture co-pilot for AI TypeScript (write gate, CI, plan/loop)",
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.0",
9
+ "version": "4.6.2",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "arkgate",
14
- "version": "4.6.0",
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.0**
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)