@vibe-agent-toolkit/agent-skills 0.1.16-rc.2 → 0.1.16-rc.3
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.
|
@@ -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":"AAQA,OAAO,KAAK,EAA8B,eAAe,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGjH;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwEvF"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
|
+
import { basename, dirname, relative, resolve } from 'node:path';
|
|
3
|
+
import { parseMarkdown } from '@vibe-agent-toolkit/resources';
|
|
2
4
|
import { parseFrontmatter } from '../parsers/frontmatter-parser.js';
|
|
3
5
|
import { validateFrontmatterRules, validateFrontmatterSchema } from './frontmatter-validation.js';
|
|
6
|
+
import { NAVIGATION_FILE_PATTERNS } from './validation-rules.js';
|
|
4
7
|
/**
|
|
5
8
|
* Validate an Agent Skill (SKILL.md file)
|
|
6
9
|
*
|
|
@@ -51,11 +54,172 @@ export async function validateSkill(options) {
|
|
|
51
54
|
issues.push(...validateFrontmatterSchema(frontmatter, isVATGenerated), ...validateFrontmatterRules(frontmatter));
|
|
52
55
|
// Validate warning-level rules (skill-specific)
|
|
53
56
|
validateWarningRules(content, lineCount, skillPath, issues);
|
|
54
|
-
//
|
|
55
|
-
|
|
57
|
+
// Transitive link traversal (BFS)
|
|
58
|
+
const skillDir = options.rootDir ?? dirname(skillPath);
|
|
59
|
+
const linkedFiles = await traverseLinks(skillPath, skillDir, issues);
|
|
60
|
+
// Unreferenced file detection
|
|
61
|
+
if (options.checkUnreferencedFiles) {
|
|
62
|
+
detectUnreferencedFiles(skillPath, skillDir, linkedFiles, issues);
|
|
63
|
+
}
|
|
56
64
|
// Build metadata
|
|
57
65
|
const metadata = buildMetadata(frontmatter, lineCount);
|
|
58
|
-
|
|
66
|
+
const result = buildResult(skillPath, isVATGenerated, issues, metadata);
|
|
67
|
+
if (linkedFiles.length > 0) {
|
|
68
|
+
result.linkedFiles = linkedFiles;
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
// ============================================================================
|
|
73
|
+
// Link Traversal (BFS)
|
|
74
|
+
// ============================================================================
|
|
75
|
+
/** Files to never flag as unreferenced */
|
|
76
|
+
const UNREFERENCED_EXCLUDE_PATTERNS = new Set([
|
|
77
|
+
'SKILL.md',
|
|
78
|
+
'CLAUDE.md',
|
|
79
|
+
...NAVIGATION_FILE_PATTERNS,
|
|
80
|
+
]);
|
|
81
|
+
/**
|
|
82
|
+
* Validate a single local_file link: boundary check, existence check.
|
|
83
|
+
*
|
|
84
|
+
* @returns 'boundary' | 'broken' | 'valid' indicating the link status
|
|
85
|
+
*/
|
|
86
|
+
function validateLocalLink(link, currentPath, skillDir, fileIssues, issues) {
|
|
87
|
+
// Strip anchor fragment before resolving
|
|
88
|
+
const hrefWithoutAnchor = link.href.split('#')[0] ?? link.href;
|
|
89
|
+
if (hrefWithoutAnchor === '') {
|
|
90
|
+
return { status: 'skip', resolvedPath: '' };
|
|
91
|
+
}
|
|
92
|
+
const resolvedPath = resolve(dirname(currentPath), hrefWithoutAnchor);
|
|
93
|
+
const relativeToBoundary = relative(skillDir, resolvedPath);
|
|
94
|
+
// Check boundary escape
|
|
95
|
+
if (relativeToBoundary.startsWith('..')) {
|
|
96
|
+
const issue = {
|
|
97
|
+
severity: 'warning',
|
|
98
|
+
code: 'OUTSIDE_PROJECT_BOUNDARY',
|
|
99
|
+
message: `Link points outside skill directory: ${link.href}`,
|
|
100
|
+
location: `${currentPath}:${link.line ?? 0}`,
|
|
101
|
+
fix: 'Keep skills self-contained — move referenced files into the skill directory',
|
|
102
|
+
};
|
|
103
|
+
fileIssues.push(issue);
|
|
104
|
+
issues.push(issue);
|
|
105
|
+
return { status: 'boundary', resolvedPath };
|
|
106
|
+
}
|
|
107
|
+
// Check existence
|
|
108
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- resolvedPath from parsed markdown
|
|
109
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
110
|
+
const issue = {
|
|
111
|
+
severity: 'error',
|
|
112
|
+
code: 'LINK_INTEGRITY_BROKEN',
|
|
113
|
+
message: `Link target not found: ${link.href}`,
|
|
114
|
+
location: `${currentPath}:${link.line ?? 0}`,
|
|
115
|
+
fix: 'Fix link path or restore missing file',
|
|
116
|
+
};
|
|
117
|
+
fileIssues.push(issue);
|
|
118
|
+
issues.push(issue);
|
|
119
|
+
return { status: 'broken', resolvedPath };
|
|
120
|
+
}
|
|
121
|
+
return { status: 'valid', resolvedPath };
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Process all local links in a parsed markdown file.
|
|
125
|
+
* Returns link validation results and newly discovered paths for BFS.
|
|
126
|
+
*/
|
|
127
|
+
function processFileLinks(parseResult, currentPath, skillDir, issues, visited) {
|
|
128
|
+
const localLinks = parseResult.links.filter(link => link.type === 'local_file');
|
|
129
|
+
const fileIssues = [];
|
|
130
|
+
const newPaths = [];
|
|
131
|
+
let linksValidated = 0;
|
|
132
|
+
for (const link of localLinks) {
|
|
133
|
+
const { status, resolvedPath } = validateLocalLink(link, currentPath, skillDir, fileIssues, issues);
|
|
134
|
+
if (status === 'skip') {
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
linksValidated++;
|
|
138
|
+
if (status === 'valid' && resolvedPath.endsWith('.md') && !visited.has(resolvedPath)) {
|
|
139
|
+
visited.add(resolvedPath);
|
|
140
|
+
newPaths.push(resolvedPath);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return { localLinkCount: localLinks.length, linksValidated, fileIssues, newPaths, content: parseResult.content };
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Traverse links from SKILL.md using BFS, validating each link target.
|
|
147
|
+
*
|
|
148
|
+
* - Missing file -> LINK_INTEGRITY_BROKEN error
|
|
149
|
+
* - Outside skill directory -> OUTSIDE_PROJECT_BOUNDARY warning
|
|
150
|
+
* - Existing .md file -> recurse (add to BFS queue)
|
|
151
|
+
* - Non-markdown asset -> existence check only
|
|
152
|
+
*/
|
|
153
|
+
async function traverseLinks(skillPath, skillDir, issues) {
|
|
154
|
+
const resolvedSkillPath = resolve(skillPath);
|
|
155
|
+
const visited = new Set([resolvedSkillPath]);
|
|
156
|
+
const linkedFiles = [];
|
|
157
|
+
const queue = [resolvedSkillPath];
|
|
158
|
+
while (queue.length > 0) {
|
|
159
|
+
const currentPath = queue.shift();
|
|
160
|
+
if (!currentPath) {
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
let parseResult;
|
|
164
|
+
try {
|
|
165
|
+
parseResult = await parseMarkdown(currentPath);
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
issues.push({
|
|
169
|
+
severity: 'warning',
|
|
170
|
+
code: 'LINK_INTEGRITY_BROKEN',
|
|
171
|
+
message: `File exists but could not be parsed: ${currentPath}`,
|
|
172
|
+
location: currentPath,
|
|
173
|
+
});
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
const processed = processFileLinks(parseResult, currentPath, skillDir, issues, visited);
|
|
177
|
+
queue.push(...processed.newPaths);
|
|
178
|
+
// Record linked file result (skip SKILL.md itself — it's the root)
|
|
179
|
+
if (currentPath !== resolvedSkillPath) {
|
|
180
|
+
linkedFiles.push({
|
|
181
|
+
path: currentPath,
|
|
182
|
+
lineCount: processed.content.split('\n').length,
|
|
183
|
+
linksFound: processed.localLinkCount,
|
|
184
|
+
linksValidated: processed.linksValidated,
|
|
185
|
+
issues: processed.fileIssues,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return linkedFiles;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Detect .md files in the skill directory that are not reachable from SKILL.md.
|
|
193
|
+
*
|
|
194
|
+
* Excludes SKILL.md, CLAUDE.md, and navigation file patterns (README.md, etc.).
|
|
195
|
+
*/
|
|
196
|
+
function detectUnreferencedFiles(skillPath, skillDir, linkedFiles, issues) {
|
|
197
|
+
// Collect all visited paths (SKILL.md + linked files)
|
|
198
|
+
const visitedPaths = new Set([resolve(skillPath)]);
|
|
199
|
+
for (const lf of linkedFiles) {
|
|
200
|
+
visitedPaths.add(lf.path);
|
|
201
|
+
}
|
|
202
|
+
// Glob all .md files in the skill directory
|
|
203
|
+
const allMdFiles = fs.globSync('**/*.md', { cwd: skillDir });
|
|
204
|
+
for (const relPath of allMdFiles) {
|
|
205
|
+
const absPath = resolve(skillDir, relPath);
|
|
206
|
+
const fileName = basename(relPath);
|
|
207
|
+
// Skip excluded patterns
|
|
208
|
+
if (UNREFERENCED_EXCLUDE_PATTERNS.has(fileName)) {
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
// Skip files that were visited during traversal
|
|
212
|
+
if (visitedPaths.has(absPath)) {
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
issues.push({
|
|
216
|
+
severity: 'info',
|
|
217
|
+
code: 'SKILL_UNREFERENCED_FILE',
|
|
218
|
+
message: `Markdown file not referenced from SKILL.md link graph: ${relPath}`,
|
|
219
|
+
location: absPath,
|
|
220
|
+
fix: 'Add a link to this file from SKILL.md or a linked document, or remove the file',
|
|
221
|
+
});
|
|
222
|
+
}
|
|
59
223
|
}
|
|
60
224
|
function validateWarningRules(content, lineCount, skillPath, issues) {
|
|
61
225
|
// Check if skill is too long (>5000 lines)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-validator.js","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-validator.js","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-agent-toolkit/agent-skills",
|
|
3
|
-
"version": "0.1.16-rc.
|
|
3
|
+
"version": "0.1.16-rc.3",
|
|
4
4
|
"description": "Build, validate, and package agent skills in the Agent Skills format",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"typecheck": "tsc --noEmit"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@vibe-agent-toolkit/agent-config": "0.1.16-rc.
|
|
32
|
-
"@vibe-agent-toolkit/agent-schema": "0.1.16-rc.
|
|
33
|
-
"@vibe-agent-toolkit/resources": "0.1.16-rc.
|
|
34
|
-
"@vibe-agent-toolkit/utils": "0.1.16-rc.
|
|
31
|
+
"@vibe-agent-toolkit/agent-config": "0.1.16-rc.3",
|
|
32
|
+
"@vibe-agent-toolkit/agent-schema": "0.1.16-rc.3",
|
|
33
|
+
"@vibe-agent-toolkit/resources": "0.1.16-rc.3",
|
|
34
|
+
"@vibe-agent-toolkit/utils": "0.1.16-rc.3",
|
|
35
35
|
"adm-zip": "^0.5.16",
|
|
36
36
|
"picomatch": "^4.0.3",
|
|
37
37
|
"yaml": "^2.6.1",
|