@vibe-agent-toolkit/agent-skills 0.2.0-rc.4 → 0.2.0-rc.6
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/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/post-build-checks.d.ts +29 -0
- package/dist/post-build-checks.d.ts.map +1 -1
- package/dist/post-build-checks.js +46 -3
- package/dist/post-build-checks.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.map +1 -1
- package/dist/skill-packager.js +70 -1
- package/dist/skill-packager.js.map +1 -1
- package/dist/skill-test/build-hook.js +0 -1
- package/dist/skill-test/build-hook.js.map +1 -1
- package/dist/skill-test/eval-fragment.d.ts +26 -26
- 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 +10 -0
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js +90 -7
- package/dist/validators/packaging-validator.js.map +1 -1
- package/dist/validators/referenced-path-missing.d.ts +202 -0
- package/dist/validators/referenced-path-missing.d.ts.map +1 -0
- package/dist/validators/referenced-path-missing.js +358 -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/walk-link-graph.d.ts +23 -1
- package/dist/walk-link-graph.d.ts.map +1 -1
- package/dist/walk-link-graph.js +11 -1
- package/dist/walk-link-graph.js.map +1 -1
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -11,12 +11,13 @@ export { applyFilesConfig, collectPreBuildGlobFindings, droppedGlobMatchesToIssu
|
|
|
11
11
|
export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, type AgentSkillFrontmatter, type VATAgentSkillFrontmatter, } from './schemas/agent-skill-frontmatter.js';
|
|
12
12
|
export { MarketplaceManifestJsonSchema, MarketplaceManifestSchema, type MarketplaceManifest } from './schemas/marketplace-manifest.js';
|
|
13
13
|
export { parseFrontmatter, type FrontmatterResult, } from './parsers/frontmatter-parser.js';
|
|
14
|
-
export { readDeclaredSkillName } from './skill-identity.js';
|
|
14
|
+
export { declaredSkillNameIn, readDeclaredSkillName } from './skill-identity.js';
|
|
15
15
|
export { type AnchorRootOptions, resolveAnchorRoot } from './validators/anchor-root.js';
|
|
16
16
|
export { generateFixSuggestion } from './validators/validation-utils.js';
|
|
17
17
|
export { detectKebabCaseViolation, type KebabCaseSurface } from './validators/kebab-case-detection.js';
|
|
18
18
|
export { detectMissingRecommendedFields } from './validators/plugin-recommended-fields.js';
|
|
19
19
|
export { detectPackagedAgentInstructionFiles } from './validators/agent-instruction-presence.js';
|
|
20
|
+
export { API_SKILL_MAX_UPLOAD_BYTES, describeOversizeBundle, formatBytes, NEVER_UPLOADED_DIR_NAMES, type SizedFile, } from './validators/packaged-size-limit.js';
|
|
20
21
|
export { materializeIssue, type MaterializeOpts } from './validators/rule-engine/index.js';
|
|
21
22
|
export { detectHostedIncompatibleShape } from './validators/plugin-hosted-shape.js';
|
|
22
23
|
export { deriveObservations, observationToIssue, runCompatDetectors, type DetectorOutput, } from './validators/compat-detectors.js';
|
|
@@ -24,7 +25,8 @@ export { validateMarketplace } from './validators/marketplace-validator.js';
|
|
|
24
25
|
export { validateSkill } from './validators/skill-validator.js';
|
|
25
26
|
export { validate, type UnifiedValidateOptions } from './validators/unified-validator.js';
|
|
26
27
|
export { detectResourceFormat, enumerateSurfaces } from './validators/format-detection.js';
|
|
27
|
-
export { activeErrorsOf, activeWarningsOf, crawlAndResolveRegistry, resetPackagingRegistryCache, validateSkillForPackaging, type CrawlRegistryOptions, type ExcludedReferenceDetail, type PackagingValidationResult, type SkillPackagingConfig, type SkillValidationSharedContext, } from './validators/packaging-validator.js';
|
|
28
|
+
export { activeErrorsOf, activeWarningsOf, crawlAndResolveRegistry, resetPackagingRegistryCache, validateSkillForPackaging, type CrawlRegistryOptions, type ExcludedReferenceDetail, type PackagingValidationResult, type SkillPackagingConfig, type SkillValidationSharedContext, collectNonPortableAssetReferenceIssues, collectNonPortableCommandIssues, } from './validators/packaging-validator.js';
|
|
29
|
+
export { collectUnqualifiedMcpToolIssues } from './validators/mcp-tool-qualification.js';
|
|
28
30
|
export { AGENT_INSTRUCTION_FILE_PATTERNS, createIssue, isAgentInstructionBasename, isNavigationBasename, isNeverPackagedBasename, NAVIGATION_FILE_PATTERNS, NEVER_PACKAGE_IN_SKILL_BUNDLE, toAnyDepthGlobs, VALIDATION_RULES, VALIDATION_THRESHOLDS, type RuleCategory, type ValidationRule, type ValidationRuleCode, } from './validators/validation-rules.js';
|
|
29
31
|
export type { ValidationResult, ValidateOptions, ResourceFormat, Surface, } from './validators/types.js';
|
|
30
32
|
export { importSkillToAgent, type ImportOptions, type ImportResult, } from './import.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,iBAAiB,EACjB,oCAAoC,EACpC,8BAA8B,EAC9B,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAEvI,OAAO,EACL,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,iBAAiB,EACjB,oCAAoC,EACpC,8BAA8B,EAC9B,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAEvI,OAAO,EACL,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACvG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,mCAAmC,EAAE,MAAM,4CAA4C,CAAC;AACjG,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,WAAW,EAKX,wBAAwB,EACxB,KAAK,SAAS,GACf,MAAM,qCAAqC,CAAC;AAK7C,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,sCAAsC,EACtC,+BAA+B,GAChC,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EACL,+BAA+B,EAC/B,WAAW,EACX,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAC5G,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxF,YAAY,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,oBAAoB,EACpB,MAAM,EACN,UAAU,IAAI,mBAAmB,EACjC,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,iCAAiC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,12 +16,18 @@ export { applyFilesConfig, collectPreBuildGlobFindings, droppedGlobMatchesToIssu
|
|
|
16
16
|
export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, } from './schemas/agent-skill-frontmatter.js';
|
|
17
17
|
export { MarketplaceManifestJsonSchema, MarketplaceManifestSchema } from './schemas/marketplace-manifest.js';
|
|
18
18
|
export { parseFrontmatter, } from './parsers/frontmatter-parser.js';
|
|
19
|
-
export { readDeclaredSkillName } from './skill-identity.js';
|
|
19
|
+
export { declaredSkillNameIn, readDeclaredSkillName } from './skill-identity.js';
|
|
20
20
|
export { resolveAnchorRoot } from './validators/anchor-root.js';
|
|
21
21
|
export { generateFixSuggestion } from './validators/validation-utils.js';
|
|
22
22
|
export { detectKebabCaseViolation } from './validators/kebab-case-detection.js';
|
|
23
23
|
export { detectMissingRecommendedFields } from './validators/plugin-recommended-fields.js';
|
|
24
24
|
export { detectPackagedAgentInstructionFiles } from './validators/agent-instruction-presence.js';
|
|
25
|
+
export { API_SKILL_MAX_UPLOAD_BYTES, describeOversizeBundle, formatBytes,
|
|
26
|
+
// The uploader applies this same set, so both lanes weigh and send the same
|
|
27
|
+
// file set. It lived here and as a matching literal in the CLI's uploader,
|
|
28
|
+
// agreeing only by coincidence — which is the drift the constant's own doc
|
|
29
|
+
// comment exists to prevent.
|
|
30
|
+
NEVER_UPLOADED_DIR_NAMES, } from './validators/packaged-size-limit.js';
|
|
25
31
|
// The single construction site for a coded finding. Exported so a CLI lane that
|
|
26
32
|
// discovers a finding of its own builds it from CODE_REGISTRY like every other
|
|
27
33
|
// producer — a hand-rolled `{severity, code, message, fix, reference}` literal is
|
|
@@ -33,7 +39,8 @@ export { validateMarketplace } from './validators/marketplace-validator.js';
|
|
|
33
39
|
export { validateSkill } from './validators/skill-validator.js';
|
|
34
40
|
export { validate } from './validators/unified-validator.js';
|
|
35
41
|
export { detectResourceFormat, enumerateSurfaces } from './validators/format-detection.js';
|
|
36
|
-
export { activeErrorsOf, activeWarningsOf, crawlAndResolveRegistry, resetPackagingRegistryCache, validateSkillForPackaging, } from './validators/packaging-validator.js';
|
|
42
|
+
export { activeErrorsOf, activeWarningsOf, crawlAndResolveRegistry, resetPackagingRegistryCache, validateSkillForPackaging, collectNonPortableAssetReferenceIssues, collectNonPortableCommandIssues, } from './validators/packaging-validator.js';
|
|
43
|
+
export { collectUnqualifiedMcpToolIssues } from './validators/mcp-tool-qualification.js';
|
|
37
44
|
export { AGENT_INSTRUCTION_FILE_PATTERNS, createIssue, isAgentInstructionBasename, isNavigationBasename, isNeverPackagedBasename, NAVIGATION_FILE_PATTERNS, NEVER_PACKAGE_IN_SKILL_BUNDLE, toAnyDepthGlobs, VALIDATION_RULES, VALIDATION_THRESHOLDS, } from './validators/validation-rules.js';
|
|
38
45
|
export { importSkillToAgent, } from './import.js';
|
|
39
46
|
// Skill source primitives
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,GAQlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,GAMd,MAAM,sBAAsB,CAAC;AAE9B,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,yCAAyC;AACzC,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,iBAAiB,EACjB,oCAAoC,EACpC,8BAA8B,EAC9B,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,GAO3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,GAG/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAA4B,MAAM,mCAAmC,CAAC;AAEvI,OAAO,EACL,gBAAgB,GAEjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,35 @@ import { type ValidationIssue } from '@vibe-agent-toolkit/schema';
|
|
|
31
31
|
* `./x` or with backslashes still matches.
|
|
32
32
|
*/
|
|
33
33
|
export declare function checkUnreferencedFiles(outputDir: string, filesConfigDests?: readonly string[]): Promise<ValidationIssue[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Check that every bundled-subdirectory path the packaged docs NAME is present in
|
|
36
|
+
* the packaged output — the inverse of {@link checkUnreferencedFiles}.
|
|
37
|
+
*
|
|
38
|
+
* Markdown links are deliberately out of scope here; {@link checkBrokenPackagedLinks}
|
|
39
|
+
* already covers a link with a missing target, at error severity. This lane sees
|
|
40
|
+
* only the bare tokens the markdown AST did not claim — a path inside a code
|
|
41
|
+
* block, a code span, or prose — which is the population nothing else can reach.
|
|
42
|
+
*
|
|
43
|
+
* See `validators/referenced-path-missing.ts` for the measured precision argument
|
|
44
|
+
* behind each filter, and for why this is a warning rather than an error.
|
|
45
|
+
*
|
|
46
|
+
* SKILL-LOCAL, and there is nothing wider to be local to. `detectMissingReferencedPaths`
|
|
47
|
+
* once took a `siblingSearchRoot` that measured better (1.9% vs 3.8% on a 52-skill
|
|
48
|
+
* corpus) and had no caller able to supply one — the packager knows its own output
|
|
49
|
+
* directory, not the plugin the skill will be installed into. That parameter and its
|
|
50
|
+
* ~90-line walk are now deleted rather than kept as a seam; the shipped rate is 3.8%.
|
|
51
|
+
*
|
|
52
|
+
* ⚠️ This walk has NO exclusions, unlike `checkPackagedSizeLimit`'s, and the two are
|
|
53
|
+
* asking different questions rather than disagreeing. The size check asks what the
|
|
54
|
+
* Skills API will WEIGH, so it drops `evals/`, `node_modules/` and `.git/` because the
|
|
55
|
+
* uploader does. This one asks whether the packaged BUNDLE is self-consistent, and the
|
|
56
|
+
* bundle is what installs as a Claude Code plugin — `evals/` and all. A `.md` inside a
|
|
57
|
+
* bundled `evals/` really is shipped to a plugin user, so a path it names really is
|
|
58
|
+
* missing from what they get.
|
|
59
|
+
*
|
|
60
|
+
* @param outputDir Absolute path to the packaged skill output.
|
|
61
|
+
*/
|
|
62
|
+
export declare function checkMissingReferencedPaths(outputDir: string): Promise<ValidationIssue[]>;
|
|
34
63
|
/**
|
|
35
64
|
* Check that every local file link in packaged markdown and HTML files resolves to a file
|
|
36
65
|
* that exists in the packaged output.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-build-checks.d.ts","sourceRoot":"","sources":["../src/post-build-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"post-build-checks.d.ts","sourceRoot":"","sources":["../src/post-build-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAiSlE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,gBAAgB,GAAE,SAAS,MAAM,EAAO,GACvC,OAAO,CAAC,eAAe,EAAE,CAAC,CAuC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAG/F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,SAAS,MAAM,EAAO,GACnC,OAAO,CAAC,eAAe,EAAE,CAAC,CAgB5B"}
|
|
@@ -10,13 +10,24 @@ import { dirname } from 'node:path';
|
|
|
10
10
|
import { parseFileCached } from '@vibe-agent-toolkit/resources';
|
|
11
11
|
import { safePath, toForwardSlash } from '@vibe-agent-toolkit/utils';
|
|
12
12
|
import { normalizeRelPath } from './files-config.js';
|
|
13
|
+
import { detectMissingReferencedPaths } from './validators/referenced-path-missing.js';
|
|
13
14
|
import { evaluate, makeRuleContext, materializeIssue } from './validators/rule-engine/index.js';
|
|
14
15
|
/**
|
|
15
16
|
* Regex matching markdown inline links: [text](href).
|
|
16
|
-
*
|
|
17
|
+
*
|
|
18
|
+
* The negated character classes were once documented here as "non-backtracking
|
|
19
|
+
* by design". That was wrong, and it is why this regex sat quadratic behind a
|
|
20
|
+
* disable comment for so long: they backtrack, each step just fails fast — and
|
|
21
|
+
* the cost was never inside one match attempt, it was the scan RESTARTING at
|
|
22
|
+
* every bracket of a run. See the note on the lookbehind below.
|
|
17
23
|
*/
|
|
18
|
-
//
|
|
19
|
-
|
|
24
|
+
// The `(?<!\[)` is load-bearing, not cosmetic. Without it a run of `[` with no
|
|
25
|
+
// closing bracket makes the engine restart the `[^\]]*` scan at EVERY bracket,
|
|
26
|
+
// which is quadratic: measured 2,632 ms on 40k brackets. Because any match
|
|
27
|
+
// starting at the second `[` of a run is also matchable from the first (the
|
|
28
|
+
// negated class admits `[`), skipping non-initial brackets loses no match and
|
|
29
|
+
// makes the scan linear — the same input drops to 0.1 ms.
|
|
30
|
+
const INLINE_LINK_REGEX = /(?<!\[)\[(?:[^\]\\]|\\.)*\]\(([^)]*)\)/g;
|
|
20
31
|
/**
|
|
21
32
|
* Regex matching fenced code blocks (``` ... ```), including optional language hint.
|
|
22
33
|
* Non-greedy body keeps matches scoped to a single block.
|
|
@@ -307,6 +318,38 @@ export async function checkUnreferencedFiles(outputDir, filesConfigDests = []) {
|
|
|
307
318
|
}
|
|
308
319
|
return issues;
|
|
309
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* Check that every bundled-subdirectory path the packaged docs NAME is present in
|
|
323
|
+
* the packaged output — the inverse of {@link checkUnreferencedFiles}.
|
|
324
|
+
*
|
|
325
|
+
* Markdown links are deliberately out of scope here; {@link checkBrokenPackagedLinks}
|
|
326
|
+
* already covers a link with a missing target, at error severity. This lane sees
|
|
327
|
+
* only the bare tokens the markdown AST did not claim — a path inside a code
|
|
328
|
+
* block, a code span, or prose — which is the population nothing else can reach.
|
|
329
|
+
*
|
|
330
|
+
* See `validators/referenced-path-missing.ts` for the measured precision argument
|
|
331
|
+
* behind each filter, and for why this is a warning rather than an error.
|
|
332
|
+
*
|
|
333
|
+
* SKILL-LOCAL, and there is nothing wider to be local to. `detectMissingReferencedPaths`
|
|
334
|
+
* once took a `siblingSearchRoot` that measured better (1.9% vs 3.8% on a 52-skill
|
|
335
|
+
* corpus) and had no caller able to supply one — the packager knows its own output
|
|
336
|
+
* directory, not the plugin the skill will be installed into. That parameter and its
|
|
337
|
+
* ~90-line walk are now deleted rather than kept as a seam; the shipped rate is 3.8%.
|
|
338
|
+
*
|
|
339
|
+
* ⚠️ This walk has NO exclusions, unlike `checkPackagedSizeLimit`'s, and the two are
|
|
340
|
+
* asking different questions rather than disagreeing. The size check asks what the
|
|
341
|
+
* Skills API will WEIGH, so it drops `evals/`, `node_modules/` and `.git/` because the
|
|
342
|
+
* uploader does. This one asks whether the packaged BUNDLE is self-consistent, and the
|
|
343
|
+
* bundle is what installs as a Claude Code plugin — `evals/` and all. A `.md` inside a
|
|
344
|
+
* bundled `evals/` really is shipped to a plugin user, so a path it names really is
|
|
345
|
+
* missing from what they get.
|
|
346
|
+
*
|
|
347
|
+
* @param outputDir Absolute path to the packaged skill output.
|
|
348
|
+
*/
|
|
349
|
+
export async function checkMissingReferencedPaths(outputDir) {
|
|
350
|
+
const docFiles = walkDir(outputDir).filter(f => f.endsWith('.md'));
|
|
351
|
+
return detectMissingReferencedPaths(docFiles, outputDir);
|
|
352
|
+
}
|
|
310
353
|
/**
|
|
311
354
|
* Check that every local file link in packaged markdown and HTML files resolves to a file
|
|
312
355
|
* that exists in the packaged output.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-build-checks.js","sourceRoot":"","sources":["../src/post-build-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAEhG
|
|
1
|
+
{"version":3,"file":"post-build-checks.js","sourceRoot":"","sources":["../src/post-build-checks.ts"],"names":[],"mappings":"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"}
|
package/dist/skill-identity.d.ts
CHANGED
|
@@ -18,4 +18,14 @@
|
|
|
18
18
|
* some fallback (typically the directory leaf) applies.
|
|
19
19
|
*/
|
|
20
20
|
export declare function readDeclaredSkillName(skillMdPath: string): string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* The same answer, for a SKILL.md whose BYTES a caller already holds and whose
|
|
23
|
+
* path may not exist on disk at all — an entry read out of a ZIP's central
|
|
24
|
+
* directory being the case this was split out for.
|
|
25
|
+
*
|
|
26
|
+
* Deliberately the same function as the path-taking reader above rather than a
|
|
27
|
+
* second parse beside it: two spellings of "what name does this declare" is
|
|
28
|
+
* exactly how one lane starts answering differently from another.
|
|
29
|
+
*/
|
|
30
|
+
export declare function declaredSkillNameIn(content: string): string | undefined;
|
|
21
31
|
//# sourceMappingURL=skill-identity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-identity.d.ts","sourceRoot":"","sources":["../src/skill-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"skill-identity.d.ts","sourceRoot":"","sources":["../src/skill-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASvE"}
|
package/dist/skill-identity.js
CHANGED
|
@@ -28,6 +28,18 @@ export function readDeclaredSkillName(skillMdPath) {
|
|
|
28
28
|
catch {
|
|
29
29
|
return undefined;
|
|
30
30
|
}
|
|
31
|
+
return declaredSkillNameIn(content);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The same answer, for a SKILL.md whose BYTES a caller already holds and whose
|
|
35
|
+
* path may not exist on disk at all — an entry read out of a ZIP's central
|
|
36
|
+
* directory being the case this was split out for.
|
|
37
|
+
*
|
|
38
|
+
* Deliberately the same function as the path-taking reader above rather than a
|
|
39
|
+
* second parse beside it: two spellings of "what name does this declare" is
|
|
40
|
+
* exactly how one lane starts answering differently from another.
|
|
41
|
+
*/
|
|
42
|
+
export function declaredSkillNameIn(content) {
|
|
31
43
|
const parsed = parseFrontmatter(content);
|
|
32
44
|
if (!parsed.success)
|
|
33
45
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-identity.js","sourceRoot":"","sources":["../src/skill-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,iGAAiG;QACjG,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-identity.js","sourceRoot":"","sources":["../src/skill-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,iGAAiG;QACjG,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAEtC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEnD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-packager.d.ts","sourceRoot":"","sources":["../src/skill-packager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAGL,gBAAgB,EAYhB,KAAK,wBAAwB,EAE9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAIL,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AASpC,OAAO,EACL,KAAK,UAAU,EAChB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EAIvB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-packager.d.ts","sourceRoot":"","sources":["../src/skill-packager.ts"],"names":[],"mappings":"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"}
|
package/dist/skill-packager.js
CHANGED
|
@@ -23,9 +23,10 @@ import { findProjectRoot, isGlob, issueLocation, resolveAssetReference, toForwar
|
|
|
23
23
|
import { CLAUDE_WEB_REFERENCES_SUBDIR, getTargetSubdir } from './content-type-routing.js';
|
|
24
24
|
import { applyFilesConfig, buildArtifactHint, droppedGlobMatchesToIssues, explicitFilesConfigDests, globEntryDest, skippedGlobMatchesToIssues, } from './files-config.js';
|
|
25
25
|
import { READ_REMEDY, withFsAttribution } from './fs-attribution.js';
|
|
26
|
-
import { checkBrokenPackagedLinks, checkUnreferencedFiles } from './post-build-checks.js';
|
|
26
|
+
import { checkBrokenPackagedLinks, checkMissingReferencedPaths, checkUnreferencedFiles } from './post-build-checks.js';
|
|
27
27
|
import { checkPackagedTestInput, partitionTestInputFileEntries, resolveTestInputDirs, testInputExcludeRules, testInputFileEntryIssues, testInputLinkIssues, } from './test-input.js';
|
|
28
28
|
import { detectPackagedAgentInstructionFiles } from './validators/agent-instruction-presence.js';
|
|
29
|
+
import { checkPackagedSizeLimit } from './validators/packaged-size-limit.js';
|
|
29
30
|
import { validateSkillForPackaging } from './validators/packaging-validator.js';
|
|
30
31
|
import { materializeIssue } from './validators/rule-engine/index.js';
|
|
31
32
|
import { deferredAssetsToIssues, walkerExclusionsToIssues } from './validators/walker-to-issues.js';
|
|
@@ -461,6 +462,30 @@ export async function packageSkill(skillPath, options = {}) {
|
|
|
461
462
|
...collisionIssues,
|
|
462
463
|
...await checkUnreferencedFiles(outputPath, filesConfigDests),
|
|
463
464
|
...await checkBrokenPackagedLinks(outputPath, droppedGlobDests),
|
|
465
|
+
// The inverse of checkUnreferencedFiles: paths the docs NAME that the bundle
|
|
466
|
+
// does not contain. Built phase only — a `files:` dest exists here and not in
|
|
467
|
+
// the source tree, so the same check at source phase flags every injected
|
|
468
|
+
// script.
|
|
469
|
+
//
|
|
470
|
+
// SKILL-LOCAL, and this is the ONLY caller. The packager knows its own output
|
|
471
|
+
// directory, not the plugin the skill will be installed into, so there is no
|
|
472
|
+
// wider root to give it — the sibling-search parameter that measured 1.9%
|
|
473
|
+
// instead of 3.8% was deleted for having no caller. The shipped rate is 3.8%.
|
|
474
|
+
...await checkMissingReferencedPaths(outputPath),
|
|
475
|
+
// The only byte measurement in the pipeline. Built phase for the same reason
|
|
476
|
+
// as its neighbour above: a `files:` entry materializes files here that the
|
|
477
|
+
// source tree does not have, so the bytes that ship are only knowable now.
|
|
478
|
+
//
|
|
479
|
+
// ⚠️ Runs before step 14, so it does not weigh what `generatePackageArtifacts`
|
|
480
|
+
// adds. Measured, so the residue is not a guess: the `zip` and `npm` formats
|
|
481
|
+
// write to `<outputPath>.zip` / `.tgz`, OUTSIDE the bundle and outside the
|
|
482
|
+
// upload; only the `npm` format's synthetic package.json and the `marketplace`
|
|
483
|
+
// format's manifest land inside, and both are a few hundred bytes. The order
|
|
484
|
+
// is not free to change — checkUnreferencedFiles two lines up would flag that
|
|
485
|
+
// same synthetic package.json — so the under-count is stated rather than
|
|
486
|
+
// fixed. If an artifact step ever writes something LARGE into outputPath, this
|
|
487
|
+
// call has to move after it and the framework run with it.
|
|
488
|
+
...checkPackagedSizeLimit(outputPath),
|
|
464
489
|
// A receipt for every file a glob matched and the never-package list refused.
|
|
465
490
|
// Reported as an issue, not written to stderr: a file vanishing from a bundle
|
|
466
491
|
// has to be visible in `issueCounts`, or CI reads a clean report for a build
|
|
@@ -572,6 +597,50 @@ function withRunAllowUnused(framework, ledger) {
|
|
|
572
597
|
* future forward here would be a no-op that warns, not a corrupted extent key.
|
|
573
598
|
* What it would still NOT be is a speed-up, which is why nothing is forwarded:
|
|
574
599
|
* the built tree is a different tree, so there is no stored answer for it to hit.
|
|
600
|
+
*
|
|
601
|
+
* ## 🚨 This lane's link graph is EMPTY — and that is the NORMAL case
|
|
602
|
+
*
|
|
603
|
+
* Measured 2026-08 on a probe fixture (one skill, one `reference.md` reachable by
|
|
604
|
+
* a single relative link from `SKILL.md`), run three ways with ONE variable —
|
|
605
|
+
* where the packaged output lands:
|
|
606
|
+
*
|
|
607
|
+
* | lane | output location | `fileCount` | `directFileCount` | `maxLinkDepth` | `totalLines` |
|
|
608
|
+
* |---|---|---:|---:|---:|---:|
|
|
609
|
+
* | source | n/a | 2 | 1 | 1 | 13 |
|
|
610
|
+
* | built | INSIDE the project (`<root>/dist/skills/<name>/`) | **1** | **0** | **0** | **10** |
|
|
611
|
+
* | built | outside any project root (control) | 2 | 1 | 1 | 14 |
|
|
612
|
+
*
|
|
613
|
+
* The middle row is the defect; the third row PROVES the cause — the only
|
|
614
|
+
* difference between them is whether the output falls under the crawl's
|
|
615
|
+
* `**\/dist\/**` exclusion (`BUILD_OUTPUT_GLOBS`). `packageSkill`'s default output
|
|
616
|
+
* IS the middle row, so this is the normal case, not an edge case. The result's
|
|
617
|
+
* own `files.dependencies` still reads `["reference.md"]`: the packager copied it,
|
|
618
|
+
* and the validator invoked here — immediately afterwards — cannot see it.
|
|
619
|
+
*
|
|
620
|
+
* ⚠️ It is not only a metrics hole. `collectNonPortableAssetReferenceIssues` and
|
|
621
|
+
* `collectNonPortableCommandIssues` iterate `bundledFiles`, so in the built lane
|
|
622
|
+
* they never open a single bundled reference file. A non-portable
|
|
623
|
+
* `${CLAUDE_PLUGIN_ROOT}` invocation inside a bundled reference is caught at
|
|
624
|
+
* source and CANNOT be caught in the built artifact.
|
|
625
|
+
*
|
|
626
|
+
* 🔑 Measured vs inferred. The three rows are MEASURED (2026-08, that probe).
|
|
627
|
+
* That the finding is still LIVE is inferred from this function's own body: it
|
|
628
|
+
* passes only the built `SKILL.md` path, with no registry and no population
|
|
629
|
+
* source rooted at the output tree, so `validateSkillForPackaging` resolves
|
|
630
|
+
* `findProjectRoot` back to the SOURCE project and crawls it under the default
|
|
631
|
+
* exclude — the built tree is never enumerated, `getResource` misses, and the
|
|
632
|
+
* walk starts from nothing. The probe is no longer only a probe: it is pinned as
|
|
633
|
+
* a committed regression test at
|
|
634
|
+
* `packages/cli/test/integration/built-lane-link-graph.integration.test.ts`
|
|
635
|
+
* (fixture `BUNDLING_SKILL_FILES`), asserting the middle row as today's
|
|
636
|
+
* behaviour. When this is fixed, those assertions flip in the fixing change.
|
|
637
|
+
*
|
|
638
|
+
* ⛔ Do NOT fix it by widening the crawl. That same `**\/dist\/**` exclusion is
|
|
639
|
+
* the stated correctness proof for `crawlAndResolveRegistry`'s process-lifetime
|
|
640
|
+
* memo, which the audit lane, the validate lane AND this lane all share — see the
|
|
641
|
+
* comment on `walkRegistryCache` in `validators/packaging-validator.ts`. Widening
|
|
642
|
+
* it retracts that argument for every lane sharing the memo; this is not a
|
|
643
|
+
* one-lane fix.
|
|
575
644
|
*/
|
|
576
645
|
async function runPostBuildValidation(outputPath, validation, allowLedger) {
|
|
577
646
|
const builtSkillPath = safePath.join(outputPath, 'SKILL.md');
|