@bruc3van/dsh-doctor 0.5.5 → 0.5.7
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/README.en.md +77 -181
- package/README.md +77 -181
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.2/packages.json +1 -3
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.2/symbols.json +8 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/behavior.md +14 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/config-rules.json +36 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/manifest.json +19 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/packages.json +74 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/services.json +28 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/symbols.json +134 -0
- package/package.json +1 -1
- package/skills/dsh-plugin-upgrade/SKILL.md +54 -23
- package/skills/dsh-plugin-upgrade/evals/evals.json +55 -0
- package/skills/dsh-plugin-upgrade/evals/files/import-move-plugin/README.md +5 -0
- package/skills/dsh-plugin-upgrade/evals/files/import-move-plugin/package.json +31 -0
- package/skills/dsh-plugin-upgrade/evals/files/import-move-plugin/src/index.ts +20 -0
- package/skills/dsh-plugin-upgrade/evals/files/import-move-plugin/src/stores.ts +15 -0
- package/skills/dsh-plugin-upgrade/evals/files/settings-plugin/README.md +7 -0
- package/skills/dsh-plugin-upgrade/evals/files/settings-plugin/package.json +20 -0
- package/skills/dsh-plugin-upgrade/evals/files/settings-plugin/src/index.ts +2 -0
- package/skills/dsh-plugin-upgrade/evals/files/settings-plugin/src/namespace-read.ts +6 -0
- package/skills/dsh-plugin-upgrade/evals/files/settings-plugin/src/settings.ts +21 -0
- package/skills/dsh-plugin-upgrade/evals/trigger-evals.json +22 -0
- package/skills/dsh-plugin-upgrade/references/cli-bootstrap.md +6 -4
- package/skills/dsh-plugin-upgrade/references/migration-map.md +5 -1
- package/skills/dsh-plugin-upgrade/references/source-investigation.md +2 -0
- package/skills/dsh-plugin-upgrade/references/verification.md +6 -0
- package/src/cli.mjs +7 -3
- package/src/migrate-verify.mjs +3 -2
- package/src/migrate.mjs +53 -22
package/README.en.md
CHANGED
|
@@ -2,19 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
[中文](README.md) | English
|
|
4
4
|
|
|
5
|
-
DSH Doctor
|
|
5
|
+
DSH Doctor is an upgrade and troubleshooting tool for DSH plugin developers and agents. It finds what needs to change during an upgrade, handles changes that are known to be safe, and then checks dependencies, build output, installation, and activation.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
When a change depends on the plugin's business logic, Doctor calls it out for the agent or developer instead of guessing. Every edit is previewed and backed up first, and runtime checks use a temporary DSH environment rather than the developer's everyday profile.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
DSH 0.1.1 → DSH 0.1.2
|
|
11
|
-
```
|
|
9
|
+
> This is a community-maintained third-party project, not an official DeepSeek project. The current migration scope is DSH 0.1.1 → 0.1.2. The catalog exactly covers `dsh-v0.1.1-rc.2` → `dsh-v0.1.2-alpha.3` and retains the alpha.2 historical rules. Differences outside those catalogs still require a separate investigation and are not proven compatible by the catalog.
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
## What it helps with
|
|
12
|
+
|
|
13
|
+
| Scenario | What DSH Doctor provides |
|
|
14
|
+
|---|---|
|
|
15
|
+
| Upgrade a plugin | Scans source, dependencies, manifest, client graph, patches, and build output; applies exact catalog-confirmed migrations and leaves semantic work to the agent |
|
|
16
|
+
| Verify a migration | Runs static reanalysis, dependency synchronization, build/test scripts, real tarball packaging, and temporary-profile installation and activation checks |
|
|
17
|
+
| Diagnose a DSH environment | Checks profile layers, plugin versions and peers, lockfile, bundles, patches, client contracts, duplicate mounts, and DSH CLI/Harness version drift |
|
|
18
|
+
| Recover safely | Compares before/after baselines, checks compatible updates, generates and verifies quarantine overlays, and records dependency and configuration impact before removal |
|
|
14
19
|
|
|
15
|
-
|
|
20
|
+
Agents can orchestrate these capabilities through the skill, while other tools can integrate the same structured CLI workflows.
|
|
16
21
|
|
|
17
|
-
##
|
|
22
|
+
## Recommended: use the skill with an agent
|
|
18
23
|
|
|
19
24
|
Install the repository's [`dsh-plugin-upgrade`](skills/dsh-plugin-upgrade/SKILL.md) skill:
|
|
20
25
|
|
|
@@ -29,219 +34,110 @@ Upgrade this plugin from DSH 0.1.1 to DSH 0.1.2.
|
|
|
29
34
|
Analyze compatibility first, modify the code, then complete build and runtime verification.
|
|
30
35
|
```
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
The skill guides the agent to:
|
|
33
38
|
|
|
34
|
-
|
|
39
|
+
1. establish the plugin, actual DSH installation, Harness checkout, package manager, and usable DSH Doctor;
|
|
40
|
+
2. analyze source, dependencies, configuration, patches, and existing artifacts;
|
|
41
|
+
3. confirm whether the upgraded plugin release targets only 0.1.2 or must remain compatible with 0.1.1;
|
|
42
|
+
4. preview and apply exact changes allowed by that compatibility strategy, then handle semantic migrations that require business context;
|
|
43
|
+
5. rebuild and report static, artifact, isolated-runtime, and business-behavior evidence separately;
|
|
44
|
+
6. commit or publish through the plugin repository's own process only when the developer explicitly requests it.
|
|
35
45
|
|
|
36
|
-
|
|
37
|
-
2. analyze source, type imports, dependencies, manifest, client graph, patches, and build output;
|
|
38
|
-
3. confirm whether the upgraded release targets only 0.1.2 or must remain compatible with 0.1.1;
|
|
39
|
-
4. preview and apply code changes that are known to be equivalent under the selected compatibility strategy;
|
|
40
|
-
5. use the new API owners to handle semantic changes that require understanding the plugin;
|
|
41
|
-
6. rebuild the plugin and run static, build, and isolated runtime verification, covering both versions in dual-version mode;
|
|
42
|
-
7. report the compatibility intent, changed files, remaining work, backups, and the verification level actually reached.
|
|
46
|
+
`npx skills add` installs agent instructions only; it does not install DSH Doctor globally. The skill checks the local CLI and npm registry first. If the local version is unsuitable, it runs a pinned version through `npm exec` without changing the global installation.
|
|
43
47
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
After verification, the agent can follow the plugin repository's existing versioning and release process if requested. The skill itself does not commit or publish anything automatically.
|
|
48
|
+
An upgrade request does not itself authorize dropping the old runtime. When compatibility intent is missing, the skill may perform read-only analysis but asks before migration writes, dependency installation, build, or runtime commands. Dual-version mode requires separate 0.1.1 and 0.1.2 evidence; one 0.1.2 smoke test is not dual-version proof.
|
|
47
49
|
|
|
48
50
|
## How it works
|
|
49
51
|
|
|
50
|
-
DSH Doctor has three parts:
|
|
52
|
+
DSH Doctor has three parts that constrain one another:
|
|
51
53
|
|
|
52
|
-
- **Skill**:
|
|
53
|
-
- **CLI**:
|
|
54
|
-
- **Migration catalog**:
|
|
54
|
+
- **Skill**: defines investigation steps, the compatibility decision, confirmation gates, and reporting standards for the agent;
|
|
55
|
+
- **CLI**: provides read-only analysis, safe edits, diagnosis, baselines, recovery, and staged verification;
|
|
56
|
+
- **Migration catalog**: stores exact DSH tags/commits and known package, symbol, Service, configuration, and behavior changes.
|
|
55
57
|
|
|
56
|
-
The workflow is:
|
|
58
|
+
The plugin migration workflow is:
|
|
57
59
|
|
|
58
60
|
```text
|
|
59
|
-
|
|
60
|
-
→
|
|
61
|
+
investigate the actual environment
|
|
62
|
+
→ catalog-driven analysis
|
|
63
|
+
→ reviewed-plan exact changes
|
|
61
64
|
→ agent handles semantic changes
|
|
62
|
-
→
|
|
63
|
-
→ static verification
|
|
65
|
+
→ build and artifact verification
|
|
64
66
|
→ temporary-profile installation and activation
|
|
65
|
-
→
|
|
67
|
+
→ plugin business-behavior verification
|
|
66
68
|
```
|
|
67
69
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## Why versioned rules are needed
|
|
71
|
-
|
|
72
|
-
DSH 0.1.2 changes more than package versions:
|
|
70
|
+
DSH 0.1.2 changes more than package versions. Legacy owners such as `dsh-client-runtime` and `dsh-host-apiproxy` were split, while Session, Workspace, Conversation, pending interaction, and Settings capabilities moved to new controllers, UI packages, or Services. The CLI only auto-edits relationships marked `exact`; ownership, lifecycle, and business-call changes are reported as `MIG_SEMANTIC_API_CHANGE`.
|
|
73
71
|
|
|
74
|
-
|
|
75
|
-
- store features moved to `dsh-client-store`;
|
|
76
|
-
- Session, Workspace, Conversation, and pending interactions moved to separate controllers or UI packages;
|
|
77
|
-
- `@deepseek-ai/dsh-host-apiproxy` was removed, so browser calls move to the appropriate business Remote;
|
|
78
|
-
- client graph, platform externals, exports, and some profile patch targets also changed.
|
|
72
|
+
With an exact Harness checkout, Doctor also verifies the commits behind the two catalog tags and compares entry ids in the target web profile. After the additional source interval has been investigated, `--target-version` can bind dependencies and runtime checks to a newer 0.1.2 target, but it does not extend the catalog's API claims.
|
|
79
73
|
|
|
80
|
-
|
|
74
|
+
## Core capabilities
|
|
81
75
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
| Area | How Doctor and the agent handle it |
|
|
76
|
+
| Area | How it is handled |
|
|
85
77
|
|---|---|
|
|
86
|
-
| JS/TS imports
|
|
87
|
-
| Removed
|
|
88
|
-
| DSH/Cordis version ranges | Checks dependencies, devDependencies, and
|
|
89
|
-
| Session, Workspace, Conversation, and other semantic changes | Reports the new owner and reason; the agent modifies the business code |
|
|
78
|
+
| JS/TS imports and named re-exports | Uses the TypeScript AST for type-only, aliased, and mixed imports; rewrites only known equivalent symbols |
|
|
79
|
+
| Removed packages and retained-package API changes | Checks source and manifest, preserves exports that still exist, and reports symbols that need semantic migration |
|
|
80
|
+
| DSH/Cordis version ranges | Checks dependencies, devDependencies, peerDependencies, and resolved versions; existing peer ranges are not widened automatically |
|
|
90
81
|
| `dsh.client` and client exports | Checks inject, external, platform, immediately, and `exports["./client"]` |
|
|
91
|
-
| Harness patch targets | Compares old and new entries when an exact Harness checkout is available |
|
|
92
|
-
| Build output | Scans `lib`, `dist`, `build`, and `out` for
|
|
93
|
-
| Plugin build | Runs existing typecheck, build, test, and pack:check scripts;
|
|
82
|
+
| Harness patch targets | Compares old and new bundle entries when an exact Harness checkout is available |
|
|
83
|
+
| Build output | Scans `lib`, `dist`, `build`, and `out` for source/artifact drift |
|
|
84
|
+
| Plugin build | Runs existing typecheck, build, test, and pack:check scripts; test/typecheck alone cannot establish artifact verification |
|
|
94
85
|
| Installation and activation | Packs the real tarball and installs it into a fresh web profile under a temporary `DSH_HOME` |
|
|
95
|
-
|
|
|
86
|
+
| Profile diagnosis | Composes bundle, profile, home, and CLI overlays in DSH order while preserving field provenance |
|
|
87
|
+
| Update, quarantine, and removal | Verifies versions, dependencies, configuration layers, and dependents before producing an explicit operation plan; updates, persistent quarantine, and removal need explicit confirmation |
|
|
96
88
|
|
|
97
|
-
|
|
89
|
+
No legacy string in source, a successful compile, an installable tarball, and correct business behavior are different evidence levels. Doctor does not present one as proof of another.
|
|
98
90
|
|
|
99
|
-
## Safety
|
|
91
|
+
## Safety and evidence
|
|
100
92
|
|
|
101
93
|
- `diagnose`, `migrate analyze`, and static verification are read-only and do not load or execute the inspected plugin;
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
- SHA-256 is
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
- global CLI installation, persistent quarantine, plugin removal, and publishing are never performed automatically by the skill.
|
|
110
|
-
|
|
111
|
-
## Use the migration CLI manually
|
|
94
|
+
- only migrations marked `exact` by the catalog can be changed automatically; semantic changes are not guessed mechanically;
|
|
95
|
+
- `migrate apply` uses a reviewed plan outside the plugin root and binds the full analysis, actual target version, and every input-file hash;
|
|
96
|
+
- SHA-256 is rechecked before writes, input drift rejects the apply, and existing files receive timestamped backups;
|
|
97
|
+
- build/runtime commands require explicit confirmation and synchronize dependencies with lifecycle scripts disabled;
|
|
98
|
+
- runtime verification uses a temporary `DSH_HOME` instead of installing into the developer's normal `~/.dsh`;
|
|
99
|
+
- JSON, baselines, and recovery snapshots redact common secret, token, password, and key fields;
|
|
100
|
+
- global CLI installation, persistent quarantine, plugin removal, commits, and publication are never implicit actions.
|
|
112
101
|
|
|
113
|
-
|
|
102
|
+
## Boundaries
|
|
114
103
|
|
|
115
|
-
|
|
104
|
+
- Doctor can report a new API owner and migration reason, but it cannot replace understanding the plugin's business logic;
|
|
105
|
+
- named imports and named re-exports from retained packages are recognized, while property access through namespace imports still needs manual investigation;
|
|
106
|
+
- `runtime-verified` proves packaging, installation, and basic activation, not UI, Service lifecycle, or business-flow correctness;
|
|
107
|
+
- DSH patches or prereleases outside the catalog require investigation of the additional source interval;
|
|
108
|
+
- static diagnosis cannot establish dynamic Service dependencies or whether plugin-owned external data is safe to delete.
|
|
116
109
|
|
|
117
|
-
|
|
118
|
-
npx --yes --package=@bruc3van/dsh-doctor@0.5.5 \
|
|
119
|
-
dsh-doctor migrations list
|
|
120
|
-
```
|
|
110
|
+
## CLI quick reference
|
|
121
111
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
```sh
|
|
125
|
-
dsh-doctor migrate analyze /path/to/plugin \
|
|
126
|
-
--from dsh-v0.1.1-rc.2 \
|
|
127
|
-
--to dsh-v0.1.2-alpha.2 \
|
|
128
|
-
--harness-root /path/to/deepseek-harness \
|
|
129
|
-
--json
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Analysis checks source, dependencies, manifest, client graph, patch targets, and existing build output without executing plugin code.
|
|
133
|
-
|
|
134
|
-
### 2. Apply
|
|
135
|
-
|
|
136
|
-
```sh
|
|
137
|
-
# Preview
|
|
138
|
-
dsh-doctor migrate apply /path/to/plugin --safe \
|
|
139
|
-
--plan-file /temporary/path/reviewed-migration-plan.json \
|
|
140
|
-
--harness-root /path/to/deepseek-harness --json
|
|
141
|
-
|
|
142
|
-
# Write after confirmation
|
|
143
|
-
dsh-doctor migrate apply /path/to/plugin --safe --yes \
|
|
144
|
-
--plan-file /temporary/path/reviewed-migration-plan.json \
|
|
145
|
-
--harness-root /path/to/deepseek-harness --json
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
The plan must stay outside the plugin root so it is not analyzed as plugin input. Apply checks the plan digest, every analyzed input, and each edit's before/after hashes; source, manifest, or other analyzed-input changes require a new reviewed plan. Deterministic dependency edits use catalog-owned Client/Host and peer/dev policies instead of inheriting the removed package's dependency section. Every changed file receives a backup.
|
|
149
|
-
|
|
150
|
-
### 3. Verify
|
|
151
|
-
|
|
152
|
-
```sh
|
|
153
|
-
dsh-doctor migrate verify /path/to/plugin --level static \
|
|
154
|
-
--harness-root /path/to/deepseek-harness --json
|
|
155
|
-
dsh-doctor migrate verify /path/to/plugin --level build --yes --install \
|
|
156
|
-
--harness-root /path/to/deepseek-harness --json
|
|
157
|
-
dsh-doctor migrate verify /path/to/plugin --level runtime --yes --install \
|
|
158
|
-
--harness-root /path/to/deepseek-harness --json
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
| Level | What it checks |
|
|
162
|
-
|---|---|
|
|
163
|
-
| `static` | Rechecks source, manifest, client graph, patches, and artifacts |
|
|
164
|
-
| `build` | Synchronizes and verifies target dependencies and the lockfile, then runs build/test scripts and scans output again |
|
|
165
|
-
| `runtime` | After dependency and build gates, packs the real tarball and checks target DSH, installed package, bundle, and effective configuration in a temporary profile |
|
|
166
|
-
|
|
167
|
-
Verification states are:
|
|
168
|
-
|
|
169
|
-
```text
|
|
170
|
-
analyzed → source-migrated → artifact-verified → runtime-verified
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
`runtime-verified` means that packing, installation, and basic activation passed. It does not replace real UI, Service lifecycle, and business-flow testing.
|
|
174
|
-
|
|
175
|
-
## Diagnose DSH and installed plugins
|
|
176
|
-
|
|
177
|
-
Global installation:
|
|
112
|
+
Requires Node.js `^22.19.0` or `>=24.0.0`.
|
|
178
113
|
|
|
179
114
|
```sh
|
|
115
|
+
# Global installation
|
|
180
116
|
npm install --global @bruc3van/dsh-doctor
|
|
181
|
-
dsh-doctor diagnose
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
Temporary use:
|
|
185
|
-
|
|
186
|
-
```sh
|
|
187
|
-
npx @bruc3van/dsh-doctor diagnose
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
The default target is `$DSH_HOME/profiles/web`, falling back to `~/.dsh`.
|
|
191
|
-
|
|
192
|
-
```sh
|
|
193
|
-
dsh-doctor diagnose
|
|
194
|
-
dsh-doctor diagnose --json
|
|
195
|
-
dsh-doctor diagnose --check-updates
|
|
196
|
-
```
|
|
197
117
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
```text
|
|
201
|
-
bundle layers → profile cordis.patch.yml → home cordis.patch.yml → CLI overlays
|
|
118
|
+
# Or run one pinned version without changing the global installation
|
|
119
|
+
npm exec --yes --package=@bruc3van/dsh-doctor@<version> -- dsh-doctor --help
|
|
202
120
|
```
|
|
203
121
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
dsh-doctor recover
|
|
211
|
-
dsh-doctor recover @scope/plugin --action update
|
|
212
|
-
dsh-doctor recover @scope/plugin --action update --yes
|
|
213
|
-
|
|
214
|
-
# Create a temporary quarantine overlay
|
|
215
|
-
dsh-doctor recover @scope/plugin --action quarantine \
|
|
216
|
-
--output ./plugin-quarantine.yml
|
|
217
|
-
|
|
218
|
-
# Persist it only after testing the temporary overlay
|
|
219
|
-
dsh-doctor recover @scope/plugin --action persist-quarantine --verified
|
|
220
|
-
dsh-doctor recover @scope/plugin --action persist-quarantine --verified --yes
|
|
221
|
-
|
|
222
|
-
# Removal is always separate
|
|
223
|
-
dsh-doctor recover @scope/plugin --action remove
|
|
224
|
-
dsh-doctor recover @scope/plugin --action remove --yes
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
Before quarantine or removal, Doctor checks entry ownership, configuration layers, direct dependencies, core bundles, lockfile state, manual mounts, and known client dependents. Static checks cannot prove dynamic Service dependencies or external data safety, so restart the profile and test its main features afterwards.
|
|
228
|
-
|
|
229
|
-
You can also save and compare a baseline around an upgrade:
|
|
122
|
+
| Command | Purpose |
|
|
123
|
+
|---|---|
|
|
124
|
+
| `dsh-doctor diagnose [--json] [--check-updates]` | Diagnose the current profile and installed plugins; normal diagnosis does not use the network |
|
|
125
|
+
| `dsh-doctor migrations list` | List the exact migration catalogs bundled with the current CLI |
|
|
126
|
+
| `dsh-doctor migrate analyze` / `apply` / `verify` | Analyze a migration, apply a reviewed plan, or run static/build/runtime verification |
|
|
127
|
+
| `dsh-doctor baseline create` / `compare` | Save or compare a redacted before/after diagnostic baseline |
|
|
128
|
+
| `dsh-doctor recover <package> --action <action>` | Check updates, generate/persist/roll back quarantine, or enter the separate removal workflow |
|
|
230
129
|
|
|
231
|
-
|
|
232
|
-
dsh-doctor baseline create
|
|
233
|
-
dsh-doctor baseline compare
|
|
234
|
-
```
|
|
130
|
+
Use `dsh-doctor --help` for full options and confirmation requirements. Migration orchestration and semantic-investigation rules live in [`dsh-plugin-upgrade`](skills/dsh-plugin-upgrade/SKILL.md) and its references.
|
|
235
131
|
|
|
236
132
|
## Output and exit codes
|
|
237
133
|
|
|
238
|
-
Text output supports Chinese and English. `--json` uses stable English codes and
|
|
134
|
+
Text output supports Chinese and English. `--json` uses stable English codes and preserves redacted structured evidence.
|
|
239
135
|
|
|
240
136
|
| Exit code | Meaning |
|
|
241
137
|
|---|---|
|
|
242
|
-
| `0` | No
|
|
243
|
-
| `1` | Compatibility issues, semantic migration, or verification
|
|
244
|
-
| `2` | Argument, environment, or
|
|
138
|
+
| `0` | No blocking error, or the operation completed and passed its verification level |
|
|
139
|
+
| `1` | Compatibility issues, semantic migration work, or incomplete verification remains |
|
|
140
|
+
| `2` | Argument, environment, or operation failure |
|
|
245
141
|
|
|
246
142
|
## Development
|
|
247
143
|
|
|
@@ -251,6 +147,6 @@ npm run check
|
|
|
251
147
|
npm pack --dry-run
|
|
252
148
|
```
|
|
253
149
|
|
|
254
|
-
Tests cover the CLI, configuration composition, diagnosis, redaction, backups and write protection, AST migration, build gates, isolated runtime verification, and recovery
|
|
150
|
+
Tests cover the CLI, configuration composition, diagnosis, redaction, backups and write protection, AST migration, build gates, isolated runtime verification, and recovery. CI runs on macOS, Ubuntu, and Windows with Node.js `22.19` and `24`.
|
|
255
151
|
|
|
256
152
|
Local development, the skill, and the CLI never commit, tag, or publish automatically.
|