arkgate 4.6.4 → 4.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -5
- package/README.md +6 -5
- package/bin/ark-check-runtime.mjs +98 -14
- package/bin/ark-mcp-runtime.mjs +18 -30
- package/bin/lib/adapter-contract.mjs +13 -9
- package/bin/lib/agent-projection-command.mjs +18 -0
- package/bin/lib/agent-projection.mjs +2 -2
- package/bin/lib/analysis-engine.mjs +5 -5
- package/bin/lib/ci-and-commands.mjs +3 -3
- package/bin/lib/ci-merge-boundary.mjs +89 -0
- package/bin/lib/config-contract.mjs +2 -0
- package/bin/lib/diagnostic-catalog.mjs +5 -4
- package/bin/lib/doctor-next-actions.mjs +17 -5
- package/bin/lib/doctor-plan.mjs +14 -0
- package/bin/lib/enforcement-honesty.mjs +2 -0
- package/bin/lib/graph-blind.mjs +15 -6
- package/bin/lib/install-migrate.mjs +10 -0
- package/bin/lib/invariant-coverage.mjs +6 -2
- package/bin/lib/managed-upgrade.mjs +8 -3
- package/bin/lib/presets.mjs +22 -0
- package/bin/lib/remediation.mjs +74 -10
- package/bin/lib/skill-install.mjs +2 -0
- package/bin/lib/snippet-analysis.mjs +40 -8
- package/dist/{configTypes-B8uIcLaG.d.ts → configTypes-l6XiwiC1.d.ts} +7 -0
- package/dist/eslint/index.cjs +3 -3
- package/dist/eslint/index.d.ts +1 -1
- package/dist/eslint/index.js +3 -3
- package/dist/index.cjs +26 -26
- package/dist/index.d.ts +11 -2
- package/dist/index.js +29 -29
- package/docs/README.md +3 -2
- package/docs/agent-guide.md +10 -0
- package/docs/brownfield-adoption.md +7 -1
- package/docs/configuration.md +2 -1
- package/docs/develop.md +4 -2
- package/docs/diagnostics.md +15 -5
- package/docs/package-surface.md +3 -2
- package/package.json +1 -1
- package/schemas/ark.config.schema.json +6 -0
- package/server.json +2 -2
- package/templates/agent-skills/README.md +1 -1
- package/templates/agent-skills/ark-adopt/SKILL.md +7 -0
- package/templates/agent-skills/ark-explore/SKILL.md +6 -0
- package/templates/agent-skills/ark-place/SKILL.md +11 -4
- package/templates/agent-skills/ark-upgrade/SKILL.md +9 -2
- package/templates/skills/ark-adopt.md +7 -0
- package/templates/skills/ark-explore.md +6 -0
- package/templates/skills/ark-place.md +11 -4
- package/templates/skills/ark-upgrade.md +9 -2
package/docs/README.md
CHANGED
|
@@ -58,8 +58,9 @@ These are **not** the day-to-day product path. They stay in the repo for evidenc
|
|
|
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
|
|
62
|
-
|
|
61
|
+
Current: [releases/4.6.5.md](releases/4.6.5.md) (`arkgate@4.6.5`).
|
|
62
|
+
Prior published: [releases/4.6.4.md](releases/4.6.4.md) (`arkgate@4.6.4` on npm `latest` until 4.6.5 lands).
|
|
63
|
+
Prior published: [releases/4.6.3.md](releases/4.6.3.md) (`arkgate@4.6.3`).
|
|
63
64
|
Prior: [releases/4.6.2.md](releases/4.6.2.md) (`arkgate@4.6.2`).
|
|
64
65
|
Previous: [releases/4.6.1.md](releases/4.6.1.md) · [releases/4.6.0.md](releases/4.6.0.md) · [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
66
|
Previous major: [releases/4.0.0.md](releases/4.0.0.md) (`arkgate@4.0.0`).
|
package/docs/agent-guide.md
CHANGED
|
@@ -86,6 +86,16 @@ npx ark status --json --expected-root /abs/project/root
|
|
|
86
86
|
npx ark-check --doctor --json
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
+
`--doctor --json` is a stable envelope (4.6.5+): `{ "schemaVersion": "1.0", "envelope": "doctor", "ok": boolean, "doctor": { … } }`.
|
|
90
|
+
Payload lives only under `doctor`. Do not parse sibling root keys as the doctor object.
|
|
91
|
+
|
|
92
|
+
Doctor also writes `.ark/ci-merge-boundary.json` (hook configured-not-fired, per-host writePath,
|
|
93
|
+
CI present-but-not-required, GitHub Free cannot require). Read that file — do not grep `node_modules`.
|
|
94
|
+
Hook green is not tree green (scripted edits bypass PreToolUse).
|
|
95
|
+
|
|
96
|
+
CLI-first: if the local CLI already resolved the project root, identity handshake is optional.
|
|
97
|
+
Do not wait on MCP “still connecting”. The same projection schema is merged into `AGENTS.md` and `CLAUDE.md`.
|
|
98
|
+
|
|
89
99
|
Product path: [use.md — Session recipe](use.md#session-recipe-agent-turn).
|
|
90
100
|
|
|
91
101
|
### Multi-project MCP and upgrade honesty (4.5.6)
|
|
@@ -41,10 +41,16 @@ regenerate it unasked.
|
|
|
41
41
|
| `app/api/**`, `src/app/api/**` | **ApplicationOrchestration** (orchestration shell) |
|
|
42
42
|
| `pages/api/**`, `src/pages/api/**` | **ApplicationOrchestration** |
|
|
43
43
|
| UI routes (`app/(…)`, `page.tsx`, `components/**`) | **PresentationAdapters** |
|
|
44
|
+
| Types / constants (`src/**/types/**`, `src/**/constants/**`) | **SharedKernel** |
|
|
45
|
+
| Wiring (`src/**/composition/**`, `src/**/factories/**`, `bootstrap.ts`) | **CompositionRoot** |
|
|
46
|
+
| `src/**/domain/**` | **DomainModel** |
|
|
47
|
+
| Flattened `src/lib/**` bag | **Not** Application as a whole — classify interiors (use-cases → Application; types → SharedKernel). Adopt never dumps bare `src/lib/**` into Application. |
|
|
44
48
|
|
|
45
49
|
Without this split, broad `**/app/**` Presentation patterns push every API handler into UI and
|
|
46
50
|
create a Presentation→Persistence tsunami. Specificity still wins: more-specific Application
|
|
47
|
-
globs beat Presentation.
|
|
51
|
+
globs beat Presentation. Adopt writes `.ark/golden-pattern.json` (load-bearing for `/ark-place`).
|
|
52
|
+
`ark_place` requires `filePath` (fail-closed — never invents `components/*.tsx` or defaults to Presentation).
|
|
53
|
+
ArkRules stay **opt-in** (not forced on by start/adopt).
|
|
48
54
|
|
|
49
55
|
### Composition-root / factory modules (optional Application-only)
|
|
50
56
|
|
package/docs/configuration.md
CHANGED
|
@@ -90,6 +90,7 @@ Layer fields:
|
|
|
90
90
|
|
|
91
91
|
- `name`, `patterns`, `exclude`, `description`
|
|
92
92
|
- `intentPrefixes`, `forbiddenGlobals`, `mayImportInfrastructure`, `optional`
|
|
93
|
+
- `reserved` / `allowEmpty` — future houses whose globs match nothing yet. `--strict-config` does not fail; `CONFIG_LAYER_PATTERN_NO_MATCHES` (typo warning) is skipped. A typo warning fires only when the glob is not reserved.
|
|
93
94
|
- `capabilities: { deny: [...] }` — opt-in effect walls over the seven capability ids
|
|
94
95
|
(`network`, `filesystem`, `clock`, `randomness`, `environment`, `process`, `persistence`);
|
|
95
96
|
`pure: true` is the shorthand that denies all seven. Absence changes no verdict.
|
|
@@ -254,7 +255,7 @@ now shows more authors, it shows the **gap** and asks whether to update. `/ark-a
|
|
|
254
255
|
writes only after you confirm — it does not invent names or remove entries.
|
|
255
256
|
|
|
256
257
|
```json
|
|
257
|
-
"stewards": ["
|
|
258
|
+
"stewards": ["you", "your-co-steward"]
|
|
258
259
|
```
|
|
259
260
|
|
|
260
261
|
Law files (`ark.config.json`, `arkrules/*`, `.ark-baseline.json`) are a different change
|
package/docs/develop.md
CHANGED
|
@@ -106,10 +106,12 @@ Sensors:
|
|
|
106
106
|
```bash
|
|
107
107
|
npx arkgate-check --plan
|
|
108
108
|
npx arkgate-check --coverage
|
|
109
|
-
npx arkgate-check --doctor --json #
|
|
109
|
+
npx arkgate-check --doctor --json # stable envelope { schemaVersion, envelope:"doctor", ok, doctor }
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
`--doctor --json` payload lives only under `doctor`. Doctor also writes `.ark/ci-merge-boundary.json`
|
|
113
|
+
(writePath per host, hook configured-not-fired, CI present-but-not-required, GitHub Free cannot
|
|
114
|
+
require). Hook green is not tree green. Doctor residual lenses never flip `valid` / strict-merge alone. Product path:
|
|
113
115
|
[use.md — Improvement compass](use.md#improvement-compass-not-a-score).
|
|
114
116
|
|
|
115
117
|
Agent reference (tools, skills, dual path): [agent-guide.md](agent-guide.md).
|
package/docs/diagnostics.md
CHANGED
|
@@ -56,6 +56,7 @@ Link form for agents: `docs/diagnostics.md#RULE_ID` (exact-case HTML anchors bel
|
|
|
56
56
|
| [`ATOMIC_PREFLIGHT_UNAVAILABLE`](#ATOMIC_PREFLIGHT_UNAVAILABLE) | preflight | Atomic preflight unavailable |
|
|
57
57
|
| [`DESIGN_SMELL_REGRESSION`](#DESIGN_SMELL_REGRESSION) | preflight | Design smell regression on base-relative ratchet |
|
|
58
58
|
| [`ANALYSIS_PARSE_INCOMPLETE`](#ANALYSIS_PARSE_INCOMPLETE) | analysis | Parse incomplete |
|
|
59
|
+
| [`LEXICAL_EVIDENCE_INCOMPLETE`](#LEXICAL_EVIDENCE_INCOMPLETE) | analysis | Lexical evidence incomplete |
|
|
59
60
|
| [`ANALYSIS_HOST_UNAVAILABLE`](#ANALYSIS_HOST_UNAVAILABLE) | analysis | Analysis host unavailable |
|
|
60
61
|
| [`ADAPTER_NOT_ALLOWED_FOR_PORT`](#ADAPTER_NOT_ALLOWED_FOR_PORT) | adapter | Adapter not allowed for port |
|
|
61
62
|
| [`FORBIDDEN_PATTERN`](#FORBIDDEN_PATTERN) | snippet-policy | Forbidden regex pattern |
|
|
@@ -89,7 +90,7 @@ Link form for agents: `docs/diagnostics.md#RULE_ID` (exact-case HTML anchors bel
|
|
|
89
90
|
**Layer import not allowed**
|
|
90
91
|
|
|
91
92
|
- **Why:** A module import (or re-export) crosses a layer edge that ark.config.json does not allow. The architecture contract forbids that dependency direction so outer infrastructure cannot leak into pure or inner layers.
|
|
92
|
-
- **Fix:**
|
|
93
|
+
- **Fix:** Branch by import kind: constants/types/pure → adopt into DomainModel or SharedKernel (do not invent a port); kernel/events/bootstrap from Persistence → inject a port or move the map to SharedTypes (Persistence must not emit); define a port only when the target is a real use-case. Type-only edges use `import type`. Then preflight again. Do not weaken the layer rule without a hash-bound policy acknowledgement.
|
|
93
94
|
|
|
94
95
|
<a id="LAYER_INTENT_REFERENCE_VIOLATION"></a>
|
|
95
96
|
|
|
@@ -267,8 +268,8 @@ Link form for agents: `docs/diagnostics.md#RULE_ID` (exact-case HTML anchors bel
|
|
|
267
268
|
|
|
268
269
|
**Invariant without coverage evidence**
|
|
269
270
|
|
|
270
|
-
- **Why:** An ArkRules invariant is under contract but no covering test title or declared symbol evidence was found (or coverage is partial).
|
|
271
|
-
- **Fix:** Add a test title or declared symbol covering the arkruleId, then preflight again. Missing test globs report partial — never fake green.
|
|
271
|
+
- **Why:** An ArkRules invariant is under contract but no covering test title or declared symbol evidence was found (or coverage is partial). Kind is `never-had-tests` (adopt residual) vs `tests-disappeared` (suite exists).
|
|
272
|
+
- **Fix:** Add a test title or declared symbol covering the arkruleId, then preflight again. Treat never-had-tests as adopt residual; treat tests-disappeared as a regression. Missing test globs report partial — never fake green.
|
|
272
273
|
|
|
273
274
|
## Atomic preflight and change sets
|
|
274
275
|
|
|
@@ -379,8 +380,17 @@ Link form for agents: `docs/diagnostics.md#RULE_ID` (exact-case HTML anchors bel
|
|
|
379
380
|
|
|
380
381
|
**Parse incomplete**
|
|
381
382
|
|
|
382
|
-
- **Why:** Governed source could not be fully parsed;
|
|
383
|
-
- **Fix:**
|
|
383
|
+
- **Why:** Governed source could not be fully parsed; evidence includes the TypeScript diagnostic (line + message). Incremental mid-edit parse is normal for agents. Contract `exclude` paths skip the write hook.
|
|
384
|
+
- **Fix:** Finish the source or fix the reported syntax error, then re-run `npx arkgate-check`. The write hook does not deny solely on mid-edit parse. Partial never means pass.
|
|
385
|
+
|
|
386
|
+
<a id="LEXICAL_EVIDENCE_INCOMPLETE"></a>
|
|
387
|
+
|
|
388
|
+
### `LEXICAL_EVIDENCE_INCOMPLETE`
|
|
389
|
+
|
|
390
|
+
**Lexical evidence incomplete**
|
|
391
|
+
|
|
392
|
+
- **Why:** Single-file validation cannot prove project module resolution. The write hook is already the verdict.
|
|
393
|
+
- **Fix:** Re-run `npx arkgate-check --root . --config ark.config.json`, or treat the hook deny as final. Do not call `ark_prepare_change` from a hook deny.
|
|
384
394
|
|
|
385
395
|
<a id="ANALYSIS_HOST_UNAVAILABLE"></a>
|
|
386
396
|
|
package/docs/package-surface.md
CHANGED
|
@@ -211,8 +211,9 @@ production deployment would need to satisfy; it is not a readiness certification
|
|
|
211
211
|
## Release notes (maintainers)
|
|
212
212
|
|
|
213
213
|
Ship notes for a version live under [releases/](https://github.com/pedroknigge/arkgate/tree/main/docs/releases)
|
|
214
|
-
(
|
|
215
|
-
|
|
214
|
+
(current: [4.6.5.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.6.5.md);
|
|
215
|
+
prior published: [4.6.4.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.6.4.md);
|
|
216
|
+
prior published: [4.6.3.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.6.3.md);
|
|
216
217
|
prior published: [4.6.2.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.6.2.md), [4.6.1.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.6.1.md), [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),
|
|
217
218
|
[4.2.1.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.2.1.md);
|
|
218
219
|
previous: [4.2.0.md](https://github.com/pedroknigge/arkgate/blob/main/docs/releases/4.2.0.md),
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/pedroknigge/arkgate",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "4.6.
|
|
9
|
+
"version": "4.6.5",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "arkgate",
|
|
14
|
-
"version": "4.6.
|
|
14
|
+
"version": "4.6.5",
|
|
15
15
|
"runtimeHint": "npx",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
This directory is the **Agent Skills–compatible** packaging of the same **13**
|
|
8
8
|
`/ark-*` skills shipped as flat templates for Ark install. **No new skill names.**
|
|
9
9
|
|
|
10
|
-
Package version when last generated context: **arkgate@4.6.
|
|
10
|
+
Package version when last generated context: **arkgate@4.6.5**
|
|
11
11
|
Schema: agent-skills package contract `1.0`
|
|
12
12
|
|
|
13
13
|
## Skills (frozen catalog)
|
|
@@ -14,6 +14,13 @@ description: Session 0 — mark the Ark path. Greenfield scaffold or brownfield
|
|
|
14
14
|
2. Write `ark.config.json` (and a baseline only for genuine debt) in this turn.
|
|
15
15
|
3. Re-run doctor. Day-to-day new files: `/ark-place`.
|
|
16
16
|
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- Existing tree: propose **SharedKernel** (types/constants) + **CompositionRoot** (wiring) + `src/**/domain/**`. Never dump bare `src/lib/**` into Application.
|
|
20
|
+
- Generate `.ark/golden-pattern.json` (load-bearing for `/ark-place`).
|
|
21
|
+
- Future houses: mark unused layer globs `reserved` / `allowEmpty` so `--strict-config` does not fail.
|
|
22
|
+
- CLI-first: if `arkgate-check` already resolved the root, do not wait on MCP.
|
|
23
|
+
|
|
17
24
|
Invoking this skill **is** the approval. Write the architecture config in this turn.
|
|
18
25
|
Greenfield: scaffold like `--recommend`. Brownfield: match **product
|
|
19
26
|
reality**, freeze only genuine debt. A green check over a wrong config is a **false green**.
|
|
@@ -14,6 +14,12 @@ description: Map skill — decision-grade recon of layers + ArkRules opportuniti
|
|
|
14
14
|
2. Open the real tree (≥12 files across ≥4 dirs). CLI JSON alone is incomplete.
|
|
15
15
|
3. Rank leftover work. Hand off to `/ark-autopilot` to apply one refactor. Do not write config or product code here.
|
|
16
16
|
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- Doctor #1: if ENFORCE + empty plan A and gates are already installed → **Shape** (`/ark-explore` then `/ark-autopilot`). Do not say install-agent-gates.
|
|
20
|
+
- Distinguish **missing** skills vs **stale** catalog. Installed ≠ stale.
|
|
21
|
+
- Hook green is not tree green (scripted edits bypass PreToolUse).
|
|
22
|
+
|
|
17
23
|
## Autonomy contract
|
|
18
24
|
|
|
19
25
|
Invoking this skill **is** the approval to **map**. Open the real tree. CLI JSON alone is
|
|
@@ -10,16 +10,23 @@ description: "Where does new code go? Names the layer, directory, and naming for
|
|
|
10
10
|
|
|
11
11
|
## Steps
|
|
12
12
|
|
|
13
|
-
1.
|
|
14
|
-
2. Place
|
|
13
|
+
1. CLI-first: if the local CLI already resolved the root, skip waiting on MCP. Identity is optional then.
|
|
14
|
+
2. Place with **filePath required** (`ark_place` or read `ark.config.json` + `.ark/golden-pattern.json`). Fail-closed without a path — never invent `components/*.tsx` or default to Presentation.
|
|
15
15
|
3. Write it there. Then `arkgate-check`.
|
|
16
16
|
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- `filePath` is known before the call. Description alone is not a path.
|
|
20
|
+
- Golden pattern is load-bearing when present. Adopt generates it.
|
|
21
|
+
- Do not default a repository to Presentation.
|
|
22
|
+
|
|
17
23
|
## Autonomy contract
|
|
18
24
|
|
|
19
25
|
Invoking this skill **is** the approval. If the user described an artifact, **write the
|
|
20
26
|
files** in this turn (prepare-write + scaffold). A path table alone is incomplete.
|
|
21
|
-
The CLI is a **sensor and gate**. **CLI budget:** `ark_identity` then `ark_place`
|
|
22
|
-
read `ark.config.json
|
|
27
|
+
The CLI is a **sensor and gate**. **CLI budget:** `ark_identity` then `ark_place` when using MCP
|
|
28
|
+
(or skip identity if the CLI already resolved the root); otherwise read `ark.config.json`; write;
|
|
29
|
+
`ark-check`. Do not ask which layer they prefer.
|
|
23
30
|
|
|
24
31
|
**Still never:** weaken `ark.config.json`; invent `mechanical-safe` kinds; claim leftover
|
|
25
32
|
design work is finished because one file landed.
|
|
@@ -10,10 +10,17 @@ description: Upgrade ArkGate through a content-identity preview, preserve custom
|
|
|
10
10
|
|
|
11
11
|
## Steps
|
|
12
12
|
|
|
13
|
-
1. Preview: `arkgate upgrade` (no writes).
|
|
14
|
-
2. Apply in this turn: `arkgate upgrade --apply` (
|
|
13
|
+
1. Preview: `arkgate upgrade` (no writes). Default is **hosts keep** — do not retire other hosts’ skills.
|
|
14
|
+
2. Apply in this turn: `arkgate upgrade --apply` (installs the bumped package unless `--no-install`). Needs `--plan-digest` when applying managed files.
|
|
15
15
|
3. Re-run `arkgate-check --doctor`. Customized files stay unless you pass `--accept-conflicts` / `--refresh-skills`.
|
|
16
16
|
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- Preview unions `--tools` with hosts already in the repo. Multi-agent trees keep every host.
|
|
20
|
+
- Apply must run the package install of the new pin. Do not skip `npm install` unless `--no-install` is explicit.
|
|
21
|
+
- Refresh AGENTS.md **and** CLAUDE.md (same projection schema).
|
|
22
|
+
- Prefer project `.agents/skills`. Do not duplicate the catalog into `~/.codex/skills`.
|
|
23
|
+
|
|
17
24
|
The preview is the source of truth. Do not treat a filename or package version as proof of ownership.
|
|
18
25
|
|
|
19
26
|
## Autonomy contract
|
|
@@ -14,6 +14,13 @@ description: Session 0 — mark the Ark path. Greenfield scaffold or brownfield
|
|
|
14
14
|
2. Write `ark.config.json` (and a baseline only for genuine debt) in this turn.
|
|
15
15
|
3. Re-run doctor. Day-to-day new files: `/ark-place`.
|
|
16
16
|
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- Existing tree: propose **SharedKernel** (types/constants) + **CompositionRoot** (wiring) + `src/**/domain/**`. Never dump bare `src/lib/**` into Application.
|
|
20
|
+
- Generate `.ark/golden-pattern.json` (load-bearing for `/ark-place`).
|
|
21
|
+
- Future houses: mark unused layer globs `reserved` / `allowEmpty` so `--strict-config` does not fail.
|
|
22
|
+
- CLI-first: if `arkgate-check` already resolved the root, do not wait on MCP.
|
|
23
|
+
|
|
17
24
|
Invoking this skill **is** the approval. Write the architecture config in this turn.
|
|
18
25
|
Greenfield: scaffold like `--recommend`. Brownfield: match **product
|
|
19
26
|
reality**, freeze only genuine debt. A green check over a wrong config is a **false green**.
|
|
@@ -14,6 +14,12 @@ description: Map skill — decision-grade recon of layers + ArkRules opportuniti
|
|
|
14
14
|
2. Open the real tree (≥12 files across ≥4 dirs). CLI JSON alone is incomplete.
|
|
15
15
|
3. Rank leftover work. Hand off to `/ark-autopilot` to apply one refactor. Do not write config or product code here.
|
|
16
16
|
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- Doctor #1: if ENFORCE + empty plan A and gates are already installed → **Shape** (`/ark-explore` then `/ark-autopilot`). Do not say install-agent-gates.
|
|
20
|
+
- Distinguish **missing** skills vs **stale** catalog. Installed ≠ stale.
|
|
21
|
+
- Hook green is not tree green (scripted edits bypass PreToolUse).
|
|
22
|
+
|
|
17
23
|
## Autonomy contract
|
|
18
24
|
|
|
19
25
|
Invoking this skill **is** the approval to **map**. Open the real tree. CLI JSON alone is
|
|
@@ -10,16 +10,23 @@ description: "Where does new code go? Names the layer, directory, and naming for
|
|
|
10
10
|
|
|
11
11
|
## Steps
|
|
12
12
|
|
|
13
|
-
1.
|
|
14
|
-
2. Place
|
|
13
|
+
1. CLI-first: if the local CLI already resolved the root, skip waiting on MCP. Identity is optional then.
|
|
14
|
+
2. Place with **filePath required** (`ark_place` or read `ark.config.json` + `.ark/golden-pattern.json`). Fail-closed without a path — never invent `components/*.tsx` or default to Presentation.
|
|
15
15
|
3. Write it there. Then `arkgate-check`.
|
|
16
16
|
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- `filePath` is known before the call. Description alone is not a path.
|
|
20
|
+
- Golden pattern is load-bearing when present. Adopt generates it.
|
|
21
|
+
- Do not default a repository to Presentation.
|
|
22
|
+
|
|
17
23
|
## Autonomy contract
|
|
18
24
|
|
|
19
25
|
Invoking this skill **is** the approval. If the user described an artifact, **write the
|
|
20
26
|
files** in this turn (prepare-write + scaffold). A path table alone is incomplete.
|
|
21
|
-
The CLI is a **sensor and gate**. **CLI budget:** `ark_identity` then `ark_place`
|
|
22
|
-
read `ark.config.json
|
|
27
|
+
The CLI is a **sensor and gate**. **CLI budget:** `ark_identity` then `ark_place` when using MCP
|
|
28
|
+
(or skip identity if the CLI already resolved the root); otherwise read `ark.config.json`; write;
|
|
29
|
+
`ark-check`. Do not ask which layer they prefer.
|
|
23
30
|
|
|
24
31
|
**Still never:** weaken `ark.config.json`; invent `mechanical-safe` kinds; claim leftover
|
|
25
32
|
design work is finished because one file landed.
|
|
@@ -10,10 +10,17 @@ description: Upgrade ArkGate through a content-identity preview, preserve custom
|
|
|
10
10
|
|
|
11
11
|
## Steps
|
|
12
12
|
|
|
13
|
-
1. Preview: `arkgate upgrade` (no writes).
|
|
14
|
-
2. Apply in this turn: `arkgate upgrade --apply` (
|
|
13
|
+
1. Preview: `arkgate upgrade` (no writes). Default is **hosts keep** — do not retire other hosts’ skills.
|
|
14
|
+
2. Apply in this turn: `arkgate upgrade --apply` (installs the bumped package unless `--no-install`). Needs `--plan-digest` when applying managed files.
|
|
15
15
|
3. Re-run `arkgate-check --doctor`. Customized files stay unless you pass `--accept-conflicts` / `--refresh-skills`.
|
|
16
16
|
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- Preview unions `--tools` with hosts already in the repo. Multi-agent trees keep every host.
|
|
20
|
+
- Apply must run the package install of the new pin. Do not skip `npm install` unless `--no-install` is explicit.
|
|
21
|
+
- Refresh AGENTS.md **and** CLAUDE.md (same projection schema).
|
|
22
|
+
- Prefer project `.agents/skills`. Do not duplicate the catalog into `~/.codex/skills`.
|
|
23
|
+
|
|
17
24
|
The preview is the source of truth. Do not treat a filename or package version as proof of ownership.
|
|
18
25
|
|
|
19
26
|
## Autonomy contract
|