arkgate 4.5.6 → 4.6.0
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 +47 -1
- package/README.md +16 -14
- package/bin/ark-check-runtime.mjs +15 -5
- package/bin/ark-mcp-runtime.mjs +82 -61
- package/bin/ark.mjs +2 -2
- package/bin/lib/agent-gates.mjs +2 -0
- package/bin/lib/agent-homes.mjs +296 -0
- package/bin/lib/agent-projection.mjs +1 -1
- package/bin/lib/ci-and-commands.mjs +9 -8
- package/bin/lib/design-smells.mjs +3 -7
- package/bin/lib/doctor-plan.mjs +36 -12
- package/bin/lib/gate-files.mjs +1 -1
- package/bin/lib/golden-pattern.mjs +1 -1
- package/bin/lib/hook-templates.mjs +13 -11
- package/bin/lib/host-support-matrix.mjs +32 -12
- package/bin/lib/html-report-depth.mjs +7 -8
- package/bin/lib/html-report.mjs +2 -1
- package/bin/lib/install-migrate.mjs +36 -0
- package/bin/lib/managed-upgrade.mjs +6 -1
- package/bin/lib/mcp-adoption.mjs +6 -1
- package/bin/lib/mcp-process-package.mjs +95 -0
- package/bin/lib/post-green-path.mjs +3 -2
- package/bin/lib/product-copy.mjs +32 -0
- package/bin/lib/skill-write.mjs +1 -1
- package/bin/lib/start-preview.mjs +5 -1
- package/bin/lib/upgrade-whats-new.mjs +16 -0
- package/bin/lib/write-path-capabilities.mjs +62 -1
- package/dist/index.cjs +19 -19
- package/dist/index.d.ts +1 -1
- package/dist/index.js +22 -22
- package/docs/README.md +3 -2
- package/docs/agent-guide.md +18 -13
- package/docs/ai-gates.md +43 -14
- package/docs/develop.md +3 -3
- package/docs/enthusiast/how-to-agent-gates.md +4 -3
- package/docs/package-surface.md +3 -3
- package/docs/product-voice.md +80 -74
- package/docs/use.md +7 -5
- package/package.json +2 -2
- package/server.json +3 -3
- package/templates/agent-skills/README.md +1 -1
- package/templates/agent-skills/ark-autopilot/SKILL.md +1 -1
- package/templates/agent-skills/ark-explore/SKILL.md +5 -5
- package/templates/agent-skills/ark-upgrade/SKILL.md +2 -1
- package/templates/skills/ark-autopilot.md +1 -1
- package/templates/skills/ark-explore.md +5 -5
- package/templates/skills/ark-upgrade.md +2 -1
package/docs/README.md
CHANGED
|
@@ -53,12 +53,13 @@ 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. [field-upgrade-mcp-truth](plans/field-upgrade-mcp-truth/README.md) **in
|
|
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. |
|
|
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.
|
|
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`).
|
|
62
63
|
Prior: [releases/4.4.0.md](releases/4.4.0.md) (`arkgate@4.4.0`).
|
|
63
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).
|
|
64
65
|
Previous major: [releases/4.0.0.md](releases/4.0.0.md) (`arkgate@4.0.0`).
|
package/docs/agent-guide.md
CHANGED
|
@@ -40,12 +40,14 @@ npx ark-check --install-agent-gates --skills-only --force
|
|
|
40
40
|
|
|
41
41
|
### Write-path honesty
|
|
42
42
|
|
|
43
|
-
Claude/Grok/Antigravity can hard-block listed PreToolUse ops when installed
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
`ark-check --strict-merge`) —
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
Claude/Grok/Antigravity/Cursor can hard-block listed PreToolUse / preToolUse ops when installed
|
|
44
|
+
and trusted (Cursor: `Write` / `StrReplace` via `.cursor/hooks.json`). Codex/OpenCode remain
|
|
45
|
+
**advisory at write**. For every host, the repository-wide hard boundary is a **required GitHub
|
|
46
|
+
status context** that runs `arkgate-check --strict-merge` (alias `ark-check --strict-merge`) —
|
|
47
|
+
the CLI name is not the status context name. Never claim Codex/OpenCode hard write; never claim
|
|
48
|
+
Cursor hard write without the trusted hooks file covering Write|StrReplace. Soft-write alone does
|
|
49
|
+
not mean the project is unfinished; doctor keeps it as an environment residual. See
|
|
50
|
+
[ai-gates.md](ai-gates.md) and the README host matrix.
|
|
49
51
|
|
|
50
52
|
Surface the same plane from the CLI: pair **`ark status --json`** (activation facts) with
|
|
51
53
|
**`ark-check --doctor`** (`doctor.writePath`) — advisory local write on soft hosts → **required**
|
|
@@ -605,10 +607,10 @@ npx arkgate-check --install-agent-gates --tools claude,cursor,codex,grok,antigra
|
|
|
605
607
|
|
|
606
608
|
| Host | Installed paths | Skills path |
|
|
607
609
|
|------|-----------------|-------------|
|
|
608
|
-
| Claude Code | `.claude/settings.json` hook + `.mcp.json` / `claude mcp add` | `.claude/skills/<name>/SKILL.md` |
|
|
609
|
-
| Cursor | `.cursor/mcp.json` + `.cursor/rules/ark.mdc` | `.cursor/commands/` |
|
|
610
|
+
| Claude Code | `.claude/settings.json` hook + `.mcp.json` / `claude mcp add` | **Repo:** `.claude/skills/<name>/SKILL.md`; **home:** `$CLAUDE_HOME/skills` (default `~/.claude/skills`, `--claude-home`) |
|
|
611
|
+
| Cursor | `.cursor/mcp.json` + `.cursor/rules/ark.mdc` | `.cursor/commands/` (Cursor also loads Claude **home** skills from `~/.claude/skills`) |
|
|
610
612
|
| OpenAI Codex | `.codex/config.toml` (project primary, relative `--root .`; configured on disk is not runtime-active until restart + `ark_identity` match); optional legacy `$CODEX_HOME/config.toml` fallback uses absolute roots and scoped secondaries — see [ai-gates.md](ai-gates.md) | **Repo:** `.agents/skills/<name>/SKILL.md`; **home:** `$CODEX_HOME/skills/<name>/SKILL.md` (`--codex-home`) |
|
|
611
|
-
| **Grok Build** | `.grok/hooks/ark-write-gate.json` + `.grok/config.toml` / `.mcp.json` | `.grok/skills/<name>/SKILL.md` |
|
|
613
|
+
| **Grok Build** | `.grok/hooks/ark-write-gate.json` + `.grok/config.toml` / `.mcp.json` | **Repo:** `.grok/skills/<name>/SKILL.md`; **home:** `$GROK_HOME/skills` (default `~/.grok/skills`, `--grok-home`) |
|
|
612
614
|
| Google Antigravity | `.agents/hooks.json` (+ `GEMINI.md` for shared Gemini consumers) | `.agents/skills/<name>/SKILL.md` |
|
|
613
615
|
| OpenCode | `opencode.json` MCP (`type: local`; advisory) | `.opencode/skills/<name>/SKILL.md` |
|
|
614
616
|
|
|
@@ -616,10 +618,13 @@ This is a path reference, not a guarantee table. Full copy-paste setups:
|
|
|
616
618
|
[ai-gates.md](ai-gates.md). Skill inventory: main
|
|
617
619
|
[README](../README.md#other-skills-only-when-you-need-them).
|
|
618
620
|
When several repositories share one machine, repo catalogs stay pinned and isolated; unchanged
|
|
619
|
-
skill bodies are not rewritten for a version stamp.
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
621
|
+
skill bodies are not rewritten for a version stamp. Shared **home** catalogs (Codex since 4.2;
|
|
622
|
+
Claude/Grok since 4.6) are the machine floor: always latest additive, never downgrade. Refresh
|
|
623
|
+
with `--agent-homes` (or `--claude-home` / `--grok-home` / `--codex-home`). Absent home trees
|
|
624
|
+
are normal — doctor stays quiet until `ark-*` skills exist there. Pre-4.2 binaries ignore Codex
|
|
625
|
+
home metadata and lock, so upgrade legacy repos before they write the optional Codex home
|
|
626
|
+
catalog. See [AI gates — Codex skill catalog](ai-gates.md#codex-skill-catalog-skillmd-not-flat-prompts)
|
|
627
|
+
and [shared Claude/Grok homes](ai-gates.md#shared-claude--grok-home-skills).
|
|
623
628
|
|
|
624
629
|
### Install skills — Ark and ecosystem {#install-skills-ark-and-ecosystem}
|
|
625
630
|
|
package/docs/ai-gates.md
CHANGED
|
@@ -286,20 +286,30 @@ Use both: the MCP server for discovery, the hook for enforcement.
|
|
|
286
286
|
|
|
287
287
|
## Cursor
|
|
288
288
|
|
|
289
|
-
Cursor supports MCP servers (`.cursor/mcp.json`):
|
|
289
|
+
Cursor supports MCP servers (`.cursor/mcp.json`) and project hooks (`.cursor/hooks.json`):
|
|
290
290
|
|
|
291
291
|
```json
|
|
292
292
|
{
|
|
293
|
-
"
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
293
|
+
"version": 1,
|
|
294
|
+
"hooks": {
|
|
295
|
+
"preToolUse": [
|
|
296
|
+
{
|
|
297
|
+
"command": "npx arkgate-mcp --hook --hook-repair --fail-on-new-smells --root . --root-env CURSOR_PROJECT_DIR --config ark.config.json",
|
|
298
|
+
"matcher": "Write|StrReplace",
|
|
299
|
+
"failClosed": true,
|
|
300
|
+
"timeout": 30
|
|
301
|
+
}
|
|
302
|
+
]
|
|
298
303
|
}
|
|
299
304
|
}
|
|
300
305
|
```
|
|
301
306
|
|
|
302
|
-
|
|
307
|
+
When that hook is installed and trusted, Cursor **hard-blocks** agent `Write` / `StrReplace`
|
|
308
|
+
for governed TypeScript sources (exit 2 or `permission: "deny"`). Repair envelopes may emit;
|
|
309
|
+
Cursor does **not** guarantee Write `updated_input` reinjection — the agent must fix and retry
|
|
310
|
+
from `agent_message`. Shell, Tab, and human edits still rely on CI.
|
|
311
|
+
|
|
312
|
+
Pair with MCP + a rules file so the agent also calls advisory tools. `.cursor/rules/ark.mdc`:
|
|
303
313
|
|
|
304
314
|
```markdown
|
|
305
315
|
---
|
|
@@ -307,15 +317,15 @@ description: Ark architecture contract
|
|
|
307
317
|
alwaysApply: true
|
|
308
318
|
---
|
|
309
319
|
|
|
310
|
-
Before
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
matches. `ark://manifest` is compatibility-only and always unverified.
|
|
320
|
+
Before trusting Ark MCP evidence, call `ark_identity` with `project.expectedRoot`
|
|
321
|
+
set to the exact project root. Then call `ark_manifest`. Before writing TypeScript,
|
|
322
|
+
prefer MCP `ark_prepare_write` / `validate_code` when available; the project
|
|
323
|
+
`.cursor/hooks.json` hard gate still blocks invalid Write/StrReplace.
|
|
315
324
|
```
|
|
316
325
|
|
|
317
|
-
Your repository backstop
|
|
318
|
-
through. It blocks the merge only when that status
|
|
326
|
+
Your repository backstop remains CI: `ark-check` fails its check on anything that slips
|
|
327
|
+
through (Shell bypass, Tab, incomplete coverage). It blocks the merge only when that status
|
|
328
|
+
is required by repository policy.
|
|
319
329
|
|
|
320
330
|
## OpenAI Codex CLI
|
|
321
331
|
|
|
@@ -436,6 +446,25 @@ severity **info**, marked `deferred: true`, and omitted from doctor **Primary ne
|
|
|
436
446
|
`/ark-upgrade` on Grok/Claude is not Incomplete because of them. **Temp/upgrade primary roots**
|
|
437
447
|
stay fail-closed urgent (rewritten, not multi-project).
|
|
438
448
|
|
|
449
|
+
### Shared Claude / Grok home skills {#shared-claude--grok-home-skills}
|
|
450
|
+
|
|
451
|
+
Project catalogs follow that checkout’s ArkGate pin (they may lag). Shared user-home catalogs
|
|
452
|
+
are the **machine floor**:
|
|
453
|
+
|
|
454
|
+
| Scope | Path | Flag |
|
|
455
|
+
|-------|------|------|
|
|
456
|
+
| Claude home | `$CLAUDE_HOME/skills` (default `~/.claude/skills`) | `--claude-home` |
|
|
457
|
+
| Grok home | `$GROK_HOME/skills` (default `~/.grok/skills`) | `--grok-home` |
|
|
458
|
+
| All three + Codex | same monotonic protocol | `--agent-homes` |
|
|
459
|
+
|
|
460
|
+
Doctor reports `agentHomeGaps` only when those catalogs already contain `ark-*` skills and
|
|
461
|
+
lag the installed package. Temp/upgrade `--root` never mutates default user homes. Cursor
|
|
462
|
+
sessions treat a stale Claude home as urgent because Cursor loads `~/.claude/skills`.
|
|
463
|
+
|
|
464
|
+
```bash
|
|
465
|
+
npx arkgate-check --install-agent-gates --skills-only --agent-homes --force
|
|
466
|
+
```
|
|
467
|
+
|
|
439
468
|
### Codex skill catalog (SKILL.md, not flat prompts)
|
|
440
469
|
|
|
441
470
|
Codex discovers skills as directories containing `SKILL.md` (Agent Skills standard):
|
package/docs/develop.md
CHANGED
|
@@ -35,9 +35,9 @@ Local write hardness **differs by host**. CI required status is the shared hard
|
|
|
35
35
|
|
|
36
36
|
| Host | Local write | MCP | Merge |
|
|
37
37
|
|------|-------------|-----|-------|
|
|
38
|
-
| Claude · Grok · Antigravity |
|
|
39
|
-
| Codex · OpenCode |
|
|
40
|
-
| Cursor |
|
|
38
|
+
| Claude · Grok · Antigravity | Pre-write block when installed + trusted | Advisory | Required status context |
|
|
39
|
+
| Codex · OpenCode | Warning only (not blocked) | Advisory | Required status context |
|
|
40
|
+
| Cursor | Pre-write block for Write/StrReplace when `.cursor/hooks.json` is trusted | Advisory | Required status context |
|
|
41
41
|
|
|
42
42
|
Full matrix and install commands: [ai-gates.md](ai-gates.md) · canonical table in [README](../README.md#host-enforcement-support).
|
|
43
43
|
|
|
@@ -8,8 +8,9 @@ npx arkgate-check --install-agent-gates --tools claude,cursor,codex,grok
|
|
|
8
8
|
|
|
9
9
|
Installs:
|
|
10
10
|
|
|
11
|
-
- Write-path configuration (Claude/Grok hard PreToolUse
|
|
12
|
-
|
|
11
|
+
- Write-path configuration (Claude/Grok/Antigravity/Cursor hard PreToolUse when covered;
|
|
12
|
+
Codex advisory MCP)
|
|
13
|
+
— PreToolUse / Cursor `preToolUse` uses **`--hook-repair`** (W4): on deny, stderr may include
|
|
13
14
|
`ARK_REPAIR_JSON` / `ARK_AUTOPATCH_JSON` for hosts that re-inject a patch.
|
|
14
15
|
Still exit 2 / hard block; never silent write. Drop `--hook-repair` for
|
|
15
16
|
reject-only prose, or set `ARK_HOOK_REPAIR=0` and omit the flag.
|
|
@@ -20,7 +21,7 @@ Installs:
|
|
|
20
21
|
| Host | Extra paths |
|
|
21
22
|
|------|-------------|
|
|
22
23
|
| Claude Code | `.claude/settings.json`, `.claude/skills/` |
|
|
23
|
-
| Cursor | `.cursor/mcp.json`, `.cursor/rules/ark.mdc`, `.cursor/commands/` |
|
|
24
|
+
| Cursor | `.cursor/mcp.json`, `.cursor/hooks.json`, `.cursor/rules/ark.mdc`, `.cursor/commands/` |
|
|
24
25
|
| Codex | `.codex/hooks.json`, `.codex/config.toml`, `.agents/skills/` |
|
|
25
26
|
| **Grok Build** | `.grok/config.toml`, `.grok/hooks/`, `.grok/skills/` |
|
|
26
27
|
|
package/docs/package-surface.md
CHANGED
|
@@ -20,7 +20,7 @@ hardening guide remains repository-hosted rather than duplicated in the gate tar
|
|
|
20
20
|
| **Programmatic gate API** | `import { analyzeProject, loadContract, createAICodeGate, ... } from 'arkgate'` | The root export is the static gate/config/analysis contract listed below. It intentionally contains no runtime-kernel implementation. |
|
|
21
21
|
| **Improvement compass (4.4; status honesty 4.5)** | `ark-check --doctor --json` → `doctor.improvementCompass`; human doctor section **Improvement compass (not a score)**; HTML report `data-advisory="improvementCompass"`. **`ark status --json` / MCP `ark_status`** project a thin `improvementCompass` residual map with explicit honesty **`mode`**: `full` \| `subset` \| `unavailable` (always `notAScore: true`). When `mode` is `full`, status residual lens **ids** are a **subset of** doctor residual for the same facts (report snapshot stores the thin slice after `--report`). Incomplete or missing session facts → `subset` / `unavailable` + `reasonCode` / `reason` — **never invent green residual**. Residual never flips `valid` / strict-merge / `goal.met`. When status mode ≠ full, run doctor for full 15-lens detail. | Additive schema `1.0`. Closed **15** lens ids (`soc`, `cohesion`, `coupling`, `srp`, `dip`, `ocp`, `encapsulation`, `modularity`, `scalability`, `resilience`, `security`, `maintainability`, `testability`, `domain`, `stack`) with status `ok` \| `residual` \| `not-instrumented` \| `out-of-scope`, evidence refs, optional `nextAction`, capped `topResidual`, always **`notAScore: true`**. Projection from existing smells / walls / cohesion / ArkRules / design-weak only — **never** a gate input. Out-of-scope locked for scalability, resilience, and app security (no residual invent from missing SAST/APM). Root API: `buildImprovementCompass` / `IMPROVEMENT_LENS_IDS`; status: `projectStatusImprovementCompass` / `STATUS_COMPASS_MODES`. |
|
|
22
22
|
| **Deep-module coach (post-4.5 advisory)** | `ark-check --doctor --json` → `doctor.deepModuleCoach`; human doctor section **Deep-module coach (advisory — not a score)** always when doctor runs (empty candidates / hot-path `unavailable` are honesty, not omission); HTML `data-advisory="deepModuleCoach"`. | Additive schema `1.0`. Always **`notAScore: true`**. **`hotPaths`**: recent-churn heuristic from bounded git log; `available` + `status` `ok` \| `unavailable`; empty `paths` when history missing/incomplete — **never invent**. **`deepeningCandidates`**: cards projected only from existing design smells / physical cohesion / reshape pilot / pilotLoop / residual compass lenses — **empty when no evidence** (no fake candidates). Never flips `valid`, strict-merge, completeness green, or `goal.met`. Prefer deep modules / named seams / test-at-public-interface process language in skills. Domain pure + CLI gen mirror (`deepeningCoach.ts` / `bin/lib/deepening-coach.mjs`); **not** a root package export — consume via `doctor.deepModuleCoach` (or the gen mirror in Tooling). |
|
|
23
|
-
| **Upgrade what’s new (4.5.
|
|
23
|
+
| **Upgrade what’s new (4.5.6+)** | `ark upgrade --json` → `whatsNew` (+ human **Suggested improvements** block; also on preview). | Always **`notAScore: true`**, **`neverGateInput: true`**. Closed try/inspect list: deep-module coach, improvement compass, session/status honesty, two-axis done, self-service honesty, registry-aware upgrade, skill drift/refresh, multi-project MCP. Never invents residual or flips gates. |
|
|
24
24
|
| **Field upgrade truth (4.5.6)** | `ark upgrade` registry-aware install; JSON `reasonCode` / `suggestedInstallCmd`; `skillDrift`; `--refresh-skills`; `postUpgradeChecks`; `hostSelection`. | No false-skip when registry ahead; offline honesty; customized skills preserved unless opt-in refresh; checks are advisory only. |
|
|
25
25
|
| **MCP process package honesty (4.5.6)** | Every MCP tool context → `processPackage` (`processPackageMismatch` / `processStale`, versions, `nextAction`). | Multi-checkout users: restart MCP after pin bump; prefer project-local CLI until identity matched and versions align. Fail-closed identity (WI01) unchanged. |
|
|
26
26
|
| **Doctor design fitness** | `ark-check --doctor --json` → `doctor.designFitness`, `doctor.designSmells[]` | Additive. Stable smell `id`s: `io-under-application`, `handler-in-persistence`, `god-module`, `domain-logic-in-ui`, `facade-sql-in-routes`, `mixed-pattern-cluster`, `soft-contract`. `handler-in-persistence` covers static ES imports/re-exports of framework HTTP surfaces (`next/server`), `defineRoute` calls, and existing handler bodies inside Persistence-role layers or specific persistence paths; `require()` and dynamic `import()` are outside this narrow advisory, and a generic `Infrastructure` role alone is not Persistence. Persistence candidates are filtered and sorted before the bounded content scan so large application prefixes cannot hide the advisory. The detector inspects the first 800 sorted Persistence candidates; later candidates are uninspected, so **absence of a smell is not full-tree proof** above that envelope (incomplete/`partial` analysis also never proves “no smells”). **4.2 feedback hardening:** mode labels preserve the observed SUGGEST/ADAPT/ENFORCE state; a local permission/UI-state `canEdit` name alone is not a domain smell; real UI business rules route Domain → Application → UI; seed/fixture/demo/migration/generated files are not god-module pilots. Each smell has `evidence[]`, `fix`, technical `message`, and plain-language **`outcome`**. Does **not** fail the gate by itself. |
|
|
@@ -209,8 +209,8 @@ production deployment would need to satisfy; it is not a readiness certification
|
|
|
209
209
|
## Release notes (maintainers)
|
|
210
210
|
|
|
211
211
|
Ship notes for a version live under [releases/](https://github.com/pedroknigge/arkgate/tree/main/docs/releases)
|
|
212
|
-
(current published: [4.5.
|
|
213
|
-
prior published: [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),
|
|
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),
|
|
214
214
|
[4.2.1.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.2.1.md);
|
|
215
215
|
previous: [4.2.0.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.2.0.md),
|
|
216
216
|
[4.1.1.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.1.1.md),
|
package/docs/product-voice.md
CHANGED
|
@@ -16,11 +16,12 @@ deliberately in the same change). Voice is product surface, not marketing decora
|
|
|
16
16
|
A track so simple a newcomer enters, so strict a senior trusts — and the AI ships faster
|
|
17
17
|
because the design space is small and honest.
|
|
18
18
|
|
|
19
|
-
- **Gate side:**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
- **Gate side:** architecture config (`ark.config.json`) + pre-write block where the host
|
|
20
|
+
supports it + required CI. Deterministic. Don’t show green if we could not verify.
|
|
21
|
+
Two planes: **import rules** (who may import whom) always; **ArkRules** (structure rules
|
|
22
|
+
inside a layer) opt-in.
|
|
23
|
+
- **Coach side:** where code belongs, who talks to whom, how; fix imports first, then leftover
|
|
24
|
+
design work; one small refactor at a time; never silent auto-reshape; never weaken the config.
|
|
24
25
|
- **Agent contract surface (4.3.0):** agents read **guardrail catalogs** and **scan** evidence;
|
|
25
26
|
they **process** (judge / coach) outside the package. Projection and skills never become the
|
|
26
27
|
pass/fail gate.
|
|
@@ -29,7 +30,7 @@ because the design space is small and honest.
|
|
|
29
30
|
rank. Out-of-scope lenses (perf, app security tooling, full resilience) stay honest.
|
|
30
31
|
- **Vibe-coder dual depth:** human doctor and skills lead with plain outcomes and one next move;
|
|
31
32
|
experts keep full JSON. Full-AI workflows get the same single door — not a skill menu exam.
|
|
32
|
-
- **False done is forbidden:**
|
|
33
|
+
- **False done is forbidden:** “Rules on” ≠ elegant design. Leftover design work must not
|
|
33
34
|
read as “healthy finished.” Empty ArkRules inventory is not a score. MCP configuration on
|
|
34
35
|
disk is not proof that the current process belongs to this project.
|
|
35
36
|
|
|
@@ -47,57 +48,60 @@ Examples:
|
|
|
47
48
|
|
|
48
49
|
| Bad | Good |
|
|
49
50
|
|-----|------|
|
|
50
|
-
| Ship it 🚀 your architecture is crushed! |
|
|
51
|
+
| Ship it 🚀 your architecture is crushed! | Import rules check out. Leftover design smells mean the tree is still messy. Next: `/ark-explore` shape-focus. |
|
|
51
52
|
| You don’t need to understand anything. | Doctor reports one status light and one primary next action. Run `ark-check --doctor`. |
|
|
52
|
-
| Become an architect in 60 seconds. | Install pins
|
|
53
|
+
| Become an architect in 60 seconds. | Install pins `ark.config.json` and a short agent router. Full guided cleanup is `/ark-autopilot` after skills install. |
|
|
53
54
|
|
|
54
55
|
---
|
|
55
56
|
|
|
56
|
-
## Lexicon (prefer)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
|
65
|
-
|
|
66
|
-
| **
|
|
67
|
-
| **
|
|
68
|
-
| **
|
|
69
|
-
| **
|
|
70
|
-
| **
|
|
71
|
-
| **
|
|
72
|
-
| **
|
|
73
|
-
| **
|
|
74
|
-
| **
|
|
75
|
-
| **
|
|
76
|
-
| **
|
|
77
|
-
| **
|
|
78
|
-
| **
|
|
79
|
-
| **
|
|
80
|
-
| **
|
|
81
|
-
| **
|
|
82
|
-
| **
|
|
83
|
-
| **
|
|
84
|
-
| **
|
|
85
|
-
| **
|
|
86
|
-
| **
|
|
87
|
-
| **
|
|
88
|
-
| **
|
|
89
|
-
| **
|
|
90
|
-
| **
|
|
91
|
-
| **
|
|
92
|
-
| **
|
|
93
|
-
| **
|
|
94
|
-
| **
|
|
95
|
-
| **
|
|
96
|
-
| **
|
|
97
|
-
| **
|
|
98
|
-
| **
|
|
99
|
-
| **
|
|
100
|
-
| **
|
|
57
|
+
## Lexicon (prefer) — 4.6 common words
|
|
58
|
+
|
|
59
|
+
**Brands (keep):** **ArkGate** (product / npm `arkgate`) and **ArkRules** (opt-in structure rules
|
|
60
|
+
inside a layer). Gloss on first mention; do not rebrand.
|
|
61
|
+
|
|
62
|
+
Human copy prefers the **common** column. JSON field names (`designWeak`, `ruleId`, MCP tools)
|
|
63
|
+
stay stable unless a change explicitly adds an alias.
|
|
64
|
+
|
|
65
|
+
| Prefer (human) | Was / JSON | Use for |
|
|
66
|
+
|----------------|------------|---------|
|
|
67
|
+
| **architecture config** | contract | `ark.config.json` layers, rules, include |
|
|
68
|
+
| **import rules** / **allowed dependencies** | Layers plane / edges | Who may import whom; placement, purity, isolation |
|
|
69
|
+
| **ArkRules** (opt-in; gloss: structure rules inside a layer) | ArkRules | Intra-layer sensors + domain invariant catalogs (`arkrules/*`) |
|
|
70
|
+
| **advisory ArkRules** | advisory ArkRules | Default sensor mode — **not** merge teeth; does not fail CI/merge alone |
|
|
71
|
+
| **extra merge checks** | extraMergeTeeth | Only when enforced structure/invariant rules exist **and** classification is honest |
|
|
72
|
+
| **label `[Layer]` vs `[ArkRules]`** | dual-plane residual | Never blur import-rule findings with ArkRules findings |
|
|
73
|
+
| **ArkRules counts** | rulesUnderContract | Doctor/inventory counts — **never a score** |
|
|
74
|
+
| **type-only import debt** | type-only placement debt | `import type` on the violations list with `failsStrict:false` |
|
|
75
|
+
| **pre-write block** | hard write | Host actually blocks listed edit ops (installed + trusted) |
|
|
76
|
+
| **warning only (not blocked)** | advisory write | MCP/rules coach; not a hard block |
|
|
77
|
+
| **import graph** | edges | Allowed imports (fix these first) |
|
|
78
|
+
| **baseline** | baseline | Frozen known debt; does not make a wrong config honest |
|
|
79
|
+
| **fix** | remediation | Fixing violations against the config |
|
|
80
|
+
| **one small refactor** | pilot | One extraction / reshape cluster at a time |
|
|
81
|
+
| **shape / leftover design work** | **design-weak** / residual | Imports clean under Enforce, but design smells remain — not “done” |
|
|
82
|
+
| **coach** | co-pilot | Guidance that proposes order without silent auto-reshape |
|
|
83
|
+
| **don’t show green if unverified** | fail-closed | Incomplete analysis or unproven enforcement never looks green |
|
|
84
|
+
| **honest coverage** | honest coverage | Governed % and empty scope that cannot false-green |
|
|
85
|
+
| **safe to auto-apply** | mechanical-safe | Deterministic auto-apply class only |
|
|
86
|
+
| **your judgment** | judgment | Human/agent design work; never silent auto-apply |
|
|
87
|
+
| **doctor** | doctor | Status light + next action |
|
|
88
|
+
| **short agent router** | compact router | Default onboarding agent instructions (not the full skill pack) |
|
|
89
|
+
| **right project?** | matched binding / project identity | Live MCP answered for this exact project root (+ id). `ark_identity` |
|
|
90
|
+
| **authoritative config read** | authoritative manifest | `ark_manifest` after a matched identity handshake |
|
|
91
|
+
| **compatibility manifest** | `ark://manifest` | Always unverified — request cannot carry a project expectation |
|
|
92
|
+
| **configured on disk** | configured on disk | Host files name an Ark MCP command; not proof of the live process |
|
|
93
|
+
| **runtime observed** | runtime observed | A live `ark_identity` matched this workspace |
|
|
94
|
+
| **required CI status** | required CI / status context | Merge hard boundary: required GitHub status running `arkgate-check --strict-merge` |
|
|
95
|
+
| **config ready** | contract ready | Project/import-rules/ArkRules honesty clear — not the same as a local pre-write block |
|
|
96
|
+
| **host limitation** | environment residual | Permanent soft-write host (e.g. Codex) — do not paint the whole project unfinished |
|
|
97
|
+
| **allowed rule ids** | guardrail catalog | Closed vocabulary of sensors, capabilities, `ruleId`s, skill roles |
|
|
98
|
+
| **check (tool)** | scan | Deterministic engine / CLI / MCP. Same inputs → same verdict. No LLM. |
|
|
99
|
+
| **coaching / your judgment** | process | Skill- or agent-side. **Never** package pass/fail |
|
|
100
|
+
| **diagnostic code** / **ruleId** | ruleId | Stable public violation id — catalog-linked ([diagnostics.md](diagnostics.md)) |
|
|
101
|
+
| **agent summary** | agent projection | Version-matched AGENTS/CLAUDE block; **non-authoritative** |
|
|
102
|
+
| **finding id** | finding ref | Stable id (ruleId + target key) across turns |
|
|
103
|
+
| **status snapshot** | status snapshot | `ark status --json`: identity, activation, last check, leftover counts — not a score |
|
|
104
|
+
| **shared agent skills (home)** | Codex/Claude/Grok home catalog | Machine floor: always latest additive; never downgrade |
|
|
101
105
|
| **session recipe** | Agent loop: bind identity → read status → act on residual / findingRef; run doctor when status compass mode is not `full` |
|
|
102
106
|
| **compass mode** | Status honesty label for the projected residual map: `full` \| `subset` \| `unavailable` — never invent green residual |
|
|
103
107
|
| **improvement compass** | Closed projection of residual architecture work across fixed **lenses** (aligned to 15 common principles). Always `notAScore`. Never a gate input. |
|
|
@@ -158,20 +162,20 @@ gate → same binary verdict on every parity-capable adapter
|
|
|
158
162
|
|
|
159
163
|
| Do | Example |
|
|
160
164
|
|----|---------|
|
|
161
|
-
| Name the status light + plain fact +
|
|
165
|
+
| Name the status light + plain fact + next action | “Enforce · leftover design work. Import rules check out; design smells remain. Next: one Shape door — explore → plan B → autopilot with OK.” |
|
|
162
166
|
| Rank one primary door under residual | Doctor **Primary next action** #1; **Also** only for secondary |
|
|
163
167
|
| Label expert skills as escapes | “Install skill pack only when doctor or a STOP handoff names a skill.” |
|
|
164
|
-
| State host write honesty | “Cursor/Codex:
|
|
168
|
+
| State host write honesty | “Cursor: pre-write block for Write/StrReplace when hooks are trusted. Codex: warning only (not blocked). Required GitHub status is the merge boundary.” |
|
|
165
169
|
| Soft-write ≠ unfinished project | “Architecture contract ready; Codex local writes are advisory.” Keep `soft-write-host` in evidence; reserve **Not finished** for contract/project debt. |
|
|
166
170
|
| Keep Suggest on start → doctor | New-here primary is finish `start`, not a competing recommend/architect curriculum |
|
|
167
|
-
| Qualify
|
|
168
|
-
| Prefer
|
|
169
|
-
| State project binding before verdict | “Ark MCP matched this workspace; `ark_manifest` evidence is
|
|
171
|
+
| Qualify import-clean under leftover design | “None on checked imports … leftover design work remains. Not healthy finished.” |
|
|
172
|
+
| Prefer unverified-as-not-green | Incomplete analysis, unobserved hooks, and soft MCP never paint as a hard green pre-write block |
|
|
173
|
+
| State project binding before verdict | “Ark MCP matched this workspace; `ark_manifest` evidence is for this project.” Otherwise: “Ark MCP is configured, but we have not proven this is the right project. Restart and call `ark_identity` with the exact project root.” |
|
|
170
174
|
| Keep inventory claims evidence-bound | “Possible rule candidate in the configured Application layer.” A filename or technical constant alone is not Domain evidence. |
|
|
171
175
|
| Honesty clear ≠ architecture healthy | `productHonesty.finished` means residual **architecture** honesty sensors are clear — not a green graph score. Open blocking violations, ADAPT/SUGGEST with debt, dual-truth pin, or design residual keep `unfinished: true`. Permanent soft-write alone does **not**. |
|
|
172
176
|
| Separate CI runtime from provider policy | Successful CI run ≠ required status; GitHub Free plan 403 → `unavailable-plan`, not “CI never ran.” |
|
|
173
177
|
| Prefer catalog language for agent DX | “Stable `ruleId` with why/fix anchors.” Not a free-form list of “things that might be wrong.” |
|
|
174
|
-
| Name
|
|
178
|
+
| Name the check before coaching | “Check: two layer import violations. Next: fix the Application→Domain import first.” |
|
|
175
179
|
| Label projection non-enforcing | “Regenerated agent contract for this package version. Enforcement remains ark-check / hooks / required CI.” |
|
|
176
180
|
| Keep status counts honest | “Inventory and residual counts are evidence — not a health score.” |
|
|
177
181
|
| Prefer deep modules | “Small interface, hide the complexity. Name the seam; test at the public interface.” |
|
|
@@ -189,7 +193,7 @@ gate → same binary verdict on every parity-capable adapter
|
|
|
189
193
|
| “auto-refactor your whole app” / magic codemod claims | We never silent-apply plan B |
|
|
190
194
|
| “modes you pick” for Suggest/Adapt/Enforce | Those are **status lights**, not settings |
|
|
191
195
|
| Skill-shopping lists as the default curriculum | Progressive disclosure: one door first |
|
|
192
|
-
| “Healthy / done” while design
|
|
196
|
+
| “Healthy / done” while leftover design work remains | False done |
|
|
193
197
|
| “Honesty clear” as “architecture finished” | Honesty clear only means residual honesty sensors are quiet; graph/mode debt is separate |
|
|
194
198
|
| “Not finished” solely because host is Codex/Cursor | Soft-write is environment residual; do not paint a green whole-tree project as unfinished architecture |
|
|
195
199
|
| “MCP installed / active” because a config file exists | Say **configured on disk · runtime unverified** until `ark_identity` matches the expected root |
|
|
@@ -233,16 +237,17 @@ Skills table in docs = **escapes / expert**, not a second onboarding track.
|
|
|
233
237
|
|
|
234
238
|
## Hero phrases (approved)
|
|
235
239
|
|
|
236
|
-
- One
|
|
240
|
+
- One architecture config. One check. One coach.
|
|
237
241
|
- Green must mean something real.
|
|
238
242
|
- You arrive at Enforce; you never turn it on.
|
|
239
|
-
- Enforce does not mean the design is elegant — only that checked
|
|
240
|
-
-
|
|
241
|
-
- One
|
|
243
|
+
- Enforce does not mean the design is elegant — only that checked imports are honest.
|
|
244
|
+
- A clean import check is not “architecture healthy” when leftover design work remains.
|
|
245
|
+
- One small refactor at a time. Pattern bets are never auto-applied.
|
|
242
246
|
- Doctor is the control plane: status light + next action.
|
|
243
|
-
-
|
|
247
|
+
- The check is deterministic. Coaching is judgment. Only the gate decides pass/fail.
|
|
244
248
|
- Guardrails are a catalog, not free generation.
|
|
245
|
-
- Agent docs
|
|
249
|
+
- Agent docs summarize the config; they never replace the gate.
|
|
250
|
+
- **ArkGate** and **ArkRules** are product names — gloss them; don’t invent a second brand.
|
|
246
251
|
|
|
247
252
|
## Hero phrases (forbidden)
|
|
248
253
|
|
|
@@ -263,15 +268,15 @@ Each model line follows the sentence template: **plain fact · term · next acti
|
|
|
263
268
|
|
|
264
269
|
| Light | Model line |
|
|
265
270
|
|-------|------------|
|
|
266
|
-
| **Suggest** | Thin or new tree.
|
|
267
|
-
| **Adapt** |
|
|
268
|
-
| **Enforce** | Honest coverage and clean checked
|
|
269
|
-
| **Enforce · design
|
|
271
|
+
| **Suggest** | Thin or new tree. Architecture config is not yet in charge. Next: `ark start` preview, then `--apply`; re-run doctor. |
|
|
272
|
+
| **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
|
+
| **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. |
|
|
270
275
|
|
|
271
276
|
### Primary next action
|
|
272
277
|
|
|
273
278
|
- Lead with the **outcome**, then the **skill or command**, then the **constraint** (never mechanical-safe / never skill-shop).
|
|
274
|
-
- When design
|
|
279
|
+
- When leftover design work remains, rank the single Shape path first; do not list explore / coverage / think as equal first choices.
|
|
275
280
|
|
|
276
281
|
### Deny / gate failure
|
|
277
282
|
|
|
@@ -283,8 +288,8 @@ Never: mock the user, imply the gate is optional, or suggest disabling rules to
|
|
|
283
288
|
|
|
284
289
|
### Healthy finished
|
|
285
290
|
|
|
286
|
-
Print “Healthy — nothing to do” **only** when there is no design
|
|
287
|
-
Otherwise name the
|
|
291
|
+
Print “Healthy — nothing to do” **only** when there is no leftover design work and no open top actions.
|
|
292
|
+
Otherwise name the leftover work.
|
|
288
293
|
|
|
289
294
|
---
|
|
290
295
|
|
|
@@ -315,7 +320,8 @@ Keep dual-engine rules and **STOP** handoffs. Never claim silent full-tree resha
|
|
|
315
320
|
- [ ] One next action is obvious.
|
|
316
321
|
- [ ] Status light is not a mode picker.
|
|
317
322
|
- [ ] No false done under design-weak / incomplete analysis.
|
|
318
|
-
- [ ] Technical terms present (
|
|
323
|
+
- [ ] Technical terms present (architecture config, import rules, ArkGate, ArkRules) without slang.
|
|
324
|
+
- [ ] Leftover design work is never called “done”.
|
|
319
325
|
- [ ] Expert skills are labeled expert — not the default curriculum.
|
|
320
326
|
- [ ] Scan vs process is not blurred with package LLM pass/fail.
|
|
321
327
|
- [ ] Codes, sensors, and capabilities stay inside the guardrail catalog.
|
package/docs/use.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
For **anyone** shipping TypeScript with an AI coding agent. You do not need to study clean architecture first.
|
|
4
4
|
|
|
5
|
-
**One
|
|
5
|
+
**One architecture config. One check. One coach.**
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -21,7 +21,7 @@ Then keep working with your agent. The doctor is the **control plane**: when stu
|
|
|
21
21
|
|-----------|---------|
|
|
22
22
|
| Unsure | `npx arkgate-check --doctor` |
|
|
23
23
|
| Agent broke architecture | Fix the edge doctor names (or re-run check) |
|
|
24
|
-
| Code is green but still a mess |
|
|
24
|
+
| Code is green but still a mess | Leftover design work — see below |
|
|
25
25
|
| New ArkGate version | Follow doctor / upgrade guidance |
|
|
26
26
|
|
|
27
27
|
Full skill pack is **optional** (expert depth). Day-to-day: compact router + doctor is enough.
|
|
@@ -47,7 +47,7 @@ In those cases a boundary linter or editor rules may be enough; see [README —
|
|
|
47
47
|
|------|----------------|
|
|
48
48
|
| While the AI writes | Host write gate or advisory MCP (depends on host) |
|
|
49
49
|
| Before merge | Make the Ark job a **required GitHub status context** running `arkgate-check --strict-merge` (alias `ark-check`) |
|
|
50
|
-
| Anytime | Doctor: Suggest / Adapt / Enforce (+ design
|
|
50
|
+
| Anytime | Doctor: Suggest / Adapt / Enforce (+ leftover design work if the design is still messy) |
|
|
51
51
|
|
|
52
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.
|
|
53
53
|
|
|
@@ -96,14 +96,16 @@ outside the package. **Enforce green ≠ feature done.**
|
|
|
96
96
|
|
|
97
97
|
That is **Shape** work (plan B) — suggested, never auto-applied as silent magic.
|
|
98
98
|
|
|
99
|
-
1. Doctor confirms design
|
|
99
|
+
1. Doctor confirms leftover design work (and residual lenses on the improvement compass)
|
|
100
100
|
2. Guided map / dual plan (skill pack: `/ark-explore` then `/ark-autopilot` with your OK)
|
|
101
|
-
3. One
|
|
101
|
+
3. One small refactor at a time · re-run doctor
|
|
102
102
|
|
|
103
103
|
Install skills only when you want that guided path:
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
106
|
npx arkgate-check --install-agent-gates --skills-only --force
|
|
107
|
+
# optional: refresh shared Claude/Grok/Codex home skills (never downgrades)
|
|
108
|
+
# npx arkgate-check --install-agent-gates --skills-only --agent-homes --force
|
|
107
109
|
```
|
|
108
110
|
|
|
109
111
|
---
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arkgate",
|
|
3
|
-
"version": "4.
|
|
4
|
-
"description": "ArkGate
|
|
3
|
+
"version": "4.6.0",
|
|
4
|
+
"description": "ArkGate \u2014 architecture co-pilot for AI TypeScript (write gate, CI gate, plan/loop; optional ArkRules)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|
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": "ArkGate \u2014 architecture co-pilot for AI TypeScript (write gate, CI, plan/loop)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/pedroknigge/arkgate",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "4.
|
|
9
|
+
"version": "4.6.0",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "arkgate",
|
|
14
|
-
"version": "4.
|
|
14
|
+
"version": "4.6.0",
|
|
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.
|
|
10
|
+
Package version when last generated context: **arkgate@4.6.0**
|
|
11
11
|
Schema: agent-skills package contract `1.0`
|
|
12
12
|
|
|
13
13
|
## Skills (frozen catalog)
|
|
@@ -190,7 +190,7 @@ Status lights from doctor — not settings you choose. Rank residual honestly:
|
|
|
190
190
|
| **Suggest** | Thin/new tree; contract not control plane | Finish `ark start` → re-doctor; do not skill-shop |
|
|
191
191
|
| **Adapt** | Contract/tree disagree or debt open | Explore + adopt/loop/contract; do not claim guarded |
|
|
192
192
|
| **Enforce** | Honest coverage + clean checked **edges** | Confirm gates + CI; emit dual-plan B only if residual found |
|
|
193
|
-
| **Enforce · design
|
|
193
|
+
| **Enforce · leftover design work** | Imports clean; design still messy | **Primary Shape door:** explore shape-focus → dual-plan **B** → apply **one** small refactor with user OK. Empty plan A ≠ done. Never mechanical-safe B. False-done forbidden. |
|
|
194
194
|
|
|
195
195
|
- **Setup (Suggest):** no config → `ark start` (start freezes origin after config, before gates).
|
|
196
196
|
- **Align (Adapt):** open debt, low honesty, or false-green → explore + adopt/loop; do not claim “guarded”.
|