arkgate 4.8.11 → 4.8.14
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 +125 -2
- package/README.md +39 -46
- package/SECURITY.md +5 -3
- package/bin/ark-check-runtime.mjs +11 -9
- package/bin/lib/agent-projection-formatters.mjs +2 -0
- package/bin/lib/agent-skills-package.mjs +63 -8
- package/bin/lib/analysis-engine.mjs +4 -4
- package/bin/lib/architecture-scan.mjs +8 -2
- package/bin/lib/ark-order-doctor.mjs +160 -0
- package/bin/lib/ark-order-report.mjs +65 -0
- package/bin/lib/ark-order-sensors.mjs +1 -1
- package/bin/lib/ci-and-commands.mjs +7 -2
- package/bin/lib/design-smells.mjs +21 -1
- package/bin/lib/diagnostic-catalog.mjs +4 -4
- package/bin/lib/doctor-advisories.mjs +99 -18
- package/bin/lib/doctor-human.mjs +4 -11
- package/bin/lib/doctor-plan.mjs +4 -3
- package/bin/lib/extra-merge-teeth.mjs +32 -4
- package/bin/lib/first-run-help.mjs +11 -2
- package/bin/lib/gate-files.mjs +40 -3
- package/bin/lib/html-report-advisories.mjs +2 -0
- package/bin/lib/html-report-depth.mjs +8 -18
- package/bin/lib/html-report.mjs +16 -0
- package/bin/lib/install-migrate.mjs +23 -0
- package/bin/lib/mcp-hook-payload.mjs +1 -1
- package/bin/lib/product-copy.mjs +4 -0
- package/bin/lib/remediation.mjs +7 -7
- package/bin/lib/resolved-candidate-facts.mjs +144 -36
- package/bin/lib/rules-under-contract.mjs +14 -0
- package/bin/lib/scan-files.mjs +39 -0
- package/bin/lib/start-preview.mjs +4 -0
- package/bin/lib/status-command.mjs +28 -0
- package/bin/lib/status-manifest.mjs +23 -0
- package/bin/lib/upgrade-whats-new.mjs +3 -3
- package/bin/lib/violations.mjs +40 -1
- package/dist/{diagnosticCatalog-DiflIock.d.ts → diagnosticCatalog-DVx_2RmF.d.ts} +1 -1
- package/dist/eslint/index.cjs +4 -4
- package/dist/eslint/index.js +4 -4
- package/dist/index.cjs +31 -31
- package/dist/index.d.ts +129 -15
- package/dist/index.js +31 -31
- package/dist/nestjs/index.cjs +1 -1
- package/dist/nestjs/index.js +1 -1
- package/dist/runtime/index.cjs +15 -15
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +15 -15
- package/docs/README.md +11 -8
- package/docs/agent-guide.md +30 -13
- package/docs/ai-gates.md +3 -1
- package/docs/arkorder.md +35 -10
- package/docs/configuration.md +7 -6
- package/docs/develop.md +3 -1
- package/docs/diagnostics.md +7 -7
- package/docs/enthusiast/README.md +6 -1
- package/docs/enthusiast/how-to-gallery-starter.md +2 -1
- package/docs/package-surface.md +8 -5
- package/docs/product-voice.md +40 -13
- package/docs/threat-model.md +2 -2
- package/docs/typescript-support.md +3 -3
- package/docs/use.md +18 -11
- package/package.json +1 -1
- package/schemas/ark.status-manifest.schema.json +47 -0
- package/server.json +2 -2
- package/templates/agent-skills/README.md +7 -4
- package/templates/agent-skills/ark-adopt/SKILL.md +9 -5
- package/templates/agent-skills/ark-architect/SKILL.md +5 -18
- package/templates/agent-skills/ark-autopilot/SKILL.md +8 -4
- package/templates/agent-skills/ark-contract/SKILL.md +9 -20
- package/templates/agent-skills/ark-coverage/SKILL.md +12 -8
- package/templates/agent-skills/ark-explain/SKILL.md +7 -3
- package/templates/agent-skills/ark-explore/SKILL.md +25 -4
- package/templates/agent-skills/ark-fix/SKILL.md +15 -20
- package/templates/agent-skills/ark-loop/SKILL.md +14 -20
- package/templates/agent-skills/ark-order/SKILL.md +200 -0
- package/templates/agent-skills/ark-place/SKILL.md +11 -8
- package/templates/agent-skills/ark-runtime/SKILL.md +17 -4
- package/templates/agent-skills/ark-think/SKILL.md +24 -126
- package/templates/agent-skills/ark-upgrade/SKILL.md +13 -2
- package/templates/skills/ark-adopt.md +9 -5
- package/templates/skills/ark-architect.md +5 -18
- package/templates/skills/ark-autopilot.md +8 -4
- package/templates/skills/ark-contract.md +9 -20
- package/templates/skills/ark-coverage.md +12 -8
- package/templates/skills/ark-explain.md +7 -3
- package/templates/skills/ark-explore.md +25 -4
- package/templates/skills/ark-fix.md +15 -20
- package/templates/skills/ark-loop.md +14 -20
- package/templates/skills/ark-order.md +200 -0
- package/templates/skills/ark-place.md +11 -8
- package/templates/skills/ark-runtime.md +17 -4
- package/templates/skills/ark-think.md +24 -126
- package/templates/skills/ark-upgrade.md +13 -2
- package/templates/tests/ark-adoption-gaps.test.ts +5 -4
|
@@ -1,54 +1,24 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ark-think
|
|
3
|
-
description:
|
|
3
|
+
description: Shortcut to /ark-explore for one import-rule or ArkRules decision (2–3 options).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# /ark-think —
|
|
6
|
+
# /ark-think — Shortcut to /ark-explore
|
|
7
7
|
|
|
8
|
-
**Not a first-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
44
|
-
|
|
45
|
-
| One decision:
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
109
|
-
|
|
110
|
-
|
|
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.
|
|
118
|
-
|
|
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
|
-
|
|
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
|
-
- **
|
|
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.
|
|
@@ -133,7 +144,7 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
|
|
|
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
146
|
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
|
|
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
|
|
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
|
|
|
@@ -5,6 +5,10 @@ description: Session 0 — write the rules file (ark.config.json) to match the r
|
|
|
5
5
|
|
|
6
6
|
# /ark-adopt — Mark the path (session 0)
|
|
7
7
|
|
|
8
|
+
**Contener · Guiar · Ordenar.** In plain words: contain the write, guide the next
|
|
9
|
+
step, order leftover mess. This door is **Contener**: write the path so the tree
|
|
10
|
+
has honest houses. Skills never enforce — CLI / hooks / CI do.
|
|
11
|
+
|
|
8
12
|
**When:** empty tree, or the rules file does not match the real folders (session 0).
|
|
9
13
|
**Not when:** a single new file (`/ark-place`) or leftover design after the path is honest (`/ark-explore` then `/ark-autopilot`).
|
|
10
14
|
|
|
@@ -111,7 +115,7 @@ Do **not** invent captions. Do not invent `/ark-describe`.
|
|
|
111
115
|
| Mine loose business rules into Domain / advisory ArkRules | Apply leftover design after the path is honest → `/ark-autopilot` |
|
|
112
116
|
| Freeze **real** debt after the config is honest | User said map only |
|
|
113
117
|
| Turn **advisory** ArkRun on (`arkRun` extra, schema `1.2+`; **`kernelRoots` preferred**) | Evaluate / wire a hand-rolled bus → `/ark-runtime`; new kernel-managed file → `/ark-place` |
|
|
114
|
-
| Turn **advisory** ArkOrder on (`arkOrder` extra, schema `1.3+`, `planeRoots`) |
|
|
118
|
+
| Turn **advisory** ArkOrder on (`arkOrder` extra, schema `1.3+`, `planeRoots`) | Wire one plane candidate after extra is on → `/ark-order`; new plane-root file → `/ark-place`; grind skip clusters → `/ark-autopilot` |
|
|
115
119
|
|
|
116
120
|
## Dual engine (mandatory)
|
|
117
121
|
|
|
@@ -149,7 +153,7 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
|
|
|
149
153
|
4. Editing `arkrules/*` or promoting modes is **this skill** (session 0) or **`/ark-autopilot`** later; never invent `mechanical-safe`.
|
|
150
154
|
5. CLI helpers: `ark-check --rules-inventory --json`, doctor JSON `rulesUnderContract`, sensors emit `ARKRULE_*` / `INVARIANT_UNCOVERED` with `evidence.arkruleId`.
|
|
151
155
|
6. Absence of `arkRun` is **valid**. Write it only when the user wants the extra. Skills never enforce.
|
|
152
|
-
7. Absence of `arkOrder` is **valid**. Write it only when the user wants the extra.
|
|
156
|
+
7. Absence of `arkOrder` is **valid**. Write it only when the user wants the extra. After the extra is honest: handoff **`/ark-order`** to wire one candidate. Skills never enforce.
|
|
153
157
|
|
|
154
158
|
|
|
155
159
|
### Adopt + ArkRules
|
|
@@ -191,9 +195,9 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
|
|
|
191
195
|
- A use-case that `prisma.*.update({ plan })` while `plan` is in `xiKeys` is **[ArkOrder]** `ARKORDER_XI_FIELD_WRITE`. Invoices and seats still flow through `ingest`.
|
|
192
196
|
|
|
193
197
|
- Do **not** put `arkOrder` on the compact starter / `ark start` scaffold. Domain stays plane-free. Import `createOrderPlane` from `arkgate/order` (same npm package).
|
|
194
|
-
- Absence is valid and **silent** — never force the extra.
|
|
198
|
+
- Absence is valid and **silent** — never force the extra.
|
|
195
199
|
- Demoting enforced → advisory or deleting the extra is policy-delta **weakening**.
|
|
196
|
-
- After the extra is honest: handoff `/ark-place` for new plane-root files; grind skip via `/ark-autopilot`. Skills never enforce.
|
|
200
|
+
- After the extra is honest: handoff **`/ark-order`** to wire one candidate, `/ark-place` for new plane-root files; grind skip via `/ark-autopilot`. Skills never enforce.
|
|
197
201
|
|
|
198
202
|
## Subagent fan-out (optional, host-dependent)
|
|
199
203
|
|
|
@@ -301,7 +305,7 @@ proposals applied or deferred, **phase**, **top Shape / design-weak opportunitie
|
|
|
301
305
|
- Force runtime kernel over existing Nest/DI.
|
|
302
306
|
- Put `arkRun` or `arkOrder` on the compact starter / `ark start` scaffold.
|
|
303
307
|
- Claim in-memory kernel stores are production durability.
|
|
304
|
-
- Invent `/ark-run
|
|
308
|
+
- Invent `/ark-run`. Use `/ark-order` after this door turns the extra on.
|
|
305
309
|
- Invent `layers[].description` filler or a `/ark-describe` skill.
|
|
306
310
|
- Claim Enforce while governed% is low, cores empty with I/O in Application, or core bags ungoverned.
|
|
307
311
|
- End adopt with only “baseline written” when design-weak residual is visible in files you opened.
|
|
@@ -5,13 +5,8 @@ description: Shortcut to /ark-adopt for a new tree. Deprecated as a first-class
|
|
|
5
5
|
|
|
6
6
|
# /ark-architect — Shortcut to /ark-adopt
|
|
7
7
|
|
|
8
|
-
**Not a first-
|
|
9
|
-
Do that job now.
|
|
10
|
-
|
|
11
|
-
## Autonomy contract
|
|
12
|
-
|
|
13
|
-
Invoking this skill **is** the approval to mark the path. Write `ark.config.json` and
|
|
14
|
-
phase-1 dirs in this turn. Then `ark-check`.
|
|
8
|
+
**Not a first-class door.** One-release redirect. Session 0 is **`/ark-adopt`**.
|
|
9
|
+
Do that job now. Contener · Guiar · Ordenar — this leftover name is not a star.
|
|
15
10
|
|
|
16
11
|
## When / not when
|
|
17
12
|
|
|
@@ -40,25 +35,17 @@ restart/retargeting is required. `ark://manifest` never satisfies this preflight
|
|
|
40
35
|
|
|
41
36
|
Then call **`ark_recommend`** with the same bound `project` envelope (or `ark-check --recommend`).
|
|
42
37
|
|
|
43
|
-
## Dual plane — layers + extras (mandatory, except /ark-runtime)
|
|
44
|
-
|
|
45
|
-
Label findings **`[Layer]`** vs **`[ArkRules]`** vs **`[ArkRun]`** vs **`[ArkOrder]`**. Absence of extras is valid and silent. Session-0 extras (advisory `arkRun` / advisory `arkOrder`) live on **`/ark-adopt`**. When ArkOrder is on: first freeze `release()`, later ξ is `proposeRelease` then `apply`; `refreshSigma`; ingest residual `absorb | escalate_up | hold`; capacity pack as data; in-memory `ReleaseStore`; ArkRun `decisionTape`. Do not invent `/ark-run` or `/ark-order`. Skills never enforce.
|
|
46
|
-
|
|
47
38
|
## Subagent fan-out (optional, host-dependent)
|
|
48
39
|
|
|
49
40
|
If the host supports **parallel subagents**, fan out read-only scouts; otherwise
|
|
50
41
|
**fall back to sequential**. Never weaken the gate.
|
|
51
42
|
|
|
52
|
-
## Related onboarding
|
|
53
|
-
|
|
54
|
-
- **Greenfield:** this shortcut → **`/ark-adopt`** + `ark-check --recommend` / `ark start`.
|
|
55
|
-
- **Brownfield:** `/ark-adopt` — do not force a starter preset.
|
|
56
|
-
|
|
57
43
|
## Steps
|
|
58
44
|
|
|
59
45
|
1. Bind MCP (`ark_identity` then `ark_recommend`) or run `ark-check --recommend`.
|
|
60
|
-
2. Execute **`/ark-adopt`**
|
|
61
|
-
3.
|
|
46
|
+
2. Execute **`/ark-adopt`** now (write the path, optional advisory extras).
|
|
47
|
+
3. New file → `/ark-place`. Map → `/ark-explore`. Apply → `/ark-autopilot`.
|
|
48
|
+
Wire ArkRun → `/ark-runtime`. Wire ArkOrder → `/ark-order`.
|
|
62
49
|
|
|
63
50
|
## Completion contract (skill incomplete if missing)
|
|
64
51
|
|
|
@@ -5,6 +5,10 @@ description: Fix illegal imports and one leftover-design refactor. CLI is a sens
|
|
|
5
5
|
|
|
6
6
|
# /ark-autopilot — Apply the path
|
|
7
7
|
|
|
8
|
+
**Contener · Guiar · Ordenar.** In plain words: contain the write, guide the next
|
|
9
|
+
step, order leftover mess. This door is **Guiar**: apply leftover design and illegal
|
|
10
|
+
imports, one small change at a time. Skills never enforce — CLI / hooks / CI do.
|
|
11
|
+
|
|
8
12
|
**When:** the user wants architecture cleaned end-to-end, or leftover design after a map.
|
|
9
13
|
**Not when:** map only (`/ark-explore`), session 0 / config lying (`/ark-adopt`), or one new file (`/ark-place`).
|
|
10
14
|
|
|
@@ -60,7 +64,7 @@ patterns are **out-of-scope** lenses — say so; do not invent Ark enforcement f
|
|
|
60
64
|
| Brownfield or greenfield with apply | Session 0 / config lying → `/ark-adopt` first, then return |
|
|
61
65
|
| User wants A + B planned and **applied** | New file only → `/ark-place` |
|
|
62
66
|
| **Apply** leftover design (one Shape refactor) | User said map only |
|
|
63
|
-
| Extra skip cluster (`ARKRUN_*` / `ARKORDER_*`) after extra is on | Extra off → `/ark-adopt` (advisory); evaluate one bus → `/ark-runtime` |
|
|
67
|
+
| Extra skip cluster (`ARKRUN_*` / `ARKORDER_*`) after extra is on | Extra off → `/ark-adopt` (advisory); evaluate one bus → `/ark-runtime`; evaluate one order-plane candidate → `/ark-order` |
|
|
64
68
|
| Spaghetti under ENFORCE: Shape work (invoke = apply one pilot) | — |
|
|
65
69
|
|
|
66
70
|
**Post-green door:** `/ark-explore` shape-focus → dual-plan B, **then this skill applies one
|
|
@@ -128,7 +132,7 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
|
|
|
128
132
|
3. Absence of `arkRules` is **valid** — do not force ArkRules unless the user wants them or residual inventory clearly wants a pilot.
|
|
129
133
|
4. Editing `arkrules/*` or promoting modes and fixing structure sensors is **this skill** (judgment, never invent `mechanical-safe`).
|
|
130
134
|
5. CLI helpers: `ark-check --rules-inventory --json`, doctor JSON `rulesUnderContract`, sensors emit `ARKRULE_*` / `INVARIANT_UNCOVERED` with `evidence.arkruleId`.
|
|
131
|
-
6. Absence of extras is **valid**. Extra skip clusters grind **here** after the extra is on.
|
|
135
|
+
6. Absence of extras is **valid**. Extra skip clusters grind **here** after the extra is on. Evaluate one bus → `/ark-runtime`; evaluate one order-plane candidate → `/ark-order`. Do not invent `/ark-run`. Skills never enforce.
|
|
132
136
|
|
|
133
137
|
|
|
134
138
|
### Autopilot + ArkRules
|
|
@@ -148,7 +152,7 @@ When `arkRun` is present:
|
|
|
148
152
|
### Autopilot + ArkOrder
|
|
149
153
|
When `arkOrder` is present:
|
|
150
154
|
- Grind skip clusters with judgment: `ARKORDER_MISSING_PLANE` / `ARKORDER_KERNEL_IN_DOMAIN` / `ARKORDER_GENERIC_UPDATE` / `ARKORDER_TOO_MANY_PARAMS` / `ARKORDER_INGEST_WRITES_XI` / `ARKORDER_XI_FIELD_WRITE` / `ARKORDER_UNVALVED_RELEASE`. First freeze with `release()`; later ξ change is `proposeRelease` then `apply`. `refreshSigma`; ingest residual `absorb | escalate_up | hold` + `reasonCode`; capacity pack; `createMemoryReleaseStore`; `ingestTravelAction`; ArkRun `decisionTape`. Never `update`/`patch`/`set`. Name `xiKeys`; do not persist those keys from a use-case. Do not “fix” a derived status by adding it to `xiKeys`; that institutionalizes the skip, so derive it on read or fold it from ingest. Doctor / status `arkOrder` is `notAScore`.
|
|
151
|
-
- Extra off → `/ark-adopt` (advisory).
|
|
155
|
+
- Extra off → `/ark-adopt` (advisory). Wire one candidate → `/ark-order`.
|
|
152
156
|
- Skills never enforce.
|
|
153
157
|
|
|
154
158
|
## Subagent fan-out (optional, host-dependent)
|
|
@@ -266,7 +270,7 @@ Status lights from doctor — not settings you choose. Rank residual honestly:
|
|
|
266
270
|
- Claim ENFORCE / “done” when doctor reports `contract-false-green-io-under-application` (adopt first).
|
|
267
271
|
- Claim “done” solely because plan A is empty while explore/B residual remains unlisted.
|
|
268
272
|
- Replace host Nest/DI with the runtime kernel unasked.
|
|
269
|
-
- Invent `/ark-run
|
|
273
|
+
- Invent `/ark-run`. Use `/ark-order` to wire one plane candidate.
|
|
270
274
|
- Auto-apply pattern (B) bets as if they were mechanical-safe.
|
|
271
275
|
- Create origin only after a long cleanup (freezes a polished “before” that never was).
|
|
272
276
|
|
|
@@ -5,21 +5,18 @@ description: Shortcut — edit the rules file or extra rules. Use /ark-adopt or
|
|
|
5
5
|
|
|
6
6
|
# /ark-contract — Shortcut to adopt / autopilot
|
|
7
7
|
|
|
8
|
-
**Not a first-
|
|
8
|
+
**Not a first-class door.** One-release redirect. Writing `ark.config.json` is
|
|
9
9
|
**`/ark-adopt`** at session 0 and **`/ark-autopilot`** afterward. Do that job now.
|
|
10
|
-
|
|
11
|
-
## Autonomy contract
|
|
12
|
-
|
|
13
|
-
Invoking this leftover name **is** the approval to write an honest config. Do not
|
|
14
|
-
preview-only. Never weaken the architecture config.
|
|
10
|
+
Contener · Guiar · Ordenar — this leftover name is not a star.
|
|
15
11
|
|
|
16
12
|
## When / not when
|
|
17
13
|
|
|
18
14
|
| Use this leftover name when… | Prefer instead |
|
|
19
15
|
|------------------------------|----------------|
|
|
20
|
-
| Layers / include / ArkRules /
|
|
16
|
+
| Layers / include / ArkRules / first extra need an edit | **`/ark-adopt`** (path, first `arkRun` / first `arkOrder`) or **`/ark-autopilot`** (tighten) |
|
|
21
17
|
| False-green / concentrated edge | **`/ark-adopt`** — write the honest config |
|
|
22
|
-
|
|
|
18
|
+
| One kernel candidate | **`/ark-runtime`** |
|
|
19
|
+
| One order-plane candidate | **`/ark-order`** |
|
|
23
20
|
|
|
24
21
|
## Dual engine (mandatory)
|
|
25
22
|
|
|
@@ -39,14 +36,6 @@ retain `projectIdentity.projectId`, then pass both `expectedRoot` and `expectedP
|
|
|
39
36
|
uncertain, do not consume MCP analysis: use the workspace-local CLI and report that MCP
|
|
40
37
|
restart/retargeting is required. `ark://manifest` never satisfies this preflight.
|
|
41
38
|
|
|
42
|
-
## Dual plane — layers + extras (mandatory, except /ark-runtime)
|
|
43
|
-
|
|
44
|
-
Label findings **`[Layer]`** vs **`[ArkRules]`** vs **`[ArkRun]`** vs **`[ArkOrder]`**. Absence of extras is valid and silent. First-time extra is **`/ark-adopt`** (advisory). Wire one kernel candidate with **`/ark-runtime`**. New kernel-managed / plane-root file with **`/ark-place`**. Grind skip clusters with **`/ark-autopilot`**. Do not invent `/ark-run` or `/ark-order`. Skills never enforce.
|
|
45
|
-
|
|
46
|
-
Application / Features may declare advisory **`writes-via-aggregate`**: a use-case that imports a persistence driver and calls `.insert` / `.create` / `INSERT INTO` is the skip. Persistence adapters stay the write edge. Do not add `Externals/` or `admission.ts` as contract law.
|
|
47
|
-
|
|
48
|
-
When `arkOrder` is on, name **`xiKeys`** (3–5 slow product decisions). Membership ids and recomputable statuses are not keys: derive a status on read or fold it from ingest instead. A use-case that persists those keys is `ARKORDER_XI_FIELD_WRITE`. First freeze is `release()`; later ξ is `proposeRelease` then `apply`; `refreshSigma`; ingest residual `absorb | escalate_up | hold` + `reasonCode`; capacity pack as data; in-memory `ReleaseStore`; ArkRun `decisionTape`. The billing gallery lives on GitHub, not in the npm tarball: [examples/arkorder-billing](https://github.com/pedroknigge/arkgate/tree/main/examples/arkorder-billing). Rename the three keys. The check remains silent on semantic entailment.
|
|
49
|
-
|
|
50
39
|
## Subagent fan-out (optional, host-dependent)
|
|
51
40
|
|
|
52
41
|
If the host supports **parallel subagents**, fan out read-only scouts; otherwise
|
|
@@ -59,9 +48,9 @@ If the host supports **parallel subagents**, fan out read-only scouts; otherwise
|
|
|
59
48
|
|
|
60
49
|
## Steps
|
|
61
50
|
|
|
62
|
-
1.
|
|
63
|
-
2.
|
|
64
|
-
3. One kernel candidate
|
|
51
|
+
1. Path missing or lying → execute **`/ark-adopt`** (including first advisory `arkRun` / first advisory `arkOrder`).
|
|
52
|
+
2. Path honest and tightening → execute **`/ark-autopilot`**.
|
|
53
|
+
3. One kernel candidate → **`/ark-runtime`**. One order-plane candidate → **`/ark-order`**.
|
|
65
54
|
|
|
66
55
|
## Completion contract (skill incomplete if missing)
|
|
67
56
|
|
|
@@ -73,5 +62,5 @@ Skill incomplete if missing any field below.
|
|
|
73
62
|
- **Result:** one-line outcome
|
|
74
63
|
- **Planes:** one-line split of residual **[Layer]** vs **[ArkRules]** vs **[ArkRun]** vs **[ArkOrder]** (or `n/a` if unused)
|
|
75
64
|
- **Compass:** top residual lenses | `n/a`
|
|
76
|
-
- **Handoff:** `/ark-adopt` / `/ark-autopilot` / `none`
|
|
65
|
+
- **Handoff:** `/ark-adopt` / `/ark-autopilot` / `/ark-order` / `none`
|
|
77
66
|
- **Incomplete?** `no` | `yes — <what is missing>`
|
|
@@ -5,9 +5,13 @@ description: How much of the tree the rules file covers. CLI is a sensor; read t
|
|
|
5
5
|
|
|
6
6
|
# /ark-coverage — Ark adoption fitness (not full recon)
|
|
7
7
|
|
|
8
|
+
**Contener · Guiar · Ordenar.** In plain words: contain the write, guide the next
|
|
9
|
+
step, order leftover mess. This door is **Guiar**: adoption fitness numbers, not a full map.
|
|
10
|
+
Skills never enforce — CLI / hooks / CI do.
|
|
11
|
+
|
|
8
12
|
**Not a first-run door.** Fitness numbers only (governed files, gates, baseline).
|
|
9
13
|
Session 0 → **`/ark-adopt`**. Leftover design → **`/ark-explore`**. Apply → **`/ark-autopilot`**.
|
|
10
|
-
|
|
14
|
+
Wire ArkRun → **`/ark-runtime`**. Wire ArkOrder → **`/ark-order`**.
|
|
11
15
|
|
|
12
16
|
You audit **how this repo uses ArkGate** (coverage, gates, baseline, host write path) and
|
|
13
17
|
what adoption gaps remain. Work autonomously. End with a ranked fitness report.
|
|
@@ -41,7 +45,7 @@ patterns are **out-of-scope** lenses — say so; do not invent Ark enforcement f
|
|
|
41
45
|
| “How adopted is Ark?” governed%, gates, baseline, skills stale | Full product map / what-next architecture → `/ark-explore` |
|
|
42
46
|
| Capability gaps (CI, write path, ESLint, optional layers) | Apply fixes end-to-end → `/ark-autopilot` |
|
|
43
47
|
| Ranked *adoption* opportunities (install, ratchet, contract classify) | Spaghetti pattern plan / golden pattern → `/ark-explore` dual-plan seed |
|
|
44
|
-
| Quick honesty before a release checklist | One design trade-off → `/ark-
|
|
48
|
+
| Quick honesty before a release checklist | One design trade-off → `/ark-explore` (one decision, 2–3 options) |
|
|
45
49
|
|
|
46
50
|
## Dual engine (mandatory)
|
|
47
51
|
|
|
@@ -90,10 +94,10 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
|
|
|
90
94
|
1. Prefix each finding or next step with **`[Layer]`** or **`[ArkRules]`** or **`[ArkRun]`** or **`[ArkOrder]`** (or a table with those headers).
|
|
91
95
|
2. Never call an import-edge violation an “invariant” or an aggregate sensor a “layer deny.”
|
|
92
96
|
3. Absence of `arkRules` is **valid** — do not force ArkRules unless the user wants them or residual inventory clearly wants a pilot.
|
|
93
|
-
4. Editing `arkrules/*` or promoting modes is **`/ark-adopt
|
|
97
|
+
4. Editing `arkrules/*` or promoting modes is **`/ark-adopt`**; fixing code under a structure sensor is **`/ark-autopilot`** (judgment, never invent mechanical-safe).
|
|
94
98
|
5. CLI helpers: `ark-check --rules-inventory --json`, doctor JSON `rulesUnderContract`, sensors emit `ARKRULE_*` / `INVARIANT_UNCOVERED` with `evidence.arkruleId`.
|
|
95
99
|
5b. Invariant coverage is a **text match, never an execution**: a file walk plus the invariant id in a `describe`/`it` title. Never report `INVARIANT_UNCOVERED: 0` as “the tests pass” or “the tests run” — ArkGate does not run tests and reads no runner config. When the project declares `coverage.coverageRoots`, a covering test found outside them raises the advisory `INVARIANT_COVERAGE_OUTSIDE_ROOTS`; without that declaration ArkGate makes no claim about where tests run.
|
|
96
|
-
6. Extras silent when off. Doctor `arkRun` is `notAScore`. Do not force extras.
|
|
100
|
+
6. Extras silent when off. Doctor `arkRun` / `arkOrder` is `notAScore`. Do not force extras. Wire one kernel candidate via `/ark-runtime`; one order-plane candidate via `/ark-order`. Do not invent `/ark-run`.
|
|
97
101
|
|
|
98
102
|
|
|
99
103
|
### Coverage + ArkRules
|
|
@@ -143,10 +147,10 @@ because governed% is 100% and plan is empty.
|
|
|
143
147
|
|
|
144
148
|
## Related onboarding
|
|
145
149
|
|
|
146
|
-
- **Greenfield:** low governed% → `/ark-
|
|
150
|
+
- **Greenfield:** low governed% → `/ark-adopt` or `ark-check --recommend`.
|
|
147
151
|
- **Brownfield:** `/ark-adopt` for action; this skill for fitness metrics.
|
|
148
152
|
- **Pattern / spaghetti residual:** `/ark-explore` dual-plan seed / shape-focus.
|
|
149
|
-
- **Business rules loose:** note in table; mining action → `/ark-adopt
|
|
153
|
+
- **Business rules loose:** note in table; mining action → `/ark-adopt`.
|
|
150
154
|
|
|
151
155
|
## Checklist (sensor + light code)
|
|
152
156
|
|
|
@@ -159,8 +163,8 @@ because governed% is 100% and plan is empty.
|
|
|
159
163
|
7. **Governed%** + unclassified + `suggestions` from `--coverage --json`.
|
|
160
164
|
8. Concentrated edges in check `summary` → contract smell, not N freezes.
|
|
161
165
|
9. `layersWithoutRules` + empty cores with I/O under Application (false-green).
|
|
162
|
-
On false-green: **STOP — do not continue this skill as complete.** **STOP — false-green: invoke /ark-adopt
|
|
163
|
-
On one-edge wall: **STOP — do not continue this skill as complete.** **STOP — concentrated edge: invoke /ark-
|
|
166
|
+
On false-green: **STOP — do not continue this skill as complete.** **STOP — false-green: invoke /ark-adopt before claiming ENFORCE.** Do not claim goal.met / ENFORCE from type-only cleanup while doctor reports `contract-false-green-io-under-application`.
|
|
167
|
+
On one-edge wall: **STOP — do not continue this skill as complete.** **STOP — concentrated edge: invoke /ark-adopt with source evidence** (do not freeze a wrong contract or grind N freezes).
|
|
164
168
|
10. Runtime kernel / Nest only if deps prove it — never force-fit.
|
|
165
169
|
|
|
166
170
|
## Output format
|
|
@@ -5,9 +5,13 @@ description: Explain the rules file in plain language and generate the HTML repo
|
|
|
5
5
|
|
|
6
6
|
# /ark-explain — Understand this project's architecture
|
|
7
7
|
|
|
8
|
+
**Contener · Guiar · Ordenar.** In plain words: contain the write, guide the next
|
|
9
|
+
step, order leftover mess. This door is **Guiar**: teach the path in plain language.
|
|
10
|
+
Skills never enforce — CLI / hooks / CI do.
|
|
11
|
+
|
|
8
12
|
**Not a first-run door.** Teach / HTML tour only. Session 0 → **`/ark-adopt`**.
|
|
9
13
|
Map → **`/ark-explore`**. Apply → **`/ark-autopilot`**.
|
|
10
|
-
|
|
14
|
+
Wire ArkRun → **`/ark-runtime`**. Wire ArkOrder → **`/ark-order`**.
|
|
11
15
|
|
|
12
16
|
The user wants to understand the architecture, a specific rule, or why the gate blocked them.
|
|
13
17
|
|
|
@@ -76,7 +80,7 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
|
|
|
76
80
|
3. Absence of `arkRules` is **valid** — do not force ArkRules unless the user wants them or residual inventory clearly wants a pilot.
|
|
77
81
|
4. Editing `arkrules/*` or applying structure fixes is **`/ark-adopt`** / **`/ark-autopilot`** (never invent `mechanical-safe`).
|
|
78
82
|
5. CLI helpers: `ark-check --rules-inventory --json`, doctor JSON `rulesUnderContract`, sensors emit `ARKRULE_*` / `INVARIANT_UNCOVERED` with `evidence.arkruleId`.
|
|
79
|
-
6. Extras silent when off. Doctor `arkRun` is `notAScore`. Do not force extras.
|
|
83
|
+
6. Extras silent when off. Doctor `arkRun` / `arkOrder` is `notAScore`. Do not force extras. Wire one kernel candidate via `/ark-runtime`; one order-plane candidate via `/ark-order`. Do not invent `/ark-run`.
|
|
80
84
|
|
|
81
85
|
|
|
82
86
|
### Explain + ArkRules
|
|
@@ -217,7 +221,7 @@ when residual signals remain.
|
|
|
217
221
|
|
|
218
222
|
## Related
|
|
219
223
|
|
|
220
|
-
- Onboarding: `/ark-adopt
|
|
224
|
+
- Onboarding: `/ark-adopt`, `ark-check --recommend`, `docs/enthusiast/README.md`
|
|
221
225
|
- Brownfield: `/ark-adopt`, `docs/brownfield-adoption.md`
|
|
222
226
|
- Autopilot: `/ark-autopilot` after the user understands the contract
|
|
223
227
|
|
|
@@ -5,7 +5,12 @@ description: Map import rules and leftover design. No apply. CLI is a sensor; yo
|
|
|
5
5
|
|
|
6
6
|
# /ark-explore — Recon the real project (map only)
|
|
7
7
|
|
|
8
|
-
**
|
|
8
|
+
**Contener · Guiar · Ordenar.** In plain words: contain the write, guide the next
|
|
9
|
+
step, order leftover mess. This door is **Guiar**: map leftover design so you can
|
|
10
|
+
order a messy tree. Do not apply. Skills never enforce — CLI / hooks / CI do.
|
|
11
|
+
|
|
12
|
+
**When:** you need a map, leftover design work remains after imports look green, or
|
|
13
|
+
one bounded decision needs 2–3 enforceable options.
|
|
9
14
|
**Not when:** the user wants edits applied (`/ark-autopilot`) or session 0 (`/ark-adopt`).
|
|
10
15
|
|
|
11
16
|
## Steps
|
|
@@ -102,7 +107,8 @@ If the consumer tree has a **domain glossary**, prefer its terms for layer/slice
|
|
|
102
107
|
| Map / “what next?” / residual after ENFORCE | User wants edits applied → `/ark-autopilot` |
|
|
103
108
|
| **Primary post-green door:** messy / leftover design work / “clarify for AI” | Skill-shopping coverage or think for the same leftover work |
|
|
104
109
|
| Spaghetti brownfield: patterns concurrent, design-weak under green check | Only “governed% + gates installed?” numbers → `/ark-coverage` |
|
|
105
|
-
| Dual-plan **seed** (A remediation + B pattern bets) without applying |
|
|
110
|
+
| Dual-plan **seed** (A remediation + B pattern bets) without applying | Apply the chosen option → `/ark-autopilot`; new file → `/ark-place` |
|
|
111
|
+
| One bounded decision: 2–3 enforceable options (folded from leftover `/ark-think`) | Full apply → `/ark-autopilot`; extra off → `/ark-adopt`; one kernel candidate → `/ark-runtime`; one order-plane candidate → `/ark-order` |
|
|
106
112
|
| Path-correct vs design-correct honesty | Plain-language tour / HTML report → `/ark-explain` |
|
|
107
113
|
|
|
108
114
|
**Post-green single path:** when doctor `postGreenPath` / ENFORCE · leftover design work is active, **this skill
|
|
@@ -174,7 +180,7 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
|
|
|
174
180
|
3. Absence of `arkRules` is **valid** — do not force ArkRules unless the user wants them or residual inventory clearly wants a pilot.
|
|
175
181
|
4. Editing `arkrules/*` or applying structure fixes is **`/ark-adopt`** / **`/ark-autopilot`** — explore does not write (never invent `mechanical-safe`).
|
|
176
182
|
5. CLI helpers: `ark-check --rules-inventory --json`, doctor JSON `rulesUnderContract`, sensors emit `ARKRULE_*` / `INVARIANT_UNCOVERED` with `evidence.arkruleId`.
|
|
177
|
-
6. Never write `arkRun` or `arkOrder` from this skill. When extras are present, label residual **`[ArkRun]`** / **`[ArkOrder]`**.
|
|
183
|
+
6. Never write `arkRun` or `arkOrder` from this skill. When extras are present, label residual **`[ArkRun]`** / **`[ArkOrder]`**. Wire one kernel candidate via `/ark-runtime`; one order-plane candidate via `/ark-order`. Do not invent `/ark-run`.
|
|
178
184
|
|
|
179
185
|
|
|
180
186
|
### Explore + ArkRules
|
|
@@ -186,7 +192,22 @@ ArkGate has **always-on Layers** plus opt-in extras. The user chooses extras; yo
|
|
|
186
192
|
### Explore + extras
|
|
187
193
|
- Map extras when present; never write `arkRun` / `arkOrder`. Extra off → residual `n/a` / silent.
|
|
188
194
|
- When `arkOrder` is on, name the valve: first freeze `release()`; later ξ is `proposeRelease` then `apply`; `refreshSigma`; ingest residual `absorb | escalate_up | hold` + `reasonCode`; capacity pack as data; in-memory `ReleaseStore` (`createMemoryReleaseStore`); thin travel `ingestTravelAction`. ArkRun residual may include information package `decisionTape` `{ xiHash, event, residual }`.
|
|
189
|
-
- Field path may name the ArkOrder gallery on GitHub (`https://github.com/pedroknigge/arkgate/tree/main/examples/arkorder-billing`; not in the npm tarball — map only). First extra write is `/ark-adopt`; grind is `/ark-autopilot`.
|
|
195
|
+
- Field path may name the ArkOrder gallery on GitHub (`https://github.com/pedroknigge/arkgate/tree/main/examples/arkorder-billing`; not in the npm tarball — map only). First extra write is `/ark-adopt`; wire one candidate is `/ark-order`; grind is `/ark-autopilot`.
|
|
196
|
+
|
|
197
|
+
## One decision (2–3 options)
|
|
198
|
+
|
|
199
|
+
When the job is **one** bounded import-rule or ArkRules choice (not a full map), stay here.
|
|
200
|
+
Leftover `/ark-think` redirects here. Do not invent a third door.
|
|
201
|
+
|
|
202
|
+
1. Open ≥5 source files on the decision surface. Name paths.
|
|
203
|
+
2. Propose **2–3 options** that stay enforceable today. Label each by lens impact
|
|
204
|
+
(what residual improves / what stays out-of-scope). Always `notAScore`.
|
|
205
|
+
3. Recommend one option + why it is enforceable. Pilot + kill-switch if the choice
|
|
206
|
+
adds a layer or wall.
|
|
207
|
+
4. Hand off: apply → `/ark-autopilot`; new file → `/ark-place`; extra off → `/ark-adopt`;
|
|
208
|
+
one kernel candidate → `/ark-runtime`; one order-plane candidate → `/ark-order`.
|
|
209
|
+
|
|
210
|
+
Never weaken `ark.config.json` to pass. Never silent judgment auto-apply.
|
|
190
211
|
|
|
191
212
|
## Output mode (pick one — do not invent a fourth)
|
|
192
213
|
|