@vibe-agent-toolkit/agent-skills 0.1.34-rc.2 → 0.1.35
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 +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/inventory/detectors/declared-but-missing.d.ts +11 -0
- package/dist/inventory/detectors/declared-but-missing.d.ts.map +1 -0
- package/dist/inventory/detectors/declared-but-missing.js +37 -0
- package/dist/inventory/detectors/declared-but-missing.js.map +1 -0
- package/dist/inventory/detectors/index.d.ts +5 -0
- package/dist/inventory/detectors/index.d.ts.map +1 -0
- package/dist/inventory/detectors/index.js +5 -0
- package/dist/inventory/detectors/index.js.map +1 -0
- package/dist/inventory/detectors/marketplace-source-missing.d.ts +12 -0
- package/dist/inventory/detectors/marketplace-source-missing.d.ts.map +1 -0
- package/dist/inventory/detectors/marketplace-source-missing.js +20 -0
- package/dist/inventory/detectors/marketplace-source-missing.js.map +1 -0
- package/dist/inventory/detectors/present-but-undeclared.d.ts +13 -0
- package/dist/inventory/detectors/present-but-undeclared.d.ts.map +1 -0
- package/dist/inventory/detectors/present-but-undeclared.js +47 -0
- package/dist/inventory/detectors/present-but-undeclared.js.map +1 -0
- package/dist/inventory/detectors/reference-target-missing.d.ts +11 -0
- package/dist/inventory/detectors/reference-target-missing.d.ts.map +1 -0
- package/dist/inventory/detectors/reference-target-missing.js +19 -0
- package/dist/inventory/detectors/reference-target-missing.js.map +1 -0
- package/dist/inventory/index.d.ts +5 -0
- package/dist/inventory/index.d.ts.map +1 -0
- package/dist/inventory/index.js +4 -0
- package/dist/inventory/index.js.map +1 -0
- package/dist/inventory/serialize.d.ts +24 -0
- package/dist/inventory/serialize.d.ts.map +1 -0
- package/dist/inventory/serialize.js +52 -0
- package/dist/inventory/serialize.js.map +1 -0
- package/dist/inventory/types.d.ts +126 -0
- package/dist/inventory/types.d.ts.map +1 -0
- package/dist/inventory/types.js +16 -0
- package/dist/inventory/types.js.map +1 -0
- package/dist/schemas/index.d.ts +0 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +0 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/validators/bundled-resource-link-detection.d.ts +20 -0
- package/dist/validators/bundled-resource-link-detection.d.ts.map +1 -0
- package/dist/validators/bundled-resource-link-detection.js +92 -0
- package/dist/validators/bundled-resource-link-detection.js.map +1 -0
- package/dist/validators/code-registry.d.ts +1 -1
- package/dist/validators/code-registry.d.ts.map +1 -1
- package/dist/validators/code-registry.js +11 -0
- package/dist/validators/code-registry.js.map +1 -1
- package/dist/validators/imperative-body-detection.d.ts +15 -0
- package/dist/validators/imperative-body-detection.d.ts.map +1 -0
- package/dist/validators/imperative-body-detection.js +49 -0
- package/dist/validators/imperative-body-detection.js.map +1 -0
- package/dist/validators/index.d.ts +4 -2
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +3 -1
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/kebab-case-detection.d.ts +22 -0
- package/dist/validators/kebab-case-detection.d.ts.map +1 -0
- package/dist/validators/kebab-case-detection.js +43 -0
- package/dist/validators/kebab-case-detection.js.map +1 -0
- package/dist/validators/packaging-validator.d.ts +9 -0
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js +4 -1
- package/dist/validators/packaging-validator.js.map +1 -1
- package/dist/validators/plugin-recommended-fields.d.ts +26 -0
- package/dist/validators/plugin-recommended-fields.d.ts.map +1 -0
- package/dist/validators/plugin-recommended-fields.js +66 -0
- package/dist/validators/plugin-recommended-fields.js.map +1 -0
- package/dist/validators/skill-validator.d.ts.map +1 -1
- package/dist/validators/skill-validator.js +20 -4
- package/dist/validators/skill-validator.js.map +1 -1
- package/dist/validators/unified-validator.d.ts +9 -4
- package/dist/validators/unified-validator.d.ts.map +1 -1
- package/dist/validators/unified-validator.js +19 -6
- package/dist/validators/unified-validator.js.map +1 -1
- package/package.json +5 -5
- package/dist/schemas/claude-plugin.d.ts +0 -98
- package/dist/schemas/claude-plugin.d.ts.map +0 -1
- package/dist/schemas/claude-plugin.js +0 -79
- package/dist/schemas/claude-plugin.js.map +0 -1
- package/dist/validators/plugin-validator.d.ts +0 -12
- package/dist/validators/plugin-validator.d.ts.map +0 -1
- package/dist/validators/plugin-validator.js +0 -210
- package/dist/validators/plugin-validator.js.map +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled-resource link detector.
|
|
3
|
+
*
|
|
4
|
+
* Emits SKILL_REFERENCES_BUT_NO_LINKS at info severity when a skill
|
|
5
|
+
* directory contains scripts/, references/, or assets/ subdirectories
|
|
6
|
+
* but neither SKILL.md's body nor any transitively linked file points
|
|
7
|
+
* into them via a markdown link.
|
|
8
|
+
*
|
|
9
|
+
* Plugin-dev's "Mistake 4: Missing Resource References" — bundled assets
|
|
10
|
+
* the body never links to are dead weight in the install. The author
|
|
11
|
+
* intended progressive disclosure but forgot to wire up the references.
|
|
12
|
+
*/
|
|
13
|
+
import type { ValidationIssue } from './types.js';
|
|
14
|
+
/**
|
|
15
|
+
* @param skillPath Absolute path to SKILL.md
|
|
16
|
+
* @param skillDir Absolute path to the skill directory (typically dirname(skillPath))
|
|
17
|
+
* @param linkedFiles Absolute paths of files reached during BFS link traversal
|
|
18
|
+
*/
|
|
19
|
+
export declare function detectBundledResourceWithoutLinks(skillPath: string, skillDir: string, linkedFiles: readonly string[]): ValidationIssue[];
|
|
20
|
+
//# sourceMappingURL=bundled-resource-link-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-resource-link-detection.d.ts","sourceRoot":"","sources":["../../src/validators/bundled-resource-link-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAoDlD;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,eAAe,EAAE,CAuBnB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled-resource link detector.
|
|
3
|
+
*
|
|
4
|
+
* Emits SKILL_REFERENCES_BUT_NO_LINKS at info severity when a skill
|
|
5
|
+
* directory contains scripts/, references/, or assets/ subdirectories
|
|
6
|
+
* but neither SKILL.md's body nor any transitively linked file points
|
|
7
|
+
* into them via a markdown link.
|
|
8
|
+
*
|
|
9
|
+
* Plugin-dev's "Mistake 4: Missing Resource References" — bundled assets
|
|
10
|
+
* the body never links to are dead weight in the install. The author
|
|
11
|
+
* intended progressive disclosure but forgot to wire up the references.
|
|
12
|
+
*/
|
|
13
|
+
/* eslint-disable security/detect-non-literal-fs-filename -- skill paths validated upstream */
|
|
14
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
15
|
+
import { dirname } from 'node:path';
|
|
16
|
+
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
17
|
+
import { CODE_REGISTRY } from './code-registry.js';
|
|
18
|
+
const BUNDLED_SUBDIRS = ['scripts', 'references', 'assets'];
|
|
19
|
+
/** Read SKILL.md content (best-effort) — empty string if unreadable. */
|
|
20
|
+
function readSkillContent(skillPath) {
|
|
21
|
+
try {
|
|
22
|
+
return readFileSync(skillPath, 'utf-8');
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** Subdirectory exists AND contains at least one file (recursive). */
|
|
29
|
+
function isNonEmptyDir(dir) {
|
|
30
|
+
if (!existsSync(dir))
|
|
31
|
+
return false;
|
|
32
|
+
try {
|
|
33
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
34
|
+
for (const entry of entries) {
|
|
35
|
+
if (entry.isFile())
|
|
36
|
+
return true;
|
|
37
|
+
if (entry.isDirectory() && isNonEmptyDir(safePath.join(dir, entry.name))) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
/** Body or linked file references the subdir via path containing `<sub>/`. */
|
|
48
|
+
function bodyMentionsSubdir(body, sub) {
|
|
49
|
+
// Lightweight check: the sub-dir name occurs as part of a markdown
|
|
50
|
+
// path, e.g. `(scripts/cli.mjs)` or `[x](references/detail.md)`. We
|
|
51
|
+
// accept any occurrence of `<sub>/` since false negatives (a real
|
|
52
|
+
// link the heuristic misses) are worse than false positives at info.
|
|
53
|
+
return body.includes(`${sub}/`);
|
|
54
|
+
}
|
|
55
|
+
/** Linked file path is inside the subdir. */
|
|
56
|
+
function linkedFilesCoverSubdir(linkedFiles, skillDir, sub) {
|
|
57
|
+
const subDir = safePath.join(skillDir, sub);
|
|
58
|
+
return linkedFiles.some((f) => {
|
|
59
|
+
const rel = safePath.relative(subDir, f);
|
|
60
|
+
return !rel.startsWith('..') && rel.length > 0;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @param skillPath Absolute path to SKILL.md
|
|
65
|
+
* @param skillDir Absolute path to the skill directory (typically dirname(skillPath))
|
|
66
|
+
* @param linkedFiles Absolute paths of files reached during BFS link traversal
|
|
67
|
+
*/
|
|
68
|
+
export function detectBundledResourceWithoutLinks(skillPath, skillDir, linkedFiles) {
|
|
69
|
+
const issues = [];
|
|
70
|
+
const body = readSkillContent(skillPath);
|
|
71
|
+
const baseDir = skillDir.length > 0 ? skillDir : dirname(skillPath);
|
|
72
|
+
for (const sub of BUNDLED_SUBDIRS) {
|
|
73
|
+
const subPath = safePath.join(baseDir, sub);
|
|
74
|
+
if (!isNonEmptyDir(subPath))
|
|
75
|
+
continue;
|
|
76
|
+
if (bodyMentionsSubdir(body, sub))
|
|
77
|
+
continue;
|
|
78
|
+
if (linkedFilesCoverSubdir(linkedFiles, baseDir, sub))
|
|
79
|
+
continue;
|
|
80
|
+
const entry = CODE_REGISTRY.SKILL_REFERENCES_BUT_NO_LINKS;
|
|
81
|
+
issues.push({
|
|
82
|
+
severity: entry.defaultSeverity,
|
|
83
|
+
code: 'SKILL_REFERENCES_BUT_NO_LINKS',
|
|
84
|
+
message: `Skill directory contains "${sub}/" but no markdown link from SKILL.md or linked files points into it.`,
|
|
85
|
+
location: subPath,
|
|
86
|
+
fix: entry.fix,
|
|
87
|
+
reference: entry.reference,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return issues;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=bundled-resource-link-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-resource-link-detection.js","sourceRoot":"","sources":["../../src/validators/bundled-resource-link-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
export type IssueSeverity = 'error' | 'warning' | 'info' | 'ignore';
|
|
12
12
|
/** Non-ignore severities actually emitted to consumers. */
|
|
13
13
|
export type EmittedSeverity = Exclude<IssueSeverity, 'ignore'>;
|
|
14
|
-
export type IssueCode = 'LINK_OUTSIDE_PROJECT' | 'LINK_TARGETS_DIRECTORY' | 'LINK_TO_NAVIGATION_FILE' | 'LINK_TO_GITIGNORED_FILE' | 'LINK_MISSING_TARGET' | 'LINK_TO_SKILL_DEFINITION' | 'LINK_DROPPED_BY_DEPTH' | 'PACKAGED_UNREFERENCED_FILE' | 'PACKAGED_BROKEN_LINK' | 'SKILL_LENGTH_EXCEEDS_RECOMMENDED' | 'SKILL_TOTAL_SIZE_LARGE' | 'SKILL_TOO_MANY_FILES' | 'REFERENCE_TOO_DEEP' | 'DESCRIPTION_TOO_VAGUE' | 'NO_PROGRESSIVE_DISCLOSURE' | 'SKILL_DESCRIPTION_OVER_CLAUDE_CODE_LIMIT' | 'SKILL_DESCRIPTION_FILLER_OPENER' | 'SKILL_DESCRIPTION_WRONG_PERSON' | 'SKILL_CLAUDE_PLUGIN_NAME_MISMATCH' | 'SKILL_NAME_MISMATCHES_DIR' | 'RESERVED_WORD_IN_NAME' | 'SKILL_TIME_SENSITIVE_CONTENT' | 'SKILL_FRONTMATTER_EXTRA_FIELDS' | 'SKILL_CROSS_SKILL_AUTH_UNDECLARED' | 'SKILL_DESCRIPTION_STYLE_MIXED_IN_PACKAGE' | 'CAPABILITY_LOCAL_SHELL' | 'CAPABILITY_EXTERNAL_CLI' | 'CAPABILITY_BROWSER_AUTH' | 'COMPAT_TARGET_INCOMPATIBLE' | 'COMPAT_TARGET_NEEDS_REVIEW' | 'COMPAT_TARGET_UNDECLARED' | 'ALLOW_EXPIRED' | 'ALLOW_UNUSED';
|
|
14
|
+
export type IssueCode = 'LINK_OUTSIDE_PROJECT' | 'LINK_TARGETS_DIRECTORY' | 'LINK_TO_NAVIGATION_FILE' | 'LINK_TO_GITIGNORED_FILE' | 'LINK_MISSING_TARGET' | 'LINK_TO_SKILL_DEFINITION' | 'LINK_DROPPED_BY_DEPTH' | 'PACKAGED_UNREFERENCED_FILE' | 'PACKAGED_BROKEN_LINK' | 'SKILL_LENGTH_EXCEEDS_RECOMMENDED' | 'SKILL_TOTAL_SIZE_LARGE' | 'SKILL_TOO_MANY_FILES' | 'REFERENCE_TOO_DEEP' | 'DESCRIPTION_TOO_VAGUE' | 'NO_PROGRESSIVE_DISCLOSURE' | 'SKILL_DESCRIPTION_OVER_CLAUDE_CODE_LIMIT' | 'SKILL_DESCRIPTION_FILLER_OPENER' | 'SKILL_DESCRIPTION_WRONG_PERSON' | 'SKILL_CLAUDE_PLUGIN_NAME_MISMATCH' | 'SKILL_NAME_MISMATCHES_DIR' | 'RESERVED_WORD_IN_NAME' | 'SKILL_TIME_SENSITIVE_CONTENT' | 'SKILL_FRONTMATTER_EXTRA_FIELDS' | 'SKILL_CROSS_SKILL_AUTH_UNDECLARED' | 'SKILL_DESCRIPTION_STYLE_MIXED_IN_PACKAGE' | 'PLUGIN_MISSING_DESCRIPTION' | 'PLUGIN_MISSING_AUTHOR' | 'PLUGIN_MISSING_LICENSE' | 'PLUGIN_NAME_NOT_KEBAB_CASE' | 'SKILL_NAME_NOT_KEBAB_CASE' | 'SKILL_REFERENCES_BUT_NO_LINKS' | 'SKILL_BODY_NOT_IMPERATIVE' | 'CAPABILITY_LOCAL_SHELL' | 'CAPABILITY_EXTERNAL_CLI' | 'CAPABILITY_BROWSER_AUTH' | 'COMPAT_TARGET_INCOMPATIBLE' | 'COMPAT_TARGET_NEEDS_REVIEW' | 'COMPAT_TARGET_UNDECLARED' | 'ALLOW_EXPIRED' | 'ALLOW_UNUSED' | 'COMPONENT_DECLARED_BUT_MISSING' | 'COMPONENT_PRESENT_BUT_UNDECLARED' | 'REFERENCE_TARGET_MISSING' | 'MARKETPLACE_PLUGIN_SOURCE_MISSING';
|
|
15
15
|
export interface CodeRegistryEntry {
|
|
16
16
|
defaultSeverity: EmittedSeverity;
|
|
17
17
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-registry.d.ts","sourceRoot":"","sources":["../../src/validators/code-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpE,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAE/D,MAAM,MAAM,SAAS,GAEjB,sBAAsB,GACtB,wBAAwB,GACxB,yBAAyB,GACzB,yBAAyB,GACzB,qBAAqB,GACrB,0BAA0B,GAE1B,uBAAuB,GACvB,4BAA4B,GAC5B,sBAAsB,GAEtB,kCAAkC,GAClC,wBAAwB,GACxB,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,2BAA2B,GAC3B,0CAA0C,GAC1C,iCAAiC,GACjC,gCAAgC,GAChC,mCAAmC,GACnC,2BAA2B,GAC3B,uBAAuB,GACvB,8BAA8B,GAC9B,gCAAgC,GAChC,mCAAmC,GACnC,0CAA0C,GAE1C,wBAAwB,GACxB,yBAAyB,GACzB,yBAAyB,GAEzB,4BAA4B,GAC5B,4BAA4B,GAC5B,0BAA0B,GAE1B,eAAe,GACf,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"code-registry.d.ts","sourceRoot":"","sources":["../../src/validators/code-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpE,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAE/D,MAAM,MAAM,SAAS,GAEjB,sBAAsB,GACtB,wBAAwB,GACxB,yBAAyB,GACzB,yBAAyB,GACzB,qBAAqB,GACrB,0BAA0B,GAE1B,uBAAuB,GACvB,4BAA4B,GAC5B,sBAAsB,GAEtB,kCAAkC,GAClC,wBAAwB,GACxB,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,2BAA2B,GAC3B,0CAA0C,GAC1C,iCAAiC,GACjC,gCAAgC,GAChC,mCAAmC,GACnC,2BAA2B,GAC3B,uBAAuB,GACvB,8BAA8B,GAC9B,gCAAgC,GAChC,mCAAmC,GACnC,0CAA0C,GAE1C,4BAA4B,GAC5B,uBAAuB,GACvB,wBAAwB,GAExB,4BAA4B,GAC5B,2BAA2B,GAE3B,+BAA+B,GAC/B,2BAA2B,GAE3B,wBAAwB,GACxB,yBAAyB,GACzB,yBAAyB,GAEzB,4BAA4B,GAC5B,4BAA4B,GAC5B,0BAA0B,GAE1B,eAAe,GACf,cAAc,GAEd,gCAAgC,GAChC,kCAAkC,GAClC,0BAA0B,GAC1B,mCAAmC,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;CACnB;AASD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAyQ9D,CAAC"}
|
|
@@ -35,6 +35,13 @@ export const CODE_REGISTRY = {
|
|
|
35
35
|
SKILL_FRONTMATTER_EXTRA_FIELDS: entry('warning', 'SKILL.md frontmatter contains a field outside the standard agentskills.io + Claude Code key set.', 'Move custom data under `metadata.<key>`, or remove the field. Per-project config belongs in vibe-agent-toolkit.config.yaml, not SKILL.md frontmatter.', 'skill_frontmatter_extra_fields'),
|
|
36
36
|
SKILL_CROSS_SKILL_AUTH_UNDECLARED: entry('warning', 'SKILL.md body declares a dependency on a sibling skill or ANTHROPIC_*_KEY environment variable that is not mentioned in the description.', 'Name the dependency in the description (e.g. "Requires ado skill for auth" or "Requires ANTHROPIC_ADMIN_API_KEY") so agents loading the skill discover it without reading the body.', 'skill_cross_skill_auth_undeclared'),
|
|
37
37
|
SKILL_DESCRIPTION_STYLE_MIXED_IN_PACKAGE: entry('warning', 'Sibling skills in the same package use mixed YAML scalar styles for their `description` frontmatter (e.g., folded `>-` alongside inline double-quoted).', 'Pick one YAML style and apply it to every skill in the package.', 'skill_description_style_mixed_in_package'),
|
|
38
|
+
PLUGIN_MISSING_DESCRIPTION: entry('info', 'plugin.json is missing the recommended `description` field.', 'Add a "description" field to plugin.json so users see what the plugin does in the listing.', 'plugin_missing_description'),
|
|
39
|
+
PLUGIN_MISSING_AUTHOR: entry('info', 'plugin.json is missing the recommended `author` field.', 'Add an "author" object (e.g. { "name": "..." }) to plugin.json so downstream consumers can attribute the plugin.', 'plugin_missing_author'),
|
|
40
|
+
PLUGIN_MISSING_LICENSE: entry('info', 'plugin.json is missing the recommended `license` field.', 'Add a "license" SPDX identifier (e.g. "MIT") to plugin.json so redistribution terms are explicit.', 'plugin_missing_license'),
|
|
41
|
+
PLUGIN_NAME_NOT_KEBAB_CASE: entry('info', 'Plugin name does not match the kebab-case convention required by Claude Code (lowercase alphanumeric with single hyphens).', 'Rename the plugin to kebab-case (e.g. "my-plugin"). Schema parse already errors; this code surfaces the same finding with a more actionable message.', 'plugin_name_not_kebab_case'),
|
|
42
|
+
SKILL_NAME_NOT_KEBAB_CASE: entry('info', 'Skill frontmatter `name` does not match the kebab-case convention.', 'Rename the skill to kebab-case (e.g. "my-skill"). Schema parse already errors; this code surfaces the same finding with a more actionable message.', 'skill_name_not_kebab_case'),
|
|
43
|
+
SKILL_REFERENCES_BUT_NO_LINKS: entry('info', 'Skill directory contains scripts/, references/, or assets/ subdirectories but the SKILL.md body has zero markdown links into them.', 'Add explicit markdown links from SKILL.md (or a linked file) into the bundled subdirectories, or remove the unreferenced directory. Allow via validation.allow if the assets are consumed programmatically.', 'skill_references_but_no_links'),
|
|
44
|
+
SKILL_BODY_NOT_IMPERATIVE: entry('info', 'SKILL.md body contains second-person instructional openers (e.g. "You should…", "You need to…", "You can…").', 'Rewrite as imperative ("Configure the MCP server…" instead of "You should configure…"). Skill bodies read more cleanly as instructions to the agent rather than to a human reader. Allow via validation.allow if the heuristic misfires on quoted prompts or user dialog.', 'skill_body_not_imperative'),
|
|
38
45
|
CAPABILITY_LOCAL_SHELL: entry('info', 'Skill references a local-shell tool (Bash/Edit/Write/NotebookEdit) or invokes a shell.', 'Informational. Declare a plugin target that provides shell (claude-code, claude-cowork) so this observation resolves to an expected verdict.', 'capability_local_shell'),
|
|
39
46
|
CAPABILITY_EXTERNAL_CLI: entry('info', 'Skill invokes an external CLI binary not bundled with the skill.', 'Informational. Ensure the declared target guarantees the binary or document the prerequisite.', 'capability_external_cli'),
|
|
40
47
|
CAPABILITY_BROWSER_AUTH: entry('info', 'Skill appears to require an interactive browser login flow.', 'Informational. If a service-principal flow would work, prefer it. Otherwise declare a browser-capable target.', 'capability_browser_auth'),
|
|
@@ -43,5 +50,9 @@ export const CODE_REGISTRY = {
|
|
|
43
50
|
COMPAT_TARGET_UNDECLARED: entry('info', 'Skill has capability observations but no target is declared.', 'Declare targets in vibe-agent-toolkit.config.yaml, plugin.json, or marketplace.json defaults.', 'compat_target_undeclared'),
|
|
44
51
|
ALLOW_EXPIRED: entry('warning', "A validation.allow entry's expires date is in the past; the allowance still applies but should be re-reviewed.", 'Re-review the allow entry: extend expires, remove the entry, or fix the underlying issue. Upgrade severity to error for zero-tolerance expiry.', 'allow_expired'),
|
|
45
52
|
ALLOW_UNUSED: entry('warning', 'A validation.allow entry did not match any emitted issue; the allow entry is dead weight.', 'Remove the entry or fix the pattern. Upgrade severity to error to block on unused allow entries.', 'allow_unused'),
|
|
53
|
+
COMPONENT_DECLARED_BUT_MISSING: entry('warning', 'A component path declared in the plugin manifest does not exist on disk.', 'Add the missing file, remove the manifest declaration, or correct the path. Use validation.allow if the artifact is generated by an install-time build step.', 'component_declared_but_missing'),
|
|
54
|
+
COMPONENT_PRESENT_BUT_UNDECLARED: entry('info', 'A component is present under the canonical layout but the manifest declares an explicit list that omits it; the runtime may silently skip it at install.', 'Add the component to the appropriate manifest field, or remove the file if unintended. Skipped when the manifest omits the field entirely (auto-discovery is intentional).', 'component_present_but_undeclared'),
|
|
55
|
+
REFERENCE_TARGET_MISSING: entry('error', 'A cross-component reference resolved from the manifest points to a path that does not exist.', 'Add the referenced file or correct the path in the manifest.', 'reference_target_missing'),
|
|
56
|
+
MARKETPLACE_PLUGIN_SOURCE_MISSING: entry('error', 'A marketplace declares a plugin with a path-based source that does not exist.', 'Correct the source path or remove the entry from marketplace.plugins[].', 'marketplace_plugin_source_missing'),
|
|
46
57
|
};
|
|
47
58
|
//# sourceMappingURL=code-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-registry.js","sourceRoot":"","sources":["../../src/validators/code-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"code-registry.js","sourceRoot":"","sources":["../../src/validators/code-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Non-imperative body detector (gray-zone heuristic, info severity).
|
|
3
|
+
*
|
|
4
|
+
* Emits SKILL_BODY_NOT_IMPERATIVE for lines that open with a second-
|
|
5
|
+
* person modal phrase ("You should…", "You can…", "You need to…",
|
|
6
|
+
* "You must…", "You will…", "You may…") outside fenced code blocks
|
|
7
|
+
* and quoted blocks.
|
|
8
|
+
*
|
|
9
|
+
* Plugin-dev's "Mistake 3: Second Person Writing" identifies imperative
|
|
10
|
+
* form as more agent-readable. Heuristic; ships at info to gather corpus
|
|
11
|
+
* signal before any promotion.
|
|
12
|
+
*/
|
|
13
|
+
import type { ValidationIssue } from './types.js';
|
|
14
|
+
export declare function detectNonImperativeBody(body: string, location: string): ValidationIssue[];
|
|
15
|
+
//# sourceMappingURL=imperative-body-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imperative-body-detection.d.ts","sourceRoot":"","sources":["../../src/validators/imperative-body-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASlD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,eAAe,EAAE,CA8BnB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Non-imperative body detector (gray-zone heuristic, info severity).
|
|
3
|
+
*
|
|
4
|
+
* Emits SKILL_BODY_NOT_IMPERATIVE for lines that open with a second-
|
|
5
|
+
* person modal phrase ("You should…", "You can…", "You need to…",
|
|
6
|
+
* "You must…", "You will…", "You may…") outside fenced code blocks
|
|
7
|
+
* and quoted blocks.
|
|
8
|
+
*
|
|
9
|
+
* Plugin-dev's "Mistake 3: Second Person Writing" identifies imperative
|
|
10
|
+
* form as more agent-readable. Heuristic; ships at info to gather corpus
|
|
11
|
+
* signal before any promotion.
|
|
12
|
+
*/
|
|
13
|
+
import { CODE_REGISTRY } from './code-registry.js';
|
|
14
|
+
// Targeted modals only — excludes "are" and "did" so we match instructional
|
|
15
|
+
// constructions, not factual ones.
|
|
16
|
+
const SECOND_PERSON_OPENER_RE = /^You\s+(should|can|need|must|will|may)\b/i;
|
|
17
|
+
const FENCE_RE = /^\s*```/;
|
|
18
|
+
const QUOTE_RE = /^\s*>/;
|
|
19
|
+
export function detectNonImperativeBody(body, location) {
|
|
20
|
+
const issues = [];
|
|
21
|
+
const entry = CODE_REGISTRY.SKILL_BODY_NOT_IMPERATIVE;
|
|
22
|
+
let inFence = false;
|
|
23
|
+
const lines = body.split('\n');
|
|
24
|
+
for (const [idx, line] of lines.entries()) {
|
|
25
|
+
if (FENCE_RE.test(line)) {
|
|
26
|
+
inFence = !inFence;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (inFence)
|
|
30
|
+
continue;
|
|
31
|
+
if (QUOTE_RE.test(line))
|
|
32
|
+
continue;
|
|
33
|
+
const match = SECOND_PERSON_OPENER_RE.exec(line);
|
|
34
|
+
if (match) {
|
|
35
|
+
const lineNumber = idx + 1;
|
|
36
|
+
const sample = line.slice(0, 80);
|
|
37
|
+
issues.push({
|
|
38
|
+
severity: entry.defaultSeverity,
|
|
39
|
+
code: 'SKILL_BODY_NOT_IMPERATIVE',
|
|
40
|
+
message: `Second-person opener "${sample.trim()}" — prefer imperative form (e.g. "Configure…").`,
|
|
41
|
+
location: `${location}:${lineNumber}`,
|
|
42
|
+
fix: entry.fix,
|
|
43
|
+
reference: entry.reference,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return issues;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=imperative-body-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imperative-body-detection.js","sourceRoot":"","sources":["../../src/validators/imperative-body-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,4EAA4E;AAC5E,mCAAmC;AACnC,MAAM,uBAAuB,GAAG,2CAA2C,CAAC;AAE5E,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB,MAAM,UAAU,uBAAuB,CACrC,IAAY,EACZ,QAAgB;IAEhB,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,aAAa,CAAC,yBAAyB,CAAC;IAEtD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,OAAO,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,OAAO;YAAE,SAAS;QACtB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAElC,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,KAAK,CAAC,eAAe;gBAC/B,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,yBAAyB,MAAM,CAAC,IAAI,EAAE,iDAAiD;gBAChG,QAAQ,EAAE,GAAG,QAAQ,IAAI,UAAU,EAAE;gBACrC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
export { calculateValidationStatus, generateFixSuggestion } from './validation-utils.js';
|
|
2
|
+
export { detectKebabCaseViolation, type KebabCaseSurface } from './kebab-case-detection.js';
|
|
3
|
+
export { detectMissingRecommendedFields } from './plugin-recommended-fields.js';
|
|
1
4
|
export { detectResourceFormat, enumerateSurfaces } from './format-detection.js';
|
|
2
|
-
export { validatePlugin } from './plugin-validator.js';
|
|
3
5
|
export { validateInstalledPluginsRegistry, validateKnownMarketplacesRegistry, } from './registry-validator.js';
|
|
4
6
|
export { validateSkill } from './skill-validator.js';
|
|
5
|
-
export { validate } from './unified-validator.js';
|
|
7
|
+
export { validate, type UnifiedValidateOptions } from './unified-validator.js';
|
|
6
8
|
export type { IssueCode, IssueSeverity, LinkedFileValidationResult, ResourceFormat, Surface, ValidateOptions, ValidationIssue, ValidationResult, } from './types.js';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACN,gCAAgC,EAChC,iCAAiC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,YAAY,EACX,SAAS,EACT,aAAa,EACb,0BAA0B,EAC1B,cAAc,EACd,OAAO,EACP,eAAe,EACf,eAAe,EACf,gBAAgB,GAChB,MAAM,YAAY,CAAC"}
|
package/dist/validators/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
export { calculateValidationStatus, generateFixSuggestion } from './validation-utils.js';
|
|
2
|
+
export { detectKebabCaseViolation } from './kebab-case-detection.js';
|
|
3
|
+
export { detectMissingRecommendedFields } from './plugin-recommended-fields.js';
|
|
1
4
|
export { detectResourceFormat, enumerateSurfaces } from './format-detection.js';
|
|
2
|
-
export { validatePlugin } from './plugin-validator.js';
|
|
3
5
|
export { validateInstalledPluginsRegistry, validateKnownMarketplacesRegistry, } from './registry-validator.js';
|
|
4
6
|
export { validateSkill } from './skill-validator.js';
|
|
5
7
|
export { validate } from './unified-validator.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAyB,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACN,gCAAgC,EAChC,iCAAiC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAA+B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kebab-case naming detector.
|
|
3
|
+
*
|
|
4
|
+
* Plugin-dev's "Name requirements" section: kebab-case is mandatory for
|
|
5
|
+
* both plugin names and skill names. Both the ClaudePluginSchema and
|
|
6
|
+
* agent-skill frontmatter schema enforce the regex via Zod, but Zod
|
|
7
|
+
* surfaces only a generic schema error. This detector emits a named
|
|
8
|
+
* info-severity code so audit output names the convention specifically.
|
|
9
|
+
*
|
|
10
|
+
* The detector is additive — Zod parse continues to error on invalid
|
|
11
|
+
* names (PLUGIN_INVALID_SCHEMA / SKILL_NAME_INVALID), and this code
|
|
12
|
+
* provides a more actionable second message at info severity.
|
|
13
|
+
*/
|
|
14
|
+
import type { ValidationIssue } from './types.js';
|
|
15
|
+
export type KebabCaseSurface = 'plugin' | 'skill';
|
|
16
|
+
/**
|
|
17
|
+
* Returns a ValidationIssue when `name` violates kebab-case, or undefined
|
|
18
|
+
* when the name is empty (let upstream "missing name" validators handle
|
|
19
|
+
* that case).
|
|
20
|
+
*/
|
|
21
|
+
export declare function detectKebabCaseViolation(surface: KebabCaseSurface, name: string, location: string): ValidationIssue | undefined;
|
|
22
|
+
//# sourceMappingURL=kebab-case-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kebab-case-detection.d.ts","sourceRoot":"","sources":["../../src/validators/kebab-case-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,eAAe,GAAG,SAAS,CAqB7B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kebab-case naming detector.
|
|
3
|
+
*
|
|
4
|
+
* Plugin-dev's "Name requirements" section: kebab-case is mandatory for
|
|
5
|
+
* both plugin names and skill names. Both the ClaudePluginSchema and
|
|
6
|
+
* agent-skill frontmatter schema enforce the regex via Zod, but Zod
|
|
7
|
+
* surfaces only a generic schema error. This detector emits a named
|
|
8
|
+
* info-severity code so audit output names the convention specifically.
|
|
9
|
+
*
|
|
10
|
+
* The detector is additive — Zod parse continues to error on invalid
|
|
11
|
+
* names (PLUGIN_INVALID_SCHEMA / SKILL_NAME_INVALID), and this code
|
|
12
|
+
* provides a more actionable second message at info severity.
|
|
13
|
+
*/
|
|
14
|
+
import { CODE_REGISTRY } from './code-registry.js';
|
|
15
|
+
// eslint-disable-next-line security/detect-unsafe-regex -- Simple pattern with bounded length, safe from ReDoS (mirrors the regex in ClaudePluginSchema)
|
|
16
|
+
const KEBAB_CASE_RE = /^[a-z0-9]+(-[a-z0-9]+)*$/;
|
|
17
|
+
/**
|
|
18
|
+
* Returns a ValidationIssue when `name` violates kebab-case, or undefined
|
|
19
|
+
* when the name is empty (let upstream "missing name" validators handle
|
|
20
|
+
* that case).
|
|
21
|
+
*/
|
|
22
|
+
export function detectKebabCaseViolation(surface, name, location) {
|
|
23
|
+
if (name.length === 0) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
if (KEBAB_CASE_RE.test(name)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const code = surface === 'plugin'
|
|
30
|
+
? 'PLUGIN_NAME_NOT_KEBAB_CASE'
|
|
31
|
+
: 'SKILL_NAME_NOT_KEBAB_CASE';
|
|
32
|
+
const entry = CODE_REGISTRY[code];
|
|
33
|
+
const subject = surface === 'plugin' ? 'plugin' : 'skill';
|
|
34
|
+
return {
|
|
35
|
+
severity: entry.defaultSeverity,
|
|
36
|
+
code,
|
|
37
|
+
message: `${subject} name "${name}" is not kebab-case (lowercase alphanumeric with single hyphens, e.g. "my-${subject}").`,
|
|
38
|
+
location,
|
|
39
|
+
fix: entry.fix,
|
|
40
|
+
reference: entry.reference,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=kebab-case-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kebab-case-detection.js","sourceRoot":"","sources":["../../src/validators/kebab-case-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,yJAAyJ;AACzJ,MAAM,aAAa,GAAG,0BAA0B,CAAC;AAIjD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAyB,EACzB,IAAY,EACZ,QAAgB;IAEhB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,KAAK,QAAQ;QAC/B,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,2BAA2B,CAAC;IAChC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1D,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,eAAe;QAC/B,IAAI;QACJ,OAAO,EAAE,GAAG,OAAO,UAAU,IAAI,6EAA6E,OAAO,KAAK;QAC1H,QAAQ;QACR,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -94,6 +94,15 @@ export interface PackagingValidationResult {
|
|
|
94
94
|
excludedReferences: ExcludedReferenceDetail[];
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Build a fresh ResourceRegistry for a single skill's projectRoot and resolve
|
|
99
|
+
* internal links. Extracted so the skill validator can fall back to a private
|
|
100
|
+
* registry when the caller does not supply a shared one.
|
|
101
|
+
*
|
|
102
|
+
* Exported so external callers (e.g. the inventory layer) can build a registry
|
|
103
|
+
* once and pass it down rather than re-crawling per skill.
|
|
104
|
+
*/
|
|
105
|
+
export declare function crawlAndResolveRegistry(projectRoot: string): Promise<ResourceRegistry>;
|
|
97
106
|
/**
|
|
98
107
|
* Shared context for batched skill validation runs.
|
|
99
108
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packaging-validator.d.ts","sourceRoot":"","sources":["../../src/validators/packaging-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAAiB,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAA+D,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEzH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAY1F;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,eAAe,CAAC;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,2BAA2B,CAAC,EAAE;QAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzD,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,uFAAuF;IACvF,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,aAAa,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC;CAC1E;AAED,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,YAAY,CAAC;IACzH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,wBAAwB;IACxB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAE5B,uEAAuE;IACvE,SAAS,EAAE,eAAe,EAAE,CAAC;IAE7B,oEAAoE;IACpE,YAAY,EAAE,eAAe,EAAE,CAAC;IAEhC,wEAAwE;IACxE,cAAc,EAAE,eAAe,EAAE,CAAC;IAElC,yCAAyC;IACzC,aAAa,EAAE,WAAW,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,EAAE,cAAc,EAAE,CAAC;IAE3B,+BAA+B;IAC/B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;KAC/C,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"packaging-validator.d.ts","sourceRoot":"","sources":["../../src/validators/packaging-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,8 +72,11 @@ function createRegistryIssue(code, message, location) {
|
|
|
72
72
|
* Build a fresh ResourceRegistry for a single skill's projectRoot and resolve
|
|
73
73
|
* internal links. Extracted so the skill validator can fall back to a private
|
|
74
74
|
* registry when the caller does not supply a shared one.
|
|
75
|
+
*
|
|
76
|
+
* Exported so external callers (e.g. the inventory layer) can build a registry
|
|
77
|
+
* once and pass it down rather than re-crawling per skill.
|
|
75
78
|
*/
|
|
76
|
-
async function crawlAndResolveRegistry(projectRoot) {
|
|
79
|
+
export async function crawlAndResolveRegistry(projectRoot) {
|
|
77
80
|
const registry = await ResourceRegistry.fromCrawl({
|
|
78
81
|
baseDir: projectRoot,
|
|
79
82
|
include: ['**/*.md'],
|
|
@@ -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,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin manifest recommended-fields detector.
|
|
3
|
+
*
|
|
4
|
+
* Emits PLUGIN_MISSING_DESCRIPTION / PLUGIN_MISSING_AUTHOR / PLUGIN_MISSING_LICENSE
|
|
5
|
+
* at info severity when the plugin manifest is structurally valid (passed
|
|
6
|
+
* Zod schema parse) but missing fields plugin-dev names as "recommended
|
|
7
|
+
* metadata". These are not schema violations — the schema makes them
|
|
8
|
+
* optional — but their absence degrades discovery, attribution, and
|
|
9
|
+
* redistribution clarity.
|
|
10
|
+
*
|
|
11
|
+
* Source guidance: anthropics/claude-plugins-official plugin-dev skill,
|
|
12
|
+
* "Recommended Metadata" section.
|
|
13
|
+
*/
|
|
14
|
+
import type { ValidationIssue } from './types.js';
|
|
15
|
+
interface PluginManifestSubset {
|
|
16
|
+
description?: unknown;
|
|
17
|
+
license?: unknown;
|
|
18
|
+
author?: unknown;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Inspect a parsed plugin.json object and emit one issue per missing
|
|
22
|
+
* recommended field. Pass the absolute path to plugin.json as `location`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function detectMissingRecommendedFields(manifest: PluginManifestSubset, location: string): ValidationIssue[];
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=plugin-recommended-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-recommended-fields.d.ts","sourceRoot":"","sources":["../../src/validators/plugin-recommended-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,UAAU,oBAAoB;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAcD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,EAAE,MAAM,GACf,eAAe,EAAE,CAwCnB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin manifest recommended-fields detector.
|
|
3
|
+
*
|
|
4
|
+
* Emits PLUGIN_MISSING_DESCRIPTION / PLUGIN_MISSING_AUTHOR / PLUGIN_MISSING_LICENSE
|
|
5
|
+
* at info severity when the plugin manifest is structurally valid (passed
|
|
6
|
+
* Zod schema parse) but missing fields plugin-dev names as "recommended
|
|
7
|
+
* metadata". These are not schema violations — the schema makes them
|
|
8
|
+
* optional — but their absence degrades discovery, attribution, and
|
|
9
|
+
* redistribution clarity.
|
|
10
|
+
*
|
|
11
|
+
* Source guidance: anthropics/claude-plugins-official plugin-dev skill,
|
|
12
|
+
* "Recommended Metadata" section.
|
|
13
|
+
*/
|
|
14
|
+
import { CODE_REGISTRY } from './code-registry.js';
|
|
15
|
+
function isNonEmptyString(value) {
|
|
16
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
17
|
+
}
|
|
18
|
+
function authorHasName(author) {
|
|
19
|
+
if (typeof author !== 'object' || author === null) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const name = author.name;
|
|
23
|
+
return isNonEmptyString(name);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Inspect a parsed plugin.json object and emit one issue per missing
|
|
27
|
+
* recommended field. Pass the absolute path to plugin.json as `location`.
|
|
28
|
+
*/
|
|
29
|
+
export function detectMissingRecommendedFields(manifest, location) {
|
|
30
|
+
const issues = [];
|
|
31
|
+
if (!isNonEmptyString(manifest.description)) {
|
|
32
|
+
const entry = CODE_REGISTRY.PLUGIN_MISSING_DESCRIPTION;
|
|
33
|
+
issues.push({
|
|
34
|
+
severity: entry.defaultSeverity,
|
|
35
|
+
code: 'PLUGIN_MISSING_DESCRIPTION',
|
|
36
|
+
message: 'plugin.json is missing the recommended `description` field.',
|
|
37
|
+
location,
|
|
38
|
+
fix: entry.fix,
|
|
39
|
+
reference: entry.reference,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (!authorHasName(manifest.author)) {
|
|
43
|
+
const entry = CODE_REGISTRY.PLUGIN_MISSING_AUTHOR;
|
|
44
|
+
issues.push({
|
|
45
|
+
severity: entry.defaultSeverity,
|
|
46
|
+
code: 'PLUGIN_MISSING_AUTHOR',
|
|
47
|
+
message: 'plugin.json is missing the recommended `author` field (with `author.name`).',
|
|
48
|
+
location,
|
|
49
|
+
fix: entry.fix,
|
|
50
|
+
reference: entry.reference,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
if (!isNonEmptyString(manifest.license)) {
|
|
54
|
+
const entry = CODE_REGISTRY.PLUGIN_MISSING_LICENSE;
|
|
55
|
+
issues.push({
|
|
56
|
+
severity: entry.defaultSeverity,
|
|
57
|
+
code: 'PLUGIN_MISSING_LICENSE',
|
|
58
|
+
message: 'plugin.json is missing the recommended `license` field.',
|
|
59
|
+
location,
|
|
60
|
+
fix: entry.fix,
|
|
61
|
+
reference: entry.reference,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return issues;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=plugin-recommended-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-recommended-fields.js","sourceRoot":"","sources":["../../src/validators/plugin-recommended-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASnD,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAC,MAAe;IACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAI,MAA6B,CAAC,IAAI,CAAC;IACjD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAC5C,QAA8B,EAC9B,QAAgB;IAEhB,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,0BAA0B,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,KAAK,CAAC,eAAe;YAC/B,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,6DAA6D;YACtE,QAAQ;YACR,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,aAAa,CAAC,qBAAqB,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,KAAK,CAAC,eAAe;YAC/B,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,6EAA6E;YACtF,QAAQ;YACR,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,aAAa,CAAC,sBAAsB,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,KAAK,CAAC,eAAe;YAC/B,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,yDAAyD;YAClE,QAAQ;YACR,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-validator.d.ts","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-validator.d.ts","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAA8B,eAAe,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGjH;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiHvF;AA0PD,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAsID;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,iBAAiB,EAAE,CAarB"}
|