@vibe-agent-toolkit/agent-skills 0.2.0-rc.5 → 0.2.0-rc.7
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/content-type-routing.d.ts +32 -0
- package/dist/content-type-routing.d.ts.map +1 -1
- package/dist/content-type-routing.js +23 -0
- package/dist/content-type-routing.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/parsers/frontmatter-parser.d.ts.map +1 -1
- package/dist/parsers/frontmatter-parser.js +30 -6
- package/dist/parsers/frontmatter-parser.js.map +1 -1
- package/dist/plugin-distribution-layout.d.ts.map +1 -1
- package/dist/plugin-distribution-layout.js +13 -0
- package/dist/plugin-distribution-layout.js.map +1 -1
- package/dist/post-build-checks.d.ts +37 -0
- package/dist/post-build-checks.d.ts.map +1 -1
- package/dist/post-build-checks.js +40 -0
- package/dist/post-build-checks.js.map +1 -1
- package/dist/schemas/allowed-tools.d.ts +31 -0
- package/dist/schemas/allowed-tools.d.ts.map +1 -0
- package/dist/schemas/allowed-tools.js +88 -0
- package/dist/schemas/allowed-tools.js.map +1 -0
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/marketplace-manifest.d.ts.map +1 -1
- package/dist/schemas/marketplace-manifest.js +17 -6
- package/dist/schemas/marketplace-manifest.js.map +1 -1
- package/dist/skill-identity.d.ts +10 -0
- package/dist/skill-identity.d.ts.map +1 -1
- package/dist/skill-identity.js +12 -0
- package/dist/skill-identity.js.map +1 -1
- package/dist/skill-packager.d.ts +85 -13
- package/dist/skill-packager.d.ts.map +1 -1
- package/dist/skill-packager.js +178 -32
- package/dist/skill-packager.js.map +1 -1
- package/dist/skill-test/eval-fragment.d.ts +31 -29
- package/dist/skill-test/eval-fragment.d.ts.map +1 -1
- package/dist/skill-test/eval-fragment.js +5 -3
- package/dist/skill-test/eval-fragment.js.map +1 -1
- package/dist/skill-test/eval-grader.d.ts +8 -2
- package/dist/skill-test/eval-grader.d.ts.map +1 -1
- package/dist/skill-test/eval-grader.js +3 -6
- package/dist/skill-test/eval-grader.js.map +1 -1
- package/dist/validators/agent-instruction-presence.d.ts.map +1 -1
- package/dist/validators/agent-instruction-presence.js +44 -1
- package/dist/validators/agent-instruction-presence.js.map +1 -1
- package/dist/validators/compat-detectors.d.ts +17 -0
- package/dist/validators/compat-detectors.d.ts.map +1 -1
- package/dist/validators/compat-detectors.js +46 -19
- package/dist/validators/compat-detectors.js.map +1 -1
- package/dist/validators/marketplace-validator.d.ts.map +1 -1
- package/dist/validators/marketplace-validator.js +6 -0
- package/dist/validators/marketplace-validator.js.map +1 -1
- package/dist/validators/mcp-tool-qualification.d.ts +158 -0
- package/dist/validators/mcp-tool-qualification.d.ts.map +1 -0
- package/dist/validators/mcp-tool-qualification.js +467 -0
- package/dist/validators/mcp-tool-qualification.js.map +1 -0
- package/dist/validators/packaged-size-limit.d.ts +296 -0
- package/dist/validators/packaged-size-limit.d.ts.map +1 -0
- package/dist/validators/packaged-size-limit.js +494 -0
- package/dist/validators/packaged-size-limit.js.map +1 -0
- package/dist/validators/packaging-validator.d.ts +41 -2
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js +159 -15
- package/dist/validators/packaging-validator.js.map +1 -1
- package/dist/validators/referenced-path-missing.d.ts +211 -0
- package/dist/validators/referenced-path-missing.d.ts.map +1 -0
- package/dist/validators/referenced-path-missing.js +379 -0
- package/dist/validators/referenced-path-missing.js.map +1 -0
- package/dist/validators/skill-validator.d.ts.map +1 -1
- package/dist/validators/skill-validator.js +29 -0
- package/dist/validators/skill-validator.js.map +1 -1
- package/dist/validators/types.d.ts +14 -0
- package/dist/validators/types.d.ts.map +1 -1
- package/dist/walk-link-graph.js +26 -7
- package/dist/walk-link-graph.js.map +1 -1
- package/package.json +7 -7
|
@@ -15,15 +15,17 @@
|
|
|
15
15
|
import { existsSync, statSync } from 'node:fs';
|
|
16
16
|
import { readFile } from 'node:fs/promises';
|
|
17
17
|
import { basename, dirname } from 'node:path';
|
|
18
|
-
import { DeferredArtifacts, loadConfig, parseFileCached, ResourceRegistry } from '@vibe-agent-toolkit/resources';
|
|
18
|
+
import { DeferredArtifacts, listingRefusalRemedy, loadConfig, parseFileCached, ResourceRegistry, } from '@vibe-agent-toolkit/resources';
|
|
19
19
|
import { CODE_REGISTRY, runSingleUnitValidation, runValidationFramework, } from '@vibe-agent-toolkit/schema';
|
|
20
20
|
import { findProjectRoot, issueLocation, normalizedTmpdir, toForwardSlash, safePath, } from '@vibe-agent-toolkit/utils';
|
|
21
|
+
import { DirectoryListingRefusedError } from '@vibe-agent-toolkit/utils/crawl';
|
|
21
22
|
import { collectPreBuildGlobFindings, preBuildGlobFindingsToIssues } from '../files-config.js';
|
|
22
23
|
import { conventionalSuiteProbe, partitionTestInputFileEntries, resolveTestInputDirs, testInputExcludeRules, testInputLinkIssues, } from '../test-input.js';
|
|
23
24
|
import { walkLinkGraph } from '../walk-link-graph.js';
|
|
24
25
|
import { observationToIssue, runCompatDetectors } from './compat-detectors.js';
|
|
25
26
|
import { detectUndeclaredCrossSkillAuth } from './cross-skill-dependency-detection.js';
|
|
26
27
|
import { validateFrontmatterRules, validateFrontmatterSchema } from './frontmatter-validation.js';
|
|
28
|
+
import { collectUnqualifiedMcpToolIssues } from './mcp-tool-qualification.js';
|
|
27
29
|
import { materializeIssue } from './rule-engine/index.js';
|
|
28
30
|
import { SOURCE_ONLY_CODES } from './source-only-codes.js';
|
|
29
31
|
import { VALIDATION_RULES, VALIDATION_THRESHOLDS, } from './validation-rules.js';
|
|
@@ -99,6 +101,21 @@ function validateFilesConfig(files, projectRoot, locationRoot) {
|
|
|
99
101
|
function registryIssueAt(code, message, location) {
|
|
100
102
|
return materializeIssue(code, { message, location });
|
|
101
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Settle the memoized refusals under THIS caller's policy — see {@link MemoizedRegistry}.
|
|
106
|
+
*
|
|
107
|
+
* @param refusals - What the one crawl of `projectRoot` was refused
|
|
108
|
+
* @param unreadable - This caller's ruling
|
|
109
|
+
* @param projectRoot - The crawl's root, for the refuse sentence
|
|
110
|
+
*/
|
|
111
|
+
function replayRefusals(refusals, unreadable, projectRoot) {
|
|
112
|
+
for (const refusal of refusals) {
|
|
113
|
+
if (unreadable === 'refuse') {
|
|
114
|
+
throw new DirectoryListingRefusedError(refusal, { root: projectRoot, remedy: listingRefusalRemedy(projectRoot) });
|
|
115
|
+
}
|
|
116
|
+
unreadable.degrade(refusal);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
102
119
|
/**
|
|
103
120
|
* Build a fresh ResourceRegistry for a single skill's projectRoot and resolve
|
|
104
121
|
* internal links. Extracted so the skill validator can fall back to a private
|
|
@@ -152,21 +169,31 @@ function registryIssueAt(code, message, location) {
|
|
|
152
169
|
* the projection lane no declarations, so the two lanes still AGREE — which is
|
|
153
170
|
* the property this function exists to hold.
|
|
154
171
|
*/
|
|
155
|
-
export async function crawlAndResolveRegistry(projectRoot, options
|
|
156
|
-
const { populationSource } = options;
|
|
172
|
+
export async function crawlAndResolveRegistry(projectRoot, options) {
|
|
173
|
+
const { populationSource, unreadable } = options;
|
|
157
174
|
const cache = registryCacheFor(populationSource);
|
|
158
175
|
const key = toForwardSlash(safePath.resolve(projectRoot));
|
|
159
176
|
const cached = cache.get(key);
|
|
160
177
|
if (cached !== undefined) {
|
|
161
|
-
|
|
178
|
+
const { registry, refusals } = await cached;
|
|
179
|
+
replayRefusals(refusals, unreadable, projectRoot);
|
|
180
|
+
return registry;
|
|
162
181
|
}
|
|
163
182
|
// The PROMISE is cached, not the resolved value, so two overlapping requests
|
|
164
183
|
// for one root can never start two crawls.
|
|
165
184
|
const pending = (async () => {
|
|
166
185
|
const config = await loadConfig(projectRoot).catch(() => undefined);
|
|
186
|
+
// Every refusal the crawl hands over is kept for the memo's later callers —
|
|
187
|
+
// see {@link MemoizedRegistry}. Under `'refuse'` the crawl throws instead and
|
|
188
|
+
// this stays empty.
|
|
189
|
+
const refusals = [];
|
|
190
|
+
const recorded = unreadable === 'refuse'
|
|
191
|
+
? 'refuse'
|
|
192
|
+
: { degrade: (refusal) => { refusals.push(refusal); unreadable.degrade(refusal); } };
|
|
167
193
|
const registry = await ResourceRegistry.fromCrawl({
|
|
168
194
|
baseDir: projectRoot,
|
|
169
195
|
include: ['**/*.md', '**/*.html', '**/*.htm'],
|
|
196
|
+
unreadable: recorded,
|
|
170
197
|
// Enumeration only. `ResourceRegistry.crawl` re-applies the include set
|
|
171
198
|
// above — and the crawl's default exclude — to whatever the source
|
|
172
199
|
// offers, through the same compiled matcher the walk itself uses, so a
|
|
@@ -176,10 +203,10 @@ export async function crawlAndResolveRegistry(projectRoot, options = {}) {
|
|
|
176
203
|
...(populationSource !== undefined && { populationSource }),
|
|
177
204
|
}, config === undefined ? undefined : { config });
|
|
178
205
|
registry.resolveLinks();
|
|
179
|
-
return registry;
|
|
206
|
+
return { registry, refusals };
|
|
180
207
|
})();
|
|
181
208
|
cache.set(key, pending);
|
|
182
|
-
return pending;
|
|
209
|
+
return (await pending).registry;
|
|
183
210
|
}
|
|
184
211
|
/**
|
|
185
212
|
* Cache of (resolved project root → registry) for the INCUMBENT WALK, so the
|
|
@@ -290,6 +317,29 @@ export function resetPackagingRegistryCache() {
|
|
|
290
317
|
// of a tree it may have changed. A `WeakMap` has no `clear`, so it is replaced.
|
|
291
318
|
sourcedRegistryCache = new WeakMap();
|
|
292
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* The registry a skill is validated against: the caller's, when it covers the
|
|
322
|
+
* skill; otherwise one crawled here under the caller's `unreadable` ruling.
|
|
323
|
+
*
|
|
324
|
+
* No shared context is a single-skill lane whose result is acted on whole (the
|
|
325
|
+
* packager's post-build check passes one; a library caller that passes nothing
|
|
326
|
+
* is the same shape): it refuses. A caller with a context has ruled on
|
|
327
|
+
* `shared.unreadable` — see that field.
|
|
328
|
+
*
|
|
329
|
+
* @param skillPath - Path to SKILL.md
|
|
330
|
+
* @param projectRoot - The root the fallback crawl covers
|
|
331
|
+
* @param shared - The batching caller's context, if any
|
|
332
|
+
* @returns A registry whose links are resolved and that covers `skillPath`
|
|
333
|
+
*/
|
|
334
|
+
async function registryForSkill(skillPath, projectRoot, shared) {
|
|
335
|
+
if (shared?.registry !== undefined && registryCoversSkill(shared.registry, skillPath)) {
|
|
336
|
+
return shared.registry;
|
|
337
|
+
}
|
|
338
|
+
return crawlAndResolveRegistry(projectRoot, {
|
|
339
|
+
unreadable: shared === undefined ? 'refuse' : shared.unreadable,
|
|
340
|
+
...(shared?.populationSource !== undefined && { populationSource: shared.populationSource }),
|
|
341
|
+
});
|
|
342
|
+
}
|
|
293
343
|
/**
|
|
294
344
|
* True iff the shared registry's baseDir is an ancestor of (or equals) the
|
|
295
345
|
* skill's directory. Prevents the batched caller from reusing a registry that
|
|
@@ -308,6 +358,34 @@ function registryCoversSkill(registry, skillPath) {
|
|
|
308
358
|
// eslint-disable-next-line local/no-path-startswith -- both sides normalized via toForwardSlash above
|
|
309
359
|
return skillDir.startsWith(`${normalizedBase}/`);
|
|
310
360
|
}
|
|
361
|
+
/**
|
|
362
|
+
* The refusal for a matched file that has no frontmatter object — either no
|
|
363
|
+
* `---` block at all, or one whose YAML did not parse (`frontmatterError`).
|
|
364
|
+
*
|
|
365
|
+
* Either way the file is not a skill, and it is refused with the SAME
|
|
366
|
+
* non-overridable code `validateSkill` in skill-validator.ts emits for it:
|
|
367
|
+
* `SKILL_MISSING_FRONTMATTER` has no CODE_REGISTRY entry, so the framework's
|
|
368
|
+
* `finalize()` passes it through and `validation.severity` cannot name it.
|
|
369
|
+
*
|
|
370
|
+
* This refusal used to be absent from the packaging lane — its frontmatter
|
|
371
|
+
* checks ran only `if (parseResult.frontmatter)` — so a plain `# Readme` a
|
|
372
|
+
* `skills.include` glob drifted onto, or a SKILL.md that lost its fence, ran
|
|
373
|
+
* zero frontmatter checks and came back `success` under its H1 as a name:
|
|
374
|
+
* `vat skills validate`, `vat validate` and `vat verify` were green on a
|
|
375
|
+
* project that shipped no skill.
|
|
376
|
+
*/
|
|
377
|
+
function missingFrontmatterIssue(frontmatterError, location) {
|
|
378
|
+
return {
|
|
379
|
+
severity: 'error',
|
|
380
|
+
code: 'SKILL_MISSING_FRONTMATTER',
|
|
381
|
+
message: frontmatterError === undefined
|
|
382
|
+
? 'No YAML frontmatter found — a skill starts with a `---` block that names and describes it'
|
|
383
|
+
: `Frontmatter did not parse as YAML: ${frontmatterError}`,
|
|
384
|
+
location,
|
|
385
|
+
line: 1,
|
|
386
|
+
fix: 'Add YAML frontmatter with name and description fields, or narrow `skills.include` so it no longer matches this file',
|
|
387
|
+
};
|
|
388
|
+
}
|
|
311
389
|
/**
|
|
312
390
|
* Validate a skill for packaging
|
|
313
391
|
*
|
|
@@ -347,6 +425,9 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
347
425
|
if (parseResult.frontmatter) {
|
|
348
426
|
rawIssues.push(...validateFrontmatterSchema(parseResult.frontmatter, false, skillLocation), ...validateFrontmatterRules(parseResult.frontmatter, skillLocation));
|
|
349
427
|
}
|
|
428
|
+
else {
|
|
429
|
+
rawIssues.push(missingFrontmatterIssue(parseResult.frontmatterError, skillLocation));
|
|
430
|
+
}
|
|
350
431
|
// Compat capability detection: collect observations from SKILL.md and
|
|
351
432
|
// surface each as a CAPABILITY_* issue. Observations are also returned
|
|
352
433
|
// on the result so downstream verdict computation (CLI layer) can recover
|
|
@@ -369,11 +450,7 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
369
450
|
// per-file markdown parse is paid for exactly once across the batch. Only
|
|
370
451
|
// reuse when the shared registry covers this skill's projectRoot; otherwise
|
|
371
452
|
// fall back to a fresh crawl to avoid leaking resources across roots.
|
|
372
|
-
const registry =
|
|
373
|
-
? shared.registry
|
|
374
|
-
: await crawlAndResolveRegistry(projectRoot, {
|
|
375
|
-
...(shared?.populationSource !== undefined && { populationSource: shared.populationSource }),
|
|
376
|
-
});
|
|
453
|
+
const registry = await registryForSkill(skillPath, projectRoot, shared);
|
|
377
454
|
const skillResource = registry.getResource(safePath.resolve(skillPath));
|
|
378
455
|
// Only the entries the PACKAGER will actually copy defer a link: an entry pointing
|
|
379
456
|
// into declared test input is dropped at build time, so its dest never appears and
|
|
@@ -468,6 +545,14 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
468
545
|
const bundledLocation = issueLocation(bundledFile, locationRoot);
|
|
469
546
|
collectNonPortableAssetReferenceIssues(content, bundledLocation, rawIssues);
|
|
470
547
|
collectNonPortableCommandIssues(content, bundledLocation, rawIssues);
|
|
548
|
+
// Whole-file bytes, frontmatter included — safe because the detector
|
|
549
|
+
// strips leading frontmatter itself. It did not always, and this lane was
|
|
550
|
+
// the half of the invariant nobody was enforcing: a bundled file carrying
|
|
551
|
+
// `allowed-tools: [mcp__x__do_thing]` seeded the vocabulary the SKILL.md
|
|
552
|
+
// lane's comment (below) says must come from prose, then fired on its own
|
|
553
|
+
// body. Pinned by "does not let a bundled file's allowed-tools frontmatter
|
|
554
|
+
// supply the vocabulary" in packaging-validator.test.ts.
|
|
555
|
+
collectUnqualifiedMcpToolIssues(content, bundledLocation, rawIssues);
|
|
471
556
|
}
|
|
472
557
|
}
|
|
473
558
|
const excludedDetails = deduplicateExcludedReferences(excludedReferences, skillPath);
|
|
@@ -479,8 +564,19 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
479
564
|
collectTimeSensitiveContentIssues(parseResult.content, skillLocation, rawIssues);
|
|
480
565
|
collectNonPortableAssetReferenceIssues(parseResult.content, skillLocation, rawIssues);
|
|
481
566
|
collectNonPortableCommandIssues(parseResult.content, skillLocation, rawIssues);
|
|
567
|
+
// An `allowed-tools:` list of `mcp__…` names does not by itself supply the
|
|
568
|
+
// vocabulary: the qualified spelling has to appear in the prose an agent
|
|
569
|
+
// reads, or "the document contradicts itself" is not the finding. That holds
|
|
570
|
+
// because the DETECTOR strips frontmatter. ⛔ It was NEVER true that this call
|
|
571
|
+
// site passed a post-frontmatter slice — `parseResult.content` is the raw file
|
|
572
|
+
// verbatim, as the comment 190 lines above says — so before the detector
|
|
573
|
+
// stripped, this lane did read `allowed-tools:` as prose and did ship the
|
|
574
|
+
// findings that came of it.
|
|
575
|
+
collectUnqualifiedMcpToolIssues(parseResult.content, skillLocation, rawIssues);
|
|
482
576
|
// Cross-skill dependency smell: body declares a requires/depends token the
|
|
483
|
-
// description does not mention.
|
|
577
|
+
// description does not mention. Reads the RAW file, frontmatter included —
|
|
578
|
+
// which is what this detector wants, since the declaration it looks for can be
|
|
579
|
+
// written either side of the fence.
|
|
484
580
|
if (parseResult.frontmatter) {
|
|
485
581
|
rawIssues.push(...detectUndeclaredCrossSkillAuth(parseResult.frontmatter, parseResult.content, skillLocation));
|
|
486
582
|
}
|
|
@@ -660,9 +756,23 @@ const RELATIVE_PATH_HINT = 'Reference bundled files by a path relative to the sk
|
|
|
660
756
|
* plain form; falling to (2) is what still flags the operator forms — a
|
|
661
757
|
* lone `\$\{NAME\}` alternative silently missed `${NAME:-default}`, an
|
|
662
758
|
* idiomatic non-portable reference.
|
|
759
|
+
* 3. `\$\{?env:NAME\b` — PowerShell's expansion, BOTH spellings. A skill that
|
|
760
|
+
* documents a Windows invocation writes `$env:CLAUDE_SKILL_DIR` or
|
|
761
|
+
* `${env:CLAUDE_SKILL_DIR}`, neither of which the two POSIX alternatives
|
|
762
|
+
* match: after `$`/`${` comes `env:`, not the variable name. The forms are
|
|
763
|
+
* equally non-portable, so leaving them out flagged the bash line of a skill
|
|
764
|
+
* and waved through the PowerShell line directly beneath it.
|
|
765
|
+
*
|
|
766
|
+
* ⚠️ Compiled with the `i` flag, and that is about alternative 3 specifically.
|
|
767
|
+
* PowerShell variable and drive names are case-INSENSITIVE, so `$Env:NAME` and
|
|
768
|
+
* `$ENV:NAME` are as valid — and as commonly authored — as `$env:NAME`. A
|
|
769
|
+
* case-SENSITIVE `\$env:` matched one of the three and silently passed the other
|
|
770
|
+
* two, reintroducing exactly the asymmetry this alternative was added to remove.
|
|
771
|
+
* The variable names themselves are uppercase literals passed in by the call
|
|
772
|
+
* sites below, so case-insensitivity costs nothing there.
|
|
663
773
|
*/
|
|
664
774
|
// eslint-disable-next-line security/detect-non-literal-regexp -- composed from a compile-time constant name, no user input
|
|
665
|
-
const envVarPattern = (name) => new RegExp(String.raw `\$\{${name}\}|\$\{?${name}\b
|
|
775
|
+
const envVarPattern = (name) => new RegExp(String.raw `\$\{${name}\}|\$\{?env:${name}\b|\$\{?${name}\b`, 'i');
|
|
666
776
|
const NON_PORTABLE_ASSET_VARIANTS = [
|
|
667
777
|
{
|
|
668
778
|
label: 'claude-plugin-root',
|
|
@@ -680,6 +790,40 @@ const NON_PORTABLE_ASSET_VARIANTS = [
|
|
|
680
790
|
pattern: envVarPattern('CLAUDE_PROJECT_DIR'),
|
|
681
791
|
fix: '`CLAUDE_PROJECT_DIR` is a Claude Code-only variable, so a skill relying on it will not resolve the user\'s project on other runtimes. There is no skill-relative equivalent — if the skill genuinely operates on the user\'s repository, take the location as an explicit parameter with `$CLAUDE_PROJECT_DIR` as a fallback, and make sure the skill\'s declared `targets` reflect the Claude Code dependency.',
|
|
682
792
|
},
|
|
793
|
+
{
|
|
794
|
+
// Load-bearing in Claude Code and MEANINGLESS in the API code-execution
|
|
795
|
+
// container. Both facts are true for good reasons, which is why this is a
|
|
796
|
+
// warning and not a rename: in Claude Code a skill may live under
|
|
797
|
+
// `~/.claude/skills/`, a plugin tree, a project dir or a marketplace install
|
|
798
|
+
// path while cwd is the user's repo, and the consumer needing a real path is
|
|
799
|
+
// often a PROCESS (a script argument) that does not share the model's
|
|
800
|
+
// context — there is no literal an author can write. The API container has
|
|
801
|
+
// the opposite property: the location is a stable literal (`/skills/<name>/`,
|
|
802
|
+
// cwd `/`) so nothing is parameterised and no equivalent variable is set,
|
|
803
|
+
// measured live against the Messages API. `${CLAUDE_SKILL_DIR}` therefore
|
|
804
|
+
// expands to empty there and `node "/scripts/x.mjs"` does not exist.
|
|
805
|
+
label: 'claude-skill-dir',
|
|
806
|
+
pattern: envVarPattern('CLAUDE_SKILL_DIR'),
|
|
807
|
+
fix: `\`CLAUDE_SKILL_DIR\` is set by Claude Code and is absent in the API code-execution container, where it expands to empty. ${RELATIVE_PATH_HINT} A relative path resolves on every target because the MODEL resolves it against the skill directory — not because cwd happens to be right. When a process genuinely needs an absolute path, instruct the agent to cd into the skill directory first rather than reaching for another variable.`,
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
// The same mistake pointed the other way: the API container's literal mount
|
|
811
|
+
// point hardcoded into a skill, which resolves nowhere in Claude Code. Anchored
|
|
812
|
+
// at a path boundary so `~/.claude/skills/x/` and `.claude/skills/` in prose
|
|
813
|
+
// (both preceded by a word character) are not flagged.
|
|
814
|
+
//
|
|
815
|
+
// ⚠️ The TRAILING separator is optional, and that is the common spelling —
|
|
816
|
+
// not an edge case. `/skills/<name>` with nothing after it is the mount
|
|
817
|
+
// POINT, which is what the sibling `claude-skill-dir` fix text tells authors
|
|
818
|
+
// to reach for ("cd into the skill directory first"). Requiring the trailing
|
|
819
|
+
// `/` made `cd /skills/my-skill && node scripts/run.mjs` invisible while
|
|
820
|
+
// firing on `node /skills/my-skill/scripts/run.mjs` on the next line. The
|
|
821
|
+
// `(?![\w.-])` branch keeps the name from being truncated mid-token, so a
|
|
822
|
+
// longer name is still matched whole rather than at a prefix.
|
|
823
|
+
label: 'api-skill-mount',
|
|
824
|
+
pattern: /(?:^|[\s"'`(])\/skills\/[A-Za-z0-9._-]+(?:\/|(?![\w.-]))/,
|
|
825
|
+
fix: `\`/skills/<name>/\` is the Anthropic API code-execution container's mount point and does not exist in Claude Code, a claude.ai upload, or any other host. ${RELATIVE_PATH_HINT} When a process genuinely needs an absolute path, instruct the agent to cd into the skill directory first.`,
|
|
826
|
+
},
|
|
683
827
|
{
|
|
684
828
|
label: 'absolute-script-path',
|
|
685
829
|
pattern: /\b(?:node|bun|deno|python3?|ruby|sh|bash|uv)\s+["']?\/[^\s"']+\.(?:mjs|cjs|js|ts|py|rb|sh)\b/,
|
|
@@ -806,7 +950,7 @@ function collectPortabilityFamilyIssues(content, docLocation, issues, family) {
|
|
|
806
950
|
* Collect NON_PORTABLE_ASSET_REFERENCE issues — scan one skill document for any
|
|
807
951
|
* member of the non-portable asset-reference family.
|
|
808
952
|
*/
|
|
809
|
-
function collectNonPortableAssetReferenceIssues(content, docLocation, issues) {
|
|
953
|
+
export function collectNonPortableAssetReferenceIssues(content, docLocation, issues) {
|
|
810
954
|
collectPortabilityFamilyIssues(content, docLocation, issues, {
|
|
811
955
|
code: 'NON_PORTABLE_ASSET_REFERENCE',
|
|
812
956
|
variants: NON_PORTABLE_ASSET_VARIANTS,
|
|
@@ -820,7 +964,7 @@ function collectNonPortableAssetReferenceIssues(content, docLocation, issues) {
|
|
|
820
964
|
* Collect NON_PORTABLE_COMMAND issues — scan one skill document for any member of
|
|
821
965
|
* the non-portable shell-command family.
|
|
822
966
|
*/
|
|
823
|
-
function collectNonPortableCommandIssues(content, docLocation, issues) {
|
|
967
|
+
export function collectNonPortableCommandIssues(content, docLocation, issues) {
|
|
824
968
|
collectPortabilityFamilyIssues(content, docLocation, issues, {
|
|
825
969
|
code: 'NON_PORTABLE_COMMAND',
|
|
826
970
|
variants: NON_PORTABLE_COMMAND_VARIANTS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packaging-validator.js","sourceRoot":"","sources":["../../src/validators/packaging-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"packaging-validator.js","sourceRoot":"","sources":["../../src/validators/packaging-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PACKAGED_REFERENCED_PATH_MISSING — the inverse of PACKAGED_UNREFERENCED_FILE.
|
|
3
|
+
*
|
|
4
|
+
* `PACKAGED_UNREFERENCED_FILE` asks "is every shipped file mentioned somewhere?"
|
|
5
|
+
* and answers it by searching FROM a known filename INTO the text, which needs no
|
|
6
|
+
* parsing and is why it can be an error. This module asks the opposite question —
|
|
7
|
+
* "is every mentioned path actually shipped?" — which requires extracting path
|
|
8
|
+
* tokens from prose and code, and is therefore a warning.
|
|
9
|
+
*
|
|
10
|
+
* ## Why it is worth having anyway
|
|
11
|
+
*
|
|
12
|
+
* It is the only check that can see a BUILD DROP: a reference that is correct in
|
|
13
|
+
* the source repo and whose target did not survive into the packaged output. The
|
|
14
|
+
* source looks right, so neither human review nor an agent reading the source can
|
|
15
|
+
* catch it. Measured instance in a live adopter marketplace: a skill names
|
|
16
|
+
* `references/<setup-guide>.md` four times, that file is present at the matching
|
|
17
|
+
* path in the source repository, and it is absent from the published bundle.
|
|
18
|
+
*
|
|
19
|
+
* ## The two rules, and why each exists
|
|
20
|
+
*
|
|
21
|
+
* Fire rates measured over **684 skills across two corpora** (one of them a live
|
|
22
|
+
* marketplace). ⚠️ The heading and the prose here used to say "three rules" over
|
|
23
|
+
* "691 skills across three corpora" above a table listing two that sum to 684 —
|
|
24
|
+
* and to add that "dropping any one of them makes the check unusable" thirteen
|
|
25
|
+
* lines above the note that rule 3 has no production caller. Rule 3 IS dropped,
|
|
26
|
+
* the check ships anyway, and both of those sentences are gone rather than
|
|
27
|
+
* re-dated.
|
|
28
|
+
*
|
|
29
|
+
* | Rule | adopter A, 52 built skills | 632-skill install corpus |
|
|
30
|
+
* |---|---|---|
|
|
31
|
+
* | candidates only | 65.4% | 52.1% |
|
|
32
|
+
* | + literal (rule 1) | 46.2% | 47.5% |
|
|
33
|
+
* | + bundled-subdir prefix (rule 2) | **3.8%** | **10.4%** |
|
|
34
|
+
*
|
|
35
|
+
* Both rules ship, and the shipped rule pair is the bottom row: **3.8% on the
|
|
36
|
+
* 52-skill adopter marketplace and 10.4% on the 632-skill installed corpus**.
|
|
37
|
+
* ⚠️ QUOTE BOTH, ALWAYS. The headline here used to quote 3.8% alone — the lower
|
|
38
|
+
* of two numbers measured on the SAME shipped rule — which reads as a single
|
|
39
|
+
* measured misfire rate rather than as the flattering end of a 2.7x spread.
|
|
40
|
+
* Neither corpus is privileged: the marketplace is BUILT output (what this check
|
|
41
|
+
* actually runs on) and the install corpus is bigger and more varied, so a
|
|
42
|
+
* reader deciding whether to enable this needs the range, not the better half.
|
|
43
|
+
*
|
|
44
|
+
* 1. **Literal paths only.** A glob or a placeholder (`docs/**\/*.md`,
|
|
45
|
+
* `docs/product/<component>/prd.md`) is not a claim that a file exists.
|
|
46
|
+
* 2. **First segment must be a bundled subdirectory.** This is the rule that
|
|
47
|
+
* earns the precision — 17x on the marketplace corpus, 5x on the install
|
|
48
|
+
* corpus (65.4%→3.8% and 52.1%→10.4%) — and it is the only *semantic* one.
|
|
49
|
+
* The lexer deliberately refuses this judgement: it emits `docs/product/prd.md`
|
|
50
|
+
* and `dist/bin/arc-cli.mjs` as equal candidates because whether a token refers
|
|
51
|
+
* to the skill's own bundle or to the USER'S repository is a lens's property,
|
|
52
|
+
* not a lexical one. Until `edges`/`edge_resolutions` have producers, this
|
|
53
|
+
* prefix test IS that lens, and its measured precision is recorded above so a
|
|
54
|
+
* future lens can be held to it.
|
|
55
|
+
*
|
|
56
|
+
* A third rule — a plugin-wide **sibling search root**, measured at 1.9%
|
|
57
|
+
* (marketplace) and 8.9% (install corpus) — was built and then DELETED, because
|
|
58
|
+
* nothing could call it. The rejected
|
|
59
|
+
* wiring and why a dead seam is not a head start are on
|
|
60
|
+
* {@link detectMissingReferencedPaths}. The sibling population is real: one
|
|
61
|
+
* measured skill points at a sibling's `resources/*.md`, another at a plugin-root
|
|
62
|
+
* `scripts/cli.py`, and both are false positives here. A plugin-aware lens that
|
|
63
|
+
* wants them should measure its own rule.
|
|
64
|
+
*
|
|
65
|
+
* ## Why this runs at the BUILT phase only
|
|
66
|
+
*
|
|
67
|
+
* A `files:` config entry materializes `scripts/` at build time, so a VAT source
|
|
68
|
+
* skill directory legitimately lacks the subdirectory its body references —
|
|
69
|
+
* a measured skill ships no `scripts/` in source and gets `scripts/<cli>.mjs`
|
|
70
|
+
* injected. Running this at source phase fired on it; running it at built phase
|
|
71
|
+
* does not. Measured: 15.0% source vs 9.6% built for the same naive rule.
|
|
72
|
+
*
|
|
73
|
+
* ## A path VAT'S OWN PACKAGER moved is not a missing path
|
|
74
|
+
*
|
|
75
|
+
* Routing relocates a bundled file, so an authored `resources/setup.sh` ships as
|
|
76
|
+
* `scripts/setup.sh` under `claude-code` and as `references/setup.sh` under
|
|
77
|
+
* `claude-web`. Markdown links are rewritten to follow it; bare tokens in fences
|
|
78
|
+
* and code spans — this check's only input — are not. A candidate is therefore
|
|
79
|
+
* only missing if it is absent under BOTH its authored spelling and its routed
|
|
80
|
+
* one.
|
|
81
|
+
*
|
|
82
|
+
* ⛔ Routing is a function of the TARGET, not of the extension alone, so this
|
|
83
|
+
* check takes the target as a required argument and asks
|
|
84
|
+
* `getResourceSubdirForFile` — the same function the packager asks. It used to
|
|
85
|
+
* ask the extension-only half and answer for `claude-code` whatever it was
|
|
86
|
+
* packaging, which false-positived the entire `claude-web` target. See
|
|
87
|
+
* {@link routedSpelling}.
|
|
88
|
+
*
|
|
89
|
+
* ## Deliberately NOT handled here
|
|
90
|
+
*
|
|
91
|
+
* Markdown links. `LINK_BROKEN_FILE` / `PACKAGED_BROKEN_LINK` already cover a
|
|
92
|
+
* link whose target is missing, at error severity. Emitting here as well would
|
|
93
|
+
* double-report the same defect with a weaker severity.
|
|
94
|
+
*
|
|
95
|
+
* That exclusion is enforced UPSTREAM, in the lexer, and not by anything in this
|
|
96
|
+
* module: `codeContextRangesFrom` puts `inline-link`, `reference-link`,
|
|
97
|
+
* `link-definition` and `image` spans into `excluded`, and `emitToken` refuses to
|
|
98
|
+
* emit any token falling inside one. So an inline link, a `[text][label]`
|
|
99
|
+
* reference AND its `[label]: path` definition all produce zero candidates here —
|
|
100
|
+
* verified by the `does not double-report` cases in this module's unit test,
|
|
101
|
+
* which assert on `bundledPathCandidates` rather than on the issue list so that
|
|
102
|
+
* silence is attributed to the exclusion rather than to a missing candidate.
|
|
103
|
+
*
|
|
104
|
+
* The `syntacticForm !== 'bare-token'` guard below is NOT that exclusion and must
|
|
105
|
+
* not be read as it. What it does is drop `env-anchored` and `at-prefixed` tokens
|
|
106
|
+
* — and it is load-bearing for exactly one shape that would otherwise slip
|
|
107
|
+
* through the literal test: `scripts/$VAR/x.mjs`, whose first segment IS a
|
|
108
|
+
* bundled subdirectory and which carries no glob character.
|
|
109
|
+
*/
|
|
110
|
+
import { type ValidationIssue } from '@vibe-agent-toolkit/schema';
|
|
111
|
+
import { type PackagingTarget } from '../content-type-routing.js';
|
|
112
|
+
/**
|
|
113
|
+
* Whether `token` is a literal path rooted at a bundled subdirectory.
|
|
114
|
+
*
|
|
115
|
+
* Exported for tests: these two predicates are the whole precision argument, and
|
|
116
|
+
* pinning them directly is cheaper than reconstructing a corpus to observe them.
|
|
117
|
+
*
|
|
118
|
+
* ⚠️ It is also the SHIPPED rule, and that is load-bearing rather than tidiness.
|
|
119
|
+
* `bundledPathCandidates` used to re-derive the same two steps inline — a
|
|
120
|
+
* `bundleRelativeSegments` call followed by its own `BUNDLED_SUBDIRS.has(…)` —
|
|
121
|
+
* so every assertion in this module's `isBundledSubdirPath` describe block
|
|
122
|
+
* pinned a COPY of the rule. Lower-casing the lookup in the production line left
|
|
123
|
+
* all eight of them green. This lane has already shipped that exact defect once
|
|
124
|
+
* (a filter whose only caller was a unit test ran at double its documented
|
|
125
|
+
* misfire rate), so there is ONE definition and production calls it.
|
|
126
|
+
*/
|
|
127
|
+
export declare function isBundledSubdirPath(token: string): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Every bare-token path candidate in the document at `filePath` that is rooted at
|
|
130
|
+
* a bundled subdirectory, NORMALIZED to its bundle-relative spelling.
|
|
131
|
+
*
|
|
132
|
+
* Normalizing here rather than at each use is what makes `./scripts/x.mjs`,
|
|
133
|
+
* `scripts\x.mjs` and `scripts/x.mjs` one finding with one `link` anchor, so a
|
|
134
|
+
* single allow glob waives all three spellings of the same reference.
|
|
135
|
+
*
|
|
136
|
+
* Goes through `parseMarkdown` rather than reaching for the lexer directly, for
|
|
137
|
+
* two reasons. It keeps ONE definition of "path-shaped token" in the codebase —
|
|
138
|
+
* `isCandidate` in `reference-lexer.ts` already requires a slash and a file
|
|
139
|
+
* extension, which is this check's admission rule too, so re-deriving it here
|
|
140
|
+
* would be a second matcher to drift. And `parseMarkdown` is the package's lazy
|
|
141
|
+
* wrapper: a value import of the lexer would pull the remark stack into the eager
|
|
142
|
+
* module graph of every `@vibe-agent-toolkit/resources` consumer (~730ms on
|
|
143
|
+
* Windows), which `module-load-budget.integration.test.ts` exists to prevent.
|
|
144
|
+
*/
|
|
145
|
+
export declare function bundledPathCandidates(filePath: string): Promise<string[]>;
|
|
146
|
+
/**
|
|
147
|
+
* Emit one `PACKAGED_REFERENCED_PATH_MISSING` per missing path.
|
|
148
|
+
*
|
|
149
|
+
* One issue PER MISSING PATH, not one per document — and each carries the missing
|
|
150
|
+
* path as `link`.
|
|
151
|
+
*
|
|
152
|
+
* This is what makes a single misfire waivable without disabling the rule for the
|
|
153
|
+
* file. `applyAllowFilter` matches an allow glob against `location` OR `link`, so
|
|
154
|
+
* an adopter can silence exactly one illustrative path:
|
|
155
|
+
*
|
|
156
|
+
* ```yaml
|
|
157
|
+
* validation:
|
|
158
|
+
* allow:
|
|
159
|
+
* PACKAGED_REFERENCED_PATH_MISSING:
|
|
160
|
+
* - paths: ["resources/gates.md"]
|
|
161
|
+
* reason: "Illustrative path in a skill that teaches link syntax."
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* …while a DIFFERENT missing path in that same document still fires. Waiving by
|
|
165
|
+
* `location` (`**\/some-skill/SKILL.md`) remains available and is the coarser
|
|
166
|
+
* choice — it suppresses future real findings in that file, which is precisely
|
|
167
|
+
* what the per-path form avoids.
|
|
168
|
+
*
|
|
169
|
+
* The three anchors are three different things, the same split
|
|
170
|
+
* `REFERENCE_TARGET_MISSING` documents: `location` is the file you open, `field`
|
|
171
|
+
* is not used here, and `link` is the target that does not exist — emphatically
|
|
172
|
+
* NOT the location, since naming a nonexistent path as "where to look" is advice
|
|
173
|
+
* you cannot follow.
|
|
174
|
+
*
|
|
175
|
+
* ⚠️ ONE lane, not two. This code is emitted from `packageSkill` and nowhere
|
|
176
|
+
* else, so `vat skills validate` — which calls `validateSkillForPackaging(…,
|
|
177
|
+
* 'source')` and never `packageSkill` — cannot produce it. This note used to tell
|
|
178
|
+
* adopters to give a single allow entry BOTH the authored and packaged spellings
|
|
179
|
+
* "so a waiver survives both lanes", two bullets after the same file said "built
|
|
180
|
+
* phase only". Following it earns an `ALLOW_UNUSED` for the spelling that can
|
|
181
|
+
* never match. A `link` glob is still the better choice, for its own reason: the
|
|
182
|
+
* missing path is skill-relative, so it does not depend on where the bundle sits.
|
|
183
|
+
*
|
|
184
|
+
* @param docFiles Absolute paths of packaged markdown documents to scan
|
|
185
|
+
* (SKILL.md and any bundled reference files).
|
|
186
|
+
* @param skillDir Absolute path to the packaged skill output — the base every
|
|
187
|
+
* candidate resolves against, and the base issue locations are relative to.
|
|
188
|
+
*
|
|
189
|
+
* 🚨 **SKILL-LOCAL, and there is no wider root to pass.** This function used to
|
|
190
|
+
* take a `siblingSearchRoot` and a `searchBudget`, with a ~90-line breadth-first
|
|
191
|
+
* mount-point walk behind them and a caveat string for a truncated search. NO
|
|
192
|
+
* production caller ever passed either: the only caller is the packager, via
|
|
193
|
+
* `checkMissingReferencedPaths`, and it genuinely does not know the plugin root
|
|
194
|
+
* — it packages one skill into its own output directory before any plugin is
|
|
195
|
+
* assembled. `vat build`'s `validateShippedPluginSkillLinks` does walk a whole
|
|
196
|
+
* plugin tree, and wiring this there was considered and REJECTED: it runs only
|
|
197
|
+
* `checkBrokenPackagedLinks`, its documented stance is the opposite one (a skill
|
|
198
|
+
* is a self-contained portable unit, so an escape from its own directory is a
|
|
199
|
+
* defect rather than a resolution), and it would report every finding twice.
|
|
200
|
+
*
|
|
201
|
+
* So the subsystem was deleted rather than kept as a seam. `complete` was always
|
|
202
|
+
* `true`, the truncated-search caveat could never ship, and the tests that
|
|
203
|
+
* covered the walk covered a path production does not take — while attributing
|
|
204
|
+
* real coverage to it. The measured fire rates that ship are the skill-local
|
|
205
|
+
* **3.8% (marketplace) / 10.4% (install corpus)**; the 1.9% / 8.9% pair
|
|
206
|
+
* describes a check VAT does not run. If a plugin-aware lens is ever built, it
|
|
207
|
+
* can grow its own resolution rule with its own measurement; a dead parameter
|
|
208
|
+
* is not a head start.
|
|
209
|
+
*/
|
|
210
|
+
export declare function detectMissingReferencedPaths(docFiles: readonly string[], skillDir: string, target: PackagingTarget): Promise<ValidationIssue[]>;
|
|
211
|
+
//# sourceMappingURL=referenced-path-missing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referenced-path-missing.d.ts","sourceRoot":"","sources":["../../src/validators/referenced-path-missing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4GG;AAKH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGjF,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,4BAA4B,CAAC;AAoDpC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAsB/E;AAiED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CA6B5B"}
|