@skillit/core 1.5.0 → 2.0.0
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/dist/audit-formatter.d.ts +2 -0
- package/dist/audit-formatter.d.ts.map +1 -1
- package/dist/audit-formatter.js +2 -0
- package/dist/audit-formatter.js.map +1 -1
- package/dist/audit-score.js +82 -4
- package/dist/audit-score.js.map +1 -1
- package/dist/audit-types.d.ts +1 -29
- package/dist/audit-types.d.ts.map +1 -1
- package/dist/audit.d.ts +6 -2
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +39 -32
- package/dist/audit.js.map +1 -1
- package/dist/config-extract.d.ts +48 -0
- package/dist/config-extract.d.ts.map +1 -0
- package/dist/config-extract.js +230 -0
- package/dist/config-extract.js.map +1 -0
- package/dist/docs-scanner.d.ts +3 -0
- package/dist/docs-scanner.d.ts.map +1 -1
- package/dist/docs-scanner.js +3 -0
- package/dist/docs-scanner.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/refine/ast-edit.d.ts +41 -0
- package/dist/refine/ast-edit.d.ts.map +1 -1
- package/dist/refine/ast-edit.js +187 -19
- package/dist/refine/ast-edit.js.map +1 -1
- package/dist/refine/config-source.d.ts +81 -0
- package/dist/refine/config-source.d.ts.map +1 -0
- package/dist/refine/config-source.js +283 -0
- package/dist/refine/config-source.js.map +1 -0
- package/dist/refine/index.d.ts +5 -1
- package/dist/refine/index.d.ts.map +1 -1
- package/dist/refine/index.js +3 -1
- package/dist/refine/index.js.map +1 -1
- package/dist/refine/jsdoc-edit.d.ts +8 -1
- package/dist/refine/jsdoc-edit.d.ts.map +1 -1
- package/dist/refine/jsdoc-edit.js +8 -1
- package/dist/refine/jsdoc-edit.js.map +1 -1
- package/dist/refine/loop.d.ts.map +1 -1
- package/dist/refine/loop.js +26 -5
- package/dist/refine/loop.js.map +1 -1
- package/dist/refine/package-metadata.d.ts +28 -0
- package/dist/refine/package-metadata.d.ts.map +1 -0
- package/dist/refine/package-metadata.js +64 -0
- package/dist/refine/package-metadata.js.map +1 -0
- package/dist/refine/select-targets.d.ts.map +1 -1
- package/dist/refine/select-targets.js +31 -6
- package/dist/refine/select-targets.js.map +1 -1
- package/dist/refine/types.d.ts +29 -2
- package/dist/refine/types.d.ts.map +1 -1
- package/dist/renderer.js +13 -8
- package/dist/renderer.js.map +1 -1
- package/dist/tokens.d.ts +2 -0
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +2 -0
- package/dist/tokens.js.map +1 -1
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-source.js","sourceRoot":"","sources":["../../src/refine/config-source.ts"],"names":[],"mappings":"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"}
|
package/dist/refine/index.d.ts
CHANGED
|
@@ -3,5 +3,9 @@ export * from './select-targets.js';
|
|
|
3
3
|
export { refineSkill } from './loop.js';
|
|
4
4
|
export type { ScoreSkill } from './loop.js';
|
|
5
5
|
export { insertJsDocTag } from './jsdoc-edit.js';
|
|
6
|
-
export { upsertJsDocTag, readJsDocTags } from './ast-edit.js';
|
|
6
|
+
export { upsertJsDocTag, upsertPropertyJsDocTag, readJsDocTags } from './ast-edit.js';
|
|
7
|
+
export { ConfigRefineSource } from './config-source.js';
|
|
8
|
+
export type { ConfigRefineSourceOptions } from './config-source.js';
|
|
9
|
+
export { stripScope, findNearestPackageDir, readPackageMetadata } from './package-metadata.js';
|
|
10
|
+
export type { PackageMetadata } from './package-metadata.js';
|
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/refine/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/refine/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/refine/index.js
CHANGED
|
@@ -2,5 +2,7 @@ export * from './types.js';
|
|
|
2
2
|
export * from './select-targets.js';
|
|
3
3
|
export { refineSkill } from './loop.js';
|
|
4
4
|
export { insertJsDocTag } from './jsdoc-edit.js';
|
|
5
|
-
export { upsertJsDocTag, readJsDocTags } from './ast-edit.js';
|
|
5
|
+
export { upsertJsDocTag, upsertPropertyJsDocTag, readJsDocTags } from './ast-edit.js';
|
|
6
|
+
export { ConfigRefineSource } from './config-source.js';
|
|
7
|
+
export { stripScope, findNearestPackageDir, readPackageMetadata } from './package-metadata.js';
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
package/dist/refine/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/refine/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/refine/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { RefineTag } from './types.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated internal alias — use {@link upsertJsDocTag}. Kept for callers/tests.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A thin pass-through to {@link upsertJsDocTag} with identical parameters and
|
|
7
|
+
* behaviour; retained only so existing callers and tests that import the old
|
|
8
|
+
* name keep compiling. New code should call {@link upsertJsDocTag} directly.
|
|
9
|
+
*/
|
|
3
10
|
export declare function insertJsDocTag(source: string, exportName: string, tag: RefineTag, content: string): string;
|
|
4
11
|
//# sourceMappingURL=jsdoc-edit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsdoc-edit.d.ts","sourceRoot":"","sources":["../../src/refine/jsdoc-edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C
|
|
1
|
+
{"version":3,"file":"jsdoc-edit.d.ts","sourceRoot":"","sources":["../../src/refine/jsdoc-edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CAER"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { upsertJsDocTag } from './ast-edit.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated internal alias — use {@link upsertJsDocTag}. Kept for callers/tests.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A thin pass-through to {@link upsertJsDocTag} with identical parameters and
|
|
7
|
+
* behaviour; retained only so existing callers and tests that import the old
|
|
8
|
+
* name keep compiling. New code should call {@link upsertJsDocTag} directly.
|
|
9
|
+
*/
|
|
3
10
|
export function insertJsDocTag(source, exportName, tag, content) {
|
|
4
11
|
return upsertJsDocTag(source, exportName, tag, content);
|
|
5
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsdoc-edit.js","sourceRoot":"","sources":["../../src/refine/jsdoc-edit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C
|
|
1
|
+
{"version":3,"file":"jsdoc-edit.js","sourceRoot":"","sources":["../../src/refine/jsdoc-edit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,UAAkB,EAClB,GAAc,EACd,OAAe;IAEf,OAAO,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/refine/loop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAGV,aAAa,EACb,YAAY,EAEb,MAAM,YAAY,CAAC;AAEpB,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/refine/loop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAGV,aAAa,EACb,YAAY,EAEb,MAAM,YAAY,CAAC;AAEpB,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,kBAAkB,CAAC;AAwBvE,wBAAsB,WAAW,CAC/B,IAAI,EAAE,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,GAChD,OAAO,CAAC,YAAY,CAAC,CAuGvB"}
|
package/dist/refine/loop.js
CHANGED
|
@@ -5,14 +5,24 @@ import { selectWorkItems } from './select-targets.js';
|
|
|
5
5
|
const DEFAULT_PASSING_GRADES = ['A'];
|
|
6
6
|
const DEFAULT_MAX_ITERATIONS = 5;
|
|
7
7
|
const DEFAULT_ITEMS_PER_ITERATION = 5;
|
|
8
|
-
function defaultScore(
|
|
8
|
+
function defaultScore() {
|
|
9
9
|
return (skill) => {
|
|
10
|
-
const audit = auditSkill(skill
|
|
10
|
+
const audit = auditSkill(skill);
|
|
11
11
|
return estimateSkillJudgeScore(audit, skill);
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Total work items currently available across all improvements (uncapped), used
|
|
16
|
+
* as the loop's "backlog" signal. Reuses {@link selectWorkItems} so it counts
|
|
17
|
+
* exactly what would become work — i.e. improvements with a parseable tag and
|
|
18
|
+
* targets. Shrinks as config options get tagged; stays flat when the model is
|
|
19
|
+
* stuck re-drafting the same still-failing targets.
|
|
20
|
+
*/
|
|
21
|
+
function countAvailableWork(improvements) {
|
|
22
|
+
return selectWorkItems(improvements, Number.POSITIVE_INFINITY).length;
|
|
23
|
+
}
|
|
14
24
|
export async function refineSkill(opts) {
|
|
15
|
-
const { source, model, passingGrades = DEFAULT_PASSING_GRADES, maxIterations = DEFAULT_MAX_ITERATIONS, itemsPerIteration = DEFAULT_ITEMS_PER_ITERATION, onIteration, scoreSkill = defaultScore(
|
|
25
|
+
const { source, model, passingGrades = DEFAULT_PASSING_GRADES, maxIterations = DEFAULT_MAX_ITERATIONS, itemsPerIteration = DEFAULT_ITEMS_PER_ITERATION, onIteration, scoreSkill = defaultScore() } = opts;
|
|
16
26
|
const passingSet = new Set(passingGrades);
|
|
17
27
|
const iterations = [];
|
|
18
28
|
let skill = await source.extract();
|
|
@@ -22,9 +32,19 @@ export async function refineSkill(opts) {
|
|
|
22
32
|
return finished('passed', skill, estimate, iterations, guidance);
|
|
23
33
|
}
|
|
24
34
|
let prevTotal = estimate.total;
|
|
35
|
+
let prevAvailable = countAvailableWork(estimate.improvements);
|
|
25
36
|
for (let i = 0; i < maxIterations; i++) {
|
|
26
|
-
|
|
27
|
-
|
|
37
|
+
const available = countAvailableWork(estimate.improvements);
|
|
38
|
+
// Plateau: stop early when the score has stalled — but NOT while we're still
|
|
39
|
+
// burning down a backlog of work. Per-option config coverage targets become
|
|
40
|
+
// score-neutral once the routing thresholds (W7/W8/W9) pass, yet each
|
|
41
|
+
// iteration still documents more options; a pure score check would halt that
|
|
42
|
+
// mid-surface. Only plateau when the score is flat AND the available-work
|
|
43
|
+
// pool is not shrinking (the genuinely-stuck case the check exists to catch).
|
|
44
|
+
if (i > 0 &&
|
|
45
|
+
i < maxIterations - 1 &&
|
|
46
|
+
estimate.total <= prevTotal &&
|
|
47
|
+
available >= prevAvailable) {
|
|
28
48
|
return finished('plateau', skill, estimate, iterations, guidance);
|
|
29
49
|
}
|
|
30
50
|
const workItems = selectWorkItems(estimate.improvements, itemsPerIteration);
|
|
@@ -74,6 +94,7 @@ export async function refineSkill(opts) {
|
|
|
74
94
|
}
|
|
75
95
|
await source.applyFixes(fixes);
|
|
76
96
|
prevTotal = estimate.total;
|
|
97
|
+
prevAvailable = available;
|
|
77
98
|
skill = await source.extract();
|
|
78
99
|
estimate = scoreSkill(skill);
|
|
79
100
|
const iteration = { iteration: i + 1, estimate, workItems, fixes };
|
package/dist/refine/loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/refine/loop.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAYtD,MAAM,sBAAsB,GAA+C,CAAC,GAAG,CAAC,CAAC;AACjF,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAEtC,SAAS,YAAY
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/refine/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ParsedReadme } from '../audit-types.js';
|
|
2
|
+
/** Package metadata read from a package dir (package.json fields + parsed README). */
|
|
3
|
+
export interface PackageMetadata {
|
|
4
|
+
/** Scope-stripped package name. */
|
|
5
|
+
packageName?: string;
|
|
6
|
+
packageDescription?: string;
|
|
7
|
+
keywords?: string[];
|
|
8
|
+
repository?: string;
|
|
9
|
+
readme?: ParsedReadme;
|
|
10
|
+
}
|
|
11
|
+
/** Strip a leading `@scope/` from a package name. */
|
|
12
|
+
export declare function stripScope(name: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Walk up from `startDir` (inclusive) up to `maxDepth` parents looking for a
|
|
15
|
+
* directory containing a `package.json`. Returns the dir, or undefined.
|
|
16
|
+
*
|
|
17
|
+
* @param startDir - Directory to start the upward search from (searched first).
|
|
18
|
+
* @param maxDepth - Maximum number of parent directories to ascend (default 5).
|
|
19
|
+
* @returns The nearest directory containing a `package.json`, or `undefined`
|
|
20
|
+
* when none is found within `maxDepth` levels (or the filesystem root is hit).
|
|
21
|
+
*/
|
|
22
|
+
export declare function findNearestPackageDir(startDir: string, maxDepth?: number): Promise<string | undefined>;
|
|
23
|
+
/**
|
|
24
|
+
* Read package.json fields + `parseReadme(README.md)` from `pkgDir`. Never
|
|
25
|
+
* throws — unreadable/absent files yield unset fields.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readPackageMetadata(pkgDir: string): Promise<PackageMetadata>;
|
|
28
|
+
//# sourceMappingURL=package-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-metadata.d.ts","sourceRoot":"","sources":["../../src/refine/package-metadata.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAID,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAoB,GAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAa7B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAuBlF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { parseReadme } from '../readme-parser.js';
|
|
4
|
+
const DEFAULT_MAX_DEPTH = 5;
|
|
5
|
+
/** Strip a leading `@scope/` from a package name. */
|
|
6
|
+
export function stripScope(name) {
|
|
7
|
+
const slash = name.indexOf('/');
|
|
8
|
+
return name.startsWith('@') && slash !== -1 ? name.slice(slash + 1) : name;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Walk up from `startDir` (inclusive) up to `maxDepth` parents looking for a
|
|
12
|
+
* directory containing a `package.json`. Returns the dir, or undefined.
|
|
13
|
+
*
|
|
14
|
+
* @param startDir - Directory to start the upward search from (searched first).
|
|
15
|
+
* @param maxDepth - Maximum number of parent directories to ascend (default 5).
|
|
16
|
+
* @returns The nearest directory containing a `package.json`, or `undefined`
|
|
17
|
+
* when none is found within `maxDepth` levels (or the filesystem root is hit).
|
|
18
|
+
*/
|
|
19
|
+
export async function findNearestPackageDir(startDir, maxDepth = DEFAULT_MAX_DEPTH) {
|
|
20
|
+
let dir = startDir;
|
|
21
|
+
for (let i = 0; i <= maxDepth; i++) {
|
|
22
|
+
try {
|
|
23
|
+
await readFile(join(dir, 'package.json'), 'utf8');
|
|
24
|
+
return dir;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
const parent = dirname(dir);
|
|
28
|
+
if (parent === dir)
|
|
29
|
+
break;
|
|
30
|
+
dir = parent;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Read package.json fields + `parseReadme(README.md)` from `pkgDir`. Never
|
|
37
|
+
* throws — unreadable/absent files yield unset fields.
|
|
38
|
+
*/
|
|
39
|
+
export async function readPackageMetadata(pkgDir) {
|
|
40
|
+
const meta = {};
|
|
41
|
+
try {
|
|
42
|
+
const pkg = JSON.parse(await readFile(join(pkgDir, 'package.json'), 'utf8'));
|
|
43
|
+
if (pkg.name)
|
|
44
|
+
meta.packageName = stripScope(pkg.name);
|
|
45
|
+
if (pkg.description)
|
|
46
|
+
meta.packageDescription = pkg.description;
|
|
47
|
+
if (Array.isArray(pkg.keywords))
|
|
48
|
+
meta.keywords = pkg.keywords;
|
|
49
|
+
const repo = typeof pkg.repository === 'string' ? pkg.repository : pkg.repository?.url;
|
|
50
|
+
if (repo)
|
|
51
|
+
meta.repository = repo;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
/* no/invalid package.json */
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
meta.readme = parseReadme(await readFile(join(pkgDir, 'README.md'), 'utf8'));
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
/* no README */
|
|
61
|
+
}
|
|
62
|
+
return meta;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=package-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-metadata.js","sourceRoot":"","sources":["../../src/refine/package-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAalD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,QAAQ,GAAG,iBAAiB;IAE5B,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM;YAC1B,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAK1E,CAAC;QACF,IAAI,GAAG,CAAC,IAAI;YAAE,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,GAAG,CAAC,WAAW;YAAE,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,WAAW,CAAC;QAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9D,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC;QACvF,IAAI,IAAI;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IACD,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-targets.d.ts","sourceRoot":"","sources":["../../src/refine/select-targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAYlE;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,SAAS,qBAAqB,EAAE,EAC9C,KAAK,EAAE,MAAM,GACZ,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"select-targets.d.ts","sourceRoot":"","sources":["../../src/refine/select-targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAYlE;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,SAAS,qBAAqB,EAAE,EAC9C,KAAK,EAAE,MAAM,GACZ,cAAc,EAAE,CAoClB"}
|
|
@@ -14,17 +14,42 @@ export function parseTag(suggestion) {
|
|
|
14
14
|
return valid.has(tag) ? tag : undefined;
|
|
15
15
|
}
|
|
16
16
|
export function selectWorkItems(improvements, limit) {
|
|
17
|
-
|
|
17
|
+
// Group an improvement's targets together, preserving target order, then rank
|
|
18
|
+
// the groups by points descending.
|
|
19
|
+
const groups = [];
|
|
18
20
|
for (const imp of improvements) {
|
|
19
21
|
const tag = parseTag(imp.suggestion);
|
|
20
22
|
if (!tag)
|
|
21
23
|
continue;
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
const group = (imp.targets ?? []).map((target) => ({
|
|
25
|
+
toolName: target.name,
|
|
26
|
+
tag,
|
|
27
|
+
improvement: imp
|
|
28
|
+
}));
|
|
29
|
+
if (group.length > 0)
|
|
30
|
+
groups.push(group);
|
|
31
|
+
}
|
|
32
|
+
groups.sort((a, b) => b[0].improvement.points - a[0].improvement.points);
|
|
33
|
+
// Round-robin across groups rather than draining the highest-points group
|
|
34
|
+
// first: take the Nth target of every group before any (N+1)th. A bounded
|
|
35
|
+
// iteration then spreads across ALL still-failing tags, so a tag with many
|
|
36
|
+
// completeness targets (e.g. `@pitfalls` on a wide config surface) can't
|
|
37
|
+
// monopolize the slice and starve `@useWhen`/`@avoidWhen` — which, before the
|
|
38
|
+
// first of those is ever drafted, let the loop's score plateau stop early with
|
|
39
|
+
// those dimensions still failing. With one target per group this is identical
|
|
40
|
+
// to the old points-descending order.
|
|
41
|
+
const items = [];
|
|
42
|
+
const maxLen = groups.reduce((m, g) => Math.max(m, g.length), 0);
|
|
43
|
+
for (let round = 0; round < maxLen && items.length < limit; round++) {
|
|
44
|
+
for (const group of groups) {
|
|
45
|
+
const item = group[round];
|
|
46
|
+
if (item) {
|
|
47
|
+
items.push(item);
|
|
48
|
+
if (items.length >= limit)
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
25
51
|
}
|
|
26
52
|
}
|
|
27
|
-
items
|
|
28
|
-
return items.slice(0, limit);
|
|
53
|
+
return items;
|
|
29
54
|
}
|
|
30
55
|
//# sourceMappingURL=select-targets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-targets.js","sourceRoot":"","sources":["../../src/refine/select-targets.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,QAAQ,CAAC;AAExB,MAAM,UAAU,QAAQ,CAAC,UAAkB;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAc,CAAC;IAClC,MAAM,KAAK,GAA2B,IAAI,GAAG,CAAC;QAC5C,SAAS;QACT,WAAW;QACX,UAAU;QACV,SAAS;QACT,SAAS;KACV,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,YAA8C,EAC9C,KAAa;IAEb,MAAM,
|
|
1
|
+
{"version":3,"file":"select-targets.js","sourceRoot":"","sources":["../../src/refine/select-targets.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,QAAQ,CAAC;AAExB,MAAM,UAAU,QAAQ,CAAC,UAAkB;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAc,CAAC;IAClC,MAAM,KAAK,GAA2B,IAAI,GAAG,CAAC;QAC5C,SAAS;QACT,WAAW;QACX,UAAU;QACV,SAAS;QACT,SAAS;KACV,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,YAA8C,EAC9C,KAAa;IAEb,8EAA8E;IAC9E,mCAAmC;IACnC,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACjD,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrB,GAAG;YACH,WAAW,EAAE,GAAG;SACjB,CAAC,CAAC,CAAC;QACJ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE3E,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,sCAAsC;IACtC,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QACpE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;oBAAE,MAAM;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/refine/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtractedSkill, SkillJudgeEstimate, ActionableImprovement
|
|
1
|
+
import type { ExtractedSkill, SkillJudgeEstimate, ActionableImprovement } from '../index.js';
|
|
2
2
|
export type RefineTag = 'useWhen' | 'avoidWhen' | 'pitfalls' | 'remarks' | 'example';
|
|
3
3
|
export interface DraftRequest {
|
|
4
4
|
toolName: string;
|
|
@@ -30,11 +30,38 @@ export interface ModelClient {
|
|
|
30
30
|
draft(req: DraftRequest): Promise<string>;
|
|
31
31
|
review(req: ReviewRequest): Promise<ReviewResult>;
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Where an audit/judge target's enrichment surface lives on disk, so a caller
|
|
35
|
+
* (e.g. the agent-bootstrap slash command) can jump straight to the declaration
|
|
36
|
+
* instead of re-deriving the file from `sourceModule`.
|
|
37
|
+
*/
|
|
38
|
+
export interface TargetLocation {
|
|
39
|
+
/** Absolute or repo-relative path to the file holding the declaration. */
|
|
40
|
+
file: string;
|
|
41
|
+
/** The declaration name to anchor the edit on (export name, interface, or option key). */
|
|
42
|
+
declName: string;
|
|
43
|
+
/** Dot-path into a config type when the target is a single option (e.g. `components.prefix`). */
|
|
44
|
+
propertyPath?: string;
|
|
45
|
+
}
|
|
33
46
|
export interface RefineSource {
|
|
34
47
|
extract(): Promise<ExtractedSkill>;
|
|
35
|
-
auditContext(skill: ExtractedSkill): AuditContext;
|
|
36
48
|
applyFixes(fixes: readonly DraftedFix[]): Promise<void>;
|
|
37
49
|
guidance?(): string | Promise<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Resolve an improvement target (`{file, name, kind}` from `ActionableImprovement.targets`)
|
|
52
|
+
* to a concrete on-disk location. Optional — a source that cannot resolve a
|
|
53
|
+
* given target returns `undefined`. Used by `skillit audit --json` and the
|
|
54
|
+
* agent-bootstrap loop.
|
|
55
|
+
*
|
|
56
|
+
* The return is a union of sync and async: config/typedoc resolve synchronously,
|
|
57
|
+
* but cli and mcp(build) must read source files, so they return a `Promise`.
|
|
58
|
+
* Callers `await` the result (awaiting a non-Promise is a no-op).
|
|
59
|
+
*/
|
|
60
|
+
resolveTargetLocation?(target: {
|
|
61
|
+
name: string;
|
|
62
|
+
kind: string;
|
|
63
|
+
file?: string;
|
|
64
|
+
}): TargetLocation | undefined | Promise<TargetLocation | undefined>;
|
|
38
65
|
}
|
|
39
66
|
export interface RefineWorkItem {
|
|
40
67
|
toolName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/refine/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/refine/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE7F,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAErF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACnD;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,UAAU,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,CAAC,MAAM,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,qBAAqB,CAAC;CACpC;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IACrC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,kBAAkB,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,gBAAgB,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B"}
|
package/dist/renderer.js
CHANGED
|
@@ -259,7 +259,7 @@ function renderRouterSkill(skills, opts) {
|
|
|
259
259
|
return {
|
|
260
260
|
short: s.name.replace(/^@[^/]+\//, ''),
|
|
261
261
|
peerName: toSkillName(s.name),
|
|
262
|
-
desc: s.
|
|
262
|
+
desc: s.description || s.packageDescription || '',
|
|
263
263
|
remarks: s.remarks || '',
|
|
264
264
|
useWhens: s.useWhen ?? [],
|
|
265
265
|
avoidWhens: s.avoidWhen ?? [],
|
|
@@ -384,13 +384,16 @@ function renderSkillMd(skill, skillName, opts, refManifest) {
|
|
|
384
384
|
sections.push(opts.bodyPrefix);
|
|
385
385
|
}
|
|
386
386
|
sections.push(`# ${skill.name}`);
|
|
387
|
-
//
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
387
|
+
// Surface description as body intro. `description` is the skill's render
|
|
388
|
+
// headline (a config source puts its config-specific blurb here); the literal
|
|
389
|
+
// package.json `packageDescription` is audit-only metadata, used here only as
|
|
390
|
+
// a last-resort fallback.
|
|
391
|
+
if (skill.description) {
|
|
392
392
|
sections.push(skill.description);
|
|
393
393
|
}
|
|
394
|
+
else if (skill.packageDescription) {
|
|
395
|
+
sections.push(skill.packageDescription);
|
|
396
|
+
}
|
|
394
397
|
// @remarks from @packageDocumentation — architectural context, trade-offs, mental models
|
|
395
398
|
if (skill.remarks) {
|
|
396
399
|
sections.push(skill.remarks);
|
|
@@ -842,8 +845,10 @@ function buildRefManifest(basePath, references) {
|
|
|
842
845
|
return manifest;
|
|
843
846
|
}
|
|
844
847
|
function buildDescription(skill) {
|
|
845
|
-
// Description =
|
|
846
|
-
|
|
848
|
+
// Description = surface tagline + short WHEN clause + domain keywords. Prefer
|
|
849
|
+
// the render headline (`description`); `packageDescription` is audit-only and
|
|
850
|
+
// serves only as a fallback.
|
|
851
|
+
const desc = skill.description || skill.packageDescription || `API reference for ${skill.name}`;
|
|
847
852
|
const parts = [desc];
|
|
848
853
|
// Add a short scenario-based WHEN from @useWhen (first item only, truncated to 80 chars)
|
|
849
854
|
if (skill.useWhen && skill.useWhen.length > 0) {
|