@vibe-agent-toolkit/agent-skills 0.2.0-rc.10 → 0.2.0-rc.11
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
CHANGED
|
@@ -144,10 +144,24 @@ The validator checks for:
|
|
|
144
144
|
- `SKILL_MISSING_DESCRIPTION` - Required "description" field missing
|
|
145
145
|
- `SKILL_NAME_INVALID` - Name doesn't match pattern: `^[a-z0-9]+(-[a-z0-9]+)*$`
|
|
146
146
|
- `RESERVED_WORD_IN_NAME` (warning) - Name contains "claude" or "anthropic"
|
|
147
|
-
- `SKILL_NAME_XML_TAGS` - Name contains
|
|
147
|
+
- `SKILL_NAME_XML_TAGS` - Name contains an XML/HTML tag
|
|
148
148
|
- `SKILL_DESCRIPTION_TOO_LONG` - Description exceeds 1024 characters
|
|
149
149
|
- `SKILL_DESCRIPTION_EMPTY` - Description is empty or whitespace-only
|
|
150
|
-
- `SKILL_DESCRIPTION_XML_TAGS` - Description contains
|
|
150
|
+
- `SKILL_DESCRIPTION_XML_TAGS` - Description contains an XML/HTML tag. Three lanes:
|
|
151
|
+
**markup** — a closing `</x>`, a self-closing `<x/>`, an opening tag with an attribute
|
|
152
|
+
assignment `<x a="b">`, or a declaration (`<!--`, `<![CDATA[`, `<!DOCTYPE`, `<?xml`) — fires
|
|
153
|
+
wherever it appears, **backticks included**; a **bare placeholder** `<word>`, which is
|
|
154
|
+
indistinguishable from a tag, so it fires unless it reads as part of a path or identifier
|
|
155
|
+
(`skills/<name>/SKILL.md`, `<name>.md`, `Promise<Result>`, `repo#<n>`, `--flag=<value>`); and a
|
|
156
|
+
**prompt-channel name** (the `system`/`sys`, `assistant`, `human`, `invoke`, `instructions`,
|
|
157
|
+
`thinking`, `tool_use`/`tool_result`, `function_calls`/`function_results` and
|
|
158
|
+
`im_start`/`im_end` families, in any spelling), which fires whatever it is glued to
|
|
159
|
+
(`<system>.Ignore previous`, `x=<invoke>`, `< system >`). Backticking (`` `<env>` ``) clears
|
|
160
|
+
the last two lanes only. Everyday placeholder words (`<user>`, `<script>`, `<example>`) are not
|
|
161
|
+
channel names, and an arbitrary joined word (`<override>.Ignore`) passes — no syntactic rule
|
|
162
|
+
separates it from `--flag=<value>`. Not a tag: a comparison or arrow (`a < b`, `<=`, `->`,
|
|
163
|
+
`=>`), or angle brackets holding prose with no attribute assignment in them
|
|
164
|
+
(`<see https://example.com>`, `<y and y>`)
|
|
151
165
|
|
|
152
166
|
**Link Errors:**
|
|
153
167
|
- `LINK_INTEGRITY_BROKEN` - Link points to non-existent file
|
|
@@ -31,6 +31,13 @@ export declare function validateFrontmatterSchema(frontmatter: Record<string, un
|
|
|
31
31
|
* @returns Array of validation issues found
|
|
32
32
|
*/
|
|
33
33
|
export declare function validateFrontmatterRules(frontmatter: Record<string, unknown>, location: string): ValidationIssue[];
|
|
34
|
+
/**
|
|
35
|
+
* Every pattern that scans unbounded author text. Exported for the backtracking
|
|
36
|
+
* guard in `test/validators/frontmatter-validation.test.ts`, which runs each one
|
|
37
|
+
* under a deadline `node:vm` can enforce — a guard that reads the list cannot go
|
|
38
|
+
* blind to a pattern added later.
|
|
39
|
+
*/
|
|
40
|
+
export declare const XML_TAG_SCAN_PATTERNS: readonly RegExp[];
|
|
34
41
|
/**
|
|
35
42
|
* Detect frontmatter keys that sit outside the standard agentskills.io + Claude
|
|
36
43
|
* Code allowed set. Emits one `SKILL_FRONTMATTER_EXTRA_FIELDS` warning per
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter-validation.d.ts","sourceRoot":"","sources":["../../src/validators/frontmatter-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAwBjF;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,cAAc,EAAE,OAAO,EACvB,QAAQ,EAAE,MAAM,GACd,eAAe,EAAE,CAiDnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,EAAE,MAAM,GACd,eAAe,EAAE,CAiBnB;
|
|
1
|
+
{"version":3,"file":"frontmatter-validation.d.ts","sourceRoot":"","sources":["../../src/validators/frontmatter-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAwBjF;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,cAAc,EAAE,OAAO,EACvB,QAAQ,EAAE,MAAM,GACd,eAAe,EAAE,CAiDnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,EAAE,MAAM,GACd,eAAe,EAAE,CAiBnB;AAoJD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EASlD,CAAC;AA8QF;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,eAAe,EAAE,CAmBnB"}
|
|
@@ -110,6 +110,253 @@ export function validateFrontmatterRules(frontmatter, location) {
|
|
|
110
110
|
issues.push(...detectExtraFrontmatterFields(frontmatter));
|
|
111
111
|
return anchoredTo(location, issues);
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* The vendor rule is "Cannot contain XML tags"
|
|
115
|
+
* (docs/external/anthropic-skill-authoring-best-practices.md:21,27), and those
|
|
116
|
+
* docs never define "XML tag" nor mention angle brackets. This module's reading,
|
|
117
|
+
* stated so it can be argued with:
|
|
118
|
+
*
|
|
119
|
+
* **A tag is markup, not an angle bracket** — and the corpus splits in three.
|
|
120
|
+
*
|
|
121
|
+
* 1. UNAMBIGUOUS MARKUP. Nothing in prose is shaped like it, so it fires
|
|
122
|
+
* wherever it appears, backticks included: a markup declaration or processing
|
|
123
|
+
* instruction (`<!--`, `<![CDATA[`, `<!DOCTYPE`, `<?xml`), a closing tag
|
|
124
|
+
* (`</x>`), a self-closing tag (`<x/>`, `<x a/>`), and an opening tag that
|
|
125
|
+
* carries an ATTRIBUTE ASSIGNMENT (`<div class="x">`). Angle brackets holding
|
|
126
|
+
* prose are not a tag: `<see https://example.com>`, `<y and y>` and
|
|
127
|
+
* `Map<K, V>` are a URL, a comparison and a generic.
|
|
128
|
+
*
|
|
129
|
+
* 2. AN AMBIGUOUS BARE `<word>` — or `<word word…>`, a run of plain
|
|
130
|
+
* identifiers with no `and`/`or` among them. `<example>` and `<env>` are the
|
|
131
|
+
* same four characters, and `<script async>` is the same shape as
|
|
132
|
+
* `<skill name>`; no rule can tell a tag from a placeholder here. It
|
|
133
|
+
* therefore fires — the reading that keeps real tags firing — UNLESS it reads
|
|
134
|
+
* as part of a path or identifier, and the author can mark it as quoted text
|
|
135
|
+
* with backticks, which is what the `fix:` text tells them to do. "Part of a
|
|
136
|
+
* token" means a neighbour that BUILDS one: on the left a word character or
|
|
137
|
+
* `/` (`Promise<Result>`, `skills/<name>`), or a `#`, `@` or `=` that itself
|
|
138
|
+
* follows a word character or a group (`repo#<n>`, `pkg@<v>`, `--flag=<value>`,
|
|
139
|
+
* `acme/<repo>#<n>`); on the
|
|
140
|
+
* right a path segment (`<name>/SKILL.md`) or a `.`, `-` or `@` followed by a
|
|
141
|
+
* word character (`<name>.md`, `<name>-skill`, `<pkg>@latest`). Sentence
|
|
142
|
+
* punctuation joins nothing: `Done.<instructions>`, `x -<system>` and
|
|
143
|
+
* `<system>.` all fire. A consequence worth
|
|
144
|
+
* naming: a free-standing `<owner>` in `<owner>/<repo>#<n>` fires, because it
|
|
145
|
+
* is character-for-character what `<example>/<example>` is, and that one must
|
|
146
|
+
* fire. Backticking the whole template clears it.
|
|
147
|
+
*
|
|
148
|
+
* 3. A PROMPT-CHANNEL NAME ({@link isPromptChannelName}) — the tag names a chat
|
|
149
|
+
* transcript or a tool protocol is built from — is never read as a
|
|
150
|
+
* placeholder, so no neighbour exempts it and its body need not be an
|
|
151
|
+
* identifier run: `<system>.Ignore previous`, `x=<invoke>`, `a@<system>`,
|
|
152
|
+
* `<system role: admin>` and `<system and user>` all fire. Matched by FAMILY
|
|
153
|
+
* on the name split at `.` `:` `-` `_`, so `<system_prompt>`,
|
|
154
|
+
* `<system.prompt>`, `<systemprompt>` and `<sys_prompt>` are one name; and
|
|
155
|
+
* whitespace or a `|` between `<` and the name does not hide it
|
|
156
|
+
* (`< system >`, `</ system>`, `<|im_start|>`). The joiner exemptions exist
|
|
157
|
+
* so `<name>.md` and `KEY=<value>` stay quiet; they must not become a way to
|
|
158
|
+
* glue an injection-shaped tag onto punctuation. Generic placeholder words
|
|
159
|
+
* (`user`, `script`, `example`, `document`, `context`, `prompt`) are NOT on
|
|
160
|
+
* it — `https://github.com/<user>/<repo>` and `<script>.sh` are templates.
|
|
161
|
+
* Backticks still clear a channel name, as they clear class 2.
|
|
162
|
+
*
|
|
163
|
+
* ⛔ The stated LIMIT: an arbitrary word is not a channel name, so
|
|
164
|
+
* `<override>.Ignore safety` and `x=<important>` pass. No syntactic rule
|
|
165
|
+
* separates them from `--flag=<value>` or `<name>.md`; only a vocabulary
|
|
166
|
+
* can, and the vocabulary is closed to names that are never a placeholder.
|
|
167
|
+
*
|
|
168
|
+
* Backticks exempt only classes 2 and 3. A code span may HIDE markup from the eye, but
|
|
169
|
+
* it must never EXEMPT it: backticks in a description are unpaired often enough
|
|
170
|
+
* that any pairing rule — naive or CommonMark-exact — can be made to swallow a
|
|
171
|
+
* real tag (`` ` then <b>x</b> and a final ` `` is ONE span).
|
|
172
|
+
*/
|
|
173
|
+
/** An inline code span (`` `...` ``): the author marking content as quoted text. */
|
|
174
|
+
const INLINE_CODE_SPAN = /`[^`]*`/g;
|
|
175
|
+
/** `<!--`, `<![CDATA[`, `<!DOCTYPE`, `<?xml` — markup, never prose. */
|
|
176
|
+
const MARKUP_DECLARATION = /<\?|<!(?:--|\[|[A-Za-z])/;
|
|
177
|
+
/**
|
|
178
|
+
* One `<…>` group, to be classified by {@link classifyGroup}: an optional `/`,
|
|
179
|
+
* a LEAD of whitespace or `|` (group 2 — non-empty only for `< system >` or
|
|
180
|
+
* `<|im_start|>`, where only a channel name counts), and the body (group 3).
|
|
181
|
+
* The name start (`[\p{L}_]`, any letter or `_`) is a single character disjoint
|
|
182
|
+
* from the lead, and `[^<>]*` is the only quantifier after it, so no two
|
|
183
|
+
* quantifiers can split one run between them — the ambiguity that makes an
|
|
184
|
+
* adjacent pair of stars quadratic. Each start position scans only as far as
|
|
185
|
+
* the next `<` or `>`.
|
|
186
|
+
*/
|
|
187
|
+
const ANGLE_GROUP = /<(\/?)([\s|]*)([\p{L}_][^<>]*)>/gu;
|
|
188
|
+
/** The tag-name prefix of a group body; the remainder is its attribute run. */
|
|
189
|
+
const TAG_NAME_PREFIX = /^[\p{L}_][\p{L}\p{N}_.:-]*/u;
|
|
190
|
+
/** One valueless attribute name: `async`, `src`, `data-x`. */
|
|
191
|
+
const ATTRIBUTE_NAME = /^[\p{L}_][\p{L}\p{N}_-]*$/u;
|
|
192
|
+
/** Separates the words of an attribute run. */
|
|
193
|
+
const WHITESPACE_RUN = /\s+/u;
|
|
194
|
+
/** Connectives that make an identifier run read as prose (`<y and y>`). */
|
|
195
|
+
const PROSE_CONNECTIVES = new Set(['and', 'or']);
|
|
196
|
+
/** The separators a tag name is split at into words: `system_prompt`, `system.prompt`, `system:prompt`. */
|
|
197
|
+
const NAME_SEPARATOR = /[.:_-]/gu;
|
|
198
|
+
/** Channel families recognised by the FIRST word of the name: `<sys_prompt>`, `<invoke>`, `<thinking>`. */
|
|
199
|
+
const CHANNEL_FIRST_WORDS = new Set([
|
|
200
|
+
'sys',
|
|
201
|
+
'invoke',
|
|
202
|
+
'instruction',
|
|
203
|
+
'instructions',
|
|
204
|
+
'thinking',
|
|
205
|
+
]);
|
|
206
|
+
/**
|
|
207
|
+
* Channel families recognised on the name with its separators removed:
|
|
208
|
+
* `system*` (`system-reminder`, `systemprompt`), `assistant*`, `human*`,
|
|
209
|
+
* `antml*`, a tool or function call/result (`tool_use`, `function_results`),
|
|
210
|
+
* and the ChatML markers `im_start`/`im_end`. `<tool-name>` and
|
|
211
|
+
* `<function_name>` are placeholders and do not match. Anchored alternation of
|
|
212
|
+
* literals: linear on any input.
|
|
213
|
+
*/
|
|
214
|
+
const CHANNEL_JOINED_NAME = /^(?:system|assistant|human|antml|(?:tool|function)(?:use|call|result|response|output)|im(?:start|end)$)/u;
|
|
215
|
+
/**
|
|
216
|
+
* Whether a tag name is a prompt CHANNEL — a role, section or tool-protocol
|
|
217
|
+
* name a chat transcript is built from, and never a sensible placeholder.
|
|
218
|
+
* Class 3 in the module docblock. Case-insensitive; `<username>` is not a
|
|
219
|
+
* channel name, and neither is `<user>`, which is an everyday placeholder.
|
|
220
|
+
*/
|
|
221
|
+
function isPromptChannelName(tagName) {
|
|
222
|
+
const lowered = tagName.toLowerCase();
|
|
223
|
+
const firstWord = lowered.split(NAME_SEPARATOR)[0] ?? '';
|
|
224
|
+
return (CHANNEL_FIRST_WORDS.has(firstWord) ||
|
|
225
|
+
CHANNEL_JOINED_NAME.test(lowered.replaceAll(NAME_SEPARATOR, '')));
|
|
226
|
+
}
|
|
227
|
+
/** A left neighbour that builds an identifier on its own: `Promise<`, `skills/<`. */
|
|
228
|
+
const IDENTIFIER_LEFT = /[\w/]/;
|
|
229
|
+
/** A left joiner that builds one only after a word character: `repo#<`, `pkg@<`, `KEY=<`. */
|
|
230
|
+
const JOINER_LEFT = /[#@=]/;
|
|
231
|
+
/** What a left joiner must follow to be mid-token: a word character, or the `>` of a group. */
|
|
232
|
+
const TOKEN_END = /[\w>]/;
|
|
233
|
+
/** A right joiner that continues a token when a word follows: `<name>.md`, `<name>-skill`, `<pkg>@latest`. */
|
|
234
|
+
const JOINER_RIGHT = /[.@-]/;
|
|
235
|
+
/** A literal path segment — what has to follow `<name>/` for it to be a path. */
|
|
236
|
+
const PATH_SEGMENT_CHAR = /[\w.]/;
|
|
237
|
+
const WORD_CHAR = /\w/;
|
|
238
|
+
/**
|
|
239
|
+
* Every pattern that scans unbounded author text. Exported for the backtracking
|
|
240
|
+
* guard in `test/validators/frontmatter-validation.test.ts`, which runs each one
|
|
241
|
+
* under a deadline `node:vm` can enforce — a guard that reads the list cannot go
|
|
242
|
+
* blind to a pattern added later.
|
|
243
|
+
*/
|
|
244
|
+
export const XML_TAG_SCAN_PATTERNS = [
|
|
245
|
+
INLINE_CODE_SPAN,
|
|
246
|
+
MARKUP_DECLARATION,
|
|
247
|
+
ANGLE_GROUP,
|
|
248
|
+
TAG_NAME_PREFIX,
|
|
249
|
+
NAME_SEPARATOR,
|
|
250
|
+
CHANNEL_JOINED_NAME,
|
|
251
|
+
ATTRIBUTE_NAME,
|
|
252
|
+
WHITESPACE_RUN,
|
|
253
|
+
];
|
|
254
|
+
/** Whether the character left of `index` builds an identifier the group joins. */
|
|
255
|
+
function joinsOnLeft(text, index) {
|
|
256
|
+
const before = text.charAt(index - 1);
|
|
257
|
+
if (before === '') {
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
if (IDENTIFIER_LEFT.test(before)) {
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
// `#`, `@`, `=` join only a token already under way: `repo#<n>` is one, and
|
|
264
|
+
// so is `acme/<repo>#<n>`, whose `>` closes a group judged on its own;
|
|
265
|
+
// `#<system>` and `x @<system>` are not.
|
|
266
|
+
return JOINER_LEFT.test(before) && TOKEN_END.test(text.charAt(index - 2));
|
|
267
|
+
}
|
|
268
|
+
/** Whether the text right of `end` continues the group into a larger token. */
|
|
269
|
+
function continuesOnRight(text, end) {
|
|
270
|
+
const after = text.charAt(end);
|
|
271
|
+
const next = text.charAt(end + 1);
|
|
272
|
+
// `<name>/SKILL.md`: the path continues with a literal segment.
|
|
273
|
+
// `<example>/<example>` continues with another group, so it is not a path —
|
|
274
|
+
// an unconditional "followed by a slash" exemption is an escape hatch for
|
|
275
|
+
// every tag.
|
|
276
|
+
if (after === '/' || after === '\\') {
|
|
277
|
+
return PATH_SEGMENT_CHAR.test(next);
|
|
278
|
+
}
|
|
279
|
+
// `<name>.md`, `<name>-skill`, `<pkg>@latest` — but not a sentence-ending
|
|
280
|
+
// `<system>.`, which is followed by nothing or a space.
|
|
281
|
+
return JOINER_RIGHT.test(after) && WORD_CHAR.test(next);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Whether an ambiguous group at `index` reads as a tag rather than as a
|
|
285
|
+
* placeholder inside a larger token.
|
|
286
|
+
*/
|
|
287
|
+
function isBareTagInProse(text, index, length) {
|
|
288
|
+
const end = index + length;
|
|
289
|
+
// `Promise<Result>`, `skills/<name>`, `repo#<n>`: a token continues on the
|
|
290
|
+
// left and the group is followed by punctuation or the end. A WORD character
|
|
291
|
+
// after `>` means the group is glued into the middle of a word
|
|
292
|
+
// (`in<thinking>mode`) — that is a tag, not a compound identifier.
|
|
293
|
+
if (joinsOnLeft(text, index) && !WORD_CHAR.test(text.charAt(end))) {
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
return !continuesOnRight(text, end);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Whether an attribute run is a list of valueless attribute names
|
|
300
|
+
* (`<script async>`, `<img src>`) rather than prose between angle brackets
|
|
301
|
+
* (`<y and y>`, `<see https://…>`, `Map<K, V>`). An empty run qualifies.
|
|
302
|
+
*/
|
|
303
|
+
function isIdentifierRun(attributeRun) {
|
|
304
|
+
const trimmed = attributeRun.trim();
|
|
305
|
+
if (trimmed === '') {
|
|
306
|
+
return true;
|
|
307
|
+
}
|
|
308
|
+
return trimmed
|
|
309
|
+
.split(WHITESPACE_RUN)
|
|
310
|
+
.every((word) => ATTRIBUTE_NAME.test(word) && !PROSE_CONNECTIVES.has(word.toLowerCase()));
|
|
311
|
+
}
|
|
312
|
+
/** Classify a group body that is not ambiguous. */
|
|
313
|
+
function isMarkupBody(closing, attributeRun) {
|
|
314
|
+
if (closing) {
|
|
315
|
+
return attributeRun.trim() === '';
|
|
316
|
+
}
|
|
317
|
+
if (attributeRun.trimEnd().endsWith('/')) {
|
|
318
|
+
return true;
|
|
319
|
+
}
|
|
320
|
+
// A run of prose with no assignment in it is not a tag.
|
|
321
|
+
return attributeRun.includes('=');
|
|
322
|
+
}
|
|
323
|
+
/** Classify one {@link ANGLE_GROUP} match into the lanes of the module docblock. */
|
|
324
|
+
function classifyGroup(text, match) {
|
|
325
|
+
const body = match[3] ?? '';
|
|
326
|
+
const tagName = TAG_NAME_PREFIX.exec(body)?.[0] ?? '';
|
|
327
|
+
const channel = isPromptChannelName(tagName);
|
|
328
|
+
if (match[2] !== '') {
|
|
329
|
+
// `< system >`, `<|im_start|>`, `a < b and c > d`: a spaced or piped group
|
|
330
|
+
// is a tag only when it names a channel.
|
|
331
|
+
return { markup: false, bareTag: channel };
|
|
332
|
+
}
|
|
333
|
+
const attributeRun = body.slice(tagName.length);
|
|
334
|
+
const closing = match[1] === '/';
|
|
335
|
+
if (!closing && isIdentifierRun(attributeRun)) {
|
|
336
|
+
return { markup: false, bareTag: channel || isBareTagInProse(text, match.index, match[0].length) };
|
|
337
|
+
}
|
|
338
|
+
// `<system role: admin>` is prose-shaped, which is no excuse for a channel name.
|
|
339
|
+
return { markup: isMarkupBody(closing, attributeRun), bareTag: channel };
|
|
340
|
+
}
|
|
341
|
+
function scanAngleGroups(text) {
|
|
342
|
+
const scan = { markup: MARKUP_DECLARATION.test(text), bareTag: false };
|
|
343
|
+
for (const match of text.matchAll(ANGLE_GROUP)) {
|
|
344
|
+
const group = classifyGroup(text, match);
|
|
345
|
+
scan.markup ||= group.markup;
|
|
346
|
+
scan.bareTag ||= group.bareTag;
|
|
347
|
+
}
|
|
348
|
+
return scan;
|
|
349
|
+
}
|
|
350
|
+
function containsXmlTag(text) {
|
|
351
|
+
const raw = scanAngleGroups(text);
|
|
352
|
+
if (raw.markup) {
|
|
353
|
+
return true;
|
|
354
|
+
}
|
|
355
|
+
if (!text.includes('`')) {
|
|
356
|
+
return raw.bareTag;
|
|
357
|
+
}
|
|
358
|
+
return scanAngleGroups(text.replaceAll(INLINE_CODE_SPAN, ' ')).bareTag;
|
|
359
|
+
}
|
|
113
360
|
function validateNameRules(name) {
|
|
114
361
|
const issues = [];
|
|
115
362
|
const lowered = name.toLowerCase();
|
|
@@ -124,26 +371,26 @@ function validateNameRules(name) {
|
|
|
124
371
|
reference: registryEntry.reference,
|
|
125
372
|
});
|
|
126
373
|
}
|
|
127
|
-
if (
|
|
374
|
+
if (containsXmlTag(name)) {
|
|
128
375
|
issues.push({
|
|
129
376
|
severity: 'error',
|
|
130
377
|
code: 'SKILL_NAME_XML_TAGS',
|
|
131
378
|
message: 'Name contains XML tags',
|
|
132
379
|
field: FRONTMATTER_NAME_FIELD,
|
|
133
|
-
fix: 'Remove
|
|
380
|
+
fix: 'Remove the XML/HTML tag from the name',
|
|
134
381
|
});
|
|
135
382
|
}
|
|
136
383
|
return issues;
|
|
137
384
|
}
|
|
138
385
|
function validateDescriptionRules(description) {
|
|
139
386
|
const issues = [];
|
|
140
|
-
if (
|
|
387
|
+
if (containsXmlTag(description)) {
|
|
141
388
|
issues.push({
|
|
142
389
|
severity: 'error',
|
|
143
390
|
code: 'SKILL_DESCRIPTION_XML_TAGS',
|
|
144
391
|
message: 'Description contains XML tags',
|
|
145
392
|
field: FRONTMATTER_DESC_FIELD,
|
|
146
|
-
fix: 'Remove
|
|
393
|
+
fix: 'Remove the XML/HTML tag from the description. If it is a literal placeholder such as `<env>` or `<owner>/<repo>`, or a prompt-channel name you are quoting on purpose (`<system>`), wrap it in backticks to mark it as quoted text — backticks do not exempt real markup (`</x>`, `<x/>`, `<x a="b">`, `<!--`, `<?`), which must be removed.',
|
|
147
394
|
});
|
|
148
395
|
}
|
|
149
396
|
if (description.trim() === '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter-validation.js","sourceRoot":"","sources":["../../src/validators/frontmatter-validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontmatter-validation.js","sourceRoot":"","sources":["../../src/validators/frontmatter-validation.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.2.0-rc.
|
|
3
|
+
"version": "0.2.0-rc.11",
|
|
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.2.0-rc.
|
|
32
|
-
"@vibe-agent-toolkit/schema": "0.2.0-rc.
|
|
33
|
-
"@vibe-agent-toolkit/resources": "0.2.0-rc.
|
|
34
|
-
"@vibe-agent-toolkit/utils": "0.2.0-rc.
|
|
31
|
+
"@vibe-agent-toolkit/agent-config": "0.2.0-rc.11",
|
|
32
|
+
"@vibe-agent-toolkit/schema": "0.2.0-rc.11",
|
|
33
|
+
"@vibe-agent-toolkit/resources": "0.2.0-rc.11",
|
|
34
|
+
"@vibe-agent-toolkit/utils": "0.2.0-rc.11",
|
|
35
35
|
"adm-zip": "^0.6.1",
|
|
36
36
|
"glob": "^10.3.10",
|
|
37
37
|
"picomatch": "^4.0.3",
|