arkgate 4.8.13 → 4.8.15

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 (126) hide show
  1. package/CHANGELOG.md +219 -4
  2. package/README.md +33 -22
  3. package/SECURITY.md +5 -3
  4. package/bin/ark-check-runtime.mjs +25 -57
  5. package/bin/ark-mcp-runtime.mjs +111 -2
  6. package/bin/ark-shared.mjs +140 -11
  7. package/bin/ark.mjs +7 -25
  8. package/bin/lib/adr-presence.mjs +97 -0
  9. package/bin/lib/agent-projection-formatters.mjs +2 -0
  10. package/bin/lib/agent-skills-package.mjs +241 -8
  11. package/bin/lib/analysis-completeness.mjs +38 -2
  12. package/bin/lib/analysis-engine.mjs +6 -6
  13. package/bin/lib/architecture-scan.mjs +33 -5
  14. package/bin/lib/ark-order-doctor.mjs +7 -1
  15. package/bin/lib/ark-order-report.mjs +2 -1
  16. package/bin/lib/ark-run-doctor.mjs +6 -0
  17. package/bin/lib/ark-run-report.mjs +6 -2
  18. package/bin/lib/arkrules-sensors.mjs +81 -0
  19. package/bin/lib/baseline-key.mjs +4 -1
  20. package/bin/lib/check-args.mjs +52 -2
  21. package/bin/lib/ci-and-commands.mjs +7 -2
  22. package/bin/lib/config-contract.mjs +64 -1
  23. package/bin/lib/design-smells.mjs +21 -1
  24. package/bin/lib/diagnostic-catalog.mjs +5 -3
  25. package/bin/lib/doctor-advisories.mjs +109 -17
  26. package/bin/lib/doctor-human.mjs +20 -6
  27. package/bin/lib/doctor-next-actions.mjs +14 -0
  28. package/bin/lib/doctor-plan.mjs +32 -2
  29. package/bin/lib/enforcement-honesty.mjs +47 -2
  30. package/bin/lib/first-run-help.mjs +19 -3
  31. package/bin/lib/gate-files.mjs +40 -3
  32. package/bin/lib/host-support-matrix.mjs +9 -1
  33. package/bin/lib/html-report-depth.mjs +2 -0
  34. package/bin/lib/html-report.mjs +13 -2
  35. package/bin/lib/import-resolve.mjs +74 -13
  36. package/bin/lib/improvement-compass-doctor.mjs +6 -1
  37. package/bin/lib/improvement-compass-map.mjs +3 -1
  38. package/bin/lib/install-migrate.mjs +23 -0
  39. package/bin/lib/layer-description.mjs +90 -8
  40. package/bin/lib/mcp-hook-payload.mjs +57 -1
  41. package/bin/lib/no-domain-frontend.mjs +91 -0
  42. package/bin/lib/presets.mjs +3 -4
  43. package/bin/lib/product-copy.mjs +19 -0
  44. package/bin/lib/projected-governed-coverage.mjs +114 -0
  45. package/bin/lib/recommend-cli.mjs +54 -0
  46. package/bin/lib/remediation.mjs +6 -2
  47. package/bin/lib/resolved-candidate-facts.mjs +225 -100
  48. package/bin/lib/rules-under-contract.mjs +117 -2
  49. package/bin/lib/scan-files.mjs +39 -0
  50. package/bin/lib/snippet-analysis.mjs +14 -8
  51. package/bin/lib/start-preview.mjs +8 -2
  52. package/bin/lib/states-transitions-presence.mjs +212 -0
  53. package/bin/lib/status-command.mjs +2 -0
  54. package/bin/lib/status-transition-catalog.mjs +410 -0
  55. package/bin/lib/team-parliament-io.mjs +10 -0
  56. package/bin/lib/upgrade-whats-new.mjs +3 -3
  57. package/bin/lib/violations.mjs +43 -1
  58. package/bin/lib/write-path-capabilities.mjs +20 -5
  59. package/bin/lib/write-path-detect.mjs +27 -2
  60. package/dist/{configTypes-j7so8B4O.d.ts → configTypes-Dt3DpVbd.d.ts} +19 -0
  61. package/dist/{diagnosticCatalog-DA565Lja.d.ts → diagnosticCatalog-BEg85XlE.d.ts} +3 -3
  62. package/dist/eslint/index.cjs +4 -4
  63. package/dist/eslint/index.d.ts +1 -1
  64. package/dist/eslint/index.js +4 -4
  65. package/dist/index.cjs +31 -31
  66. package/dist/index.d.ts +126 -19
  67. package/dist/index.js +31 -31
  68. package/dist/nestjs/index.cjs +5 -5
  69. package/dist/nestjs/index.d.ts +3 -3
  70. package/dist/nestjs/index.js +5 -5
  71. package/dist/runtime/index.cjs +15 -15
  72. package/dist/runtime/index.d.ts +6 -6
  73. package/dist/runtime/index.js +15 -15
  74. package/dist/{types-Djbs3KjE.d.ts → types-CN9tVMPz.d.ts} +3 -1
  75. package/dist/{types-tGhZUiGX.d.ts → types-TBiv0WHL.d.ts} +1 -1
  76. package/docs/README.md +8 -6
  77. package/docs/agent-guide.md +35 -17
  78. package/docs/ai-gates.md +13 -4
  79. package/docs/arkorder.md +11 -4
  80. package/docs/brownfield-adoption.md +4 -1
  81. package/docs/configuration.md +63 -14
  82. package/docs/develop.md +4 -1
  83. package/docs/diagnostics.md +30 -10
  84. package/docs/enthusiast/README.md +6 -1
  85. package/docs/enthusiast/how-to-agent-gates.md +5 -0
  86. package/docs/enthusiast/how-to-gallery-starter.md +2 -1
  87. package/docs/enthusiast/how-to-pick-shape.md +1 -1
  88. package/docs/package-surface.md +10 -6
  89. package/docs/product-voice.md +32 -6
  90. package/docs/threat-model.md +2 -2
  91. package/docs/typescript-support.md +3 -3
  92. package/docs/use.md +23 -11
  93. package/package.json +1 -1
  94. package/schemas/ark.config.schema.json +23 -2
  95. package/server.json +2 -2
  96. package/templates/agent-skills/README.md +7 -4
  97. package/templates/agent-skills/ark-adopt/SKILL.md +91 -6
  98. package/templates/agent-skills/ark-architect/SKILL.md +5 -18
  99. package/templates/agent-skills/ark-autopilot/SKILL.md +14 -6
  100. package/templates/agent-skills/ark-contract/SKILL.md +9 -20
  101. package/templates/agent-skills/ark-coverage/SKILL.md +13 -9
  102. package/templates/agent-skills/ark-explain/SKILL.md +11 -5
  103. package/templates/agent-skills/ark-explore/SKILL.md +39 -5
  104. package/templates/agent-skills/ark-fix/SKILL.md +15 -20
  105. package/templates/agent-skills/ark-loop/SKILL.md +14 -20
  106. package/templates/agent-skills/ark-order/SKILL.md +200 -0
  107. package/templates/agent-skills/ark-place/SKILL.md +49 -11
  108. package/templates/agent-skills/ark-runtime/SKILL.md +21 -6
  109. package/templates/agent-skills/ark-think/SKILL.md +24 -126
  110. package/templates/agent-skills/ark-upgrade/SKILL.md +14 -3
  111. package/templates/arkrules/DomainModel.json +14 -1
  112. package/templates/skills/ark-adopt.md +91 -6
  113. package/templates/skills/ark-architect.md +5 -18
  114. package/templates/skills/ark-autopilot.md +14 -6
  115. package/templates/skills/ark-contract.md +9 -20
  116. package/templates/skills/ark-coverage.md +13 -9
  117. package/templates/skills/ark-explain.md +11 -5
  118. package/templates/skills/ark-explore.md +39 -5
  119. package/templates/skills/ark-fix.md +15 -20
  120. package/templates/skills/ark-loop.md +14 -20
  121. package/templates/skills/ark-order.md +200 -0
  122. package/templates/skills/ark-place.md +49 -11
  123. package/templates/skills/ark-runtime.md +21 -6
  124. package/templates/skills/ark-think.md +24 -126
  125. package/templates/skills/ark-upgrade.md +14 -3
  126. package/templates/tests/ark-adoption-gaps.test.ts +5 -4
@@ -1,54 +1,24 @@
1
1
  ---
2
2
  name: ark-think
3
- description: 2–3 options for one import-rule or ArkRules decision. Not a full map (use /ark-explore).
3
+ description: Shortcut to /ark-explore for one import-rule or ArkRules decision (2–3 options).
4
4
  ---
5
5
 
6
- # /ark-think — Architectural reasoning (host LLM only)
6
+ # /ark-think — Shortcut to /ark-explore
7
7
 
8
- **Not a first-run door.** One decision only. Session 0 **`/ark-adopt`**.
9
- Full map **`/ark-explore`**. Apply **`/ark-autopilot`**.
10
- Do not send the user to leftover `/ark-contract` or `/ark-fix`.
11
-
12
- You are the user's architecture thinking partner **inside** the project's Ark contract.
13
- This skill does **not** call any LLM API from the arkgate package. **You** (the host agent)
14
- reason; the write-gate and CI remain deterministic.
15
-
16
- ## Improvement compass (process preflight)
17
-
18
- When doctor is available, read `doctor.improvementCompass` (or the human **Improvement compass** section).
19
- Name 1–3 **residual** lenses in plain language before skill-shopping. Always `notAScore` — never invent
20
- 0–10 scores or Excellent/Good ranks.
21
-
22
- **What the user should feel next:** fewer blocked AI writes, clearer folders, safer domain — then jargon.
23
-
24
- **Anti false-done:** empty plan A + residual lenses / design-weak → **Incomplete? yes**. Green edges alone
25
- are not “architecture finished.”
26
-
27
- **AI-easy architecture:** ports over concrete I/O in domain; one concern per module; golden pattern for
28
- new files; place before write (`/ark-place` / prepare-write).
29
-
30
- **Out of scope (honest):** scalability/performance, full app-security tooling (SAST), and full resilience
31
- patterns are **out-of-scope** lenses — say so; do not invent Ark enforcement for them.
32
-
33
- **2–3 options labeled by lens impact** (what residual improves / what stays out-of-scope).
34
-
35
- ## Deep modules (process)
36
-
37
- - Prefer **deep modules** (small interface, hidden complexity). Never invent a depth score.
38
- - Label the **seam** on each option that introduces a port/adapter; apply the **deletion test** before pass-through extracts “for testability.”
39
- - Recommend tests **at the public interface** of the chosen seam.
8
+ **Not a first-class door.** One-release redirect. One bounded decision with 2–3
9
+ enforceable options is **`/ark-explore`** (section **One decision**). Do that job now.
10
+ Contener · Guiar · Ordenar this leftover name is not a star.
40
11
 
41
12
  ## When / not when
42
13
 
43
- | Use `/ark-think` when… | Do **not** use it when… |
44
- |------------------------|-------------------------|
45
- | One decision: new layer vs slice, port vs shared, peerIsolation choice | Full map / ranked residual / dual-plan seed `/ark-explore` |
46
- | 2–3 options already bounded by a known surface | Apply remediation → `/ark-autopilot` |
47
- | Trade-offs before writing a **new** feature | Brownfield config wrong / false-green → `/ark-adopt` |
48
- | Explain *why* a rule exists in *this* tree | HTML tour → `/ark-explain`; fitness numbers → `/ark-coverage` |
49
-
50
- If you lack a product map and the tree is messy: run a **compressed** explore pass first
51
- (≥8 files) **or** **STOP** and invoke `/ark-explore` — do not invent options from diagrams alone.
14
+ | Use this leftover name when… | Prefer instead |
15
+ |------------------------------|----------------|
16
+ | One decision: 2–3 options already bounded | **`/ark-explore`** (one decision) |
17
+ | Full map / ranked residual / dual-plan seed | **`/ark-explore`** (recon) |
18
+ | Apply the chosen option | **`/ark-autopilot`** |
19
+ | Session 0 / false-green | **`/ark-adopt`** |
20
+ | One kernel candidate | **`/ark-runtime`** |
21
+ | One order-plane candidate | **`/ark-order`** |
52
22
 
53
23
  ## Dual engine (mandatory)
54
24
 
@@ -57,8 +27,7 @@ If you lack a product map and the tree is messy: run a **compressed** explore pa
57
27
  | **Deterministic** | What the contract and doctor *prove* today (layers, rules, governed%, gaps) |
58
28
  | **Exploratory** | What *this* decision surface wants — options grounded in files you open |
59
29
 
60
- Never reason only from abstract hexagons. Open real modules before recommending a shape.
61
-
30
+ The CLI is a **sensor**, never the whole job. Claiming done without the exploratory bar for this skill is **incomplete**.
62
31
 
63
32
  ## MCP workspace binding (mandatory)
64
33
 
@@ -69,92 +38,25 @@ retain `projectIdentity.projectId`, then pass both `expectedRoot` and `expectedP
69
38
  uncertain, do not consume MCP analysis: use the workspace-local CLI and report that MCP
70
39
  restart/retargeting is required. `ark://manifest` never satisfies this preflight.
71
40
 
72
- ## Dual plane — layers + extras (mandatory, except /ark-runtime)
73
-
74
- ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; you **always label** findings so they never blur. Absence of an extra is silent and valid. Skills never enforce. ArkOrder is an extra **inside** the `arkgate` package (`arkgate/order`), not a second install.
75
-
76
- | Plane | What it protects | Where it lives | Sensors / tools |
77
- |-------|------------------|----------------|-----------------|
78
- | **Layers** (inter-layer) | Who may import whom, capabilities, pure/forbiddenGlobals, peerIsolation | `ark.config.json` → `layers[]`, `rules[]` | graph check, baseline edges, doctor coverage % |
79
- | **ArkRules** (intra-layer) | Structure inside a layer + domain invariants as data | `arkRules` map + `arkrules/<ExactLayerName>.json` | structure sensors, invariant coverage, `--rules-inventory`, doctor `rulesUnderContract` |
80
- | **ArkRun** (extra) | Kernel usage + complete declarations; information package `decisionTape` `{ xiHash, event, residual }` | `arkRun` on `ark.config.json` (schema `1.2+`); factory `arkgate/runtime`; **`kernelRoots` preferred**, `compositionRoots` alias | `ARKRUN_*`, doctor `arkRun` (`notAScore`) |
81
- | **ArkOrder** (extra) | Operational pattern (ξ vs s). Valve: first `release()`, later ξ is `proposeRelease` then `apply`; `refreshSigma`; ingest residual `absorb \| escalate_up \| hold` + `reasonCode`; capacity pack as data; in-memory `ReleaseStore` | `arkOrder` on `ark.config.json` (schema `1.3+`); factory `arkgate/order` | `ARKORDER_*` |
82
-
83
- **Rules for every report / answer:**
84
- 1. Prefix each finding or next step with **`[Layer]`** or **`[ArkRules]`** or **`[ArkRun]`** or **`[ArkOrder]`** (or a table with those headers).
85
- 2. Never call an import-edge violation an “invariant” or an aggregate sensor a “layer deny.”
86
- 3. Absence of `arkRules` is **valid** — do not force ArkRules unless the user wants them or residual inventory clearly wants a pilot.
87
- 4. Editing `arkrules/*` or promoting modes is **`/ark-adopt`** / leftover **`/ark-contract`**; fixing code under a structure sensor is leftover **`/ark-fix`** / **`/ark-loop`** or **`/ark-autopilot`** (judgment, never invent mechanical-safe). Extra decisions stay on existing doors. Do not invent `/ark-run` or `/ark-order`.
88
- 5. CLI helpers: `ark-check --rules-inventory --json`, doctor JSON `rulesUnderContract`, sensors emit `ARKRULE_*` / `INVARIANT_UNCOVERED` with `evidence.arkruleId`.
89
-
90
-
91
- ### Think + ArkRules
92
- - For ONE decision, consider options on **both** planes when relevant: e.g. new layer wall **vs** structure sensor **vs** invariant catalog entry.
93
- - Every option must state enforceability: which plane holds it after the change.
94
-
95
- ### Think + extras
96
- - Extra decisions stay enforceable on existing doors (`/ark-adopt` session 0, `/ark-place` new file, `/ark-autopilot` grind, `/ark-runtime` one kernel candidate). No new skill name. Do not invent `/ark-run` or `/ark-order`.
97
-
98
41
  ## Subagent fan-out (optional, host-dependent)
99
42
 
100
- When the user asks to go faster **or** the work naturally splits (multiple packages,
101
- feature dirs, plan clusters), you **may** dispatch **subagents**:
43
+ If the host supports **parallel subagents**, fan out read-only scouts; otherwise
44
+ **fall back to sequential**. Never weaken the gate.
102
45
 
103
- | Host capability | Behavior |
104
- |-----------------|----------|
105
- | **Parallel subagents supported** (e.g. multi-agent / `spawn_subagent` / concurrent Agent tools) | Launch **2–N** agents in **one wave** with **disjoint path scopes**. Prefer **read-only** explore agents for mapping; at most **one writer** unless the host gives isolated worktrees. Parent merges findings, then runs `ark-check` once. |
106
- | **Not supported** (single agent only) | **Fall back to sequential** — same checklist, one cluster/step at a time. Never claim parallel work you did not run. |
46
+ ## Related onboarding
107
47
 
108
- **Rules:**
109
- 1. Give each subagent a **tight brief**: paths in scope, sensor commands allowed, deliverable shape (paths opened + findings JSON or bullets).
110
- 2. **No shared mutable files** across parallel writers.
111
- 3. STOP handoffs and dual-engine rules still apply in every agent.
112
- 4. Parent owns the **### Completion** block (union of **Opened**, single **Handoff**).
113
- 5. Do **not** use subagents to weaken the gate or invent `mechanical-safe` kinds.
48
+ - **Greenfield:** `/ark-adopt` or `ark-check --recommend` / `ark start`.
49
+ - **Brownfield:** `/ark-adopt`.
50
+ - **One decision:** `/ark-explore` (this leftover name redirects there).
114
51
 
115
52
  ## Steps
116
53
 
117
- 1. **Load the contract** `ark.config.json`; when MCP is available, call `ark_identity` with
118
- the exact project root followed by `ark_manifest` with the same root plus returned project
119
- id. The `ark://manifest` resource is compatibility-only and always
120
- unverified/non-authoritative. Use `ark-check --coverage --json` / `--doctor` for honesty
121
- about governed% and false-green.
122
- 2. **Touch the decision surface** — README skim + **≥5 source files** on the feature/package/boundary
123
- under discussion. Name paths in the answer.
124
- 3. **Name the active shape** — which preset/archetype fits (hexagonal, vertical-slice,
125
- ddd-bounded-contexts, feature-sliced, monorepo, …). If none, run `--recommend --json`
126
- **and** say whether detection matches the tree you opened.
127
- 4. **Name concurrent patterns** on the decision surface (if ≥2): which is **golden** vs legacy.
128
- 5. **Reason within bounds** — propose **2–3 options** that **stay enforceable** by the gate.
129
- Prefer concrete paths and import rules over abstract diagrams.
130
- 6. **Explore alternatives** — for each option: coupling, testability, **AI-agent safety**,
131
- migration cost, **pilot + kill-switch** if the option adds a layer or wall.
132
- 7. **Surface hard lines** — never suggest: weakening `ark.config.json` to pass, silent
133
- judgment auto-apply, codemod engines, or skipping write-gate/CI.
134
- 8. **Hand off** — placement `/ark-place`; first extra `/ark-adopt`; grind `/ark-autopilot`;
135
- map-only `/ark-explore`; leftover config `/ark-contract`; leftover cluster `/ark-fix` /
136
- `/ark-loop`. Extra decisions stay on those doors. Do not invent `/ark-run` or `/ark-order`.
137
- When the user needs action not advice: **STOP — do not continue this skill as complete** — invoke the handoff skill.
138
-
139
- ## Output format
140
-
141
- - **Context:** product + contract + what you opened (paths) + phase if known (Align/Stabilize/Shape)
142
- - **Options:** 2–3 alternatives with trade-offs (coupling, testability, agent safety, enforceability)
143
- - **Recommendation:** one option + why it is enforceable **today**
144
- - **Pilot / kill-switch:** if the choice changes shape or adds a layer
145
- - **Risks if we pick wrong:** one sentence user-visible impact
146
- - **Next command:** exact `ark-check` / skill to run next
147
-
148
- ## Related
149
-
150
- - Greenfield shape: `/ark-architect`
151
- - Brownfield: `/ark-adopt`
152
- - Full recon / dual-plan seed: `/ark-explore`
153
- - Explain existing: `/ark-explain`
54
+ 1. Execute **`/ark-explore`** one-decision: open ≥5 files, name 2–3 enforceable options, recommend one.
55
+ 2. Hand off apply `/ark-autopilot`; new file `/ark-place`.
154
56
 
155
57
  ## Completion contract (skill incomplete if missing)
156
58
 
157
- End with **exactly** these headings (markdown `###`):
59
+ Skill incomplete if missing any field below.
158
60
 
159
61
  ### Completion
160
62
  - **Sensor:** commands/tools run
@@ -162,9 +64,5 @@ End with **exactly** these headings (markdown `###`):
162
64
  - **Result:** one-line outcome
163
65
  - **Planes:** one-line split of residual **[Layer]** vs **[ArkRules]** vs **[ArkRun]** vs **[ArkOrder]** (or `n/a` if unused)
164
66
  - **Compass:** top residual lenses | `n/a`
165
- - **Done axes:** architecture residual (status/doctor/compass) | feature/ticket residual (outside package). Enforce green ≠ feature done
166
- - **Handoff:** `/ark-…` / CLI / `none`
67
+ - **Handoff:** `/ark-explore` / `/ark-autopilot` / `none`
167
68
  - **Incomplete?** `no` | `yes — <what is missing>`
168
-
169
- If a **STOP** handoff applies and you continued as if done, set **Incomplete?** to `yes`.
170
- **Skill incomplete if missing** any of the bullets above.
@@ -5,9 +5,20 @@ description: Upgrade ArkGate. Preview first, keep customized files, then apply.
5
5
 
6
6
  # /ark-upgrade — managed ArkGate upgrade
7
7
 
8
+ **Contener · Guiar · Ordenar.** In plain words: contain the write, guide the next
9
+ step, order leftover mess. This door is **Contener**: keep the pin current.
10
+ Skills never enforce — CLI / hooks / CI do.
11
+
8
12
  **When:** bump the published `arkgate` package and refresh managed gates.
9
13
  **Not when:** session 0 (`/ark-adopt`) or leftover design (`/ark-explore`).
10
14
 
15
+ ## When / not when
16
+
17
+ | Use `/ark-upgrade` when… | Do **not** use it when… |
18
+ |--------------------------|-------------------------|
19
+ | Bump the pin and refresh managed gates | Session 0 / path missing → `/ark-adopt` |
20
+ | Preview then `--apply` in this turn | Leftover design / map → `/ark-explore`; apply Shape → `/ark-autopilot` |
21
+
11
22
  ## Steps
12
23
 
13
24
  1. Preview: `arkgate upgrade` (no writes). Default is **hosts keep** — do not retire other hosts’ skills.
@@ -132,8 +143,8 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
132
143
  2. Never call an import-edge violation an “invariant” or an aggregate sensor a “layer deny.”
133
144
  3. Absence of `arkRules` is **valid** — do not force ArkRules unless the user wants them or residual inventory clearly wants a pilot.
134
145
  4. After upgrade, leftover architecture work is **`/ark-autopilot`** (never invent `mechanical-safe`).
135
- 5. CLI helpers: `ark-check --rules-inventory --json`, doctor JSON `rulesUnderContract`, sensors emit `ARKRULE_*` / `INVARIANT_UNCOVERED` with `evidence.arkruleId`.
136
- 6. Schema `1.3` extras stay off unless already on. Pin teaches `arkgate/runtime` (same tarball), not the deprecated companion. Do not invent `/ark-run` or `/ark-order`.
146
+ 5. CLI helpers: `ark-check --rules-inventory --json`, doctor JSON `rulesUnderContract`, sensors emit `ARKRULE_*` / `INVARIANT_UNCOVERED` / `INVARIANT_CATALOG_EMPTY` with `evidence.arkruleId`.
147
+ 6. Schema `1.3` extras stay off unless already on. Pin teaches `arkgate/runtime` and `arkgate/order` (same tarball), not a second install. Wire after upgrade via `/ark-runtime` / `/ark-order`. Do not invent `/ark-run`.
137
148
 
138
149
 
139
150
  ### Upgrade + ArkRules
@@ -143,7 +154,7 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
143
154
  ### Upgrade + extras
144
155
  - Schema `1.3` extras (`arkRun` / `arkOrder`) stay off unless already on. Do not turn extras on during upgrade.
145
156
  - Pin teaches `arkgate/runtime` (same tarball). `@arkgate/runtime` is deprecated. Do not send agents to `packages/runtime/README.md` as the kernel guide.
146
- - After 4.8.2, customized skills may lag — opt-in `--refresh-skills` with consent so the frozen 13 names pick up four-plane deepen. No new skill names.
157
+ - After 4.8.2, customized skills may lag — opt-in `--refresh-skills` with consent so the closed catalog picks up four-plane deepen + `/ark-order`. Add a name only with a live ROADMAP item.
147
158
 
148
159
  ## Safety contract
149
160
 
@@ -39,12 +39,13 @@ describe('ArkGate adoption gaps (structural)', () => {
39
39
  { dir: '.cursor', skill: (n) => path.join('.cursor', 'commands', `${n}.md`) },
40
40
  ];
41
41
  const required = [
42
- 'ark-autopilot',
43
- 'ark-loop',
44
- 'ark-fix',
45
42
  'ark-adopt',
46
- 'ark-architect',
43
+ 'ark-place',
44
+ 'ark-explore',
45
+ 'ark-autopilot',
47
46
  'ark-upgrade',
47
+ 'ark-runtime',
48
+ 'ark-order',
48
49
  ];
49
50
  for (const h of hosts) {
50
51
  if (!exists(h.dir)) continue;