@lmzhen/dsh-evolution-feedback 0.1.0-rc.63 → 0.1.0-rc.65

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 +8 -2
  2. package/package.json +6 -6
package/lib/index.js CHANGED
@@ -170,7 +170,7 @@ Right target shape: class-level skills with rich SKILL.md + references/, templat
170
170
 
171
171
  Hard rules:
172
172
  1. NEVER hard-delete a skill. Archive (moving to .archive/) is the maximum destructive action; archives are recoverable, deletion is not.
173
- 2. Do not touch bundled, hub-installed, pinned, or scheduled-task-referenced (referenced) skills. Referenced skills MAY be consolidated into an umbrella but only because the curator rewrites scheduled-task skill references to follow consolidations; never simply prune them.
173
+ 2. Do not touch bundled, hub-installed, pinned, or scheduled-task-referenced (referenced) skills. Referenced skills are fully protected never consolidated, never pruned (there is no scheduled-task reference-rewriting pass; a referenced skill stays in place by design).
174
174
  3. Do not archive recently-created or never-used skills without strong evidence. "use=0" is NOT evidence either way — it only means the trigger has not come up yet. Never archive a never-used skill unless it is at least 30 days old AND its content is genuinely obsolete or fully absorbed elsewhere.
175
175
  4. Do NOT reject consolidation on the grounds that "each skill has a distinct trigger". The right bar is: would a human maintainer write this as N separate skills, or one skill with N labeled subsections? When the answer is the latter, merge.
176
176
  5. Judge overlap on CONTENT, not on usage counters.
@@ -365,7 +365,13 @@ function parseState(raw) {
365
365
  };
366
366
  }
367
367
  }
368
- /** Deep-merge two feedback states: union by target, in-memory values win on conflict. */
368
+ /** Deep-merge two feedback states: union by target; in-memory values win on
369
+ * conflict. NOTE (v3 audit P3 reviewed): additive counting was rejected — a
370
+ * restart merge (restore+flush) would double-count the same records, and a
371
+ * stateless JSON sidecar cannot distinguish "two processes incrementing the
372
+ * same target" from "the same record seen twice". Cross-process same-target
373
+ * increments stay a documented limitation; an append-only event log would be
374
+ * the real fix. */
369
375
  function mergeStates(disk, memory) {
370
376
  return {
371
377
  skills: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmzhen/dsh-evolution-feedback",
3
3
  "description": "Feedback-to-quality scoring for self-evolution (community build)",
4
- "version": "0.1.0-rc.63",
4
+ "version": "0.1.0-rc.65",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -37,13 +37,13 @@
37
37
  "peerDependencies": {
38
38
  "@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
39
39
  "@deepseek-ai/cordis": "^4.0.1",
40
- "@lmzhen/dsh-evolution-io": "^0.1.0-rc.63",
41
- "@lmzhen/dsh-skill-usage": "^0.1.0-rc.63"
40
+ "@lmzhen/dsh-evolution-io": "^0.1.0-rc.65",
41
+ "@lmzhen/dsh-skill-usage": "^0.1.0-rc.65"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
45
- "@lmzhen/dsh-evolution-io": "^0.1.0-rc.63",
46
- "@lmzhen/dsh-evolution-io-node": "^0.1.0-rc.63",
47
- "@lmzhen/dsh-skill-usage": "^0.1.0-rc.63"
45
+ "@lmzhen/dsh-evolution-io": "^0.1.0-rc.65",
46
+ "@lmzhen/dsh-evolution-io-node": "^0.1.0-rc.65",
47
+ "@lmzhen/dsh-skill-usage": "^0.1.0-rc.65"
48
48
  }
49
49
  }