@dzhechkov/harness-core 0.3.130 → 0.3.131
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/.dz-manifest.json +15 -15
- package/README.md +1 -1
- package/dist/guard.d.ts +5 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +18 -0
- package/dist/guard.js.map +1 -1
- package/dist/skills-verify.d.ts +18 -0
- package/dist/skills-verify.d.ts.map +1 -1
- package/dist/skills-verify.js +95 -2
- package/dist/skills-verify.js.map +1 -1
- package/package.json +4 -4
- package/sbom.json +14 -14
- package/src/guard.ts +19 -0
- package/src/skills-verify.ts +85 -2
package/.dz-manifest.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "README.md",
|
|
12
|
-
"sha256": "
|
|
12
|
+
"sha256": "c2aead6a4abbb122c071a72951923c16dfdd8a34bc10a7bde5efa54916566ccb"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "coverage/coverage-final.json",
|
|
@@ -373,19 +373,19 @@
|
|
|
373
373
|
},
|
|
374
374
|
{
|
|
375
375
|
"path": "dist/guard.d.ts",
|
|
376
|
-
"sha256": "
|
|
376
|
+
"sha256": "de51710fa4c97f71bd835b77740634708ef1fb6791e946c0c1124f3800c93bd6"
|
|
377
377
|
},
|
|
378
378
|
{
|
|
379
379
|
"path": "dist/guard.d.ts.map",
|
|
380
|
-
"sha256": "
|
|
380
|
+
"sha256": "65bc9e2e658380ecfb061377d88640569f5be259093ff619c99e5d9cc8db8869"
|
|
381
381
|
},
|
|
382
382
|
{
|
|
383
383
|
"path": "dist/guard.js",
|
|
384
|
-
"sha256": "
|
|
384
|
+
"sha256": "012b8841fa90e6f6b03059d3ef1ae201ba22c0c2f20cfd828ae636ba2057db7a"
|
|
385
385
|
},
|
|
386
386
|
{
|
|
387
387
|
"path": "dist/guard.js.map",
|
|
388
|
-
"sha256": "
|
|
388
|
+
"sha256": "46a8ef893bfba84586883fbcabdf031e151cf59d3cb4947958549a5d451bc5b8"
|
|
389
389
|
},
|
|
390
390
|
{
|
|
391
391
|
"path": "dist/import-ecc.d.ts",
|
|
@@ -837,19 +837,19 @@
|
|
|
837
837
|
},
|
|
838
838
|
{
|
|
839
839
|
"path": "dist/skills-verify.d.ts",
|
|
840
|
-
"sha256": "
|
|
840
|
+
"sha256": "5d783a0c8a66f0b8d2033bdd7c9411afce7d7fe0ecb9954740fc0bceff5284cb"
|
|
841
841
|
},
|
|
842
842
|
{
|
|
843
843
|
"path": "dist/skills-verify.d.ts.map",
|
|
844
|
-
"sha256": "
|
|
844
|
+
"sha256": "c33fdd67b0bcebd29603a3cae1e1cf42d6c623a14b1d739d344f8bddc1b4018b"
|
|
845
845
|
},
|
|
846
846
|
{
|
|
847
847
|
"path": "dist/skills-verify.js",
|
|
848
|
-
"sha256": "
|
|
848
|
+
"sha256": "997859dd8031a42dc38254b0de1ae955ceed44045eeb0361da1be5a173884098"
|
|
849
849
|
},
|
|
850
850
|
{
|
|
851
851
|
"path": "dist/skills-verify.js.map",
|
|
852
|
-
"sha256": "
|
|
852
|
+
"sha256": "5de16efcefd4fe13d6ddc0e5f009b218baffa86e8d9335323ec12cef7dc0cad2"
|
|
853
853
|
},
|
|
854
854
|
{
|
|
855
855
|
"path": "dist/skills.d.ts",
|
|
@@ -981,7 +981,7 @@
|
|
|
981
981
|
},
|
|
982
982
|
{
|
|
983
983
|
"path": "package.json",
|
|
984
|
-
"sha256": "
|
|
984
|
+
"sha256": "fed3e8ccedb0ebdbf75029dec7ae2a4b47868781fc934dd0efd459fc24f7dc00"
|
|
985
985
|
},
|
|
986
986
|
{
|
|
987
987
|
"path": "src/__tests__/golden-baseline.test.ts",
|
|
@@ -1073,7 +1073,7 @@
|
|
|
1073
1073
|
},
|
|
1074
1074
|
{
|
|
1075
1075
|
"path": "src/guard.ts",
|
|
1076
|
-
"sha256": "
|
|
1076
|
+
"sha256": "c0c8e4a58aff130a35c60d5de694ab7de851ea518008b70ad0b14b76318ebefd"
|
|
1077
1077
|
},
|
|
1078
1078
|
{
|
|
1079
1079
|
"path": "src/import-ecc.ts",
|
|
@@ -1185,7 +1185,7 @@
|
|
|
1185
1185
|
},
|
|
1186
1186
|
{
|
|
1187
1187
|
"path": "src/skills-verify.ts",
|
|
1188
|
-
"sha256": "
|
|
1188
|
+
"sha256": "552295d4e087c6732b28630a34ed0bdc007cd5f3be7971110b55e42bef0736e0"
|
|
1189
1189
|
},
|
|
1190
1190
|
{
|
|
1191
1191
|
"path": "src/skills.ts",
|
|
@@ -1353,7 +1353,7 @@
|
|
|
1353
1353
|
},
|
|
1354
1354
|
{
|
|
1355
1355
|
"path": "test/guard.test.ts",
|
|
1356
|
-
"sha256": "
|
|
1356
|
+
"sha256": "faf423970912978594624a70674aa152605819aa3407fdbae45770f3006bdc0b"
|
|
1357
1357
|
},
|
|
1358
1358
|
{
|
|
1359
1359
|
"path": "test/harmonize.test.ts",
|
|
@@ -1481,7 +1481,7 @@
|
|
|
1481
1481
|
},
|
|
1482
1482
|
{
|
|
1483
1483
|
"path": "test/skills-verify.test.ts",
|
|
1484
|
-
"sha256": "
|
|
1484
|
+
"sha256": "5791d1f0abf7facecfe1477a5313fc7fca69df4c47332b2be3cd4798bca8b7a0"
|
|
1485
1485
|
},
|
|
1486
1486
|
{
|
|
1487
1487
|
"path": "test/statusline.test.ts",
|
|
@@ -1533,5 +1533,5 @@
|
|
|
1533
1533
|
}
|
|
1534
1534
|
]
|
|
1535
1535
|
},
|
|
1536
|
-
"signature": "
|
|
1536
|
+
"signature": "BAwmQoipNFePzURJ+UR5D84CqHpSGcVPeCUHAkttaWzPGeh8Sjz0x3awQ8DFds6VsoaUA1igyoSzoajUDOcFDA=="
|
|
1537
1537
|
}
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ and any other consumer.
|
|
|
17
17
|
| `release` | `collectPackageFacts`, `selectAffectedPackages`, `planReleaseGates`, `classifyGateExecutions`, `buildFailureIssue`, `firstOutputLine` | Pure verified-release engine behind `dz release`: plans 4 HARD gates (tests / `pnpm audit --prod` / `node --check` / bin smoke-boot) as DATA and classifies injected results fail-closed — an unbuilt package (declared `build` script, no dist JS) is a `MISSING_DIST` failure, a template-only pack is a named `SKIP_NO_ARTIFACTS` skip, `selectAffectedPackages` fail-opens to the full set when the changed-file list is unavailable |
|
|
18
18
|
| `parity` | `TARGET_CAPABILITIES`, `PARITY_FEATURES`, `computeParity`, `buildParityMatrix` | Declarative target-parity model behind `dz parity`: verified capability flags per target × feature FORMS with requirements; the feature×target matrix is always COMPUTED (never hand-written), and the model must classify exactly `TARGET_NAMES` — an unclassified new target refuses to compile |
|
|
19
19
|
| `delivery-check` | `PLANE_SPECS`, `collectDeliveryFacts`, `planDeliveryCheck`, `renderDeliveryBrief`, `classifyDelivery`, `renderDeliveryReview` | Pure portable Step-10 Delivery Gate engine behind `dz delivery-check`: the four review planes as shared DATA (prose-identical to the workflow's inline `planePrompts`, held by a drift-guard test), a deterministic plan/classify over injected facts+findings, and the FAIL-CLOSED hand-off verdict — `ready` only off complete, cross-validated, clean evidence; classification reads only numeric severity counts so injected instruction-like text cannot move the verdict. No `child_process`; the only fs is `existsSync` in `collectDeliveryFacts` |
|
|
20
|
-
| `skills-verify` | `scanSkillsLayout`, `parseInitFacts`, `verifyRegistration`, `registrationExitCode`, `renderRegistrationReport` | Pure registration-gate engine behind `dz skills-verify`: a static scan of `.claude/skills/` (which dirs CAN register + the shapes that never can) and a **sealed** verdict over one atomic evidence bundle (`RegistrationEvidence` = the whole scan + a tagged probe result + a provenance record). Cardinality and parse integrity are derived INSIDE from the raw `system/init` stream, so no caller can omit or falsify them. FAIL-CLOSED: an unobservable registration is `inconclusive`, never `pass`; a plugin-shaped container is advisory and its fate is decided by whether the session says that plugin LOADED, never by the layout. No `child_process` — the CLI owns the probe |
|
|
20
|
+
| `skills-verify` | `scanSkillsLayout`, `parseInitFacts`, `verifyRegistration`, `registrationExitCode`, `renderRegistrationReport` | Pure registration-gate engine behind `dz skills-verify`: a static scan of `.claude/skills/` (which dirs CAN register + the shapes that never can) and a **sealed** verdict over one atomic evidence bundle (`RegistrationEvidence` = the whole scan + a tagged probe result + a provenance record). Cardinality and parse integrity are derived INSIDE from the raw `system/init` stream, so no caller can omit or falsify them. FAIL-CLOSED: an unobservable registration is `inconclusive`, never `pass`; a plugin-shaped container is advisory and its fate is decided by whether the session says that plugin LOADED, never by the layout. Also exports `findNonRegistrableSkillDirs` — the publish-time guard fact behind the `skills-registrable` rule (a pack counts only if it already has one registrable skill; a dir is flagged only when a `SKILL.md` exists inside but below depth 1 — the discriminator was chosen after MEASURING the real packs, since a naive rule flagged ~40 healthy dirs across 9 npx toolkits). No `child_process` — the CLI owns the probe |
|
|
21
21
|
|
|
22
22
|
## The additive guarantee
|
|
23
23
|
|
package/dist/guard.d.ts
CHANGED
|
@@ -48,6 +48,11 @@ export interface GuardFacts {
|
|
|
48
48
|
readonly count: number;
|
|
49
49
|
readonly cap: number;
|
|
50
50
|
};
|
|
51
|
+
/** for skills-registrable: per skill pack, dirs that would ship un-registrable (no depth-1 SKILL.md). */
|
|
52
|
+
readonly skillPacks?: readonly {
|
|
53
|
+
readonly name: string;
|
|
54
|
+
readonly nonRegistrable: readonly string[];
|
|
55
|
+
}[];
|
|
51
56
|
/** for readme-first: per publishable package, is a version bump staged without a README change? */
|
|
52
57
|
readonly readmeFirst?: readonly {
|
|
53
58
|
readonly name: string;
|
package/dist/guard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAC5C,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD,yGAAyG;AACzG,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,gHAAgH;AAChH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,EAAE,CAAC;IAC1G,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtF,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChG,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,mGAAmG;IACnG,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC/H;AAED,sGAAsG;AACtG,eAAO,MAAM,aAAa,EAAE,SAAS,SAAS,
|
|
1
|
+
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
|
package/dist/guard.js
CHANGED
|
@@ -16,6 +16,7 @@ export const DEFAULT_RULES = [
|
|
|
16
16
|
{ id: 'no-skill-drift', severity: 'hard', ops: ['publish', 'consolidate'], description: 'no unexpected byte-drift between shared skill copies' },
|
|
17
17
|
{ id: 'no-secrets', severity: 'hard', ops: ['teach', 'publish'], description: 'no private key or API token in lesson text or a published file' },
|
|
18
18
|
{ id: 'readme-consistency', severity: 'soft', ops: ['publish'], description: 'README counts agree (CJM header vs All Commands, etc.)' },
|
|
19
|
+
{ id: 'skills-registrable', severity: 'soft', ops: ['publish'], description: 'every skill directory in a skill pack has a depth-1 SKILL.md (a buried or missing one ships un-registrable — the health-advisor 1.2.0 class)' },
|
|
19
20
|
{ id: 'readme-first', severity: 'soft', ops: ['publish'], description: 'a package with a staged version bump must update its own README.md in the same change (README-first)' },
|
|
20
21
|
{ id: 'store-bloat-cap', severity: 'soft', ops: ['teach', 'consolidate'], description: 'the learned store is within its size cap' },
|
|
21
22
|
];
|
|
@@ -77,6 +78,23 @@ const CHECKERS = {
|
|
|
77
78
|
}
|
|
78
79
|
return out;
|
|
79
80
|
},
|
|
81
|
+
'skills-registrable': (f, sev) => {
|
|
82
|
+
// The health-advisor 1.2.0 class, mechanized at publish time: a skill directory that ships with
|
|
83
|
+
// no depth-1 SKILL.md registers NOWHERE, however green the tests are. SOFT: the discriminator is
|
|
84
|
+
// a heuristic (a pack counts only if it already has one registrable skill, and only
|
|
85
|
+
// markdown-bearing dirs are considered intended), so it informs rather than blocks.
|
|
86
|
+
const out = [];
|
|
87
|
+
for (const p of f.skillPacks ?? []) {
|
|
88
|
+
if (!p || !Array.isArray(p.nonRegistrable) || p.nonRegistrable.length === 0)
|
|
89
|
+
continue;
|
|
90
|
+
out.push({
|
|
91
|
+
rule: 'skills-registrable',
|
|
92
|
+
severity: sev,
|
|
93
|
+
detail: `${p.name}: ${p.nonRegistrable.length} skill dir(s) would ship un-registrable (no depth-1 SKILL.md): ${p.nonRegistrable.join(', ')} — run \`dz skills-verify --static\``,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
},
|
|
80
98
|
'readme-first': (f, sev) => {
|
|
81
99
|
// The 2026-07-18 violation shape, mechanized: a package about to publish (version bumped in the diff)
|
|
82
100
|
// whose own README.md is untouched in the same diff. SOFT: some republishes legitimately need no doc
|
package/dist/guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,gHAAgH;AAChH,wGAAwG;AACxG,4GAA4G;AAC5G,4DAA4D;AAC5D,EAAE;AACF,gHAAgH;AAChH,mHAAmH;AACnH,uFAAuF;AACvF,EAAE;AACF,6GAA6G;AAC7G,+GAA+G;
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
|
package/dist/skills-verify.d.ts
CHANGED
|
@@ -55,6 +55,13 @@ export interface StaticScan {
|
|
|
55
55
|
*/
|
|
56
56
|
readonly scanError?: string;
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Does this directory look like it was INTENDED as a skill? A dir with no markdown at all is
|
|
60
|
+
* ordinary content (`scripts/`, `bin/`, `templates/`) — calling it a failed skill is a false FAIL
|
|
61
|
+
* (Codex QE5 #7). MEASURED: naively flagging every dir marked ~40 healthy directories across 9
|
|
62
|
+
* npx-toolkit packages (reproducer: the pack survey in features/skills-verify/08_qe_report.md).
|
|
63
|
+
*/
|
|
64
|
+
export declare function looksLikeSkillDir(dir: string): boolean;
|
|
58
65
|
/**
|
|
59
66
|
* Walk `<projectDir>/.claude/skills/` and report what can register and what cannot.
|
|
60
67
|
* Deterministic, needs no Claude session — safe for CI.
|
|
@@ -155,4 +162,15 @@ export declare function verifyRegistration(evidence: RegistrationEvidence, optio
|
|
|
155
162
|
/** Exit code contract: pass=0, fail=1, inconclusive=2 (distinct so CI can treat it separately). */
|
|
156
163
|
export declare function registrationExitCode(verdict: RegistrationVerdict, strict?: boolean): number;
|
|
157
164
|
export declare function renderRegistrationReport(result: RegistrationResult, scan?: StaticScan): string;
|
|
165
|
+
/**
|
|
166
|
+
* Scan a PACKAGE directory for skill dirs that could never register.
|
|
167
|
+
*
|
|
168
|
+
* Discriminator (MEASURED before it was chosen — a naive "every dir needs SKILL.md" rule flagged ~40
|
|
169
|
+
* healthy directories across 9 npx-toolkit packages, and a markdown-based one still flagged `docs/`):
|
|
170
|
+
* 1. a package counts as a SKILL PACK only if it already has at least one `<dir>/SKILL.md`;
|
|
171
|
+
* 2. inside it, a dir is broken only when a `SKILL.md` EXISTS somewhere inside but not at depth 1.
|
|
172
|
+
* That second rule is unambiguous — the skill file is there, just where nothing will load it (exactly
|
|
173
|
+
* health-advisor 1.2.0). A dir with no SKILL.md anywhere is ordinary content, not a failed skill.
|
|
174
|
+
*/
|
|
175
|
+
export declare function findNonRegistrableSkillDirs(packDir: string): string[];
|
|
158
176
|
//# sourceMappingURL=skills-verify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-verify.d.ts","sourceRoot":"","sources":["../src/skills-verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,yFAAyF;AACzF,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,qGAAqG;IACrG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACjG;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"skills-verify.d.ts","sourceRoot":"","sources":["../src/skills-verify.ts"],"names":[],"mappings":"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"}
|
package/dist/skills-verify.js
CHANGED
|
@@ -51,6 +51,49 @@ function findBuriedSkillMd(dir, depth, acc, errors) {
|
|
|
51
51
|
function hasPluginManifest(dir) {
|
|
52
52
|
return existsSync(join(dir, '.claude-plugin', 'plugin.json'));
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Does this directory look like it was INTENDED as a skill? A dir with no markdown at all is
|
|
56
|
+
* ordinary content (`scripts/`, `bin/`, `templates/`) — calling it a failed skill is a false FAIL
|
|
57
|
+
* (Codex QE5 #7). MEASURED: naively flagging every dir marked ~40 healthy directories across 9
|
|
58
|
+
* npx-toolkit packages (reproducer: the pack survey in features/skills-verify/08_qe_report.md).
|
|
59
|
+
*/
|
|
60
|
+
export function looksLikeSkillDir(dir) {
|
|
61
|
+
const walk = (d, depth) => {
|
|
62
|
+
if (depth > 2)
|
|
63
|
+
return false;
|
|
64
|
+
let entries;
|
|
65
|
+
try {
|
|
66
|
+
entries = readdirSync(d);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
for (const name of entries) {
|
|
72
|
+
if (name.startsWith('.') || name === 'node_modules')
|
|
73
|
+
continue;
|
|
74
|
+
const full = join(d, name);
|
|
75
|
+
let isDir = false;
|
|
76
|
+
try {
|
|
77
|
+
isDir = statSync(full).isDirectory();
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (isDir) {
|
|
83
|
+
// A DIRECTORY named SKILL.md is a botched skill file, not ordinary content — clear intent.
|
|
84
|
+
if (name === 'SKILL.md')
|
|
85
|
+
return true;
|
|
86
|
+
if (walk(full, depth + 1))
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
else if (name.toLowerCase().endsWith('.md')) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
};
|
|
95
|
+
return walk(dir, 1);
|
|
96
|
+
}
|
|
54
97
|
/**
|
|
55
98
|
* A directory registers only if `SKILL.md` is a regular FILE. `existsSync` also answers true for a
|
|
56
99
|
* DIRECTORY named SKILL.md, which registers nothing yet suppressed every other check (QE2 #4).
|
|
@@ -202,12 +245,16 @@ export function scanSkillsLayout(projectDir) {
|
|
|
202
245
|
registrable.push(name);
|
|
203
246
|
}
|
|
204
247
|
else {
|
|
205
|
-
|
|
248
|
+
// A dir with no markdown was never meant to be a skill — advisory, not a failure (QE5 #7).
|
|
249
|
+
const intended = looksLikeSkillDir(dir);
|
|
250
|
+
(isPluginContainer || !intended ? advisories : findings).push({
|
|
206
251
|
dir: name,
|
|
207
252
|
kind: 'no-skill-md',
|
|
208
253
|
detail: isPluginContainer
|
|
209
254
|
? `${name}/ is a plugin-shaped container (advisory): it has no depth-1 SKILL.md, so it registers only if the client loads it as a plugin`
|
|
210
|
-
:
|
|
255
|
+
: intended
|
|
256
|
+
? `no SKILL.md at ${name}/SKILL.md — this directory cannot register`
|
|
257
|
+
: `${name}/ holds no markdown (advisory): it looks like ordinary content, not a skill that failed to register`,
|
|
211
258
|
});
|
|
212
259
|
}
|
|
213
260
|
// A plugin manifest under .claude/skills does NOT auto-register (plugins load from the
|
|
@@ -549,4 +596,50 @@ export function renderRegistrationReport(result, scan) {
|
|
|
549
596
|
}
|
|
550
597
|
return out.join('\n');
|
|
551
598
|
}
|
|
599
|
+
// ── The publish-time guard fact ─────────────────────────────────────
|
|
600
|
+
/**
|
|
601
|
+
* Scan a PACKAGE directory for skill dirs that could never register.
|
|
602
|
+
*
|
|
603
|
+
* Discriminator (MEASURED before it was chosen — a naive "every dir needs SKILL.md" rule flagged ~40
|
|
604
|
+
* healthy directories across 9 npx-toolkit packages, and a markdown-based one still flagged `docs/`):
|
|
605
|
+
* 1. a package counts as a SKILL PACK only if it already has at least one `<dir>/SKILL.md`;
|
|
606
|
+
* 2. inside it, a dir is broken only when a `SKILL.md` EXISTS somewhere inside but not at depth 1.
|
|
607
|
+
* That second rule is unambiguous — the skill file is there, just where nothing will load it (exactly
|
|
608
|
+
* health-advisor 1.2.0). A dir with no SKILL.md anywhere is ordinary content, not a failed skill.
|
|
609
|
+
*/
|
|
610
|
+
export function findNonRegistrableSkillDirs(packDir) {
|
|
611
|
+
let entries;
|
|
612
|
+
try {
|
|
613
|
+
entries = readdirSync(packDir);
|
|
614
|
+
}
|
|
615
|
+
catch {
|
|
616
|
+
return [];
|
|
617
|
+
}
|
|
618
|
+
const dirs = [];
|
|
619
|
+
for (const name of entries) {
|
|
620
|
+
if (name.startsWith('.') || name === 'node_modules')
|
|
621
|
+
continue;
|
|
622
|
+
const full = join(packDir, name);
|
|
623
|
+
try {
|
|
624
|
+
if (statSync(full).isDirectory())
|
|
625
|
+
dirs.push(name);
|
|
626
|
+
}
|
|
627
|
+
catch {
|
|
628
|
+
/* unreadable entries are not evidence of a defect */
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
const isSkillPack = dirs.some((d) => hasSkillFile(join(packDir, d)));
|
|
632
|
+
if (!isSkillPack)
|
|
633
|
+
return [];
|
|
634
|
+
return dirs
|
|
635
|
+
.filter((d) => {
|
|
636
|
+
const full = join(packDir, d);
|
|
637
|
+
if (hasSkillFile(full))
|
|
638
|
+
return false; // registers fine
|
|
639
|
+
const buried = [];
|
|
640
|
+
findBuriedSkillMd(full, 1, buried, []);
|
|
641
|
+
return buried.length > 0; // a SKILL.md exists, but nothing will load it from there
|
|
642
|
+
})
|
|
643
|
+
.sort();
|
|
644
|
+
}
|
|
552
645
|
//# sourceMappingURL=skills-verify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-verify.js","sourceRoot":"","sources":["../src/skills-verify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills-verify.js","sourceRoot":"","sources":["../src/skills-verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dzhechkov/harness-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.131",
|
|
4
4
|
"description": "Shared harness logic - skill loading, additive apply, and the init/sync/verify/doctor operations.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
"@dzhechkov/adapter-openclaude": "^0.1.0",
|
|
33
33
|
"@dzhechkov/adapter-opencode": "^0.2.0",
|
|
34
34
|
"yaml": "^2.0.0",
|
|
35
|
-
"@dzhechkov/adapter-cursor": "0.1.1",
|
|
36
35
|
"@dzhechkov/adapter-agents-md": "0.1.1",
|
|
37
|
-
"@dzhechkov/adapter-gemini": "0.1.1",
|
|
38
|
-
"@dzhechkov/adapter-windsurf": "0.1.1",
|
|
39
36
|
"@dzhechkov/adapter-copilot": "0.1.1",
|
|
37
|
+
"@dzhechkov/adapter-windsurf": "0.1.1",
|
|
38
|
+
"@dzhechkov/adapter-cursor": "0.1.1",
|
|
39
|
+
"@dzhechkov/adapter-gemini": "0.1.1",
|
|
40
40
|
"@dzhechkov/memory": "0.2.9",
|
|
41
41
|
"@dzhechkov/core": "0.2.14"
|
|
42
42
|
},
|
package/sbom.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"hashes": [
|
|
26
26
|
{
|
|
27
27
|
"alg": "SHA-256",
|
|
28
|
-
"content": "
|
|
28
|
+
"content": "c2aead6a4abbb122c071a72951923c16dfdd8a34bc10a7bde5efa54916566ccb"
|
|
29
29
|
}
|
|
30
30
|
]
|
|
31
31
|
},
|
|
@@ -935,7 +935,7 @@
|
|
|
935
935
|
"hashes": [
|
|
936
936
|
{
|
|
937
937
|
"alg": "SHA-256",
|
|
938
|
-
"content": "
|
|
938
|
+
"content": "de51710fa4c97f71bd835b77740634708ef1fb6791e946c0c1124f3800c93bd6"
|
|
939
939
|
}
|
|
940
940
|
]
|
|
941
941
|
},
|
|
@@ -945,7 +945,7 @@
|
|
|
945
945
|
"hashes": [
|
|
946
946
|
{
|
|
947
947
|
"alg": "SHA-256",
|
|
948
|
-
"content": "
|
|
948
|
+
"content": "65bc9e2e658380ecfb061377d88640569f5be259093ff619c99e5d9cc8db8869"
|
|
949
949
|
}
|
|
950
950
|
]
|
|
951
951
|
},
|
|
@@ -955,7 +955,7 @@
|
|
|
955
955
|
"hashes": [
|
|
956
956
|
{
|
|
957
957
|
"alg": "SHA-256",
|
|
958
|
-
"content": "
|
|
958
|
+
"content": "012b8841fa90e6f6b03059d3ef1ae201ba22c0c2f20cfd828ae636ba2057db7a"
|
|
959
959
|
}
|
|
960
960
|
]
|
|
961
961
|
},
|
|
@@ -965,7 +965,7 @@
|
|
|
965
965
|
"hashes": [
|
|
966
966
|
{
|
|
967
967
|
"alg": "SHA-256",
|
|
968
|
-
"content": "
|
|
968
|
+
"content": "46a8ef893bfba84586883fbcabdf031e151cf59d3cb4947958549a5d451bc5b8"
|
|
969
969
|
}
|
|
970
970
|
]
|
|
971
971
|
},
|
|
@@ -2095,7 +2095,7 @@
|
|
|
2095
2095
|
"hashes": [
|
|
2096
2096
|
{
|
|
2097
2097
|
"alg": "SHA-256",
|
|
2098
|
-
"content": "
|
|
2098
|
+
"content": "5d783a0c8a66f0b8d2033bdd7c9411afce7d7fe0ecb9954740fc0bceff5284cb"
|
|
2099
2099
|
}
|
|
2100
2100
|
]
|
|
2101
2101
|
},
|
|
@@ -2105,7 +2105,7 @@
|
|
|
2105
2105
|
"hashes": [
|
|
2106
2106
|
{
|
|
2107
2107
|
"alg": "SHA-256",
|
|
2108
|
-
"content": "
|
|
2108
|
+
"content": "c33fdd67b0bcebd29603a3cae1e1cf42d6c623a14b1d739d344f8bddc1b4018b"
|
|
2109
2109
|
}
|
|
2110
2110
|
]
|
|
2111
2111
|
},
|
|
@@ -2115,7 +2115,7 @@
|
|
|
2115
2115
|
"hashes": [
|
|
2116
2116
|
{
|
|
2117
2117
|
"alg": "SHA-256",
|
|
2118
|
-
"content": "
|
|
2118
|
+
"content": "997859dd8031a42dc38254b0de1ae955ceed44045eeb0361da1be5a173884098"
|
|
2119
2119
|
}
|
|
2120
2120
|
]
|
|
2121
2121
|
},
|
|
@@ -2125,7 +2125,7 @@
|
|
|
2125
2125
|
"hashes": [
|
|
2126
2126
|
{
|
|
2127
2127
|
"alg": "SHA-256",
|
|
2128
|
-
"content": "
|
|
2128
|
+
"content": "5de16efcefd4fe13d6ddc0e5f009b218baffa86e8d9335323ec12cef7dc0cad2"
|
|
2129
2129
|
}
|
|
2130
2130
|
]
|
|
2131
2131
|
},
|
|
@@ -2455,7 +2455,7 @@
|
|
|
2455
2455
|
"hashes": [
|
|
2456
2456
|
{
|
|
2457
2457
|
"alg": "SHA-256",
|
|
2458
|
-
"content": "
|
|
2458
|
+
"content": "fed3e8ccedb0ebdbf75029dec7ae2a4b47868781fc934dd0efd459fc24f7dc00"
|
|
2459
2459
|
}
|
|
2460
2460
|
]
|
|
2461
2461
|
},
|
|
@@ -2685,7 +2685,7 @@
|
|
|
2685
2685
|
"hashes": [
|
|
2686
2686
|
{
|
|
2687
2687
|
"alg": "SHA-256",
|
|
2688
|
-
"content": "
|
|
2688
|
+
"content": "c0c8e4a58aff130a35c60d5de694ab7de851ea518008b70ad0b14b76318ebefd"
|
|
2689
2689
|
}
|
|
2690
2690
|
]
|
|
2691
2691
|
},
|
|
@@ -2965,7 +2965,7 @@
|
|
|
2965
2965
|
"hashes": [
|
|
2966
2966
|
{
|
|
2967
2967
|
"alg": "SHA-256",
|
|
2968
|
-
"content": "
|
|
2968
|
+
"content": "552295d4e087c6732b28630a34ed0bdc007cd5f3be7971110b55e42bef0736e0"
|
|
2969
2969
|
}
|
|
2970
2970
|
]
|
|
2971
2971
|
},
|
|
@@ -3385,7 +3385,7 @@
|
|
|
3385
3385
|
"hashes": [
|
|
3386
3386
|
{
|
|
3387
3387
|
"alg": "SHA-256",
|
|
3388
|
-
"content": "
|
|
3388
|
+
"content": "faf423970912978594624a70674aa152605819aa3407fdbae45770f3006bdc0b"
|
|
3389
3389
|
}
|
|
3390
3390
|
]
|
|
3391
3391
|
},
|
|
@@ -3705,7 +3705,7 @@
|
|
|
3705
3705
|
"hashes": [
|
|
3706
3706
|
{
|
|
3707
3707
|
"alg": "SHA-256",
|
|
3708
|
-
"content": "
|
|
3708
|
+
"content": "5791d1f0abf7facecfe1477a5313fc7fca69df4c47332b2be3cd4798bca8b7a0"
|
|
3709
3709
|
}
|
|
3710
3710
|
]
|
|
3711
3711
|
},
|
package/src/guard.ts
CHANGED
|
@@ -52,6 +52,8 @@ export interface GuardFacts {
|
|
|
52
52
|
readonly counts?: readonly { readonly label: string; readonly a: number; readonly b: number }[];
|
|
53
53
|
/** for store-bloat-cap: current learned-store size vs its cap. */
|
|
54
54
|
readonly store?: { readonly count: number; readonly cap: number };
|
|
55
|
+
/** for skills-registrable: per skill pack, dirs that would ship un-registrable (no depth-1 SKILL.md). */
|
|
56
|
+
readonly skillPacks?: readonly { readonly name: string; readonly nonRegistrable: readonly string[] }[];
|
|
55
57
|
/** for readme-first: per publishable package, is a version bump staged without a README change? */
|
|
56
58
|
readonly readmeFirst?: readonly { readonly name: string; readonly versionBumped: boolean; readonly readmeChanged: boolean }[];
|
|
57
59
|
}
|
|
@@ -62,6 +64,7 @@ export const DEFAULT_RULES: readonly GuardRule[] = [
|
|
|
62
64
|
{ id: 'no-skill-drift', severity: 'hard', ops: ['publish', 'consolidate'], description: 'no unexpected byte-drift between shared skill copies' },
|
|
63
65
|
{ id: 'no-secrets', severity: 'hard', ops: ['teach', 'publish'], description: 'no private key or API token in lesson text or a published file' },
|
|
64
66
|
{ id: 'readme-consistency', severity: 'soft', ops: ['publish'], description: 'README counts agree (CJM header vs All Commands, etc.)' },
|
|
67
|
+
{ id: 'skills-registrable', severity: 'soft', ops: ['publish'], description: 'every skill directory in a skill pack has a depth-1 SKILL.md (a buried or missing one ships un-registrable — the health-advisor 1.2.0 class)' },
|
|
65
68
|
{ id: 'readme-first', severity: 'soft', ops: ['publish'], description: 'a package with a staged version bump must update its own README.md in the same change (README-first)' },
|
|
66
69
|
{ id: 'store-bloat-cap', severity: 'soft', ops: ['teach', 'consolidate'], description: 'the learned store is within its size cap' },
|
|
67
70
|
];
|
|
@@ -123,6 +126,22 @@ const CHECKERS: Record<string, (f: GuardFacts, sev: GuardSeverity) => Violation[
|
|
|
123
126
|
}
|
|
124
127
|
return out;
|
|
125
128
|
},
|
|
129
|
+
'skills-registrable': (f, sev) => {
|
|
130
|
+
// The health-advisor 1.2.0 class, mechanized at publish time: a skill directory that ships with
|
|
131
|
+
// no depth-1 SKILL.md registers NOWHERE, however green the tests are. SOFT: the discriminator is
|
|
132
|
+
// a heuristic (a pack counts only if it already has one registrable skill, and only
|
|
133
|
+
// markdown-bearing dirs are considered intended), so it informs rather than blocks.
|
|
134
|
+
const out: Violation[] = [];
|
|
135
|
+
for (const p of f.skillPacks ?? []) {
|
|
136
|
+
if (!p || !Array.isArray(p.nonRegistrable) || p.nonRegistrable.length === 0) continue;
|
|
137
|
+
out.push({
|
|
138
|
+
rule: 'skills-registrable',
|
|
139
|
+
severity: sev,
|
|
140
|
+
detail: `${p.name}: ${p.nonRegistrable.length} skill dir(s) would ship un-registrable (no depth-1 SKILL.md): ${p.nonRegistrable.join(', ')} — run \`dz skills-verify --static\``,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return out;
|
|
144
|
+
},
|
|
126
145
|
'readme-first': (f, sev) => {
|
|
127
146
|
// The 2026-07-18 violation shape, mechanized: a package about to publish (version bumped in the diff)
|
|
128
147
|
// whose own README.md is untouched in the same diff. SOFT: some republishes legitimately need no doc
|
package/src/skills-verify.ts
CHANGED
|
@@ -98,6 +98,43 @@ function hasPluginManifest(dir: string): boolean {
|
|
|
98
98
|
return existsSync(join(dir, '.claude-plugin', 'plugin.json'));
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
/**
|
|
102
|
+
* Does this directory look like it was INTENDED as a skill? A dir with no markdown at all is
|
|
103
|
+
* ordinary content (`scripts/`, `bin/`, `templates/`) — calling it a failed skill is a false FAIL
|
|
104
|
+
* (Codex QE5 #7). MEASURED: naively flagging every dir marked ~40 healthy directories across 9
|
|
105
|
+
* npx-toolkit packages (reproducer: the pack survey in features/skills-verify/08_qe_report.md).
|
|
106
|
+
*/
|
|
107
|
+
export function looksLikeSkillDir(dir: string): boolean {
|
|
108
|
+
const walk = (d: string, depth: number): boolean => {
|
|
109
|
+
if (depth > 2) return false;
|
|
110
|
+
let entries: string[];
|
|
111
|
+
try {
|
|
112
|
+
entries = readdirSync(d);
|
|
113
|
+
} catch {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
for (const name of entries) {
|
|
117
|
+
if (name.startsWith('.') || name === 'node_modules') continue;
|
|
118
|
+
const full = join(d, name);
|
|
119
|
+
let isDir = false;
|
|
120
|
+
try {
|
|
121
|
+
isDir = statSync(full).isDirectory();
|
|
122
|
+
} catch {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (isDir) {
|
|
126
|
+
// A DIRECTORY named SKILL.md is a botched skill file, not ordinary content — clear intent.
|
|
127
|
+
if (name === 'SKILL.md') return true;
|
|
128
|
+
if (walk(full, depth + 1)) return true;
|
|
129
|
+
} else if (name.toLowerCase().endsWith('.md')) {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
};
|
|
135
|
+
return walk(dir, 1);
|
|
136
|
+
}
|
|
137
|
+
|
|
101
138
|
/**
|
|
102
139
|
* A directory registers only if `SKILL.md` is a regular FILE. `existsSync` also answers true for a
|
|
103
140
|
* DIRECTORY named SKILL.md, which registers nothing yet suppressed every other check (QE2 #4).
|
|
@@ -248,12 +285,16 @@ export function scanSkillsLayout(projectDir: string): StaticScan {
|
|
|
248
285
|
if (registers) {
|
|
249
286
|
registrable.push(name);
|
|
250
287
|
} else {
|
|
251
|
-
|
|
288
|
+
// A dir with no markdown was never meant to be a skill — advisory, not a failure (QE5 #7).
|
|
289
|
+
const intended = looksLikeSkillDir(dir);
|
|
290
|
+
(isPluginContainer || !intended ? advisories : findings).push({
|
|
252
291
|
dir: name,
|
|
253
292
|
kind: 'no-skill-md',
|
|
254
293
|
detail: isPluginContainer
|
|
255
294
|
? `${name}/ is a plugin-shaped container (advisory): it has no depth-1 SKILL.md, so it registers only if the client loads it as a plugin`
|
|
256
|
-
:
|
|
295
|
+
: intended
|
|
296
|
+
? `no SKILL.md at ${name}/SKILL.md — this directory cannot register`
|
|
297
|
+
: `${name}/ holds no markdown (advisory): it looks like ordinary content, not a skill that failed to register`,
|
|
257
298
|
});
|
|
258
299
|
}
|
|
259
300
|
|
|
@@ -708,3 +749,45 @@ export function renderRegistrationReport(result: RegistrationResult, scan?: Stat
|
|
|
708
749
|
}
|
|
709
750
|
return out.join('\n');
|
|
710
751
|
}
|
|
752
|
+
|
|
753
|
+
// ── The publish-time guard fact ─────────────────────────────────────
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* Scan a PACKAGE directory for skill dirs that could never register.
|
|
757
|
+
*
|
|
758
|
+
* Discriminator (MEASURED before it was chosen — a naive "every dir needs SKILL.md" rule flagged ~40
|
|
759
|
+
* healthy directories across 9 npx-toolkit packages, and a markdown-based one still flagged `docs/`):
|
|
760
|
+
* 1. a package counts as a SKILL PACK only if it already has at least one `<dir>/SKILL.md`;
|
|
761
|
+
* 2. inside it, a dir is broken only when a `SKILL.md` EXISTS somewhere inside but not at depth 1.
|
|
762
|
+
* That second rule is unambiguous — the skill file is there, just where nothing will load it (exactly
|
|
763
|
+
* health-advisor 1.2.0). A dir with no SKILL.md anywhere is ordinary content, not a failed skill.
|
|
764
|
+
*/
|
|
765
|
+
export function findNonRegistrableSkillDirs(packDir: string): string[] {
|
|
766
|
+
let entries: string[];
|
|
767
|
+
try {
|
|
768
|
+
entries = readdirSync(packDir);
|
|
769
|
+
} catch {
|
|
770
|
+
return [];
|
|
771
|
+
}
|
|
772
|
+
const dirs: string[] = [];
|
|
773
|
+
for (const name of entries) {
|
|
774
|
+
if (name.startsWith('.') || name === 'node_modules') continue;
|
|
775
|
+
const full = join(packDir, name);
|
|
776
|
+
try {
|
|
777
|
+
if (statSync(full).isDirectory()) dirs.push(name);
|
|
778
|
+
} catch {
|
|
779
|
+
/* unreadable entries are not evidence of a defect */
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
const isSkillPack = dirs.some((d) => hasSkillFile(join(packDir, d)));
|
|
783
|
+
if (!isSkillPack) return [];
|
|
784
|
+
return dirs
|
|
785
|
+
.filter((d) => {
|
|
786
|
+
const full = join(packDir, d);
|
|
787
|
+
if (hasSkillFile(full)) return false; // registers fine
|
|
788
|
+
const buried: string[] = [];
|
|
789
|
+
findBuriedSkillMd(full, 1, buried, []);
|
|
790
|
+
return buried.length > 0; // a SKILL.md exists, but nothing will load it from there
|
|
791
|
+
})
|
|
792
|
+
.sort();
|
|
793
|
+
}
|