@lmzhen/dsh-evolution-commands 0.1.0 → 0.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/index.js +10 -1
  2. package/package.json +2 -2
package/lib/index.js CHANGED
@@ -133,6 +133,15 @@ function apply(ctx) {
133
133
  };
134
134
  return result.ok ? ok(result.message) : err(result.message);
135
135
  }
136
+ if (input === "skills health") {
137
+ const curator = ctx.get("evolutionCurator");
138
+ if (!curator) return err("Curator service not mounted.");
139
+ const [rows, observed] = await Promise.all([curator.healthView(), curator.usageObserved()]);
140
+ const banner = observed ? "" : "Usage observation not yet established — churn (write-ghost) rows are suppressed.";
141
+ const line = (row) => `${row.verdict.padEnd(18)} ${row.name}${row.reasons.length > 0 ? ` — ${row.reasons.join("; ")}` : ""}`;
142
+ if (rows.length === 0) return ok(banner ? `Structure health: all skills healthy. ${banner}` : "Structure health: all skills healthy.");
143
+ return ok([banner ? `Structure health (${rows.length} degraded): ${banner}` : `Structure health (${rows.length} degraded):`, ...rows.map(line)].join("\n"));
144
+ }
136
145
  if (input === "learn" || input.startsWith("learn ")) {
137
146
  const request = input === "learn" ? "" : input.slice(6).trim();
138
147
  invocation.agent.inject(createUserMessage({
@@ -162,7 +171,7 @@ function apply(ctx) {
162
171
  if (!replay) return err("Replay service not mounted.");
163
172
  return ok(replay.compare().report);
164
173
  }
165
- return ok("Evolution: memory, skills, review, curator. Use /evolution pending | approve <id> | reject <id> | curator run | curator status | curator pause | curator resume | curator report | curator scope | restore | consolidate <target> <source...> | skill restore <name> | learn [request] | replay.");
174
+ return ok("Evolution: memory, skills, review, curator. Use /evolution pending | approve <id> | reject <id> | curator run | curator status | curator pause | curator resume | curator report | curator scope | restore | consolidate <target> <source...> | skill restore <name> | skills health | learn [request] | replay.");
166
175
  }
167
176
  });
168
177
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmzhen/dsh-evolution-commands",
3
3
  "description": "Human commands for the evolution family (community build)",
4
- "version": "0.1.0",
4
+ "version": "0.2.0-rc.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -33,7 +33,7 @@
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
35
  "@deepseek-ai/schemastery": "^3.18.1",
36
- "@lmzhen/dsh-evolution-core": "^0.1.0"
36
+ "@lmzhen/dsh-evolution-core": "^0.2.0-rc.1"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@deepseek-ai/cordis": "^4.0.1",