@vibe-agent-toolkit/agent-skills 0.1.13 → 0.1.15-rc.1
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/README.md +28 -28
- package/dist/builder.d.ts +3 -3
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +3 -3
- package/dist/builder.js.map +1 -1
- package/dist/import.d.ts +1 -1
- package/dist/import.js +7 -7
- package/dist/import.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/schemas/agent-skill-frontmatter.d.ts +140 -0
- package/dist/schemas/agent-skill-frontmatter.d.ts.map +1 -0
- package/dist/schemas/agent-skill-frontmatter.js +95 -0
- package/dist/schemas/agent-skill-frontmatter.js.map +1 -0
- package/dist/schemas/claude-plugin.d.ts +60 -109
- package/dist/schemas/claude-plugin.d.ts.map +1 -1
- package/dist/schemas/claude-plugin.js +26 -34
- package/dist/schemas/claude-plugin.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/marketplace.d.ts +1224 -202
- package/dist/schemas/marketplace.d.ts.map +1 -1
- package/dist/schemas/marketplace.js +51 -13
- package/dist/schemas/marketplace.js.map +1 -1
- package/dist/skill-packager.d.ts +42 -0
- package/dist/skill-packager.d.ts.map +1 -1
- package/dist/skill-packager.js +269 -238
- package/dist/skill-packager.js.map +1 -1
- package/dist/validators/format-detection.js +7 -7
- package/dist/validators/format-detection.js.map +1 -1
- package/dist/validators/frontmatter-validation.d.ts +30 -0
- package/dist/validators/frontmatter-validation.d.ts.map +1 -0
- package/dist/validators/frontmatter-validation.js +132 -0
- package/dist/validators/frontmatter-validation.js.map +1 -0
- package/dist/validators/marketplace-validator.d.ts +1 -0
- package/dist/validators/marketplace-validator.d.ts.map +1 -1
- package/dist/validators/marketplace-validator.js +1 -0
- package/dist/validators/marketplace-validator.js.map +1 -1
- package/dist/validators/packaging-validator.d.ts +1 -1
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js +53 -11
- package/dist/validators/packaging-validator.js.map +1 -1
- package/dist/validators/plugin-validator.d.ts +2 -1
- package/dist/validators/plugin-validator.d.ts.map +1 -1
- package/dist/validators/plugin-validator.js +2 -1
- package/dist/validators/plugin-validator.js.map +1 -1
- package/dist/validators/skill-validator.d.ts +2 -1
- package/dist/validators/skill-validator.d.ts.map +1 -1
- package/dist/validators/skill-validator.js +7 -108
- package/dist/validators/skill-validator.js.map +1 -1
- package/dist/validators/types.d.ts +2 -2
- package/dist/validators/types.d.ts.map +1 -1
- package/dist/validators/validation-rules.d.ts +1 -1
- package/dist/validators/validation-rules.js +5 -5
- package/dist/validators/validation-rules.js.map +1 -1
- package/dist/walk-link-graph.d.ts +88 -0
- package/dist/walk-link-graph.d.ts.map +1 -0
- package/dist/walk-link-graph.js +190 -0
- package/dist/walk-link-graph.js.map +1 -0
- package/package.json +5 -4
- package/schemas/skill-frontmatter.json +32 -7
- package/schemas/vat-skill-frontmatter.json +32 -3
- package/dist/link-collector.d.ts +0 -86
- package/dist/link-collector.d.ts.map +0 -1
- package/dist/link-collector.js +0 -206
- package/dist/link-collector.js.map +0 -1
- package/dist/schemas/claude-skill-frontmatter.d.ts +0 -75
- package/dist/schemas/claude-skill-frontmatter.d.ts.map +0 -1
- package/dist/schemas/claude-skill-frontmatter.js +0 -48
- package/dist/schemas/claude-skill-frontmatter.js.map +0 -1
|
@@ -90,14 +90,14 @@ function detectDirectoryFormat(dirPath) {
|
|
|
90
90
|
if (parseResult.success) {
|
|
91
91
|
// Check if marketplace contains a plugin with source pointing to current directory
|
|
92
92
|
const hasColocatedPlugin = parseResult.data.plugins.some((plugin) => {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
// Only local path sources can be co-located; URL/GitHub sources are remote
|
|
94
|
+
if (typeof plugin.source !== 'string')
|
|
95
|
+
return false;
|
|
96
96
|
// Check for various forms of "current directory" references
|
|
97
|
-
return (source === './' ||
|
|
98
|
-
source === '.' ||
|
|
99
|
-
source === '.\\' ||
|
|
100
|
-
source === '');
|
|
97
|
+
return (plugin.source === './' ||
|
|
98
|
+
plugin.source === '.' ||
|
|
99
|
+
plugin.source === '.\\' ||
|
|
100
|
+
plugin.source === '');
|
|
101
101
|
});
|
|
102
102
|
// If marketplace has co-located plugin, treat as marketplace
|
|
103
103
|
if (hasColocatedPlugin) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-detection.js","sourceRoot":"","sources":["../../src/validators/format-detection.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI9D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,YAAoB;IAEpB,IAAI,CAAC;QACJ,uBAAuB;QACvB,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO;gBACN,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,qBAAqB;aAC7B,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAExC,qBAAqB;QACrB,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,6BAA6B;QAC7B,OAAO;YACN,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,wCAAwC;SAChD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,gEAAgE;QAChE,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAC1D,OAAO;YACN,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,yBAAyB,YAAY,EAAE;SAC/C,CAAC;IACH,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAE7D,2CAA2C;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACrC,OAAO;YACN,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,mDAAmD;SAC3D,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACjE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAE3E,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE1D,kEAAkE;IAClE,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;QACjC,+DAA+D;QAC/D,IAAI,CAAC;YACJ,MAAM,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAEjE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,mFAAmF;gBACnF,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBACnE,
|
|
1
|
+
{"version":3,"file":"format-detection.js","sourceRoot":"","sources":["../../src/validators/format-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared frontmatter validation logic
|
|
3
|
+
*
|
|
4
|
+
* Validates skill frontmatter (name format, description, reserved words, etc.)
|
|
5
|
+
* Used by both validateSkill() and validateSkillForPackaging() to ensure
|
|
6
|
+
* consistent validation regardless of entry point.
|
|
7
|
+
*
|
|
8
|
+
* @see https://code.claude.com/docs/en/skills — Official Claude Code skill frontmatter fields
|
|
9
|
+
*/
|
|
10
|
+
import type { ValidationIssue } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Validate frontmatter against the Agent Skill schema
|
|
13
|
+
*
|
|
14
|
+
* Checks name format (regex), description length, required fields, etc.
|
|
15
|
+
*
|
|
16
|
+
* @param frontmatter - Parsed frontmatter key-value pairs
|
|
17
|
+
* @param isVATGenerated - Whether skill was generated by VAT (stricter schema)
|
|
18
|
+
* @returns Array of validation issues found
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateFrontmatterSchema(frontmatter: Record<string, unknown>, isVATGenerated: boolean): ValidationIssue[];
|
|
21
|
+
/**
|
|
22
|
+
* Validate additional frontmatter rules beyond schema
|
|
23
|
+
*
|
|
24
|
+
* Checks reserved words, XML tags, empty descriptions, etc.
|
|
25
|
+
*
|
|
26
|
+
* @param frontmatter - Parsed frontmatter key-value pairs
|
|
27
|
+
* @returns Array of validation issues found
|
|
28
|
+
*/
|
|
29
|
+
export declare function validateFrontmatterRules(frontmatter: Record<string, unknown>): ValidationIssue[];
|
|
30
|
+
//# sourceMappingURL=frontmatter-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter-validation.d.ts","sourceRoot":"","sources":["../../src/validators/frontmatter-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAOlD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,cAAc,EAAE,OAAO,GACrB,eAAe,EAAE,CAiDnB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,eAAe,EAAE,CAwDnB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared frontmatter validation logic
|
|
3
|
+
*
|
|
4
|
+
* Validates skill frontmatter (name format, description, reserved words, etc.)
|
|
5
|
+
* Used by both validateSkill() and validateSkillForPackaging() to ensure
|
|
6
|
+
* consistent validation regardless of entry point.
|
|
7
|
+
*
|
|
8
|
+
* @see https://code.claude.com/docs/en/skills — Official Claude Code skill frontmatter fields
|
|
9
|
+
*/
|
|
10
|
+
import { AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema } from '../schemas/agent-skill-frontmatter.js';
|
|
11
|
+
// Location constants for validation messages
|
|
12
|
+
const FRONTMATTER_LOC = 'frontmatter';
|
|
13
|
+
const FRONTMATTER_NAME_LOC = 'frontmatter.name';
|
|
14
|
+
const FRONTMATTER_DESC_LOC = 'frontmatter.description';
|
|
15
|
+
/**
|
|
16
|
+
* Validate frontmatter against the Agent Skill schema
|
|
17
|
+
*
|
|
18
|
+
* Checks name format (regex), description length, required fields, etc.
|
|
19
|
+
*
|
|
20
|
+
* @param frontmatter - Parsed frontmatter key-value pairs
|
|
21
|
+
* @param isVATGenerated - Whether skill was generated by VAT (stricter schema)
|
|
22
|
+
* @returns Array of validation issues found
|
|
23
|
+
*/
|
|
24
|
+
export function validateFrontmatterSchema(frontmatter, isVATGenerated) {
|
|
25
|
+
const issues = [];
|
|
26
|
+
const schema = isVATGenerated ? VATAgentSkillFrontmatterSchema : AgentSkillFrontmatterSchema;
|
|
27
|
+
const schemaResult = schema.safeParse(frontmatter);
|
|
28
|
+
if (schemaResult.success) {
|
|
29
|
+
return issues;
|
|
30
|
+
}
|
|
31
|
+
// Map Zod errors to our issue codes
|
|
32
|
+
for (const error of schemaResult.error.errors) {
|
|
33
|
+
const field = error.path.join('.');
|
|
34
|
+
if (field === 'name' && !frontmatter['name']) {
|
|
35
|
+
issues.push({
|
|
36
|
+
severity: 'error',
|
|
37
|
+
code: 'SKILL_MISSING_NAME',
|
|
38
|
+
message: 'Required field "name" is missing',
|
|
39
|
+
location: FRONTMATTER_LOC,
|
|
40
|
+
fix: 'Add "name" field to frontmatter',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else if (field === 'description' && !frontmatter['description']) {
|
|
44
|
+
issues.push({
|
|
45
|
+
severity: 'error',
|
|
46
|
+
code: 'SKILL_MISSING_DESCRIPTION',
|
|
47
|
+
message: 'Required field "description" is missing',
|
|
48
|
+
location: FRONTMATTER_LOC,
|
|
49
|
+
fix: 'Add "description" field to frontmatter',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else if (field === 'name') {
|
|
53
|
+
issues.push({
|
|
54
|
+
severity: 'error',
|
|
55
|
+
code: 'SKILL_NAME_INVALID',
|
|
56
|
+
message: error.message,
|
|
57
|
+
location: FRONTMATTER_NAME_LOC,
|
|
58
|
+
fix: 'Change name to lowercase alphanumeric with hyphens (e.g., "my-skill")',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else if (field === 'description' && error.message.includes('1024')) {
|
|
62
|
+
issues.push({
|
|
63
|
+
severity: 'error',
|
|
64
|
+
code: 'SKILL_DESCRIPTION_TOO_LONG',
|
|
65
|
+
message: `Description exceeds 1024 characters (actual: ${frontmatter['description']?.length ?? 0})`,
|
|
66
|
+
location: FRONTMATTER_DESC_LOC,
|
|
67
|
+
fix: 'Reduce description to 1024 characters or less',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return issues;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Validate additional frontmatter rules beyond schema
|
|
75
|
+
*
|
|
76
|
+
* Checks reserved words, XML tags, empty descriptions, etc.
|
|
77
|
+
*
|
|
78
|
+
* @param frontmatter - Parsed frontmatter key-value pairs
|
|
79
|
+
* @returns Array of validation issues found
|
|
80
|
+
*/
|
|
81
|
+
export function validateFrontmatterRules(frontmatter) {
|
|
82
|
+
const issues = [];
|
|
83
|
+
// Validate name field
|
|
84
|
+
if (frontmatter['name'] && typeof frontmatter['name'] === 'string') {
|
|
85
|
+
const name = frontmatter['name'].toLowerCase();
|
|
86
|
+
// Check for reserved words
|
|
87
|
+
if (name.includes('anthropic') || name.includes('claude')) {
|
|
88
|
+
issues.push({
|
|
89
|
+
severity: 'error',
|
|
90
|
+
code: 'SKILL_NAME_RESERVED_WORD',
|
|
91
|
+
message: 'Name contains reserved word "anthropic" or "claude"',
|
|
92
|
+
location: FRONTMATTER_NAME_LOC,
|
|
93
|
+
fix: 'Remove reserved word from name',
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// Check for XML tags
|
|
97
|
+
if (/[<>]/.test(frontmatter['name'])) {
|
|
98
|
+
issues.push({
|
|
99
|
+
severity: 'error',
|
|
100
|
+
code: 'SKILL_NAME_XML_TAGS',
|
|
101
|
+
message: 'Name contains XML tags',
|
|
102
|
+
location: FRONTMATTER_NAME_LOC,
|
|
103
|
+
fix: 'Remove < and > characters from name',
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Validate description field
|
|
108
|
+
if (frontmatter['description'] && typeof frontmatter['description'] === 'string') {
|
|
109
|
+
// Check for XML tags
|
|
110
|
+
if (/[<>]/.test(frontmatter['description'])) {
|
|
111
|
+
issues.push({
|
|
112
|
+
severity: 'error',
|
|
113
|
+
code: 'SKILL_DESCRIPTION_XML_TAGS',
|
|
114
|
+
message: 'Description contains XML tags',
|
|
115
|
+
location: FRONTMATTER_DESC_LOC,
|
|
116
|
+
fix: 'Remove < and > characters from description',
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
// Check for empty description
|
|
120
|
+
if (frontmatter['description'].trim() === '') {
|
|
121
|
+
issues.push({
|
|
122
|
+
severity: 'error',
|
|
123
|
+
code: 'SKILL_DESCRIPTION_EMPTY',
|
|
124
|
+
message: 'Description is empty',
|
|
125
|
+
location: FRONTMATTER_DESC_LOC,
|
|
126
|
+
fix: 'Add description explaining what the skill does and when to use it',
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return issues;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=frontmatter-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter-validation.js","sourceRoot":"","sources":["../../src/validators/frontmatter-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { ValidationResult } from './types.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Validate a marketplace directory structure
|
|
4
4
|
*
|
|
5
|
+
* @see https://code.claude.com/docs/en/plugins-reference — Official plugin/marketplace spec
|
|
5
6
|
* @param marketplacePath - Absolute path to marketplace directory
|
|
6
7
|
* @returns Validation result with issues
|
|
7
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace-validator.d.ts","sourceRoot":"","sources":["../../src/validators/marketplace-validator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQpE
|
|
1
|
+
{"version":3,"file":"marketplace-validator.d.ts","sourceRoot":"","sources":["../../src/validators/marketplace-validator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQpE;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACxC,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA0F3B"}
|
|
@@ -7,6 +7,7 @@ const MARKETPLACE_TYPE = 'marketplace';
|
|
|
7
7
|
/**
|
|
8
8
|
* Validate a marketplace directory structure
|
|
9
9
|
*
|
|
10
|
+
* @see https://code.claude.com/docs/en/plugins-reference — Official plugin/marketplace spec
|
|
10
11
|
* @param marketplacePath - Absolute path to marketplace directory
|
|
11
12
|
* @returns Validation result with issues
|
|
12
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace-validator.js","sourceRoot":"","sources":["../../src/validators/marketplace-validator.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EACN,yBAAyB,EACzB,qBAAqB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,gBAAgB,GAAG,aAAsB,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"marketplace-validator.js","sourceRoot":"","sources":["../../src/validators/marketplace-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ import type { ValidationIssue } from './types.js';
|
|
|
18
18
|
/** Excluded reference detail for verbose output */
|
|
19
19
|
export interface ExcludedReferenceDetail {
|
|
20
20
|
path: string;
|
|
21
|
-
reason: 'depth-exceeded' | 'pattern-matched';
|
|
21
|
+
reason: 'depth-exceeded' | 'pattern-matched' | 'outside-project' | 'navigation-file';
|
|
22
22
|
matchedPattern?: string | undefined;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packaging-validator.d.ts","sourceRoot":"","sources":["../../src/validators/packaging-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAsB,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"packaging-validator.d.ts","sourceRoot":"","sources":["../../src/validators/packaging-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAsB,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAO7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAclD,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;IACrF,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,wDAAwD;IACxD,SAAS,EAAE,eAAe,EAAE,CAAC;IAE7B,+CAA+C;IAC/C,YAAY,EAAE,eAAe,EAAE,CAAC;IAEhC,qDAAqD;IACrD,aAAa,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,eAAe,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAEH,0CAA0C;IAC1C,gBAAgB,EAAE,KAAK,CAAC;QACtB,KAAK,EAAE,eAAe,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAEH,+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;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,gBAAgB,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAgHpC"}
|
|
@@ -16,10 +16,14 @@
|
|
|
16
16
|
import { existsSync } from 'node:fs';
|
|
17
17
|
import { readFile } from 'node:fs/promises';
|
|
18
18
|
import { basename, dirname, relative, resolve } from 'node:path';
|
|
19
|
-
import { parseMarkdown } from '@vibe-agent-toolkit/resources';
|
|
20
|
-
import { toForwardSlash } from '@vibe-agent-toolkit/utils';
|
|
21
|
-
import {
|
|
19
|
+
import { parseMarkdown, ResourceRegistry } from '@vibe-agent-toolkit/resources';
|
|
20
|
+
import { findProjectRoot, toForwardSlash } from '@vibe-agent-toolkit/utils';
|
|
21
|
+
import { walkLinkGraph } from '../walk-link-graph.js';
|
|
22
|
+
import { validateFrontmatterRules, validateFrontmatterSchema } from './frontmatter-validation.js';
|
|
22
23
|
import { createIssue, isOverridable, NAVIGATION_FILE_PATTERNS, VALIDATION_RULES, VALIDATION_THRESHOLDS, } from './validation-rules.js';
|
|
24
|
+
/** Exclude reason constants to avoid duplicate string literals */
|
|
25
|
+
const EXCLUDE_REASON_DIRECTORY = 'directory-target';
|
|
26
|
+
const EXCLUDE_REASON_OUTSIDE_PROJECT = 'outside-project';
|
|
23
27
|
/**
|
|
24
28
|
* Validate a skill for packaging
|
|
25
29
|
*
|
|
@@ -40,27 +44,47 @@ export async function validateSkillForPackaging(skillPath, skillMetadata) {
|
|
|
40
44
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- skillPath is validated function parameter
|
|
41
45
|
const skillContent = await readFile(skillPath, 'utf-8');
|
|
42
46
|
const skillLines = skillContent.split('\n').length;
|
|
47
|
+
// Validate frontmatter schema (name format, required fields, etc.)
|
|
48
|
+
if (parseResult.frontmatter) {
|
|
49
|
+
errors.push(...validateFrontmatterSchema(parseResult.frontmatter, false), ...validateFrontmatterRules(parseResult.frontmatter));
|
|
50
|
+
}
|
|
43
51
|
// Read packaging options for depth/exclude configuration
|
|
44
52
|
const linkFollowDepth = skillMetadata?.packagingOptions?.linkFollowDepth ?? 2;
|
|
45
53
|
const excludeConfig = skillMetadata?.packagingOptions?.excludeReferencesFromBundle;
|
|
54
|
+
const excludeNavigationFiles = skillMetadata?.packagingOptions?.excludeNavigationFiles ?? true;
|
|
46
55
|
const maxDepth = linkFollowDepth === 'full' ? Infinity : linkFollowDepth;
|
|
47
|
-
//
|
|
48
|
-
const
|
|
56
|
+
// Find project boundary (workspace root -> git root -> skill dir)
|
|
57
|
+
const projectRoot = findProjectRoot(dirname(skillPath));
|
|
58
|
+
// Build resource registry and walk the link graph
|
|
59
|
+
const registry = await ResourceRegistry.fromCrawl({
|
|
60
|
+
baseDir: projectRoot,
|
|
61
|
+
include: ['**/*.md'],
|
|
62
|
+
});
|
|
63
|
+
registry.resolveLinks();
|
|
64
|
+
const skillResource = registry.getResource(resolve(skillPath));
|
|
65
|
+
const { bundledResources, bundledAssets, excludedReferences, maxBundledDepth } = walkLinkGraph(skillResource?.id ?? '', registry, {
|
|
49
66
|
maxDepth,
|
|
50
67
|
excludeRules: excludeConfig?.rules ?? [],
|
|
51
|
-
|
|
52
|
-
|
|
68
|
+
projectRoot,
|
|
69
|
+
excludeNavigationFiles,
|
|
53
70
|
});
|
|
71
|
+
const bundledFiles = [...bundledResources.map(r => r.filePath), ...bundledAssets];
|
|
54
72
|
// Count direct links that actually made it into the bundle
|
|
55
73
|
const directLinks = getResolvedMarkdownLinks(parseResult.links, skillPath);
|
|
56
74
|
const bundledFileSet = new Set(bundledFiles);
|
|
57
75
|
const directFileCount = directLinks.filter(p => bundledFileSet.has(p)).length;
|
|
58
76
|
// Check for directory links (directories are not valid bundle targets)
|
|
59
|
-
const directoryLinks = excludedReferences.filter(r => r.excludeReason ===
|
|
77
|
+
const directoryLinks = excludedReferences.filter(r => r.excludeReason === EXCLUDE_REASON_DIRECTORY);
|
|
60
78
|
for (const dirLink of directoryLinks) {
|
|
61
79
|
const dirPath = toForwardSlash(relative(dirname(skillPath), dirLink.path));
|
|
62
80
|
errors.push(createIssue(VALIDATION_RULES.LINK_TARGETS_DIRECTORY, { dirPath }, skillPath));
|
|
63
81
|
}
|
|
82
|
+
// Check for outside-project links (non-overridable error)
|
|
83
|
+
const outsideProjectLinks = excludedReferences.filter(r => r.excludeReason === EXCLUDE_REASON_OUTSIDE_PROJECT);
|
|
84
|
+
for (const extLink of outsideProjectLinks) {
|
|
85
|
+
const href = toForwardSlash(relative(dirname(skillPath), extLink.path));
|
|
86
|
+
errors.push(createIssue(VALIDATION_RULES.OUTSIDE_PROJECT_BOUNDARY, { href }, skillPath));
|
|
87
|
+
}
|
|
64
88
|
const fileCount = bundledFiles.length + 1; // +1 for SKILL.md itself
|
|
65
89
|
const maxLinkDepth = maxBundledDepth;
|
|
66
90
|
// Calculate total lines from bundled markdown files only
|
|
@@ -207,15 +231,20 @@ function getResolvedMarkdownLinks(links, markdownPath) {
|
|
|
207
231
|
}
|
|
208
232
|
return resolvedPaths;
|
|
209
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Reasons that are reported as validation errors instead of excluded references.
|
|
236
|
+
* These are filtered out of the excluded references list.
|
|
237
|
+
*/
|
|
238
|
+
const VALIDATION_ERROR_REASONS = new Set([EXCLUDE_REASON_DIRECTORY, EXCLUDE_REASON_OUTSIDE_PROJECT]);
|
|
210
239
|
/**
|
|
211
240
|
* Deduplicate excluded references by path, preserving detail from first occurrence.
|
|
212
|
-
* Filters out
|
|
241
|
+
* Filters out entries reported as validation errors (directory-target, outside-project).
|
|
213
242
|
*/
|
|
214
243
|
function deduplicateExcludedReferences(excludedReferences, skillPath) {
|
|
215
244
|
const seenPaths = new Set();
|
|
216
245
|
const details = [];
|
|
217
246
|
for (const ref of excludedReferences) {
|
|
218
|
-
if (ref.excludeReason
|
|
247
|
+
if (VALIDATION_ERROR_REASONS.has(ref.excludeReason ?? '')) {
|
|
219
248
|
continue;
|
|
220
249
|
}
|
|
221
250
|
if (seenPaths.has(ref.path)) {
|
|
@@ -223,14 +252,27 @@ function deduplicateExcludedReferences(excludedReferences, skillPath) {
|
|
|
223
252
|
}
|
|
224
253
|
seenPaths.add(ref.path);
|
|
225
254
|
const matchedPattern = ref.matchedRule?.patterns[0];
|
|
255
|
+
const reason = mapExcludeReason(ref.excludeReason);
|
|
226
256
|
details.push({
|
|
227
257
|
path: toForwardSlash(relative(dirname(skillPath), ref.path)),
|
|
228
|
-
reason
|
|
258
|
+
reason,
|
|
229
259
|
...(matchedPattern === undefined ? {} : { matchedPattern }),
|
|
230
260
|
});
|
|
231
261
|
}
|
|
232
262
|
return details;
|
|
233
263
|
}
|
|
264
|
+
/** Map walk-link-graph exclude reasons to detail reasons */
|
|
265
|
+
function mapExcludeReason(excludeReason) {
|
|
266
|
+
switch (excludeReason) {
|
|
267
|
+
case 'pattern-matched': return 'pattern-matched';
|
|
268
|
+
case 'navigation-file': return 'navigation-file';
|
|
269
|
+
case 'depth-exceeded':
|
|
270
|
+
case EXCLUDE_REASON_DIRECTORY:
|
|
271
|
+
case EXCLUDE_REASON_OUTSIDE_PROJECT:
|
|
272
|
+
case undefined:
|
|
273
|
+
return 'depth-exceeded';
|
|
274
|
+
}
|
|
275
|
+
}
|
|
234
276
|
/**
|
|
235
277
|
* Extract skill name from parse result
|
|
236
278
|
*/
|
|
@@ -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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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ValidationResult } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Validate a plugin directory structure
|
|
3
|
+
* Validate a plugin directory structure against the ClaudePluginSchema.
|
|
4
4
|
*
|
|
5
|
+
* @see https://code.claude.com/docs/en/plugins-reference — Official plugin manifest spec
|
|
5
6
|
* @param pluginPath - Absolute path to plugin directory
|
|
6
7
|
* @returns Validation result with issues
|
|
7
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-validator.d.ts","sourceRoot":"","sources":["../../src/validators/plugin-validator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQpE
|
|
1
|
+
{"version":3,"file":"plugin-validator.d.ts","sourceRoot":"","sources":["../../src/validators/plugin-validator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQpE;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+ElF"}
|
|
@@ -5,8 +5,9 @@ import { ClaudePluginSchema } from '../schemas/claude-plugin.js';
|
|
|
5
5
|
import { calculateValidationStatus, generateFixSuggestion, } from './validation-utils.js';
|
|
6
6
|
const PLUGIN_TYPE = 'claude-plugin';
|
|
7
7
|
/**
|
|
8
|
-
* Validate a plugin directory structure
|
|
8
|
+
* Validate a plugin directory structure against the ClaudePluginSchema.
|
|
9
9
|
*
|
|
10
|
+
* @see https://code.claude.com/docs/en/plugins-reference — Official plugin manifest spec
|
|
10
11
|
* @param pluginPath - Absolute path to plugin directory
|
|
11
12
|
* @returns Validation result with issues
|
|
12
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-validator.js","sourceRoot":"","sources":["../../src/validators/plugin-validator.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,EACN,yBAAyB,EACzB,qBAAqB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,GAAG,eAAwB,CAAC;AAE7C
|
|
1
|
+
{"version":3,"file":"plugin-validator.js","sourceRoot":"","sources":["../../src/validators/plugin-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { ValidateOptions, ValidationResult } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Validate
|
|
3
|
+
* Validate an Agent Skill (SKILL.md file)
|
|
4
4
|
*
|
|
5
5
|
* Uses ResourceRegistry for markdown/link validation
|
|
6
6
|
* Adds skill-specific validation (frontmatter schema, skill rules)
|
|
7
7
|
*
|
|
8
|
+
* @see https://code.claude.com/docs/en/skills — Official Claude Code skill spec
|
|
8
9
|
* @param options - Validation options
|
|
9
10
|
* @returns Validation result with all validation issues
|
|
10
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-validator.d.ts","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-validator.d.ts","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErF;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4DvF"}
|