@lmzhen/dsh-skill-usage 0.3.62 → 0.3.63

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/lib/index.js CHANGED
@@ -201,14 +201,22 @@ var SkillUsageRegistry = class extends Service {
201
201
  async invalidate() {
202
202
  await this.chain;
203
203
  }
204
- /** Write feedback-derived quality onto the usage sidecar; curator reads it. */
205
- async setQuality(name, score, warn) {
204
+ /** P1-1 (v15): write the FEEDBACK-owned quality signal onto the usage
205
+ * sidecar. Renamed from `setQuality` (it no longer writes the fields the
206
+ * name claims): the curator's six-factor `scoreTree` overwrites
207
+ * `quality_score`/`quality_warn` on every run BEFORE the lifecycle engine
208
+ * reads them, so feedback written to those fields was a dead channel — the
209
+ * value never survived to a decision. The lifecycle engine and the scope
210
+ * view now read the union `quality_warn || feedback_warn`, so a negative
211
+ * feedback is decision-relevant again. Field-ownership contract: see
212
+ * `UsageRecord` in evolution-core/usage.ts. */
213
+ async setFeedbackQuality(name, score, warn) {
206
214
  const normalized = name.trim();
207
215
  await this.mutate((map) => {
208
216
  const record = map.get(normalized);
209
217
  if (!record) return;
210
- record.quality_score = score;
211
- record.quality_warn = warn;
218
+ record.feedback_score = score;
219
+ record.feedback_warn = warn;
212
220
  });
213
221
  }
214
222
  };
@@ -90,8 +90,16 @@ export declare class SkillUsageRegistry extends Service {
90
90
  * (tests use it as a drain barrier); kept by declaration.
91
91
  */
92
92
  invalidate(): Promise<void>;
93
- /** Write feedback-derived quality onto the usage sidecar; curator reads it. */
94
- setQuality(name: string, score: number, warn: boolean): Promise<void>;
93
+ /** P1-1 (v15): write the FEEDBACK-owned quality signal onto the usage
94
+ * sidecar. Renamed from `setQuality` (it no longer writes the fields the
95
+ * name claims): the curator's six-factor `scoreTree` overwrites
96
+ * `quality_score`/`quality_warn` on every run BEFORE the lifecycle engine
97
+ * reads them, so feedback written to those fields was a dead channel — the
98
+ * value never survived to a decision. The lifecycle engine and the scope
99
+ * view now read the union `quality_warn || feedback_warn`, so a negative
100
+ * feedback is decision-relevant again. Field-ownership contract: see
101
+ * `UsageRecord` in evolution-core/usage.ts. */
102
+ setFeedbackQuality(name: string, score: number, warn: boolean): Promise<void>;
95
103
  }
96
104
  export default SkillUsageRegistry;
97
105
  //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmzhen/dsh-skill-usage",
3
3
  "description": "Skill usage telemetry service (community build)",
4
- "version": "0.3.62",
4
+ "version": "0.3.63",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -31,18 +31,18 @@
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
33
  "@deepseek-ai/schemastery": "^3.18.1",
34
- "@lmzhen/dsh-evolution-core": "^0.3.62"
34
+ "@lmzhen/dsh-evolution-core": "^0.3.63"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@deepseek-ai/cordis": "^4.0.1",
38
38
  "@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
39
39
  "@deepseek-ai/dsh-session": "^0.1.1-rc.2",
40
- "@lmzhen/dsh-evolution-io": "^0.3.62"
40
+ "@lmzhen/dsh-evolution-io": "^0.3.63"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
44
44
  "@deepseek-ai/dsh-session": "^0.1.1-rc.2",
45
- "@lmzhen/dsh-evolution-core": "^0.3.62",
46
- "@lmzhen/dsh-evolution-io": "^0.3.62"
45
+ "@lmzhen/dsh-evolution-core": "^0.3.63",
46
+ "@lmzhen/dsh-evolution-io": "^0.3.63"
47
47
  }
48
48
  }