@vibe-agent-toolkit/cli 0.1.11 → 0.1.12
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/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +30 -10
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +19 -4
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/validate.d.ts +2 -0
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +6 -3
- package/dist/commands/resources/validate.js.map +1 -1
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +85 -37
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/command-helpers.d.ts +17 -1
- package/dist/commands/skills/command-helpers.d.ts.map +1 -1
- package/dist/commands/skills/command-helpers.js +16 -0
- package/dist/commands/skills/command-helpers.js.map +1 -1
- package/dist/commands/skills/install-helpers.d.ts +1 -1
- package/dist/commands/skills/install-helpers.d.ts.map +1 -1
- package/dist/commands/skills/install-helpers.js +7 -2
- package/dist/commands/skills/install-helpers.js.map +1 -1
- package/dist/commands/skills/shared.d.ts +23 -0
- package/dist/commands/skills/shared.d.ts.map +1 -0
- package/dist/commands/skills/shared.js +33 -0
- package/dist/commands/skills/shared.js.map +1 -0
- package/dist/commands/skills/validate-command.d.ts.map +1 -1
- package/dist/commands/skills/validate-command.js +55 -42
- package/dist/commands/skills/validate-command.js.map +1 -1
- package/dist/commands/skills/validate.d.ts +6 -11
- package/dist/commands/skills/validate.d.ts.map +1 -1
- package/dist/commands/skills/validate.js +128 -212
- package/dist/commands/skills/validate.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"command-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,MAAc,EACd,SAAiB,EACjB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAExC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,IAAI,CAAC,CAAC;IAExC,yCAAyC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA0B,EAC1B,SAAkB;IAElB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAE1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,UAAU,SAAS,wCAAwC,CAC5D,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiD;IAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA2B,EAC3B,KAAe;IAEf,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEvD,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;IAEnD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -39,7 +39,7 @@ export declare function readPackageJsonVatMetadata(dir: string): Promise<{
|
|
|
39
39
|
export declare function downloadNpmPackage(packageName: string, tempDir: string): string;
|
|
40
40
|
/**
|
|
41
41
|
* Validate npm postinstall environment
|
|
42
|
-
* Returns true if running in global install context
|
|
42
|
+
* Returns true if running in global install context (but not during npm link)
|
|
43
43
|
*/
|
|
44
44
|
export declare function isGlobalNpmInstall(): boolean;
|
|
45
45
|
//# sourceMappingURL=install-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,iBAAiB,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAqCvD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC,CAwBnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyC/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"install-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,iBAAiB,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAqCvD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC,CAwBnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyC/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAc5C"}
|
|
@@ -108,13 +108,18 @@ export function downloadNpmPackage(packageName, tempDir) {
|
|
|
108
108
|
}
|
|
109
109
|
/**
|
|
110
110
|
* Validate npm postinstall environment
|
|
111
|
-
* Returns true if running in global install context
|
|
111
|
+
* Returns true if running in global install context (but not during npm link)
|
|
112
112
|
*/
|
|
113
113
|
export function isGlobalNpmInstall() {
|
|
114
114
|
// Check if npm_config_global is set (npm sets this during global installs)
|
|
115
115
|
const isGlobal = process.env['npm_config_global'] === 'true';
|
|
116
116
|
// Check if running as postinstall script
|
|
117
117
|
const isPostinstall = process.env['npm_lifecycle_event'] === 'postinstall';
|
|
118
|
-
|
|
118
|
+
// Check npm command to distinguish between:
|
|
119
|
+
// - npm install -g → npm_command === 'install' → Run postinstall ✅
|
|
120
|
+
// - npm link → npm_command === 'link' → Skip postinstall ✅
|
|
121
|
+
// This prevents npm link from corrupting npm's internal state
|
|
122
|
+
const isInstallCommand = process.env['npm_command'] === 'install';
|
|
123
|
+
return isGlobal && isPostinstall && isInstallCommand;
|
|
119
124
|
}
|
|
120
125
|
//# sourceMappingURL=install-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for skills commands
|
|
3
|
+
*/
|
|
4
|
+
import type { VatSkillMetadata } from '@vibe-agent-toolkit/agent-schema';
|
|
5
|
+
import type { createLogger } from '../../utils/logger.js';
|
|
6
|
+
/**
|
|
7
|
+
* Package.json with VAT skill metadata
|
|
8
|
+
*/
|
|
9
|
+
export interface PackageJson {
|
|
10
|
+
name?: string;
|
|
11
|
+
vat?: {
|
|
12
|
+
skills: VatSkillMetadata[];
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Read and parse package.json from current directory
|
|
17
|
+
*/
|
|
18
|
+
export declare function readPackageJson(cwd: string): Promise<PackageJson>;
|
|
19
|
+
/**
|
|
20
|
+
* Validate skill source exists
|
|
21
|
+
*/
|
|
22
|
+
export declare function validateSkillSource(skill: VatSkillMetadata, cwd: string, logger: ReturnType<typeof createLogger>): string;
|
|
23
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE;QACL,MAAM,EAAE,gBAAgB,EAAE,CAAC;KAC3B,CAAC;CACF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAWvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,GACrC,MAAM,CAWR"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for skills commands
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync } from 'node:fs';
|
|
5
|
+
import { readFile } from 'node:fs/promises';
|
|
6
|
+
import { join, resolve } from 'node:path';
|
|
7
|
+
/**
|
|
8
|
+
* Read and parse package.json from current directory
|
|
9
|
+
*/
|
|
10
|
+
export async function readPackageJson(cwd) {
|
|
11
|
+
const packageJsonPath = join(cwd, 'package.json');
|
|
12
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Reading from validated current directory
|
|
13
|
+
if (!existsSync(packageJsonPath)) {
|
|
14
|
+
throw new Error(`package.json not found in current directory: ${cwd}`);
|
|
15
|
+
}
|
|
16
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Reading from validated current directory
|
|
17
|
+
const content = await readFile(packageJsonPath, 'utf-8');
|
|
18
|
+
return JSON.parse(content);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validate skill source exists
|
|
22
|
+
*/
|
|
23
|
+
export function validateSkillSource(skill, cwd, logger) {
|
|
24
|
+
const sourcePath = resolve(cwd, skill.source);
|
|
25
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Path resolved from package.json
|
|
26
|
+
if (!existsSync(sourcePath)) {
|
|
27
|
+
logger.error(`❌ Skill source not found: ${skill.source}`);
|
|
28
|
+
logger.error(` Expected path: ${sourcePath}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
return sourcePath;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/skills/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgB1C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAChD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAElD,+GAA+G;IAC/G,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,+GAA+G;IAC/G,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,KAAuB,EACvB,GAAW,EACX,MAAuC;IAEvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9C,sGAAsG;IACtG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-command.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/validate-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,qBAAqB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"validate-command.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/validate-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,qBAAqB,IAAI,OAAO,CAuF/C"}
|
|
@@ -6,50 +6,63 @@ import { validateCommand } from './validate.js';
|
|
|
6
6
|
export function createValidateCommand() {
|
|
7
7
|
const command = new Command('validate');
|
|
8
8
|
command
|
|
9
|
-
.description('Validate
|
|
10
|
-
.argument('[path]', 'Path to
|
|
11
|
-
.option('
|
|
9
|
+
.description('Validate skills for packaging (reads vat.skills from package.json)')
|
|
10
|
+
.argument('[path]', 'Path to directory with package.json (default: current directory)')
|
|
11
|
+
.option('--skill <name>', 'Validate specific skill only')
|
|
12
|
+
.option('-v, --verbose', 'Show full details including excluded reference paths')
|
|
12
13
|
.option('-d, --debug', 'Enable debug logging')
|
|
13
14
|
.action(validateCommand)
|
|
14
15
|
.addHelpText('after', `
|
|
15
16
|
Description:
|
|
16
|
-
Validates
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
Validates skills declared in package.json vat.skills field using
|
|
18
|
+
enhanced packaging validation. Checks size/complexity, link depth,
|
|
19
|
+
navigation patterns, and applies validation overrides.
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- User mode (--user): Validate ~/.claude skills with permissive validation
|
|
23
|
-
- Path mode: Validate skills at specific path with strict validation
|
|
21
|
+
Reads skills from package.json vat.skills and runs validateSkillForPackaging()
|
|
22
|
+
for each skill. Supports validation overrides with expiration checking.
|
|
24
23
|
|
|
25
|
-
Validation
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
24
|
+
Validation Checks:
|
|
25
|
+
Required (non-overridable):
|
|
26
|
+
- Valid YAML frontmatter
|
|
27
|
+
- Skill has a name
|
|
28
|
+
- No reserved words (anthropic/claude)
|
|
29
|
+
- No broken internal links
|
|
30
|
+
- No circular references
|
|
31
|
+
- Links stay within package boundary
|
|
32
|
+
- No filename collisions
|
|
33
|
+
- Forward slashes in paths (not backslashes)
|
|
30
34
|
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
+
Best practices (overridable):
|
|
36
|
+
- SKILL.md ≤500 lines (recommended)
|
|
37
|
+
- Total skill size ≤2000 lines
|
|
38
|
+
- File count ≤6 files
|
|
39
|
+
- Reference depth ≤2 levels
|
|
40
|
+
- No links to navigation files (README.md, index.md)
|
|
41
|
+
- Description ≥50 characters
|
|
42
|
+
- Progressive disclosure pattern
|
|
35
43
|
|
|
36
|
-
Validation
|
|
37
|
-
|
|
38
|
-
- Internal file links (relative paths)
|
|
39
|
-
- Anchor links within files (#heading)
|
|
40
|
-
- Cross-file anchor links (file.md#heading)
|
|
41
|
-
- Frontmatter schema (if SKILL.md has frontmatter)
|
|
44
|
+
Validation Overrides:
|
|
45
|
+
Configure overrides in package.json vat.skills:
|
|
42
46
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
{
|
|
48
|
+
"vat": {
|
|
49
|
+
"skills": [{
|
|
50
|
+
"name": "my-skill",
|
|
51
|
+
"source": "./SKILL.md",
|
|
52
|
+
"path": "./dist/skills/my-skill",
|
|
53
|
+
"ignoreValidationErrors": {
|
|
54
|
+
"SKILL_LENGTH_EXCEEDS_RECOMMENDED": "Complex domain requires detailed examples",
|
|
55
|
+
"SKILL_TOO_MANY_FILES": {
|
|
56
|
+
"reason": "Migration in progress - will split skill",
|
|
57
|
+
"expires": "2026-06-01"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
48
63
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- Strict mode: error on skill.md, Skill.md
|
|
52
|
-
- Permissive mode: warning only
|
|
64
|
+
Non-overridable rules (required for correctness) cannot be ignored.
|
|
65
|
+
Expired overrides are reported as errors.
|
|
53
66
|
|
|
54
67
|
Output:
|
|
55
68
|
YAML summary → stdout (for programmatic parsing)
|
|
@@ -57,19 +70,19 @@ Output:
|
|
|
57
70
|
|
|
58
71
|
Output includes:
|
|
59
72
|
- status: success/error
|
|
60
|
-
- skillsValidated: number of
|
|
61
|
-
- results: per-skill validation details
|
|
73
|
+
- skillsValidated: number of skills validated
|
|
74
|
+
- results: per-skill validation details (activeErrors, ignoredErrors, expiredOverrides)
|
|
62
75
|
- durationSecs: validation time
|
|
63
76
|
|
|
64
77
|
Exit Codes:
|
|
65
|
-
0 - All validations passed
|
|
66
|
-
1 -
|
|
67
|
-
2 - System error (file not found, config
|
|
78
|
+
0 - All validations passed (or all errors ignored by valid overrides)
|
|
79
|
+
1 - Active validation errors found (or expired overrides)
|
|
80
|
+
2 - System error (file not found, invalid config, etc.)
|
|
68
81
|
|
|
69
82
|
Examples:
|
|
70
|
-
$ vat skills validate #
|
|
71
|
-
$ vat skills validate --
|
|
72
|
-
$ vat skills validate packages/
|
|
83
|
+
$ vat skills validate # Validate all skills in package.json
|
|
84
|
+
$ vat skills validate --skill my-skill # Validate specific skill only
|
|
85
|
+
$ vat skills validate packages/my-pkg/ # Validate skills in specific directory
|
|
73
86
|
`);
|
|
74
87
|
return command;
|
|
75
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-command.js","sourceRoot":"","sources":["../../../src/commands/skills/validate-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAExC,OAAO;SACJ,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"validate-command.js","sourceRoot":"","sources":["../../../src/commands/skills/validate-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAExC,OAAO;SACJ,WAAW,CAAC,oEAAoE,CAAC;SACjF,QAAQ,CAAC,QAAQ,EAAE,kEAAkE,CAAC;SACtF,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,sDAAsD,CAAC;SAC/E,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC;SAC7C,MAAM,CAAC,eAAe,CAAC;SACvB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEL,CACI,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Skills validate command -
|
|
2
|
+
* Skills validate command - validate skills for packaging
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Supports three modes:
|
|
8
|
-
* 1. Project context (default): Validate project skills with strict filename validation
|
|
9
|
-
* 2. User context (--user flag): Validate ~/.claude skills with permissive validation
|
|
10
|
-
* 3. Path context (explicit path): Validate skills at specific path
|
|
4
|
+
* Validates skills declared in package.json vat.skills using validateSkillForPackaging.
|
|
5
|
+
* Supports validation overrides and expiration checking.
|
|
11
6
|
*/
|
|
12
7
|
/**
|
|
13
8
|
* Skills validate command options
|
|
14
9
|
*/
|
|
15
|
-
interface SkillsValidateCommandOptions {
|
|
10
|
+
export interface SkillsValidateCommandOptions {
|
|
11
|
+
skill?: string;
|
|
16
12
|
debug?: boolean;
|
|
17
|
-
|
|
13
|
+
verbose?: boolean;
|
|
18
14
|
}
|
|
19
15
|
/**
|
|
20
16
|
* Skills validate command implementation
|
|
21
17
|
*/
|
|
22
18
|
export declare function validateCommand(pathArg: string | undefined, options: SkillsValidateCommandOptions): Promise<void>;
|
|
23
|
-
export {};
|
|
24
19
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/validate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA6LD;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|