@vibe-agent-toolkit/resources 0.1.38 → 0.1.39-rc.10

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.
Files changed (75) hide show
  1. package/README.md +33 -24
  2. package/dist/frontmatter-link-validator.d.ts +9 -9
  3. package/dist/frontmatter-link-validator.d.ts.map +1 -1
  4. package/dist/frontmatter-link-validator.js +28 -27
  5. package/dist/frontmatter-link-validator.js.map +1 -1
  6. package/dist/frontmatter-validator.d.ts +3 -2
  7. package/dist/frontmatter-validator.d.ts.map +1 -1
  8. package/dist/frontmatter-validator.js +8 -14
  9. package/dist/frontmatter-validator.js.map +1 -1
  10. package/dist/html-link-parser.d.ts +47 -0
  11. package/dist/html-link-parser.d.ts.map +1 -0
  12. package/dist/html-link-parser.js +111 -0
  13. package/dist/html-link-parser.js.map +1 -0
  14. package/dist/html-transform.d.ts +45 -0
  15. package/dist/html-transform.d.ts.map +1 -0
  16. package/dist/html-transform.js +116 -0
  17. package/dist/html-transform.js.map +1 -0
  18. package/dist/index.d.ts +5 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/link-parser.d.ts +26 -2
  23. package/dist/link-parser.d.ts.map +1 -1
  24. package/dist/link-parser.js +40 -6
  25. package/dist/link-parser.js.map +1 -1
  26. package/dist/link-validator.d.ts +53 -6
  27. package/dist/link-validator.d.ts.map +1 -1
  28. package/dist/link-validator.js +100 -131
  29. package/dist/link-validator.js.map +1 -1
  30. package/dist/multi-schema-validator.d.ts.map +1 -1
  31. package/dist/multi-schema-validator.js +6 -8
  32. package/dist/multi-schema-validator.js.map +1 -1
  33. package/dist/resource-registry.d.ts +56 -13
  34. package/dist/resource-registry.d.ts.map +1 -1
  35. package/dist/resource-registry.js +165 -66
  36. package/dist/resource-registry.js.map +1 -1
  37. package/dist/schemas/link-auth.d.ts +382 -0
  38. package/dist/schemas/link-auth.d.ts.map +1 -0
  39. package/dist/schemas/link-auth.js +124 -0
  40. package/dist/schemas/link-auth.js.map +1 -0
  41. package/dist/schemas/project-config.d.ts +3277 -171
  42. package/dist/schemas/project-config.d.ts.map +1 -1
  43. package/dist/schemas/project-config.js +68 -0
  44. package/dist/schemas/project-config.js.map +1 -1
  45. package/dist/schemas/resource-metadata.d.ts +46 -10
  46. package/dist/schemas/resource-metadata.d.ts.map +1 -1
  47. package/dist/schemas/resource-metadata.js +14 -1
  48. package/dist/schemas/resource-metadata.js.map +1 -1
  49. package/dist/schemas/validation-result.d.ts +36 -57
  50. package/dist/schemas/validation-result.d.ts.map +1 -1
  51. package/dist/schemas/validation-result.js +5 -27
  52. package/dist/schemas/validation-result.js.map +1 -1
  53. package/dist/types/resources.d.ts +1 -1
  54. package/dist/types/resources.d.ts.map +1 -1
  55. package/dist/types/resources.js.map +1 -1
  56. package/dist/utils.d.ts +10 -0
  57. package/dist/utils.d.ts.map +1 -1
  58. package/dist/utils.js +14 -0
  59. package/dist/utils.js.map +1 -1
  60. package/package.json +4 -3
  61. package/src/frontmatter-link-validator.ts +28 -30
  62. package/src/frontmatter-validator.ts +19 -16
  63. package/src/html-link-parser.ts +140 -0
  64. package/src/html-transform.ts +157 -0
  65. package/src/index.ts +10 -1
  66. package/src/link-parser.ts +60 -11
  67. package/src/link-validator.ts +175 -145
  68. package/src/multi-schema-validator.ts +10 -8
  69. package/src/resource-registry.ts +205 -72
  70. package/src/schemas/link-auth.ts +146 -0
  71. package/src/schemas/project-config.ts +76 -0
  72. package/src/schemas/resource-metadata.ts +17 -1
  73. package/src/schemas/validation-result.ts +5 -29
  74. package/src/types/resources.ts +2 -1
  75. package/src/utils.ts +15 -0
@@ -264,7 +264,224 @@ export declare const ResourcesConfigSchema: z.ZodObject<{
264
264
  } | undefined;
265
265
  exclude?: string[] | undefined;
266
266
  }>>>;
267
+ validation: z.ZodOptional<z.ZodObject<{
268
+ severity: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodEnum<["error", "warning", "info", "ignore"]>>>;
269
+ allow: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodArray<z.ZodObject<{
270
+ paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
271
+ reason: z.ZodString;
272
+ expires: z.ZodOptional<z.ZodString>;
273
+ }, "strict", z.ZodTypeAny, {
274
+ paths: string[];
275
+ reason: string;
276
+ expires?: string | undefined;
277
+ }, {
278
+ reason: string;
279
+ paths?: string[] | undefined;
280
+ expires?: string | undefined;
281
+ }>, "many">>>;
282
+ }, "strict", z.ZodTypeAny, {
283
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
284
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
285
+ paths: string[];
286
+ reason: string;
287
+ expires?: string | undefined;
288
+ }[]>> | undefined;
289
+ }, {
290
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
291
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
292
+ reason: string;
293
+ paths?: string[] | undefined;
294
+ expires?: string | undefined;
295
+ }[]>> | undefined;
296
+ }>>;
297
+ linkAuth: z.ZodOptional<z.ZodObject<{
298
+ cache: z.ZodOptional<z.ZodObject<{
299
+ ttlMinutes: z.ZodOptional<z.ZodNumber>;
300
+ }, "strict", z.ZodTypeAny, {
301
+ ttlMinutes?: number | undefined;
302
+ }, {
303
+ ttlMinutes?: number | undefined;
304
+ }>>;
305
+ providers: z.ZodArray<z.ZodUnion<[z.ZodObject<{
306
+ use: z.ZodString;
307
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
308
+ use: z.ZodString;
309
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
310
+ use: z.ZodString;
311
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
312
+ match: z.ZodObject<{
313
+ host: z.ZodString;
314
+ excludeHost: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
315
+ }, "strict", z.ZodTypeAny, {
316
+ host: string;
317
+ excludeHost?: string[] | undefined;
318
+ }, {
319
+ host: string;
320
+ excludeHost?: string[] | undefined;
321
+ }>;
322
+ rewrite: z.ZodArray<z.ZodObject<{
323
+ when: z.ZodString;
324
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
325
+ to: z.ZodString;
326
+ }, "strict", z.ZodTypeAny, {
327
+ when: string;
328
+ to: string;
329
+ vars?: Record<string, string> | undefined;
330
+ }, {
331
+ when: string;
332
+ to: string;
333
+ vars?: Record<string, string> | undefined;
334
+ }>, "many">;
335
+ auth: z.ZodObject<{
336
+ headers: z.ZodRecord<z.ZodString, z.ZodString>;
337
+ }, "strict", z.ZodTypeAny, {
338
+ headers: Record<string, string>;
339
+ }, {
340
+ headers: Record<string, string>;
341
+ }>;
342
+ token: z.ZodArray<z.ZodUnion<[z.ZodObject<{
343
+ env: z.ZodString;
344
+ }, "strict", z.ZodTypeAny, {
345
+ env: string;
346
+ }, {
347
+ env: string;
348
+ }>, z.ZodObject<{
349
+ command: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>;
350
+ }, "strict", z.ZodTypeAny, {
351
+ command: string | string[];
352
+ }, {
353
+ command: string | string[];
354
+ }>]>, "many">;
355
+ check: z.ZodObject<{
356
+ method: z.ZodEnum<["GET", "HEAD"]>;
357
+ aliveStatus: z.ZodArray<z.ZodNumber, "many">;
358
+ notFoundMeaning: z.ZodEnum<["ambiguous", "dead"]>;
359
+ }, "strict", z.ZodTypeAny, {
360
+ method: "GET" | "HEAD";
361
+ aliveStatus: number[];
362
+ notFoundMeaning: "ambiguous" | "dead";
363
+ }, {
364
+ method: "GET" | "HEAD";
365
+ aliveStatus: number[];
366
+ notFoundMeaning: "ambiguous" | "dead";
367
+ }>;
368
+ }, "strict", z.ZodTypeAny, {
369
+ match: {
370
+ host: string;
371
+ excludeHost?: string[] | undefined;
372
+ };
373
+ rewrite: {
374
+ when: string;
375
+ to: string;
376
+ vars?: Record<string, string> | undefined;
377
+ }[];
378
+ auth: {
379
+ headers: Record<string, string>;
380
+ };
381
+ token: ({
382
+ env: string;
383
+ } | {
384
+ command: string | string[];
385
+ })[];
386
+ check: {
387
+ method: "GET" | "HEAD";
388
+ aliveStatus: number[];
389
+ notFoundMeaning: "ambiguous" | "dead";
390
+ };
391
+ }, {
392
+ match: {
393
+ host: string;
394
+ excludeHost?: string[] | undefined;
395
+ };
396
+ rewrite: {
397
+ when: string;
398
+ to: string;
399
+ vars?: Record<string, string> | undefined;
400
+ }[];
401
+ auth: {
402
+ headers: Record<string, string>;
403
+ };
404
+ token: ({
405
+ env: string;
406
+ } | {
407
+ command: string | string[];
408
+ })[];
409
+ check: {
410
+ method: "GET" | "HEAD";
411
+ aliveStatus: number[];
412
+ notFoundMeaning: "ambiguous" | "dead";
413
+ };
414
+ }>]>, "many">;
415
+ }, "strict", z.ZodTypeAny, {
416
+ providers: ({
417
+ match: {
418
+ host: string;
419
+ excludeHost?: string[] | undefined;
420
+ };
421
+ rewrite: {
422
+ when: string;
423
+ to: string;
424
+ vars?: Record<string, string> | undefined;
425
+ }[];
426
+ auth: {
427
+ headers: Record<string, string>;
428
+ };
429
+ token: ({
430
+ env: string;
431
+ } | {
432
+ command: string | string[];
433
+ })[];
434
+ check: {
435
+ method: "GET" | "HEAD";
436
+ aliveStatus: number[];
437
+ notFoundMeaning: "ambiguous" | "dead";
438
+ };
439
+ } | z.objectOutputType<{
440
+ use: z.ZodString;
441
+ }, z.ZodTypeAny, "passthrough">)[];
442
+ cache?: {
443
+ ttlMinutes?: number | undefined;
444
+ } | undefined;
445
+ }, {
446
+ providers: ({
447
+ match: {
448
+ host: string;
449
+ excludeHost?: string[] | undefined;
450
+ };
451
+ rewrite: {
452
+ when: string;
453
+ to: string;
454
+ vars?: Record<string, string> | undefined;
455
+ }[];
456
+ auth: {
457
+ headers: Record<string, string>;
458
+ };
459
+ token: ({
460
+ env: string;
461
+ } | {
462
+ command: string | string[];
463
+ })[];
464
+ check: {
465
+ method: "GET" | "HEAD";
466
+ aliveStatus: number[];
467
+ notFoundMeaning: "ambiguous" | "dead";
468
+ };
469
+ } | z.objectInputType<{
470
+ use: z.ZodString;
471
+ }, z.ZodTypeAny, "passthrough">)[];
472
+ cache?: {
473
+ ttlMinutes?: number | undefined;
474
+ } | undefined;
475
+ }>>;
267
476
  }, "strip", z.ZodTypeAny, {
477
+ validation?: {
478
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
479
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
480
+ paths: string[];
481
+ reason: string;
482
+ expires?: string | undefined;
483
+ }[]>> | undefined;
484
+ } | undefined;
268
485
  include?: string[] | undefined;
269
486
  exclude?: string[] | undefined;
270
487
  collections?: Record<string, {
@@ -284,7 +501,46 @@ export declare const ResourcesConfigSchema: z.ZodObject<{
284
501
  } | undefined;
285
502
  exclude?: string[] | undefined;
286
503
  }> | undefined;
504
+ linkAuth?: {
505
+ providers: ({
506
+ match: {
507
+ host: string;
508
+ excludeHost?: string[] | undefined;
509
+ };
510
+ rewrite: {
511
+ when: string;
512
+ to: string;
513
+ vars?: Record<string, string> | undefined;
514
+ }[];
515
+ auth: {
516
+ headers: Record<string, string>;
517
+ };
518
+ token: ({
519
+ env: string;
520
+ } | {
521
+ command: string | string[];
522
+ })[];
523
+ check: {
524
+ method: "GET" | "HEAD";
525
+ aliveStatus: number[];
526
+ notFoundMeaning: "ambiguous" | "dead";
527
+ };
528
+ } | z.objectOutputType<{
529
+ use: z.ZodString;
530
+ }, z.ZodTypeAny, "passthrough">)[];
531
+ cache?: {
532
+ ttlMinutes?: number | undefined;
533
+ } | undefined;
534
+ } | undefined;
287
535
  }, {
536
+ validation?: {
537
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
538
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
539
+ reason: string;
540
+ paths?: string[] | undefined;
541
+ expires?: string | undefined;
542
+ }[]>> | undefined;
543
+ } | undefined;
288
544
  include?: string[] | undefined;
289
545
  exclude?: string[] | undefined;
290
546
  collections?: Record<string, {
@@ -304,6 +560,37 @@ export declare const ResourcesConfigSchema: z.ZodObject<{
304
560
  } | undefined;
305
561
  exclude?: string[] | undefined;
306
562
  }> | undefined;
563
+ linkAuth?: {
564
+ providers: ({
565
+ match: {
566
+ host: string;
567
+ excludeHost?: string[] | undefined;
568
+ };
569
+ rewrite: {
570
+ when: string;
571
+ to: string;
572
+ vars?: Record<string, string> | undefined;
573
+ }[];
574
+ auth: {
575
+ headers: Record<string, string>;
576
+ };
577
+ token: ({
578
+ env: string;
579
+ } | {
580
+ command: string | string[];
581
+ })[];
582
+ check: {
583
+ method: "GET" | "HEAD";
584
+ aliveStatus: number[];
585
+ notFoundMeaning: "ambiguous" | "dead";
586
+ };
587
+ } | z.objectInputType<{
588
+ use: z.ZodString;
589
+ }, z.ZodTypeAny, "passthrough">)[];
590
+ cache?: {
591
+ ttlMinutes?: number | undefined;
592
+ } | undefined;
593
+ } | undefined;
307
594
  }>;
308
595
  export type ResourcesConfig = z.infer<typeof ResourcesConfigSchema>;
309
596
  /**
@@ -365,6 +652,278 @@ export declare const SkillFileEntrySchema: z.ZodObject<{
365
652
  dest: string;
366
653
  }>;
367
654
  export type SkillFileEntry = z.infer<typeof SkillFileEntrySchema>;
655
+ /**
656
+ * A typed "skill source" descriptor as it appears in vibe-agent-toolkit.config.yaml.
657
+ *
658
+ * This is the CONFIG representation. Task 13's staging maps it onto Plan 1's
659
+ * runtime `SkillSource` union before calling `resolveSkillSource`. Kept here so
660
+ * `configure`/`run` parse a single strict source of truth.
661
+ */
662
+ export declare const SkillSourceDescriptorSchema: z.ZodUnion<[z.ZodObject<{
663
+ workspace: z.ZodString;
664
+ }, "strict", z.ZodTypeAny, {
665
+ workspace: string;
666
+ }, {
667
+ workspace: string;
668
+ }>, z.ZodObject<{
669
+ npm: z.ZodString;
670
+ }, "strict", z.ZodTypeAny, {
671
+ npm: string;
672
+ }, {
673
+ npm: string;
674
+ }>, z.ZodObject<{
675
+ url: z.ZodString;
676
+ sha256: z.ZodOptional<z.ZodString>;
677
+ }, "strict", z.ZodTypeAny, {
678
+ url: string;
679
+ sha256?: string | undefined;
680
+ }, {
681
+ url: string;
682
+ sha256?: string | undefined;
683
+ }>, z.ZodObject<{
684
+ path: z.ZodString;
685
+ }, "strict", z.ZodTypeAny, {
686
+ path: string;
687
+ }, {
688
+ path: string;
689
+ }>, z.ZodObject<{
690
+ vendored: z.ZodLiteral<true>;
691
+ }, "strict", z.ZodTypeAny, {
692
+ vendored: true;
693
+ }, {
694
+ vendored: true;
695
+ }>]>;
696
+ export type SkillSourceDescriptor = z.infer<typeof SkillSourceDescriptorSchema>;
697
+ /**
698
+ * Per-skill `test:` block for `vat skill test`. Strict — unknown keys are a
699
+ * config error (Postel: this is vat-produced/validated data, §schema strategy).
700
+ * Every field is optional; omitted knobs fall back to built-in defaults.
701
+ */
702
+ export declare const TestConfigSchema: z.ZodObject<{
703
+ model: z.ZodOptional<z.ZodString>;
704
+ maxTurns: z.ZodOptional<z.ZodNumber>;
705
+ maxBudgetUsd: z.ZodOptional<z.ZodNumber>;
706
+ timeout: z.ZodOptional<z.ZodNumber>;
707
+ stall: z.ZodOptional<z.ZodNumber>;
708
+ evals: z.ZodOptional<z.ZodString>;
709
+ experimenterPrompt: z.ZodOptional<z.ZodString>;
710
+ auth: z.ZodOptional<z.ZodEnum<["inherit", "subscription", "api-key", "auto"]>>;
711
+ requireAuth: z.ZodOptional<z.ZodEnum<["subscription", "api-key"]>>;
712
+ baseline: z.ZodOptional<z.ZodBoolean>;
713
+ skillCreator: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
714
+ workspace: z.ZodString;
715
+ }, "strict", z.ZodTypeAny, {
716
+ workspace: string;
717
+ }, {
718
+ workspace: string;
719
+ }>, z.ZodObject<{
720
+ npm: z.ZodString;
721
+ }, "strict", z.ZodTypeAny, {
722
+ npm: string;
723
+ }, {
724
+ npm: string;
725
+ }>, z.ZodObject<{
726
+ url: z.ZodString;
727
+ sha256: z.ZodOptional<z.ZodString>;
728
+ }, "strict", z.ZodTypeAny, {
729
+ url: string;
730
+ sha256?: string | undefined;
731
+ }, {
732
+ url: string;
733
+ sha256?: string | undefined;
734
+ }>, z.ZodObject<{
735
+ path: z.ZodString;
736
+ }, "strict", z.ZodTypeAny, {
737
+ path: string;
738
+ }, {
739
+ path: string;
740
+ }>, z.ZodObject<{
741
+ vendored: z.ZodLiteral<true>;
742
+ }, "strict", z.ZodTypeAny, {
743
+ vendored: true;
744
+ }, {
745
+ vendored: true;
746
+ }>]>>;
747
+ with: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
748
+ workspace: z.ZodString;
749
+ }, "strict", z.ZodTypeAny, {
750
+ workspace: string;
751
+ }, {
752
+ workspace: string;
753
+ }>, z.ZodObject<{
754
+ npm: z.ZodString;
755
+ }, "strict", z.ZodTypeAny, {
756
+ npm: string;
757
+ }, {
758
+ npm: string;
759
+ }>, z.ZodObject<{
760
+ url: z.ZodString;
761
+ sha256: z.ZodOptional<z.ZodString>;
762
+ }, "strict", z.ZodTypeAny, {
763
+ url: string;
764
+ sha256?: string | undefined;
765
+ }, {
766
+ url: string;
767
+ sha256?: string | undefined;
768
+ }>, z.ZodObject<{
769
+ path: z.ZodString;
770
+ }, "strict", z.ZodTypeAny, {
771
+ path: string;
772
+ }, {
773
+ path: string;
774
+ }>, z.ZodObject<{
775
+ vendored: z.ZodLiteral<true>;
776
+ }, "strict", z.ZodTypeAny, {
777
+ vendored: true;
778
+ }, {
779
+ vendored: true;
780
+ }>]>, "many">>;
781
+ optional: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
782
+ workspace: z.ZodString;
783
+ }, "strict", z.ZodTypeAny, {
784
+ workspace: string;
785
+ }, {
786
+ workspace: string;
787
+ }>, z.ZodObject<{
788
+ npm: z.ZodString;
789
+ }, "strict", z.ZodTypeAny, {
790
+ npm: string;
791
+ }, {
792
+ npm: string;
793
+ }>, z.ZodObject<{
794
+ url: z.ZodString;
795
+ sha256: z.ZodOptional<z.ZodString>;
796
+ }, "strict", z.ZodTypeAny, {
797
+ url: string;
798
+ sha256?: string | undefined;
799
+ }, {
800
+ url: string;
801
+ sha256?: string | undefined;
802
+ }>, z.ZodObject<{
803
+ path: z.ZodString;
804
+ }, "strict", z.ZodTypeAny, {
805
+ path: string;
806
+ }, {
807
+ path: string;
808
+ }>, z.ZodObject<{
809
+ vendored: z.ZodLiteral<true>;
810
+ }, "strict", z.ZodTypeAny, {
811
+ vendored: true;
812
+ }, {
813
+ vendored: true;
814
+ }>]>, "many">>;
815
+ /**
816
+ * Shell command to run once, before staging, to generate build artifacts.
817
+ * Runs with cwd = config root (directory containing vibe-agent-toolkit.config.yaml).
818
+ * Useful when a skill references a generated file (e.g. `node scripts/report.mjs`)
819
+ * that is produced by a bundler step and not committed to source.
820
+ * A non-zero exit code aborts the run (preflight failure, exit 2).
821
+ */
822
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
823
+ passEnv: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
824
+ build: z.ZodOptional<z.ZodString>;
825
+ }, "strict", z.ZodTypeAny, {
826
+ with?: ({
827
+ workspace: string;
828
+ } | {
829
+ npm: string;
830
+ } | {
831
+ url: string;
832
+ sha256?: string | undefined;
833
+ } | {
834
+ path: string;
835
+ } | {
836
+ vendored: true;
837
+ })[] | undefined;
838
+ env?: Record<string, string> | undefined;
839
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
840
+ timeout?: number | undefined;
841
+ model?: string | undefined;
842
+ maxTurns?: number | undefined;
843
+ maxBudgetUsd?: number | undefined;
844
+ stall?: number | undefined;
845
+ evals?: string | undefined;
846
+ experimenterPrompt?: string | undefined;
847
+ requireAuth?: "subscription" | "api-key" | undefined;
848
+ baseline?: boolean | undefined;
849
+ skillCreator?: {
850
+ workspace: string;
851
+ } | {
852
+ npm: string;
853
+ } | {
854
+ url: string;
855
+ sha256?: string | undefined;
856
+ } | {
857
+ path: string;
858
+ } | {
859
+ vendored: true;
860
+ } | undefined;
861
+ optional?: ({
862
+ workspace: string;
863
+ } | {
864
+ npm: string;
865
+ } | {
866
+ url: string;
867
+ sha256?: string | undefined;
868
+ } | {
869
+ path: string;
870
+ } | {
871
+ vendored: true;
872
+ })[] | undefined;
873
+ passEnv?: string[] | undefined;
874
+ build?: string | undefined;
875
+ }, {
876
+ with?: ({
877
+ workspace: string;
878
+ } | {
879
+ npm: string;
880
+ } | {
881
+ url: string;
882
+ sha256?: string | undefined;
883
+ } | {
884
+ path: string;
885
+ } | {
886
+ vendored: true;
887
+ })[] | undefined;
888
+ env?: Record<string, string> | undefined;
889
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
890
+ timeout?: number | undefined;
891
+ model?: string | undefined;
892
+ maxTurns?: number | undefined;
893
+ maxBudgetUsd?: number | undefined;
894
+ stall?: number | undefined;
895
+ evals?: string | undefined;
896
+ experimenterPrompt?: string | undefined;
897
+ requireAuth?: "subscription" | "api-key" | undefined;
898
+ baseline?: boolean | undefined;
899
+ skillCreator?: {
900
+ workspace: string;
901
+ } | {
902
+ npm: string;
903
+ } | {
904
+ url: string;
905
+ sha256?: string | undefined;
906
+ } | {
907
+ path: string;
908
+ } | {
909
+ vendored: true;
910
+ } | undefined;
911
+ optional?: ({
912
+ workspace: string;
913
+ } | {
914
+ npm: string;
915
+ } | {
916
+ url: string;
917
+ sha256?: string | undefined;
918
+ } | {
919
+ path: string;
920
+ } | {
921
+ vendored: true;
922
+ })[] | undefined;
923
+ passEnv?: string[] | undefined;
924
+ build?: string | undefined;
925
+ }>;
926
+ export type TestConfig = z.infer<typeof TestConfigSchema>;
368
927
  /**
369
928
  * Skill packaging configuration.
370
929
  *
@@ -403,46 +962,34 @@ export declare const SkillPackagingConfigSchema: z.ZodObject<{
403
962
  defaultTemplate?: string | undefined;
404
963
  }>>;
405
964
  validation: z.ZodOptional<z.ZodObject<{
406
- severity: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["error", "warning", "ignore"]>>>;
407
- allow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
965
+ severity: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodEnum<["error", "warning", "info", "ignore"]>>>;
966
+ allow: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodArray<z.ZodObject<{
408
967
  paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
409
968
  reason: z.ZodString;
410
969
  expires: z.ZodOptional<z.ZodString>;
411
970
  }, "strict", z.ZodTypeAny, {
412
971
  paths: string[];
413
972
  reason: string;
414
- expires
415
- /**
416
- * Validation mode for frontmatter schema validation.
417
- *
418
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
419
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
420
- */
421
- ? /**
422
- * Validation mode for frontmatter schema validation.
423
- *
424
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
425
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
426
- */: string | undefined;
973
+ expires?: string | undefined;
427
974
  }, {
428
975
  reason: string;
429
976
  paths?: string[] | undefined;
430
977
  expires?: string | undefined;
431
978
  }>, "many">>>;
432
979
  }, "strict", z.ZodTypeAny, {
433
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
434
- allow?: Record<string, {
980
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
981
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
435
982
  paths: string[];
436
983
  reason: string;
437
984
  expires?: string | undefined;
438
- }[]> | undefined;
985
+ }[]>> | undefined;
439
986
  }, {
440
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
441
- allow?: Record<string, {
987
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
988
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
442
989
  reason: string;
443
990
  paths?: string[] | undefined;
444
991
  expires?: string | undefined;
445
- }[]> | undefined;
992
+ }[]>> | undefined;
446
993
  }>>;
447
994
  targets: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude-chat", "claude-cowork", "claude-code"]>, "many">>;
448
995
  files: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -455,14 +1002,238 @@ export declare const SkillPackagingConfigSchema: z.ZodObject<{
455
1002
  source: string;
456
1003
  dest: string;
457
1004
  }>, "many">>;
1005
+ test: z.ZodOptional<z.ZodObject<{
1006
+ model: z.ZodOptional<z.ZodString>;
1007
+ maxTurns: z.ZodOptional<z.ZodNumber>;
1008
+ maxBudgetUsd: z.ZodOptional<z.ZodNumber>;
1009
+ timeout: z.ZodOptional<z.ZodNumber>;
1010
+ stall: z.ZodOptional<z.ZodNumber>;
1011
+ evals: z.ZodOptional<z.ZodString>;
1012
+ experimenterPrompt: z.ZodOptional<z.ZodString>;
1013
+ auth: z.ZodOptional<z.ZodEnum<["inherit", "subscription", "api-key", "auto"]>>;
1014
+ requireAuth: z.ZodOptional<z.ZodEnum<["subscription", "api-key"]>>;
1015
+ baseline: z.ZodOptional<z.ZodBoolean>;
1016
+ skillCreator: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
1017
+ workspace: z.ZodString;
1018
+ }, "strict", z.ZodTypeAny, {
1019
+ workspace: string;
1020
+ }, {
1021
+ workspace: string;
1022
+ }>, z.ZodObject<{
1023
+ npm: z.ZodString;
1024
+ }, "strict", z.ZodTypeAny, {
1025
+ npm: string;
1026
+ }, {
1027
+ npm: string;
1028
+ }>, z.ZodObject<{
1029
+ url: z.ZodString;
1030
+ sha256: z.ZodOptional<z.ZodString>;
1031
+ }, "strict", z.ZodTypeAny, {
1032
+ url: string;
1033
+ sha256?: string | undefined;
1034
+ }, {
1035
+ url: string;
1036
+ sha256?: string | undefined;
1037
+ }>, z.ZodObject<{
1038
+ path: z.ZodString;
1039
+ }, "strict", z.ZodTypeAny, {
1040
+ path: string;
1041
+ }, {
1042
+ path: string;
1043
+ }>, z.ZodObject<{
1044
+ vendored: z.ZodLiteral<true>;
1045
+ }, "strict", z.ZodTypeAny, {
1046
+ vendored: true;
1047
+ }, {
1048
+ vendored: true;
1049
+ }>]>>;
1050
+ with: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
1051
+ workspace: z.ZodString;
1052
+ }, "strict", z.ZodTypeAny, {
1053
+ workspace: string;
1054
+ }, {
1055
+ workspace: string;
1056
+ }>, z.ZodObject<{
1057
+ npm: z.ZodString;
1058
+ }, "strict", z.ZodTypeAny, {
1059
+ npm: string;
1060
+ }, {
1061
+ npm: string;
1062
+ }>, z.ZodObject<{
1063
+ url: z.ZodString;
1064
+ sha256: z.ZodOptional<z.ZodString>;
1065
+ }, "strict", z.ZodTypeAny, {
1066
+ url: string;
1067
+ sha256?: string | undefined;
1068
+ }, {
1069
+ url: string;
1070
+ sha256?: string | undefined;
1071
+ }>, z.ZodObject<{
1072
+ path: z.ZodString;
1073
+ }, "strict", z.ZodTypeAny, {
1074
+ path: string;
1075
+ }, {
1076
+ path: string;
1077
+ }>, z.ZodObject<{
1078
+ vendored: z.ZodLiteral<true>;
1079
+ }, "strict", z.ZodTypeAny, {
1080
+ vendored: true;
1081
+ }, {
1082
+ vendored: true;
1083
+ }>]>, "many">>;
1084
+ optional: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
1085
+ workspace: z.ZodString;
1086
+ }, "strict", z.ZodTypeAny, {
1087
+ workspace: string;
1088
+ }, {
1089
+ workspace: string;
1090
+ }>, z.ZodObject<{
1091
+ npm: z.ZodString;
1092
+ }, "strict", z.ZodTypeAny, {
1093
+ npm: string;
1094
+ }, {
1095
+ npm: string;
1096
+ }>, z.ZodObject<{
1097
+ url: z.ZodString;
1098
+ sha256: z.ZodOptional<z.ZodString>;
1099
+ }, "strict", z.ZodTypeAny, {
1100
+ url: string;
1101
+ sha256?: string | undefined;
1102
+ }, {
1103
+ url: string;
1104
+ sha256?: string | undefined;
1105
+ }>, z.ZodObject<{
1106
+ path: z.ZodString;
1107
+ }, "strict", z.ZodTypeAny, {
1108
+ path: string;
1109
+ }, {
1110
+ path: string;
1111
+ }>, z.ZodObject<{
1112
+ vendored: z.ZodLiteral<true>;
1113
+ }, "strict", z.ZodTypeAny, {
1114
+ vendored: true;
1115
+ }, {
1116
+ vendored: true;
1117
+ }>]>, "many">>;
1118
+ /**
1119
+ * Shell command to run once, before staging, to generate build artifacts.
1120
+ * Runs with cwd = config root (directory containing vibe-agent-toolkit.config.yaml).
1121
+ * Useful when a skill references a generated file (e.g. `node scripts/report.mjs`)
1122
+ * that is produced by a bundler step and not committed to source.
1123
+ * A non-zero exit code aborts the run (preflight failure, exit 2).
1124
+ */
1125
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1126
+ passEnv: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1127
+ build: z.ZodOptional<z.ZodString>;
1128
+ }, "strict", z.ZodTypeAny, {
1129
+ with?: ({
1130
+ workspace: string;
1131
+ } | {
1132
+ npm: string;
1133
+ } | {
1134
+ url: string;
1135
+ sha256?: string | undefined;
1136
+ } | {
1137
+ path: string;
1138
+ } | {
1139
+ vendored: true;
1140
+ })[] | undefined;
1141
+ env?: Record<string, string> | undefined;
1142
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
1143
+ timeout?: number | undefined;
1144
+ model?: string | undefined;
1145
+ maxTurns?: number | undefined;
1146
+ maxBudgetUsd?: number | undefined;
1147
+ stall?: number | undefined;
1148
+ evals?: string | undefined;
1149
+ experimenterPrompt?: string | undefined;
1150
+ requireAuth?: "subscription" | "api-key" | undefined;
1151
+ baseline?: boolean | undefined;
1152
+ skillCreator?: {
1153
+ workspace: string;
1154
+ } | {
1155
+ npm: string;
1156
+ } | {
1157
+ url: string;
1158
+ sha256?: string | undefined;
1159
+ } | {
1160
+ path: string;
1161
+ } | {
1162
+ vendored: true;
1163
+ } | undefined;
1164
+ optional?: ({
1165
+ workspace: string;
1166
+ } | {
1167
+ npm: string;
1168
+ } | {
1169
+ url: string;
1170
+ sha256?: string | undefined;
1171
+ } | {
1172
+ path: string;
1173
+ } | {
1174
+ vendored: true;
1175
+ })[] | undefined;
1176
+ passEnv?: string[] | undefined;
1177
+ build?: string | undefined;
1178
+ }, {
1179
+ with?: ({
1180
+ workspace: string;
1181
+ } | {
1182
+ npm: string;
1183
+ } | {
1184
+ url: string;
1185
+ sha256?: string | undefined;
1186
+ } | {
1187
+ path: string;
1188
+ } | {
1189
+ vendored: true;
1190
+ })[] | undefined;
1191
+ env?: Record<string, string> | undefined;
1192
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
1193
+ timeout?: number | undefined;
1194
+ model?: string | undefined;
1195
+ maxTurns?: number | undefined;
1196
+ maxBudgetUsd?: number | undefined;
1197
+ stall?: number | undefined;
1198
+ evals?: string | undefined;
1199
+ experimenterPrompt?: string | undefined;
1200
+ requireAuth?: "subscription" | "api-key" | undefined;
1201
+ baseline?: boolean | undefined;
1202
+ skillCreator?: {
1203
+ workspace: string;
1204
+ } | {
1205
+ npm: string;
1206
+ } | {
1207
+ url: string;
1208
+ sha256?: string | undefined;
1209
+ } | {
1210
+ path: string;
1211
+ } | {
1212
+ vendored: true;
1213
+ } | undefined;
1214
+ optional?: ({
1215
+ workspace: string;
1216
+ } | {
1217
+ npm: string;
1218
+ } | {
1219
+ url: string;
1220
+ sha256?: string | undefined;
1221
+ } | {
1222
+ path: string;
1223
+ } | {
1224
+ vendored: true;
1225
+ })[] | undefined;
1226
+ passEnv?: string[] | undefined;
1227
+ build?: string | undefined;
1228
+ }>>;
458
1229
  }, "strict", z.ZodTypeAny, {
459
1230
  validation?: {
460
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
461
- allow?: Record<string, {
1231
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
1232
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
462
1233
  paths: string[];
463
1234
  reason: string;
464
1235
  expires?: string | undefined;
465
- }[]> | undefined;
1236
+ }[]>> | undefined;
466
1237
  } | undefined;
467
1238
  publish?: boolean | undefined;
468
1239
  linkFollowDepth?: number | "full" | undefined;
@@ -481,14 +1252,65 @@ export declare const SkillPackagingConfigSchema: z.ZodObject<{
481
1252
  source: string;
482
1253
  dest: string;
483
1254
  }[] | undefined;
1255
+ test?: {
1256
+ with?: ({
1257
+ workspace: string;
1258
+ } | {
1259
+ npm: string;
1260
+ } | {
1261
+ url: string;
1262
+ sha256?: string | undefined;
1263
+ } | {
1264
+ path: string;
1265
+ } | {
1266
+ vendored: true;
1267
+ })[] | undefined;
1268
+ env?: Record<string, string> | undefined;
1269
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
1270
+ timeout?: number | undefined;
1271
+ model?: string | undefined;
1272
+ maxTurns?: number | undefined;
1273
+ maxBudgetUsd?: number | undefined;
1274
+ stall?: number | undefined;
1275
+ evals?: string | undefined;
1276
+ experimenterPrompt?: string | undefined;
1277
+ requireAuth?: "subscription" | "api-key" | undefined;
1278
+ baseline?: boolean | undefined;
1279
+ skillCreator?: {
1280
+ workspace: string;
1281
+ } | {
1282
+ npm: string;
1283
+ } | {
1284
+ url: string;
1285
+ sha256?: string | undefined;
1286
+ } | {
1287
+ path: string;
1288
+ } | {
1289
+ vendored: true;
1290
+ } | undefined;
1291
+ optional?: ({
1292
+ workspace: string;
1293
+ } | {
1294
+ npm: string;
1295
+ } | {
1296
+ url: string;
1297
+ sha256?: string | undefined;
1298
+ } | {
1299
+ path: string;
1300
+ } | {
1301
+ vendored: true;
1302
+ })[] | undefined;
1303
+ passEnv?: string[] | undefined;
1304
+ build?: string | undefined;
1305
+ } | undefined;
484
1306
  }, {
485
1307
  validation?: {
486
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
487
- allow?: Record<string, {
1308
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
1309
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
488
1310
  reason: string;
489
1311
  paths?: string[] | undefined;
490
1312
  expires?: string | undefined;
491
- }[]> | undefined;
1313
+ }[]>> | undefined;
492
1314
  } | undefined;
493
1315
  publish?: boolean | undefined;
494
1316
  linkFollowDepth?: number | "full" | undefined;
@@ -507,6 +1329,57 @@ export declare const SkillPackagingConfigSchema: z.ZodObject<{
507
1329
  source: string;
508
1330
  dest: string;
509
1331
  }[] | undefined;
1332
+ test?: {
1333
+ with?: ({
1334
+ workspace: string;
1335
+ } | {
1336
+ npm: string;
1337
+ } | {
1338
+ url: string;
1339
+ sha256?: string | undefined;
1340
+ } | {
1341
+ path: string;
1342
+ } | {
1343
+ vendored: true;
1344
+ })[] | undefined;
1345
+ env?: Record<string, string> | undefined;
1346
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
1347
+ timeout?: number | undefined;
1348
+ model?: string | undefined;
1349
+ maxTurns?: number | undefined;
1350
+ maxBudgetUsd?: number | undefined;
1351
+ stall?: number | undefined;
1352
+ evals?: string | undefined;
1353
+ experimenterPrompt?: string | undefined;
1354
+ requireAuth?: "subscription" | "api-key" | undefined;
1355
+ baseline?: boolean | undefined;
1356
+ skillCreator?: {
1357
+ workspace: string;
1358
+ } | {
1359
+ npm: string;
1360
+ } | {
1361
+ url: string;
1362
+ sha256?: string | undefined;
1363
+ } | {
1364
+ path: string;
1365
+ } | {
1366
+ vendored: true;
1367
+ } | undefined;
1368
+ optional?: ({
1369
+ workspace: string;
1370
+ } | {
1371
+ npm: string;
1372
+ } | {
1373
+ url: string;
1374
+ sha256?: string | undefined;
1375
+ } | {
1376
+ path: string;
1377
+ } | {
1378
+ vendored: true;
1379
+ })[] | undefined;
1380
+ passEnv?: string[] | undefined;
1381
+ build?: string | undefined;
1382
+ } | undefined;
510
1383
  }>;
511
1384
  export type SkillPackagingConfig = z.infer<typeof SkillPackagingConfigSchema>;
512
1385
  /**
@@ -549,46 +1422,34 @@ export declare const SkillsConfigSchema: z.ZodObject<{
549
1422
  defaultTemplate?: string | undefined;
550
1423
  }>>;
551
1424
  validation: z.ZodOptional<z.ZodObject<{
552
- severity: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["error", "warning", "ignore"]>>>;
553
- allow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
1425
+ severity: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodEnum<["error", "warning", "info", "ignore"]>>>;
1426
+ allow: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodArray<z.ZodObject<{
554
1427
  paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
555
1428
  reason: z.ZodString;
556
1429
  expires: z.ZodOptional<z.ZodString>;
557
1430
  }, "strict", z.ZodTypeAny, {
558
1431
  paths: string[];
559
1432
  reason: string;
560
- expires
561
- /**
562
- * Validation mode for frontmatter schema validation.
563
- *
564
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
565
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
566
- */
567
- ? /**
568
- * Validation mode for frontmatter schema validation.
569
- *
570
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
571
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
572
- */: string | undefined;
1433
+ expires?: string | undefined;
573
1434
  }, {
574
1435
  reason: string;
575
1436
  paths?: string[] | undefined;
576
1437
  expires?: string | undefined;
577
1438
  }>, "many">>>;
578
1439
  }, "strict", z.ZodTypeAny, {
579
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
580
- allow?: Record<string, {
1440
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
1441
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
581
1442
  paths: string[];
582
1443
  reason: string;
583
1444
  expires?: string | undefined;
584
- }[]> | undefined;
1445
+ }[]>> | undefined;
585
1446
  }, {
586
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
587
- allow?: Record<string, {
1447
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
1448
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
588
1449
  reason: string;
589
1450
  paths?: string[] | undefined;
590
1451
  expires?: string | undefined;
591
- }[]> | undefined;
1452
+ }[]>> | undefined;
592
1453
  }>>;
593
1454
  targets: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude-chat", "claude-cowork", "claude-code"]>, "many">>;
594
1455
  files: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -601,14 +1462,238 @@ export declare const SkillsConfigSchema: z.ZodObject<{
601
1462
  source: string;
602
1463
  dest: string;
603
1464
  }>, "many">>;
1465
+ test: z.ZodOptional<z.ZodObject<{
1466
+ model: z.ZodOptional<z.ZodString>;
1467
+ maxTurns: z.ZodOptional<z.ZodNumber>;
1468
+ maxBudgetUsd: z.ZodOptional<z.ZodNumber>;
1469
+ timeout: z.ZodOptional<z.ZodNumber>;
1470
+ stall: z.ZodOptional<z.ZodNumber>;
1471
+ evals: z.ZodOptional<z.ZodString>;
1472
+ experimenterPrompt: z.ZodOptional<z.ZodString>;
1473
+ auth: z.ZodOptional<z.ZodEnum<["inherit", "subscription", "api-key", "auto"]>>;
1474
+ requireAuth: z.ZodOptional<z.ZodEnum<["subscription", "api-key"]>>;
1475
+ baseline: z.ZodOptional<z.ZodBoolean>;
1476
+ skillCreator: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
1477
+ workspace: z.ZodString;
1478
+ }, "strict", z.ZodTypeAny, {
1479
+ workspace: string;
1480
+ }, {
1481
+ workspace: string;
1482
+ }>, z.ZodObject<{
1483
+ npm: z.ZodString;
1484
+ }, "strict", z.ZodTypeAny, {
1485
+ npm: string;
1486
+ }, {
1487
+ npm: string;
1488
+ }>, z.ZodObject<{
1489
+ url: z.ZodString;
1490
+ sha256: z.ZodOptional<z.ZodString>;
1491
+ }, "strict", z.ZodTypeAny, {
1492
+ url: string;
1493
+ sha256?: string | undefined;
1494
+ }, {
1495
+ url: string;
1496
+ sha256?: string | undefined;
1497
+ }>, z.ZodObject<{
1498
+ path: z.ZodString;
1499
+ }, "strict", z.ZodTypeAny, {
1500
+ path: string;
1501
+ }, {
1502
+ path: string;
1503
+ }>, z.ZodObject<{
1504
+ vendored: z.ZodLiteral<true>;
1505
+ }, "strict", z.ZodTypeAny, {
1506
+ vendored: true;
1507
+ }, {
1508
+ vendored: true;
1509
+ }>]>>;
1510
+ with: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
1511
+ workspace: z.ZodString;
1512
+ }, "strict", z.ZodTypeAny, {
1513
+ workspace: string;
1514
+ }, {
1515
+ workspace: string;
1516
+ }>, z.ZodObject<{
1517
+ npm: z.ZodString;
1518
+ }, "strict", z.ZodTypeAny, {
1519
+ npm: string;
1520
+ }, {
1521
+ npm: string;
1522
+ }>, z.ZodObject<{
1523
+ url: z.ZodString;
1524
+ sha256: z.ZodOptional<z.ZodString>;
1525
+ }, "strict", z.ZodTypeAny, {
1526
+ url: string;
1527
+ sha256?: string | undefined;
1528
+ }, {
1529
+ url: string;
1530
+ sha256?: string | undefined;
1531
+ }>, z.ZodObject<{
1532
+ path: z.ZodString;
1533
+ }, "strict", z.ZodTypeAny, {
1534
+ path: string;
1535
+ }, {
1536
+ path: string;
1537
+ }>, z.ZodObject<{
1538
+ vendored: z.ZodLiteral<true>;
1539
+ }, "strict", z.ZodTypeAny, {
1540
+ vendored: true;
1541
+ }, {
1542
+ vendored: true;
1543
+ }>]>, "many">>;
1544
+ optional: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
1545
+ workspace: z.ZodString;
1546
+ }, "strict", z.ZodTypeAny, {
1547
+ workspace: string;
1548
+ }, {
1549
+ workspace: string;
1550
+ }>, z.ZodObject<{
1551
+ npm: z.ZodString;
1552
+ }, "strict", z.ZodTypeAny, {
1553
+ npm: string;
1554
+ }, {
1555
+ npm: string;
1556
+ }>, z.ZodObject<{
1557
+ url: z.ZodString;
1558
+ sha256: z.ZodOptional<z.ZodString>;
1559
+ }, "strict", z.ZodTypeAny, {
1560
+ url: string;
1561
+ sha256?: string | undefined;
1562
+ }, {
1563
+ url: string;
1564
+ sha256?: string | undefined;
1565
+ }>, z.ZodObject<{
1566
+ path: z.ZodString;
1567
+ }, "strict", z.ZodTypeAny, {
1568
+ path: string;
1569
+ }, {
1570
+ path: string;
1571
+ }>, z.ZodObject<{
1572
+ vendored: z.ZodLiteral<true>;
1573
+ }, "strict", z.ZodTypeAny, {
1574
+ vendored: true;
1575
+ }, {
1576
+ vendored: true;
1577
+ }>]>, "many">>;
1578
+ /**
1579
+ * Shell command to run once, before staging, to generate build artifacts.
1580
+ * Runs with cwd = config root (directory containing vibe-agent-toolkit.config.yaml).
1581
+ * Useful when a skill references a generated file (e.g. `node scripts/report.mjs`)
1582
+ * that is produced by a bundler step and not committed to source.
1583
+ * A non-zero exit code aborts the run (preflight failure, exit 2).
1584
+ */
1585
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1586
+ passEnv: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1587
+ build: z.ZodOptional<z.ZodString>;
1588
+ }, "strict", z.ZodTypeAny, {
1589
+ with?: ({
1590
+ workspace: string;
1591
+ } | {
1592
+ npm: string;
1593
+ } | {
1594
+ url: string;
1595
+ sha256?: string | undefined;
1596
+ } | {
1597
+ path: string;
1598
+ } | {
1599
+ vendored: true;
1600
+ })[] | undefined;
1601
+ env?: Record<string, string> | undefined;
1602
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
1603
+ timeout?: number | undefined;
1604
+ model?: string | undefined;
1605
+ maxTurns?: number | undefined;
1606
+ maxBudgetUsd?: number | undefined;
1607
+ stall?: number | undefined;
1608
+ evals?: string | undefined;
1609
+ experimenterPrompt?: string | undefined;
1610
+ requireAuth?: "subscription" | "api-key" | undefined;
1611
+ baseline?: boolean | undefined;
1612
+ skillCreator?: {
1613
+ workspace: string;
1614
+ } | {
1615
+ npm: string;
1616
+ } | {
1617
+ url: string;
1618
+ sha256?: string | undefined;
1619
+ } | {
1620
+ path: string;
1621
+ } | {
1622
+ vendored: true;
1623
+ } | undefined;
1624
+ optional?: ({
1625
+ workspace: string;
1626
+ } | {
1627
+ npm: string;
1628
+ } | {
1629
+ url: string;
1630
+ sha256?: string | undefined;
1631
+ } | {
1632
+ path: string;
1633
+ } | {
1634
+ vendored: true;
1635
+ })[] | undefined;
1636
+ passEnv?: string[] | undefined;
1637
+ build?: string | undefined;
1638
+ }, {
1639
+ with?: ({
1640
+ workspace: string;
1641
+ } | {
1642
+ npm: string;
1643
+ } | {
1644
+ url: string;
1645
+ sha256?: string | undefined;
1646
+ } | {
1647
+ path: string;
1648
+ } | {
1649
+ vendored: true;
1650
+ })[] | undefined;
1651
+ env?: Record<string, string> | undefined;
1652
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
1653
+ timeout?: number | undefined;
1654
+ model?: string | undefined;
1655
+ maxTurns?: number | undefined;
1656
+ maxBudgetUsd?: number | undefined;
1657
+ stall?: number | undefined;
1658
+ evals?: string | undefined;
1659
+ experimenterPrompt?: string | undefined;
1660
+ requireAuth?: "subscription" | "api-key" | undefined;
1661
+ baseline?: boolean | undefined;
1662
+ skillCreator?: {
1663
+ workspace: string;
1664
+ } | {
1665
+ npm: string;
1666
+ } | {
1667
+ url: string;
1668
+ sha256?: string | undefined;
1669
+ } | {
1670
+ path: string;
1671
+ } | {
1672
+ vendored: true;
1673
+ } | undefined;
1674
+ optional?: ({
1675
+ workspace: string;
1676
+ } | {
1677
+ npm: string;
1678
+ } | {
1679
+ url: string;
1680
+ sha256?: string | undefined;
1681
+ } | {
1682
+ path: string;
1683
+ } | {
1684
+ vendored: true;
1685
+ })[] | undefined;
1686
+ passEnv?: string[] | undefined;
1687
+ build?: string | undefined;
1688
+ }>>;
604
1689
  }, "strict", z.ZodTypeAny, {
605
1690
  validation?: {
606
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
607
- allow?: Record<string, {
1691
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
1692
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
608
1693
  paths: string[];
609
1694
  reason: string;
610
1695
  expires?: string | undefined;
611
- }[]> | undefined;
1696
+ }[]>> | undefined;
612
1697
  } | undefined;
613
1698
  publish?: boolean | undefined;
614
1699
  linkFollowDepth?: number | "full" | undefined;
@@ -627,14 +1712,65 @@ export declare const SkillsConfigSchema: z.ZodObject<{
627
1712
  source: string;
628
1713
  dest: string;
629
1714
  }[] | undefined;
1715
+ test?: {
1716
+ with?: ({
1717
+ workspace: string;
1718
+ } | {
1719
+ npm: string;
1720
+ } | {
1721
+ url: string;
1722
+ sha256?: string | undefined;
1723
+ } | {
1724
+ path: string;
1725
+ } | {
1726
+ vendored: true;
1727
+ })[] | undefined;
1728
+ env?: Record<string, string> | undefined;
1729
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
1730
+ timeout?: number | undefined;
1731
+ model?: string | undefined;
1732
+ maxTurns?: number | undefined;
1733
+ maxBudgetUsd?: number | undefined;
1734
+ stall?: number | undefined;
1735
+ evals?: string | undefined;
1736
+ experimenterPrompt?: string | undefined;
1737
+ requireAuth?: "subscription" | "api-key" | undefined;
1738
+ baseline?: boolean | undefined;
1739
+ skillCreator?: {
1740
+ workspace: string;
1741
+ } | {
1742
+ npm: string;
1743
+ } | {
1744
+ url: string;
1745
+ sha256?: string | undefined;
1746
+ } | {
1747
+ path: string;
1748
+ } | {
1749
+ vendored: true;
1750
+ } | undefined;
1751
+ optional?: ({
1752
+ workspace: string;
1753
+ } | {
1754
+ npm: string;
1755
+ } | {
1756
+ url: string;
1757
+ sha256?: string | undefined;
1758
+ } | {
1759
+ path: string;
1760
+ } | {
1761
+ vendored: true;
1762
+ })[] | undefined;
1763
+ passEnv?: string[] | undefined;
1764
+ build?: string | undefined;
1765
+ } | undefined;
630
1766
  }, {
631
1767
  validation?: {
632
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
633
- allow?: Record<string, {
1768
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
1769
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
634
1770
  reason: string;
635
1771
  paths?: string[] | undefined;
636
1772
  expires?: string | undefined;
637
- }[]> | undefined;
1773
+ }[]>> | undefined;
638
1774
  } | undefined;
639
1775
  publish?: boolean | undefined;
640
1776
  linkFollowDepth?: number | "full" | undefined;
@@ -653,6 +1789,57 @@ export declare const SkillsConfigSchema: z.ZodObject<{
653
1789
  source: string;
654
1790
  dest: string;
655
1791
  }[] | undefined;
1792
+ test?: {
1793
+ with?: ({
1794
+ workspace: string;
1795
+ } | {
1796
+ npm: string;
1797
+ } | {
1798
+ url: string;
1799
+ sha256?: string | undefined;
1800
+ } | {
1801
+ path: string;
1802
+ } | {
1803
+ vendored: true;
1804
+ })[] | undefined;
1805
+ env?: Record<string, string> | undefined;
1806
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
1807
+ timeout?: number | undefined;
1808
+ model?: string | undefined;
1809
+ maxTurns?: number | undefined;
1810
+ maxBudgetUsd?: number | undefined;
1811
+ stall?: number | undefined;
1812
+ evals?: string | undefined;
1813
+ experimenterPrompt?: string | undefined;
1814
+ requireAuth?: "subscription" | "api-key" | undefined;
1815
+ baseline?: boolean | undefined;
1816
+ skillCreator?: {
1817
+ workspace: string;
1818
+ } | {
1819
+ npm: string;
1820
+ } | {
1821
+ url: string;
1822
+ sha256?: string | undefined;
1823
+ } | {
1824
+ path: string;
1825
+ } | {
1826
+ vendored: true;
1827
+ } | undefined;
1828
+ optional?: ({
1829
+ workspace: string;
1830
+ } | {
1831
+ npm: string;
1832
+ } | {
1833
+ url: string;
1834
+ sha256?: string | undefined;
1835
+ } | {
1836
+ path: string;
1837
+ } | {
1838
+ vendored: true;
1839
+ })[] | undefined;
1840
+ passEnv?: string[] | undefined;
1841
+ build?: string | undefined;
1842
+ } | undefined;
656
1843
  }>>;
657
1844
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
658
1845
  publish: z.ZodOptional<z.ZodBoolean>;
@@ -686,46 +1873,34 @@ export declare const SkillsConfigSchema: z.ZodObject<{
686
1873
  defaultTemplate?: string | undefined;
687
1874
  }>>;
688
1875
  validation: z.ZodOptional<z.ZodObject<{
689
- severity: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["error", "warning", "ignore"]>>>;
690
- allow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
1876
+ severity: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodEnum<["error", "warning", "info", "ignore"]>>>;
1877
+ allow: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodArray<z.ZodObject<{
691
1878
  paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
692
1879
  reason: z.ZodString;
693
1880
  expires: z.ZodOptional<z.ZodString>;
694
1881
  }, "strict", z.ZodTypeAny, {
695
1882
  paths: string[];
696
1883
  reason: string;
697
- expires
698
- /**
699
- * Validation mode for frontmatter schema validation.
700
- *
701
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
702
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
703
- */
704
- ? /**
705
- * Validation mode for frontmatter schema validation.
706
- *
707
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
708
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
709
- */: string | undefined;
1884
+ expires?: string | undefined;
710
1885
  }, {
711
1886
  reason: string;
712
1887
  paths?: string[] | undefined;
713
1888
  expires?: string | undefined;
714
1889
  }>, "many">>>;
715
1890
  }, "strict", z.ZodTypeAny, {
716
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
717
- allow?: Record<string, {
1891
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
1892
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
718
1893
  paths: string[];
719
1894
  reason: string;
720
1895
  expires?: string | undefined;
721
- }[]> | undefined;
1896
+ }[]>> | undefined;
722
1897
  }, {
723
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
724
- allow?: Record<string, {
1898
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
1899
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
725
1900
  reason: string;
726
1901
  paths?: string[] | undefined;
727
1902
  expires?: string | undefined;
728
- }[]> | undefined;
1903
+ }[]>> | undefined;
729
1904
  }>>;
730
1905
  targets: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude-chat", "claude-cowork", "claude-code"]>, "many">>;
731
1906
  files: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -738,14 +1913,238 @@ export declare const SkillsConfigSchema: z.ZodObject<{
738
1913
  source: string;
739
1914
  dest: string;
740
1915
  }>, "many">>;
1916
+ test: z.ZodOptional<z.ZodObject<{
1917
+ model: z.ZodOptional<z.ZodString>;
1918
+ maxTurns: z.ZodOptional<z.ZodNumber>;
1919
+ maxBudgetUsd: z.ZodOptional<z.ZodNumber>;
1920
+ timeout: z.ZodOptional<z.ZodNumber>;
1921
+ stall: z.ZodOptional<z.ZodNumber>;
1922
+ evals: z.ZodOptional<z.ZodString>;
1923
+ experimenterPrompt: z.ZodOptional<z.ZodString>;
1924
+ auth: z.ZodOptional<z.ZodEnum<["inherit", "subscription", "api-key", "auto"]>>;
1925
+ requireAuth: z.ZodOptional<z.ZodEnum<["subscription", "api-key"]>>;
1926
+ baseline: z.ZodOptional<z.ZodBoolean>;
1927
+ skillCreator: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
1928
+ workspace: z.ZodString;
1929
+ }, "strict", z.ZodTypeAny, {
1930
+ workspace: string;
1931
+ }, {
1932
+ workspace: string;
1933
+ }>, z.ZodObject<{
1934
+ npm: z.ZodString;
1935
+ }, "strict", z.ZodTypeAny, {
1936
+ npm: string;
1937
+ }, {
1938
+ npm: string;
1939
+ }>, z.ZodObject<{
1940
+ url: z.ZodString;
1941
+ sha256: z.ZodOptional<z.ZodString>;
1942
+ }, "strict", z.ZodTypeAny, {
1943
+ url: string;
1944
+ sha256?: string | undefined;
1945
+ }, {
1946
+ url: string;
1947
+ sha256?: string | undefined;
1948
+ }>, z.ZodObject<{
1949
+ path: z.ZodString;
1950
+ }, "strict", z.ZodTypeAny, {
1951
+ path: string;
1952
+ }, {
1953
+ path: string;
1954
+ }>, z.ZodObject<{
1955
+ vendored: z.ZodLiteral<true>;
1956
+ }, "strict", z.ZodTypeAny, {
1957
+ vendored: true;
1958
+ }, {
1959
+ vendored: true;
1960
+ }>]>>;
1961
+ with: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
1962
+ workspace: z.ZodString;
1963
+ }, "strict", z.ZodTypeAny, {
1964
+ workspace: string;
1965
+ }, {
1966
+ workspace: string;
1967
+ }>, z.ZodObject<{
1968
+ npm: z.ZodString;
1969
+ }, "strict", z.ZodTypeAny, {
1970
+ npm: string;
1971
+ }, {
1972
+ npm: string;
1973
+ }>, z.ZodObject<{
1974
+ url: z.ZodString;
1975
+ sha256: z.ZodOptional<z.ZodString>;
1976
+ }, "strict", z.ZodTypeAny, {
1977
+ url: string;
1978
+ sha256?: string | undefined;
1979
+ }, {
1980
+ url: string;
1981
+ sha256?: string | undefined;
1982
+ }>, z.ZodObject<{
1983
+ path: z.ZodString;
1984
+ }, "strict", z.ZodTypeAny, {
1985
+ path: string;
1986
+ }, {
1987
+ path: string;
1988
+ }>, z.ZodObject<{
1989
+ vendored: z.ZodLiteral<true>;
1990
+ }, "strict", z.ZodTypeAny, {
1991
+ vendored: true;
1992
+ }, {
1993
+ vendored: true;
1994
+ }>]>, "many">>;
1995
+ optional: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
1996
+ workspace: z.ZodString;
1997
+ }, "strict", z.ZodTypeAny, {
1998
+ workspace: string;
1999
+ }, {
2000
+ workspace: string;
2001
+ }>, z.ZodObject<{
2002
+ npm: z.ZodString;
2003
+ }, "strict", z.ZodTypeAny, {
2004
+ npm: string;
2005
+ }, {
2006
+ npm: string;
2007
+ }>, z.ZodObject<{
2008
+ url: z.ZodString;
2009
+ sha256: z.ZodOptional<z.ZodString>;
2010
+ }, "strict", z.ZodTypeAny, {
2011
+ url: string;
2012
+ sha256?: string | undefined;
2013
+ }, {
2014
+ url: string;
2015
+ sha256?: string | undefined;
2016
+ }>, z.ZodObject<{
2017
+ path: z.ZodString;
2018
+ }, "strict", z.ZodTypeAny, {
2019
+ path: string;
2020
+ }, {
2021
+ path: string;
2022
+ }>, z.ZodObject<{
2023
+ vendored: z.ZodLiteral<true>;
2024
+ }, "strict", z.ZodTypeAny, {
2025
+ vendored: true;
2026
+ }, {
2027
+ vendored: true;
2028
+ }>]>, "many">>;
2029
+ /**
2030
+ * Shell command to run once, before staging, to generate build artifacts.
2031
+ * Runs with cwd = config root (directory containing vibe-agent-toolkit.config.yaml).
2032
+ * Useful when a skill references a generated file (e.g. `node scripts/report.mjs`)
2033
+ * that is produced by a bundler step and not committed to source.
2034
+ * A non-zero exit code aborts the run (preflight failure, exit 2).
2035
+ */
2036
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2037
+ passEnv: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2038
+ build: z.ZodOptional<z.ZodString>;
2039
+ }, "strict", z.ZodTypeAny, {
2040
+ with?: ({
2041
+ workspace: string;
2042
+ } | {
2043
+ npm: string;
2044
+ } | {
2045
+ url: string;
2046
+ sha256?: string | undefined;
2047
+ } | {
2048
+ path: string;
2049
+ } | {
2050
+ vendored: true;
2051
+ })[] | undefined;
2052
+ env?: Record<string, string> | undefined;
2053
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
2054
+ timeout?: number | undefined;
2055
+ model?: string | undefined;
2056
+ maxTurns?: number | undefined;
2057
+ maxBudgetUsd?: number | undefined;
2058
+ stall?: number | undefined;
2059
+ evals?: string | undefined;
2060
+ experimenterPrompt?: string | undefined;
2061
+ requireAuth?: "subscription" | "api-key" | undefined;
2062
+ baseline?: boolean | undefined;
2063
+ skillCreator?: {
2064
+ workspace: string;
2065
+ } | {
2066
+ npm: string;
2067
+ } | {
2068
+ url: string;
2069
+ sha256?: string | undefined;
2070
+ } | {
2071
+ path: string;
2072
+ } | {
2073
+ vendored: true;
2074
+ } | undefined;
2075
+ optional?: ({
2076
+ workspace: string;
2077
+ } | {
2078
+ npm: string;
2079
+ } | {
2080
+ url: string;
2081
+ sha256?: string | undefined;
2082
+ } | {
2083
+ path: string;
2084
+ } | {
2085
+ vendored: true;
2086
+ })[] | undefined;
2087
+ passEnv?: string[] | undefined;
2088
+ build?: string | undefined;
2089
+ }, {
2090
+ with?: ({
2091
+ workspace: string;
2092
+ } | {
2093
+ npm: string;
2094
+ } | {
2095
+ url: string;
2096
+ sha256?: string | undefined;
2097
+ } | {
2098
+ path: string;
2099
+ } | {
2100
+ vendored: true;
2101
+ })[] | undefined;
2102
+ env?: Record<string, string> | undefined;
2103
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
2104
+ timeout?: number | undefined;
2105
+ model?: string | undefined;
2106
+ maxTurns?: number | undefined;
2107
+ maxBudgetUsd?: number | undefined;
2108
+ stall?: number | undefined;
2109
+ evals?: string | undefined;
2110
+ experimenterPrompt?: string | undefined;
2111
+ requireAuth?: "subscription" | "api-key" | undefined;
2112
+ baseline?: boolean | undefined;
2113
+ skillCreator?: {
2114
+ workspace: string;
2115
+ } | {
2116
+ npm: string;
2117
+ } | {
2118
+ url: string;
2119
+ sha256?: string | undefined;
2120
+ } | {
2121
+ path: string;
2122
+ } | {
2123
+ vendored: true;
2124
+ } | undefined;
2125
+ optional?: ({
2126
+ workspace: string;
2127
+ } | {
2128
+ npm: string;
2129
+ } | {
2130
+ url: string;
2131
+ sha256?: string | undefined;
2132
+ } | {
2133
+ path: string;
2134
+ } | {
2135
+ vendored: true;
2136
+ })[] | undefined;
2137
+ passEnv?: string[] | undefined;
2138
+ build?: string | undefined;
2139
+ }>>;
741
2140
  }, "strict", z.ZodTypeAny, {
742
2141
  validation?: {
743
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
744
- allow?: Record<string, {
2142
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
2143
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
745
2144
  paths: string[];
746
2145
  reason: string;
747
2146
  expires?: string | undefined;
748
- }[]> | undefined;
2147
+ }[]>> | undefined;
749
2148
  } | undefined;
750
2149
  publish?: boolean | undefined;
751
2150
  linkFollowDepth?: number | "full" | undefined;
@@ -764,14 +2163,65 @@ export declare const SkillsConfigSchema: z.ZodObject<{
764
2163
  source: string;
765
2164
  dest: string;
766
2165
  }[] | undefined;
2166
+ test?: {
2167
+ with?: ({
2168
+ workspace: string;
2169
+ } | {
2170
+ npm: string;
2171
+ } | {
2172
+ url: string;
2173
+ sha256?: string | undefined;
2174
+ } | {
2175
+ path: string;
2176
+ } | {
2177
+ vendored: true;
2178
+ })[] | undefined;
2179
+ env?: Record<string, string> | undefined;
2180
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
2181
+ timeout?: number | undefined;
2182
+ model?: string | undefined;
2183
+ maxTurns?: number | undefined;
2184
+ maxBudgetUsd?: number | undefined;
2185
+ stall?: number | undefined;
2186
+ evals?: string | undefined;
2187
+ experimenterPrompt?: string | undefined;
2188
+ requireAuth?: "subscription" | "api-key" | undefined;
2189
+ baseline?: boolean | undefined;
2190
+ skillCreator?: {
2191
+ workspace: string;
2192
+ } | {
2193
+ npm: string;
2194
+ } | {
2195
+ url: string;
2196
+ sha256?: string | undefined;
2197
+ } | {
2198
+ path: string;
2199
+ } | {
2200
+ vendored: true;
2201
+ } | undefined;
2202
+ optional?: ({
2203
+ workspace: string;
2204
+ } | {
2205
+ npm: string;
2206
+ } | {
2207
+ url: string;
2208
+ sha256?: string | undefined;
2209
+ } | {
2210
+ path: string;
2211
+ } | {
2212
+ vendored: true;
2213
+ })[] | undefined;
2214
+ passEnv?: string[] | undefined;
2215
+ build?: string | undefined;
2216
+ } | undefined;
767
2217
  }, {
768
2218
  validation?: {
769
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
770
- allow?: Record<string, {
2219
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
2220
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
771
2221
  reason: string;
772
2222
  paths?: string[] | undefined;
773
2223
  expires?: string | undefined;
774
- }[]> | undefined;
2224
+ }[]>> | undefined;
775
2225
  } | undefined;
776
2226
  publish?: boolean | undefined;
777
2227
  linkFollowDepth?: number | "full" | undefined;
@@ -790,18 +2240,69 @@ export declare const SkillsConfigSchema: z.ZodObject<{
790
2240
  source: string;
791
2241
  dest: string;
792
2242
  }[] | undefined;
2243
+ test?: {
2244
+ with?: ({
2245
+ workspace: string;
2246
+ } | {
2247
+ npm: string;
2248
+ } | {
2249
+ url: string;
2250
+ sha256?: string | undefined;
2251
+ } | {
2252
+ path: string;
2253
+ } | {
2254
+ vendored: true;
2255
+ })[] | undefined;
2256
+ env?: Record<string, string> | undefined;
2257
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
2258
+ timeout?: number | undefined;
2259
+ model?: string | undefined;
2260
+ maxTurns?: number | undefined;
2261
+ maxBudgetUsd?: number | undefined;
2262
+ stall?: number | undefined;
2263
+ evals?: string | undefined;
2264
+ experimenterPrompt?: string | undefined;
2265
+ requireAuth?: "subscription" | "api-key" | undefined;
2266
+ baseline?: boolean | undefined;
2267
+ skillCreator?: {
2268
+ workspace: string;
2269
+ } | {
2270
+ npm: string;
2271
+ } | {
2272
+ url: string;
2273
+ sha256?: string | undefined;
2274
+ } | {
2275
+ path: string;
2276
+ } | {
2277
+ vendored: true;
2278
+ } | undefined;
2279
+ optional?: ({
2280
+ workspace: string;
2281
+ } | {
2282
+ npm: string;
2283
+ } | {
2284
+ url: string;
2285
+ sha256?: string | undefined;
2286
+ } | {
2287
+ path: string;
2288
+ } | {
2289
+ vendored: true;
2290
+ })[] | undefined;
2291
+ passEnv?: string[] | undefined;
2292
+ build?: string | undefined;
2293
+ } | undefined;
793
2294
  }>>>;
794
2295
  }, "strict", z.ZodTypeAny, {
795
2296
  include: string[];
796
2297
  exclude?: string[] | undefined;
797
2298
  defaults?: {
798
2299
  validation?: {
799
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
800
- allow?: Record<string, {
2300
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
2301
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
801
2302
  paths: string[];
802
2303
  reason: string;
803
2304
  expires?: string | undefined;
804
- }[]> | undefined;
2305
+ }[]>> | undefined;
805
2306
  } | undefined;
806
2307
  publish?: boolean | undefined;
807
2308
  linkFollowDepth?: number | "full" | undefined;
@@ -820,15 +2321,66 @@ export declare const SkillsConfigSchema: z.ZodObject<{
820
2321
  source: string;
821
2322
  dest: string;
822
2323
  }[] | undefined;
2324
+ test?: {
2325
+ with?: ({
2326
+ workspace: string;
2327
+ } | {
2328
+ npm: string;
2329
+ } | {
2330
+ url: string;
2331
+ sha256?: string | undefined;
2332
+ } | {
2333
+ path: string;
2334
+ } | {
2335
+ vendored: true;
2336
+ })[] | undefined;
2337
+ env?: Record<string, string> | undefined;
2338
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
2339
+ timeout?: number | undefined;
2340
+ model?: string | undefined;
2341
+ maxTurns?: number | undefined;
2342
+ maxBudgetUsd?: number | undefined;
2343
+ stall?: number | undefined;
2344
+ evals?: string | undefined;
2345
+ experimenterPrompt?: string | undefined;
2346
+ requireAuth?: "subscription" | "api-key" | undefined;
2347
+ baseline?: boolean | undefined;
2348
+ skillCreator?: {
2349
+ workspace: string;
2350
+ } | {
2351
+ npm: string;
2352
+ } | {
2353
+ url: string;
2354
+ sha256?: string | undefined;
2355
+ } | {
2356
+ path: string;
2357
+ } | {
2358
+ vendored: true;
2359
+ } | undefined;
2360
+ optional?: ({
2361
+ workspace: string;
2362
+ } | {
2363
+ npm: string;
2364
+ } | {
2365
+ url: string;
2366
+ sha256?: string | undefined;
2367
+ } | {
2368
+ path: string;
2369
+ } | {
2370
+ vendored: true;
2371
+ })[] | undefined;
2372
+ passEnv?: string[] | undefined;
2373
+ build?: string | undefined;
2374
+ } | undefined;
823
2375
  } | undefined;
824
2376
  config?: Record<string, {
825
2377
  validation?: {
826
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
827
- allow?: Record<string, {
2378
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
2379
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
828
2380
  paths: string[];
829
2381
  reason: string;
830
2382
  expires?: string | undefined;
831
- }[]> | undefined;
2383
+ }[]>> | undefined;
832
2384
  } | undefined;
833
2385
  publish?: boolean | undefined;
834
2386
  linkFollowDepth?: number | "full" | undefined;
@@ -847,18 +2399,69 @@ export declare const SkillsConfigSchema: z.ZodObject<{
847
2399
  source: string;
848
2400
  dest: string;
849
2401
  }[] | undefined;
2402
+ test?: {
2403
+ with?: ({
2404
+ workspace: string;
2405
+ } | {
2406
+ npm: string;
2407
+ } | {
2408
+ url: string;
2409
+ sha256?: string | undefined;
2410
+ } | {
2411
+ path: string;
2412
+ } | {
2413
+ vendored: true;
2414
+ })[] | undefined;
2415
+ env?: Record<string, string> | undefined;
2416
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
2417
+ timeout?: number | undefined;
2418
+ model?: string | undefined;
2419
+ maxTurns?: number | undefined;
2420
+ maxBudgetUsd?: number | undefined;
2421
+ stall?: number | undefined;
2422
+ evals?: string | undefined;
2423
+ experimenterPrompt?: string | undefined;
2424
+ requireAuth?: "subscription" | "api-key" | undefined;
2425
+ baseline?: boolean | undefined;
2426
+ skillCreator?: {
2427
+ workspace: string;
2428
+ } | {
2429
+ npm: string;
2430
+ } | {
2431
+ url: string;
2432
+ sha256?: string | undefined;
2433
+ } | {
2434
+ path: string;
2435
+ } | {
2436
+ vendored: true;
2437
+ } | undefined;
2438
+ optional?: ({
2439
+ workspace: string;
2440
+ } | {
2441
+ npm: string;
2442
+ } | {
2443
+ url: string;
2444
+ sha256?: string | undefined;
2445
+ } | {
2446
+ path: string;
2447
+ } | {
2448
+ vendored: true;
2449
+ })[] | undefined;
2450
+ passEnv?: string[] | undefined;
2451
+ build?: string | undefined;
2452
+ } | undefined;
850
2453
  }> | undefined;
851
2454
  }, {
852
2455
  include: string[];
853
2456
  exclude?: string[] | undefined;
854
2457
  defaults?: {
855
2458
  validation?: {
856
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
857
- allow?: Record<string, {
2459
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
2460
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
858
2461
  reason: string;
859
2462
  paths?: string[] | undefined;
860
2463
  expires?: string | undefined;
861
- }[]> | undefined;
2464
+ }[]>> | undefined;
862
2465
  } | undefined;
863
2466
  publish?: boolean | undefined;
864
2467
  linkFollowDepth?: number | "full" | undefined;
@@ -877,15 +2480,66 @@ export declare const SkillsConfigSchema: z.ZodObject<{
877
2480
  source: string;
878
2481
  dest: string;
879
2482
  }[] | undefined;
2483
+ test?: {
2484
+ with?: ({
2485
+ workspace: string;
2486
+ } | {
2487
+ npm: string;
2488
+ } | {
2489
+ url: string;
2490
+ sha256?: string | undefined;
2491
+ } | {
2492
+ path: string;
2493
+ } | {
2494
+ vendored: true;
2495
+ })[] | undefined;
2496
+ env?: Record<string, string> | undefined;
2497
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
2498
+ timeout?: number | undefined;
2499
+ model?: string | undefined;
2500
+ maxTurns?: number | undefined;
2501
+ maxBudgetUsd?: number | undefined;
2502
+ stall?: number | undefined;
2503
+ evals?: string | undefined;
2504
+ experimenterPrompt?: string | undefined;
2505
+ requireAuth?: "subscription" | "api-key" | undefined;
2506
+ baseline?: boolean | undefined;
2507
+ skillCreator?: {
2508
+ workspace: string;
2509
+ } | {
2510
+ npm: string;
2511
+ } | {
2512
+ url: string;
2513
+ sha256?: string | undefined;
2514
+ } | {
2515
+ path: string;
2516
+ } | {
2517
+ vendored: true;
2518
+ } | undefined;
2519
+ optional?: ({
2520
+ workspace: string;
2521
+ } | {
2522
+ npm: string;
2523
+ } | {
2524
+ url: string;
2525
+ sha256?: string | undefined;
2526
+ } | {
2527
+ path: string;
2528
+ } | {
2529
+ vendored: true;
2530
+ })[] | undefined;
2531
+ passEnv?: string[] | undefined;
2532
+ build?: string | undefined;
2533
+ } | undefined;
880
2534
  } | undefined;
881
2535
  config?: Record<string, {
882
2536
  validation?: {
883
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
884
- allow?: Record<string, {
2537
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
2538
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
885
2539
  reason: string;
886
2540
  paths?: string[] | undefined;
887
2541
  expires?: string | undefined;
888
- }[]> | undefined;
2542
+ }[]>> | undefined;
889
2543
  } | undefined;
890
2544
  publish?: boolean | undefined;
891
2545
  linkFollowDepth?: number | "full" | undefined;
@@ -904,6 +2558,57 @@ export declare const SkillsConfigSchema: z.ZodObject<{
904
2558
  source: string;
905
2559
  dest: string;
906
2560
  }[] | undefined;
2561
+ test?: {
2562
+ with?: ({
2563
+ workspace: string;
2564
+ } | {
2565
+ npm: string;
2566
+ } | {
2567
+ url: string;
2568
+ sha256?: string | undefined;
2569
+ } | {
2570
+ path: string;
2571
+ } | {
2572
+ vendored: true;
2573
+ })[] | undefined;
2574
+ env?: Record<string, string> | undefined;
2575
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
2576
+ timeout?: number | undefined;
2577
+ model?: string | undefined;
2578
+ maxTurns?: number | undefined;
2579
+ maxBudgetUsd?: number | undefined;
2580
+ stall?: number | undefined;
2581
+ evals?: string | undefined;
2582
+ experimenterPrompt?: string | undefined;
2583
+ requireAuth?: "subscription" | "api-key" | undefined;
2584
+ baseline?: boolean | undefined;
2585
+ skillCreator?: {
2586
+ workspace: string;
2587
+ } | {
2588
+ npm: string;
2589
+ } | {
2590
+ url: string;
2591
+ sha256?: string | undefined;
2592
+ } | {
2593
+ path: string;
2594
+ } | {
2595
+ vendored: true;
2596
+ } | undefined;
2597
+ optional?: ({
2598
+ workspace: string;
2599
+ } | {
2600
+ npm: string;
2601
+ } | {
2602
+ url: string;
2603
+ sha256?: string | undefined;
2604
+ } | {
2605
+ path: string;
2606
+ } | {
2607
+ vendored: true;
2608
+ })[] | undefined;
2609
+ passEnv?: string[] | undefined;
2610
+ build?: string | undefined;
2611
+ } | undefined;
907
2612
  }> | undefined;
908
2613
  }>;
909
2614
  export type SkillsConfig = z.infer<typeof SkillsConfigSchema>;
@@ -1347,46 +3052,34 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1347
3052
  defaultTemplate?: string | undefined;
1348
3053
  }>>;
1349
3054
  validation: z.ZodOptional<z.ZodObject<{
1350
- severity: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["error", "warning", "ignore"]>>>;
1351
- allow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
3055
+ severity: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodEnum<["error", "warning", "info", "ignore"]>>>;
3056
+ allow: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodArray<z.ZodObject<{
1352
3057
  paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1353
3058
  reason: z.ZodString;
1354
3059
  expires: z.ZodOptional<z.ZodString>;
1355
3060
  }, "strict", z.ZodTypeAny, {
1356
3061
  paths: string[];
1357
3062
  reason: string;
1358
- expires
1359
- /**
1360
- * Validation mode for frontmatter schema validation.
1361
- *
1362
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
1363
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
1364
- */
1365
- ? /**
1366
- * Validation mode for frontmatter schema validation.
1367
- *
1368
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
1369
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
1370
- */: string | undefined;
3063
+ expires?: string | undefined;
1371
3064
  }, {
1372
3065
  reason: string;
1373
3066
  paths?: string[] | undefined;
1374
3067
  expires?: string | undefined;
1375
3068
  }>, "many">>>;
1376
3069
  }, "strict", z.ZodTypeAny, {
1377
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1378
- allow?: Record<string, {
3070
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3071
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1379
3072
  paths: string[];
1380
3073
  reason: string;
1381
3074
  expires?: string | undefined;
1382
- }[]> | undefined;
3075
+ }[]>> | undefined;
1383
3076
  }, {
1384
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1385
- allow?: Record<string, {
3077
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3078
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1386
3079
  reason: string;
1387
3080
  paths?: string[] | undefined;
1388
3081
  expires?: string | undefined;
1389
- }[]> | undefined;
3082
+ }[]>> | undefined;
1390
3083
  }>>;
1391
3084
  targets: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude-chat", "claude-cowork", "claude-code"]>, "many">>;
1392
3085
  files: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -1399,14 +3092,238 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1399
3092
  source: string;
1400
3093
  dest: string;
1401
3094
  }>, "many">>;
3095
+ test: z.ZodOptional<z.ZodObject<{
3096
+ model: z.ZodOptional<z.ZodString>;
3097
+ maxTurns: z.ZodOptional<z.ZodNumber>;
3098
+ maxBudgetUsd: z.ZodOptional<z.ZodNumber>;
3099
+ timeout: z.ZodOptional<z.ZodNumber>;
3100
+ stall: z.ZodOptional<z.ZodNumber>;
3101
+ evals: z.ZodOptional<z.ZodString>;
3102
+ experimenterPrompt: z.ZodOptional<z.ZodString>;
3103
+ auth: z.ZodOptional<z.ZodEnum<["inherit", "subscription", "api-key", "auto"]>>;
3104
+ requireAuth: z.ZodOptional<z.ZodEnum<["subscription", "api-key"]>>;
3105
+ baseline: z.ZodOptional<z.ZodBoolean>;
3106
+ skillCreator: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
3107
+ workspace: z.ZodString;
3108
+ }, "strict", z.ZodTypeAny, {
3109
+ workspace: string;
3110
+ }, {
3111
+ workspace: string;
3112
+ }>, z.ZodObject<{
3113
+ npm: z.ZodString;
3114
+ }, "strict", z.ZodTypeAny, {
3115
+ npm: string;
3116
+ }, {
3117
+ npm: string;
3118
+ }>, z.ZodObject<{
3119
+ url: z.ZodString;
3120
+ sha256: z.ZodOptional<z.ZodString>;
3121
+ }, "strict", z.ZodTypeAny, {
3122
+ url: string;
3123
+ sha256?: string | undefined;
3124
+ }, {
3125
+ url: string;
3126
+ sha256?: string | undefined;
3127
+ }>, z.ZodObject<{
3128
+ path: z.ZodString;
3129
+ }, "strict", z.ZodTypeAny, {
3130
+ path: string;
3131
+ }, {
3132
+ path: string;
3133
+ }>, z.ZodObject<{
3134
+ vendored: z.ZodLiteral<true>;
3135
+ }, "strict", z.ZodTypeAny, {
3136
+ vendored: true;
3137
+ }, {
3138
+ vendored: true;
3139
+ }>]>>;
3140
+ with: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
3141
+ workspace: z.ZodString;
3142
+ }, "strict", z.ZodTypeAny, {
3143
+ workspace: string;
3144
+ }, {
3145
+ workspace: string;
3146
+ }>, z.ZodObject<{
3147
+ npm: z.ZodString;
3148
+ }, "strict", z.ZodTypeAny, {
3149
+ npm: string;
3150
+ }, {
3151
+ npm: string;
3152
+ }>, z.ZodObject<{
3153
+ url: z.ZodString;
3154
+ sha256: z.ZodOptional<z.ZodString>;
3155
+ }, "strict", z.ZodTypeAny, {
3156
+ url: string;
3157
+ sha256?: string | undefined;
3158
+ }, {
3159
+ url: string;
3160
+ sha256?: string | undefined;
3161
+ }>, z.ZodObject<{
3162
+ path: z.ZodString;
3163
+ }, "strict", z.ZodTypeAny, {
3164
+ path: string;
3165
+ }, {
3166
+ path: string;
3167
+ }>, z.ZodObject<{
3168
+ vendored: z.ZodLiteral<true>;
3169
+ }, "strict", z.ZodTypeAny, {
3170
+ vendored: true;
3171
+ }, {
3172
+ vendored: true;
3173
+ }>]>, "many">>;
3174
+ optional: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
3175
+ workspace: z.ZodString;
3176
+ }, "strict", z.ZodTypeAny, {
3177
+ workspace: string;
3178
+ }, {
3179
+ workspace: string;
3180
+ }>, z.ZodObject<{
3181
+ npm: z.ZodString;
3182
+ }, "strict", z.ZodTypeAny, {
3183
+ npm: string;
3184
+ }, {
3185
+ npm: string;
3186
+ }>, z.ZodObject<{
3187
+ url: z.ZodString;
3188
+ sha256: z.ZodOptional<z.ZodString>;
3189
+ }, "strict", z.ZodTypeAny, {
3190
+ url: string;
3191
+ sha256?: string | undefined;
3192
+ }, {
3193
+ url: string;
3194
+ sha256?: string | undefined;
3195
+ }>, z.ZodObject<{
3196
+ path: z.ZodString;
3197
+ }, "strict", z.ZodTypeAny, {
3198
+ path: string;
3199
+ }, {
3200
+ path: string;
3201
+ }>, z.ZodObject<{
3202
+ vendored: z.ZodLiteral<true>;
3203
+ }, "strict", z.ZodTypeAny, {
3204
+ vendored: true;
3205
+ }, {
3206
+ vendored: true;
3207
+ }>]>, "many">>;
3208
+ /**
3209
+ * Shell command to run once, before staging, to generate build artifacts.
3210
+ * Runs with cwd = config root (directory containing vibe-agent-toolkit.config.yaml).
3211
+ * Useful when a skill references a generated file (e.g. `node scripts/report.mjs`)
3212
+ * that is produced by a bundler step and not committed to source.
3213
+ * A non-zero exit code aborts the run (preflight failure, exit 2).
3214
+ */
3215
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3216
+ passEnv: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3217
+ build: z.ZodOptional<z.ZodString>;
3218
+ }, "strict", z.ZodTypeAny, {
3219
+ with?: ({
3220
+ workspace: string;
3221
+ } | {
3222
+ npm: string;
3223
+ } | {
3224
+ url: string;
3225
+ sha256?: string | undefined;
3226
+ } | {
3227
+ path: string;
3228
+ } | {
3229
+ vendored: true;
3230
+ })[] | undefined;
3231
+ env?: Record<string, string> | undefined;
3232
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3233
+ timeout?: number | undefined;
3234
+ model?: string | undefined;
3235
+ maxTurns?: number | undefined;
3236
+ maxBudgetUsd?: number | undefined;
3237
+ stall?: number | undefined;
3238
+ evals?: string | undefined;
3239
+ experimenterPrompt?: string | undefined;
3240
+ requireAuth?: "subscription" | "api-key" | undefined;
3241
+ baseline?: boolean | undefined;
3242
+ skillCreator?: {
3243
+ workspace: string;
3244
+ } | {
3245
+ npm: string;
3246
+ } | {
3247
+ url: string;
3248
+ sha256?: string | undefined;
3249
+ } | {
3250
+ path: string;
3251
+ } | {
3252
+ vendored: true;
3253
+ } | undefined;
3254
+ optional?: ({
3255
+ workspace: string;
3256
+ } | {
3257
+ npm: string;
3258
+ } | {
3259
+ url: string;
3260
+ sha256?: string | undefined;
3261
+ } | {
3262
+ path: string;
3263
+ } | {
3264
+ vendored: true;
3265
+ })[] | undefined;
3266
+ passEnv?: string[] | undefined;
3267
+ build?: string | undefined;
3268
+ }, {
3269
+ with?: ({
3270
+ workspace: string;
3271
+ } | {
3272
+ npm: string;
3273
+ } | {
3274
+ url: string;
3275
+ sha256?: string | undefined;
3276
+ } | {
3277
+ path: string;
3278
+ } | {
3279
+ vendored: true;
3280
+ })[] | undefined;
3281
+ env?: Record<string, string> | undefined;
3282
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3283
+ timeout?: number | undefined;
3284
+ model?: string | undefined;
3285
+ maxTurns?: number | undefined;
3286
+ maxBudgetUsd?: number | undefined;
3287
+ stall?: number | undefined;
3288
+ evals?: string | undefined;
3289
+ experimenterPrompt?: string | undefined;
3290
+ requireAuth?: "subscription" | "api-key" | undefined;
3291
+ baseline?: boolean | undefined;
3292
+ skillCreator?: {
3293
+ workspace: string;
3294
+ } | {
3295
+ npm: string;
3296
+ } | {
3297
+ url: string;
3298
+ sha256?: string | undefined;
3299
+ } | {
3300
+ path: string;
3301
+ } | {
3302
+ vendored: true;
3303
+ } | undefined;
3304
+ optional?: ({
3305
+ workspace: string;
3306
+ } | {
3307
+ npm: string;
3308
+ } | {
3309
+ url: string;
3310
+ sha256?: string | undefined;
3311
+ } | {
3312
+ path: string;
3313
+ } | {
3314
+ vendored: true;
3315
+ })[] | undefined;
3316
+ passEnv?: string[] | undefined;
3317
+ build?: string | undefined;
3318
+ }>>;
1402
3319
  }, "strict", z.ZodTypeAny, {
1403
3320
  validation?: {
1404
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1405
- allow?: Record<string, {
3321
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3322
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1406
3323
  paths: string[];
1407
3324
  reason: string;
1408
3325
  expires?: string | undefined;
1409
- }[]> | undefined;
3326
+ }[]>> | undefined;
1410
3327
  } | undefined;
1411
3328
  publish?: boolean | undefined;
1412
3329
  linkFollowDepth?: number | "full" | undefined;
@@ -1425,14 +3342,65 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1425
3342
  source: string;
1426
3343
  dest: string;
1427
3344
  }[] | undefined;
3345
+ test?: {
3346
+ with?: ({
3347
+ workspace: string;
3348
+ } | {
3349
+ npm: string;
3350
+ } | {
3351
+ url: string;
3352
+ sha256?: string | undefined;
3353
+ } | {
3354
+ path: string;
3355
+ } | {
3356
+ vendored: true;
3357
+ })[] | undefined;
3358
+ env?: Record<string, string> | undefined;
3359
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3360
+ timeout?: number | undefined;
3361
+ model?: string | undefined;
3362
+ maxTurns?: number | undefined;
3363
+ maxBudgetUsd?: number | undefined;
3364
+ stall?: number | undefined;
3365
+ evals?: string | undefined;
3366
+ experimenterPrompt?: string | undefined;
3367
+ requireAuth?: "subscription" | "api-key" | undefined;
3368
+ baseline?: boolean | undefined;
3369
+ skillCreator?: {
3370
+ workspace: string;
3371
+ } | {
3372
+ npm: string;
3373
+ } | {
3374
+ url: string;
3375
+ sha256?: string | undefined;
3376
+ } | {
3377
+ path: string;
3378
+ } | {
3379
+ vendored: true;
3380
+ } | undefined;
3381
+ optional?: ({
3382
+ workspace: string;
3383
+ } | {
3384
+ npm: string;
3385
+ } | {
3386
+ url: string;
3387
+ sha256?: string | undefined;
3388
+ } | {
3389
+ path: string;
3390
+ } | {
3391
+ vendored: true;
3392
+ })[] | undefined;
3393
+ passEnv?: string[] | undefined;
3394
+ build?: string | undefined;
3395
+ } | undefined;
1428
3396
  }, {
1429
3397
  validation?: {
1430
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1431
- allow?: Record<string, {
3398
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3399
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1432
3400
  reason: string;
1433
3401
  paths?: string[] | undefined;
1434
3402
  expires?: string | undefined;
1435
- }[]> | undefined;
3403
+ }[]>> | undefined;
1436
3404
  } | undefined;
1437
3405
  publish?: boolean | undefined;
1438
3406
  linkFollowDepth?: number | "full" | undefined;
@@ -1451,6 +3419,57 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1451
3419
  source: string;
1452
3420
  dest: string;
1453
3421
  }[] | undefined;
3422
+ test?: {
3423
+ with?: ({
3424
+ workspace: string;
3425
+ } | {
3426
+ npm: string;
3427
+ } | {
3428
+ url: string;
3429
+ sha256?: string | undefined;
3430
+ } | {
3431
+ path: string;
3432
+ } | {
3433
+ vendored: true;
3434
+ })[] | undefined;
3435
+ env?: Record<string, string> | undefined;
3436
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3437
+ timeout?: number | undefined;
3438
+ model?: string | undefined;
3439
+ maxTurns?: number | undefined;
3440
+ maxBudgetUsd?: number | undefined;
3441
+ stall?: number | undefined;
3442
+ evals?: string | undefined;
3443
+ experimenterPrompt?: string | undefined;
3444
+ requireAuth?: "subscription" | "api-key" | undefined;
3445
+ baseline?: boolean | undefined;
3446
+ skillCreator?: {
3447
+ workspace: string;
3448
+ } | {
3449
+ npm: string;
3450
+ } | {
3451
+ url: string;
3452
+ sha256?: string | undefined;
3453
+ } | {
3454
+ path: string;
3455
+ } | {
3456
+ vendored: true;
3457
+ } | undefined;
3458
+ optional?: ({
3459
+ workspace: string;
3460
+ } | {
3461
+ npm: string;
3462
+ } | {
3463
+ url: string;
3464
+ sha256?: string | undefined;
3465
+ } | {
3466
+ path: string;
3467
+ } | {
3468
+ vendored: true;
3469
+ })[] | undefined;
3470
+ passEnv?: string[] | undefined;
3471
+ build?: string | undefined;
3472
+ } | undefined;
1454
3473
  }>>;
1455
3474
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1456
3475
  publish: z.ZodOptional<z.ZodBoolean>;
@@ -1484,46 +3503,34 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1484
3503
  defaultTemplate?: string | undefined;
1485
3504
  }>>;
1486
3505
  validation: z.ZodOptional<z.ZodObject<{
1487
- severity: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["error", "warning", "ignore"]>>>;
1488
- allow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
3506
+ severity: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodEnum<["error", "warning", "info", "ignore"]>>>;
3507
+ allow: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodArray<z.ZodObject<{
1489
3508
  paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1490
3509
  reason: z.ZodString;
1491
3510
  expires: z.ZodOptional<z.ZodString>;
1492
3511
  }, "strict", z.ZodTypeAny, {
1493
3512
  paths: string[];
1494
3513
  reason: string;
1495
- expires
1496
- /**
1497
- * Validation mode for frontmatter schema validation.
1498
- *
1499
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
1500
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
1501
- */
1502
- ? /**
1503
- * Validation mode for frontmatter schema validation.
1504
- *
1505
- * - `strict`: Enforce schema exactly (respect additionalProperties: false)
1506
- * - `permissive`: Allow extra fields (ignore additionalProperties: false)
1507
- */: string | undefined;
3514
+ expires?: string | undefined;
1508
3515
  }, {
1509
3516
  reason: string;
1510
3517
  paths?: string[] | undefined;
1511
3518
  expires?: string | undefined;
1512
3519
  }>, "many">>>;
1513
3520
  }, "strict", z.ZodTypeAny, {
1514
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1515
- allow?: Record<string, {
3521
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3522
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1516
3523
  paths: string[];
1517
3524
  reason: string;
1518
3525
  expires?: string | undefined;
1519
- }[]> | undefined;
3526
+ }[]>> | undefined;
1520
3527
  }, {
1521
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1522
- allow?: Record<string, {
3528
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3529
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1523
3530
  reason: string;
1524
3531
  paths?: string[] | undefined;
1525
3532
  expires?: string | undefined;
1526
- }[]> | undefined;
3533
+ }[]>> | undefined;
1527
3534
  }>>;
1528
3535
  targets: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude-chat", "claude-cowork", "claude-code"]>, "many">>;
1529
3536
  files: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -1536,14 +3543,238 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1536
3543
  source: string;
1537
3544
  dest: string;
1538
3545
  }>, "many">>;
3546
+ test: z.ZodOptional<z.ZodObject<{
3547
+ model: z.ZodOptional<z.ZodString>;
3548
+ maxTurns: z.ZodOptional<z.ZodNumber>;
3549
+ maxBudgetUsd: z.ZodOptional<z.ZodNumber>;
3550
+ timeout: z.ZodOptional<z.ZodNumber>;
3551
+ stall: z.ZodOptional<z.ZodNumber>;
3552
+ evals: z.ZodOptional<z.ZodString>;
3553
+ experimenterPrompt: z.ZodOptional<z.ZodString>;
3554
+ auth: z.ZodOptional<z.ZodEnum<["inherit", "subscription", "api-key", "auto"]>>;
3555
+ requireAuth: z.ZodOptional<z.ZodEnum<["subscription", "api-key"]>>;
3556
+ baseline: z.ZodOptional<z.ZodBoolean>;
3557
+ skillCreator: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
3558
+ workspace: z.ZodString;
3559
+ }, "strict", z.ZodTypeAny, {
3560
+ workspace: string;
3561
+ }, {
3562
+ workspace: string;
3563
+ }>, z.ZodObject<{
3564
+ npm: z.ZodString;
3565
+ }, "strict", z.ZodTypeAny, {
3566
+ npm: string;
3567
+ }, {
3568
+ npm: string;
3569
+ }>, z.ZodObject<{
3570
+ url: z.ZodString;
3571
+ sha256: z.ZodOptional<z.ZodString>;
3572
+ }, "strict", z.ZodTypeAny, {
3573
+ url: string;
3574
+ sha256?: string | undefined;
3575
+ }, {
3576
+ url: string;
3577
+ sha256?: string | undefined;
3578
+ }>, z.ZodObject<{
3579
+ path: z.ZodString;
3580
+ }, "strict", z.ZodTypeAny, {
3581
+ path: string;
3582
+ }, {
3583
+ path: string;
3584
+ }>, z.ZodObject<{
3585
+ vendored: z.ZodLiteral<true>;
3586
+ }, "strict", z.ZodTypeAny, {
3587
+ vendored: true;
3588
+ }, {
3589
+ vendored: true;
3590
+ }>]>>;
3591
+ with: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
3592
+ workspace: z.ZodString;
3593
+ }, "strict", z.ZodTypeAny, {
3594
+ workspace: string;
3595
+ }, {
3596
+ workspace: string;
3597
+ }>, z.ZodObject<{
3598
+ npm: z.ZodString;
3599
+ }, "strict", z.ZodTypeAny, {
3600
+ npm: string;
3601
+ }, {
3602
+ npm: string;
3603
+ }>, z.ZodObject<{
3604
+ url: z.ZodString;
3605
+ sha256: z.ZodOptional<z.ZodString>;
3606
+ }, "strict", z.ZodTypeAny, {
3607
+ url: string;
3608
+ sha256?: string | undefined;
3609
+ }, {
3610
+ url: string;
3611
+ sha256?: string | undefined;
3612
+ }>, z.ZodObject<{
3613
+ path: z.ZodString;
3614
+ }, "strict", z.ZodTypeAny, {
3615
+ path: string;
3616
+ }, {
3617
+ path: string;
3618
+ }>, z.ZodObject<{
3619
+ vendored: z.ZodLiteral<true>;
3620
+ }, "strict", z.ZodTypeAny, {
3621
+ vendored: true;
3622
+ }, {
3623
+ vendored: true;
3624
+ }>]>, "many">>;
3625
+ optional: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
3626
+ workspace: z.ZodString;
3627
+ }, "strict", z.ZodTypeAny, {
3628
+ workspace: string;
3629
+ }, {
3630
+ workspace: string;
3631
+ }>, z.ZodObject<{
3632
+ npm: z.ZodString;
3633
+ }, "strict", z.ZodTypeAny, {
3634
+ npm: string;
3635
+ }, {
3636
+ npm: string;
3637
+ }>, z.ZodObject<{
3638
+ url: z.ZodString;
3639
+ sha256: z.ZodOptional<z.ZodString>;
3640
+ }, "strict", z.ZodTypeAny, {
3641
+ url: string;
3642
+ sha256?: string | undefined;
3643
+ }, {
3644
+ url: string;
3645
+ sha256?: string | undefined;
3646
+ }>, z.ZodObject<{
3647
+ path: z.ZodString;
3648
+ }, "strict", z.ZodTypeAny, {
3649
+ path: string;
3650
+ }, {
3651
+ path: string;
3652
+ }>, z.ZodObject<{
3653
+ vendored: z.ZodLiteral<true>;
3654
+ }, "strict", z.ZodTypeAny, {
3655
+ vendored: true;
3656
+ }, {
3657
+ vendored: true;
3658
+ }>]>, "many">>;
3659
+ /**
3660
+ * Shell command to run once, before staging, to generate build artifacts.
3661
+ * Runs with cwd = config root (directory containing vibe-agent-toolkit.config.yaml).
3662
+ * Useful when a skill references a generated file (e.g. `node scripts/report.mjs`)
3663
+ * that is produced by a bundler step and not committed to source.
3664
+ * A non-zero exit code aborts the run (preflight failure, exit 2).
3665
+ */
3666
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3667
+ passEnv: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3668
+ build: z.ZodOptional<z.ZodString>;
3669
+ }, "strict", z.ZodTypeAny, {
3670
+ with?: ({
3671
+ workspace: string;
3672
+ } | {
3673
+ npm: string;
3674
+ } | {
3675
+ url: string;
3676
+ sha256?: string | undefined;
3677
+ } | {
3678
+ path: string;
3679
+ } | {
3680
+ vendored: true;
3681
+ })[] | undefined;
3682
+ env?: Record<string, string> | undefined;
3683
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3684
+ timeout?: number | undefined;
3685
+ model?: string | undefined;
3686
+ maxTurns?: number | undefined;
3687
+ maxBudgetUsd?: number | undefined;
3688
+ stall?: number | undefined;
3689
+ evals?: string | undefined;
3690
+ experimenterPrompt?: string | undefined;
3691
+ requireAuth?: "subscription" | "api-key" | undefined;
3692
+ baseline?: boolean | undefined;
3693
+ skillCreator?: {
3694
+ workspace: string;
3695
+ } | {
3696
+ npm: string;
3697
+ } | {
3698
+ url: string;
3699
+ sha256?: string | undefined;
3700
+ } | {
3701
+ path: string;
3702
+ } | {
3703
+ vendored: true;
3704
+ } | undefined;
3705
+ optional?: ({
3706
+ workspace: string;
3707
+ } | {
3708
+ npm: string;
3709
+ } | {
3710
+ url: string;
3711
+ sha256?: string | undefined;
3712
+ } | {
3713
+ path: string;
3714
+ } | {
3715
+ vendored: true;
3716
+ })[] | undefined;
3717
+ passEnv?: string[] | undefined;
3718
+ build?: string | undefined;
3719
+ }, {
3720
+ with?: ({
3721
+ workspace: string;
3722
+ } | {
3723
+ npm: string;
3724
+ } | {
3725
+ url: string;
3726
+ sha256?: string | undefined;
3727
+ } | {
3728
+ path: string;
3729
+ } | {
3730
+ vendored: true;
3731
+ })[] | undefined;
3732
+ env?: Record<string, string> | undefined;
3733
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3734
+ timeout?: number | undefined;
3735
+ model?: string | undefined;
3736
+ maxTurns?: number | undefined;
3737
+ maxBudgetUsd?: number | undefined;
3738
+ stall?: number | undefined;
3739
+ evals?: string | undefined;
3740
+ experimenterPrompt?: string | undefined;
3741
+ requireAuth?: "subscription" | "api-key" | undefined;
3742
+ baseline?: boolean | undefined;
3743
+ skillCreator?: {
3744
+ workspace: string;
3745
+ } | {
3746
+ npm: string;
3747
+ } | {
3748
+ url: string;
3749
+ sha256?: string | undefined;
3750
+ } | {
3751
+ path: string;
3752
+ } | {
3753
+ vendored: true;
3754
+ } | undefined;
3755
+ optional?: ({
3756
+ workspace: string;
3757
+ } | {
3758
+ npm: string;
3759
+ } | {
3760
+ url: string;
3761
+ sha256?: string | undefined;
3762
+ } | {
3763
+ path: string;
3764
+ } | {
3765
+ vendored: true;
3766
+ })[] | undefined;
3767
+ passEnv?: string[] | undefined;
3768
+ build?: string | undefined;
3769
+ }>>;
1539
3770
  }, "strict", z.ZodTypeAny, {
1540
3771
  validation?: {
1541
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1542
- allow?: Record<string, {
3772
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3773
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1543
3774
  paths: string[];
1544
3775
  reason: string;
1545
3776
  expires?: string | undefined;
1546
- }[]> | undefined;
3777
+ }[]>> | undefined;
1547
3778
  } | undefined;
1548
3779
  publish?: boolean | undefined;
1549
3780
  linkFollowDepth?: number | "full" | undefined;
@@ -1562,14 +3793,65 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1562
3793
  source: string;
1563
3794
  dest: string;
1564
3795
  }[] | undefined;
3796
+ test?: {
3797
+ with?: ({
3798
+ workspace: string;
3799
+ } | {
3800
+ npm: string;
3801
+ } | {
3802
+ url: string;
3803
+ sha256?: string | undefined;
3804
+ } | {
3805
+ path: string;
3806
+ } | {
3807
+ vendored: true;
3808
+ })[] | undefined;
3809
+ env?: Record<string, string> | undefined;
3810
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3811
+ timeout?: number | undefined;
3812
+ model?: string | undefined;
3813
+ maxTurns?: number | undefined;
3814
+ maxBudgetUsd?: number | undefined;
3815
+ stall?: number | undefined;
3816
+ evals?: string | undefined;
3817
+ experimenterPrompt?: string | undefined;
3818
+ requireAuth?: "subscription" | "api-key" | undefined;
3819
+ baseline?: boolean | undefined;
3820
+ skillCreator?: {
3821
+ workspace: string;
3822
+ } | {
3823
+ npm: string;
3824
+ } | {
3825
+ url: string;
3826
+ sha256?: string | undefined;
3827
+ } | {
3828
+ path: string;
3829
+ } | {
3830
+ vendored: true;
3831
+ } | undefined;
3832
+ optional?: ({
3833
+ workspace: string;
3834
+ } | {
3835
+ npm: string;
3836
+ } | {
3837
+ url: string;
3838
+ sha256?: string | undefined;
3839
+ } | {
3840
+ path: string;
3841
+ } | {
3842
+ vendored: true;
3843
+ })[] | undefined;
3844
+ passEnv?: string[] | undefined;
3845
+ build?: string | undefined;
3846
+ } | undefined;
1565
3847
  }, {
1566
3848
  validation?: {
1567
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1568
- allow?: Record<string, {
3849
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3850
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1569
3851
  reason: string;
1570
3852
  paths?: string[] | undefined;
1571
3853
  expires?: string | undefined;
1572
- }[]> | undefined;
3854
+ }[]>> | undefined;
1573
3855
  } | undefined;
1574
3856
  publish?: boolean | undefined;
1575
3857
  linkFollowDepth?: number | "full" | undefined;
@@ -1588,18 +3870,69 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1588
3870
  source: string;
1589
3871
  dest: string;
1590
3872
  }[] | undefined;
3873
+ test?: {
3874
+ with?: ({
3875
+ workspace: string;
3876
+ } | {
3877
+ npm: string;
3878
+ } | {
3879
+ url: string;
3880
+ sha256?: string | undefined;
3881
+ } | {
3882
+ path: string;
3883
+ } | {
3884
+ vendored: true;
3885
+ })[] | undefined;
3886
+ env?: Record<string, string> | undefined;
3887
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3888
+ timeout?: number | undefined;
3889
+ model?: string | undefined;
3890
+ maxTurns?: number | undefined;
3891
+ maxBudgetUsd?: number | undefined;
3892
+ stall?: number | undefined;
3893
+ evals?: string | undefined;
3894
+ experimenterPrompt?: string | undefined;
3895
+ requireAuth?: "subscription" | "api-key" | undefined;
3896
+ baseline?: boolean | undefined;
3897
+ skillCreator?: {
3898
+ workspace: string;
3899
+ } | {
3900
+ npm: string;
3901
+ } | {
3902
+ url: string;
3903
+ sha256?: string | undefined;
3904
+ } | {
3905
+ path: string;
3906
+ } | {
3907
+ vendored: true;
3908
+ } | undefined;
3909
+ optional?: ({
3910
+ workspace: string;
3911
+ } | {
3912
+ npm: string;
3913
+ } | {
3914
+ url: string;
3915
+ sha256?: string | undefined;
3916
+ } | {
3917
+ path: string;
3918
+ } | {
3919
+ vendored: true;
3920
+ })[] | undefined;
3921
+ passEnv?: string[] | undefined;
3922
+ build?: string | undefined;
3923
+ } | undefined;
1591
3924
  }>>>;
1592
3925
  }, "strict", z.ZodTypeAny, {
1593
3926
  include: string[];
1594
3927
  exclude?: string[] | undefined;
1595
3928
  defaults?: {
1596
3929
  validation?: {
1597
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1598
- allow?: Record<string, {
3930
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
3931
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1599
3932
  paths: string[];
1600
3933
  reason: string;
1601
3934
  expires?: string | undefined;
1602
- }[]> | undefined;
3935
+ }[]>> | undefined;
1603
3936
  } | undefined;
1604
3937
  publish?: boolean | undefined;
1605
3938
  linkFollowDepth?: number | "full" | undefined;
@@ -1618,15 +3951,66 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1618
3951
  source: string;
1619
3952
  dest: string;
1620
3953
  }[] | undefined;
3954
+ test?: {
3955
+ with?: ({
3956
+ workspace: string;
3957
+ } | {
3958
+ npm: string;
3959
+ } | {
3960
+ url: string;
3961
+ sha256?: string | undefined;
3962
+ } | {
3963
+ path: string;
3964
+ } | {
3965
+ vendored: true;
3966
+ })[] | undefined;
3967
+ env?: Record<string, string> | undefined;
3968
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
3969
+ timeout?: number | undefined;
3970
+ model?: string | undefined;
3971
+ maxTurns?: number | undefined;
3972
+ maxBudgetUsd?: number | undefined;
3973
+ stall?: number | undefined;
3974
+ evals?: string | undefined;
3975
+ experimenterPrompt?: string | undefined;
3976
+ requireAuth?: "subscription" | "api-key" | undefined;
3977
+ baseline?: boolean | undefined;
3978
+ skillCreator?: {
3979
+ workspace: string;
3980
+ } | {
3981
+ npm: string;
3982
+ } | {
3983
+ url: string;
3984
+ sha256?: string | undefined;
3985
+ } | {
3986
+ path: string;
3987
+ } | {
3988
+ vendored: true;
3989
+ } | undefined;
3990
+ optional?: ({
3991
+ workspace: string;
3992
+ } | {
3993
+ npm: string;
3994
+ } | {
3995
+ url: string;
3996
+ sha256?: string | undefined;
3997
+ } | {
3998
+ path: string;
3999
+ } | {
4000
+ vendored: true;
4001
+ })[] | undefined;
4002
+ passEnv?: string[] | undefined;
4003
+ build?: string | undefined;
4004
+ } | undefined;
1621
4005
  } | undefined;
1622
4006
  config?: Record<string, {
1623
4007
  validation?: {
1624
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1625
- allow?: Record<string, {
4008
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4009
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1626
4010
  paths: string[];
1627
4011
  reason: string;
1628
4012
  expires?: string | undefined;
1629
- }[]> | undefined;
4013
+ }[]>> | undefined;
1630
4014
  } | undefined;
1631
4015
  publish?: boolean | undefined;
1632
4016
  linkFollowDepth?: number | "full" | undefined;
@@ -1645,18 +4029,69 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1645
4029
  source: string;
1646
4030
  dest: string;
1647
4031
  }[] | undefined;
4032
+ test?: {
4033
+ with?: ({
4034
+ workspace: string;
4035
+ } | {
4036
+ npm: string;
4037
+ } | {
4038
+ url: string;
4039
+ sha256?: string | undefined;
4040
+ } | {
4041
+ path: string;
4042
+ } | {
4043
+ vendored: true;
4044
+ })[] | undefined;
4045
+ env?: Record<string, string> | undefined;
4046
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
4047
+ timeout?: number | undefined;
4048
+ model?: string | undefined;
4049
+ maxTurns?: number | undefined;
4050
+ maxBudgetUsd?: number | undefined;
4051
+ stall?: number | undefined;
4052
+ evals?: string | undefined;
4053
+ experimenterPrompt?: string | undefined;
4054
+ requireAuth?: "subscription" | "api-key" | undefined;
4055
+ baseline?: boolean | undefined;
4056
+ skillCreator?: {
4057
+ workspace: string;
4058
+ } | {
4059
+ npm: string;
4060
+ } | {
4061
+ url: string;
4062
+ sha256?: string | undefined;
4063
+ } | {
4064
+ path: string;
4065
+ } | {
4066
+ vendored: true;
4067
+ } | undefined;
4068
+ optional?: ({
4069
+ workspace: string;
4070
+ } | {
4071
+ npm: string;
4072
+ } | {
4073
+ url: string;
4074
+ sha256?: string | undefined;
4075
+ } | {
4076
+ path: string;
4077
+ } | {
4078
+ vendored: true;
4079
+ })[] | undefined;
4080
+ passEnv?: string[] | undefined;
4081
+ build?: string | undefined;
4082
+ } | undefined;
1648
4083
  }> | undefined;
1649
4084
  }, {
1650
4085
  include: string[];
1651
4086
  exclude?: string[] | undefined;
1652
4087
  defaults?: {
1653
4088
  validation?: {
1654
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1655
- allow?: Record<string, {
4089
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4090
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1656
4091
  reason: string;
1657
4092
  paths?: string[] | undefined;
1658
4093
  expires?: string | undefined;
1659
- }[]> | undefined;
4094
+ }[]>> | undefined;
1660
4095
  } | undefined;
1661
4096
  publish?: boolean | undefined;
1662
4097
  linkFollowDepth?: number | "full" | undefined;
@@ -1675,15 +4110,66 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1675
4110
  source: string;
1676
4111
  dest: string;
1677
4112
  }[] | undefined;
4113
+ test?: {
4114
+ with?: ({
4115
+ workspace: string;
4116
+ } | {
4117
+ npm: string;
4118
+ } | {
4119
+ url: string;
4120
+ sha256?: string | undefined;
4121
+ } | {
4122
+ path: string;
4123
+ } | {
4124
+ vendored: true;
4125
+ })[] | undefined;
4126
+ env?: Record<string, string> | undefined;
4127
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
4128
+ timeout?: number | undefined;
4129
+ model?: string | undefined;
4130
+ maxTurns?: number | undefined;
4131
+ maxBudgetUsd?: number | undefined;
4132
+ stall?: number | undefined;
4133
+ evals?: string | undefined;
4134
+ experimenterPrompt?: string | undefined;
4135
+ requireAuth?: "subscription" | "api-key" | undefined;
4136
+ baseline?: boolean | undefined;
4137
+ skillCreator?: {
4138
+ workspace: string;
4139
+ } | {
4140
+ npm: string;
4141
+ } | {
4142
+ url: string;
4143
+ sha256?: string | undefined;
4144
+ } | {
4145
+ path: string;
4146
+ } | {
4147
+ vendored: true;
4148
+ } | undefined;
4149
+ optional?: ({
4150
+ workspace: string;
4151
+ } | {
4152
+ npm: string;
4153
+ } | {
4154
+ url: string;
4155
+ sha256?: string | undefined;
4156
+ } | {
4157
+ path: string;
4158
+ } | {
4159
+ vendored: true;
4160
+ })[] | undefined;
4161
+ passEnv?: string[] | undefined;
4162
+ build?: string | undefined;
4163
+ } | undefined;
1678
4164
  } | undefined;
1679
4165
  config?: Record<string, {
1680
4166
  validation?: {
1681
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
1682
- allow?: Record<string, {
4167
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4168
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
1683
4169
  reason: string;
1684
4170
  paths?: string[] | undefined;
1685
4171
  expires?: string | undefined;
1686
- }[]> | undefined;
4172
+ }[]>> | undefined;
1687
4173
  } | undefined;
1688
4174
  publish?: boolean | undefined;
1689
4175
  linkFollowDepth?: number | "full" | undefined;
@@ -1702,6 +4188,57 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1702
4188
  source: string;
1703
4189
  dest: string;
1704
4190
  }[] | undefined;
4191
+ test?: {
4192
+ with?: ({
4193
+ workspace: string;
4194
+ } | {
4195
+ npm: string;
4196
+ } | {
4197
+ url: string;
4198
+ sha256?: string | undefined;
4199
+ } | {
4200
+ path: string;
4201
+ } | {
4202
+ vendored: true;
4203
+ })[] | undefined;
4204
+ env?: Record<string, string> | undefined;
4205
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
4206
+ timeout?: number | undefined;
4207
+ model?: string | undefined;
4208
+ maxTurns?: number | undefined;
4209
+ maxBudgetUsd?: number | undefined;
4210
+ stall?: number | undefined;
4211
+ evals?: string | undefined;
4212
+ experimenterPrompt?: string | undefined;
4213
+ requireAuth?: "subscription" | "api-key" | undefined;
4214
+ baseline?: boolean | undefined;
4215
+ skillCreator?: {
4216
+ workspace: string;
4217
+ } | {
4218
+ npm: string;
4219
+ } | {
4220
+ url: string;
4221
+ sha256?: string | undefined;
4222
+ } | {
4223
+ path: string;
4224
+ } | {
4225
+ vendored: true;
4226
+ } | undefined;
4227
+ optional?: ({
4228
+ workspace: string;
4229
+ } | {
4230
+ npm: string;
4231
+ } | {
4232
+ url: string;
4233
+ sha256?: string | undefined;
4234
+ } | {
4235
+ path: string;
4236
+ } | {
4237
+ vendored: true;
4238
+ })[] | undefined;
4239
+ passEnv?: string[] | undefined;
4240
+ build?: string | undefined;
4241
+ } | undefined;
1705
4242
  }> | undefined;
1706
4243
  }>>;
1707
4244
  resources: z.ZodOptional<z.ZodObject<{
@@ -1790,7 +4327,224 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1790
4327
  } | undefined;
1791
4328
  exclude?: string[] | undefined;
1792
4329
  }>>>;
4330
+ validation: z.ZodOptional<z.ZodObject<{
4331
+ severity: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodEnum<["error", "warning", "info", "ignore"]>>>;
4332
+ allow: z.ZodOptional<z.ZodRecord<z.ZodEnum<["LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", ...("LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR")[]]>, z.ZodArray<z.ZodObject<{
4333
+ paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
4334
+ reason: z.ZodString;
4335
+ expires: z.ZodOptional<z.ZodString>;
4336
+ }, "strict", z.ZodTypeAny, {
4337
+ paths: string[];
4338
+ reason: string;
4339
+ expires?: string | undefined;
4340
+ }, {
4341
+ reason: string;
4342
+ paths?: string[] | undefined;
4343
+ expires?: string | undefined;
4344
+ }>, "many">>>;
4345
+ }, "strict", z.ZodTypeAny, {
4346
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4347
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
4348
+ paths: string[];
4349
+ reason: string;
4350
+ expires?: string | undefined;
4351
+ }[]>> | undefined;
4352
+ }, {
4353
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4354
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
4355
+ reason: string;
4356
+ paths?: string[] | undefined;
4357
+ expires?: string | undefined;
4358
+ }[]>> | undefined;
4359
+ }>>;
4360
+ linkAuth: z.ZodOptional<z.ZodObject<{
4361
+ cache: z.ZodOptional<z.ZodObject<{
4362
+ ttlMinutes: z.ZodOptional<z.ZodNumber>;
4363
+ }, "strict", z.ZodTypeAny, {
4364
+ ttlMinutes?: number | undefined;
4365
+ }, {
4366
+ ttlMinutes?: number | undefined;
4367
+ }>>;
4368
+ providers: z.ZodArray<z.ZodUnion<[z.ZodObject<{
4369
+ use: z.ZodString;
4370
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4371
+ use: z.ZodString;
4372
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4373
+ use: z.ZodString;
4374
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
4375
+ match: z.ZodObject<{
4376
+ host: z.ZodString;
4377
+ excludeHost: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4378
+ }, "strict", z.ZodTypeAny, {
4379
+ host: string;
4380
+ excludeHost?: string[] | undefined;
4381
+ }, {
4382
+ host: string;
4383
+ excludeHost?: string[] | undefined;
4384
+ }>;
4385
+ rewrite: z.ZodArray<z.ZodObject<{
4386
+ when: z.ZodString;
4387
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
4388
+ to: z.ZodString;
4389
+ }, "strict", z.ZodTypeAny, {
4390
+ when: string;
4391
+ to: string;
4392
+ vars?: Record<string, string> | undefined;
4393
+ }, {
4394
+ when: string;
4395
+ to: string;
4396
+ vars?: Record<string, string> | undefined;
4397
+ }>, "many">;
4398
+ auth: z.ZodObject<{
4399
+ headers: z.ZodRecord<z.ZodString, z.ZodString>;
4400
+ }, "strict", z.ZodTypeAny, {
4401
+ headers: Record<string, string>;
4402
+ }, {
4403
+ headers: Record<string, string>;
4404
+ }>;
4405
+ token: z.ZodArray<z.ZodUnion<[z.ZodObject<{
4406
+ env: z.ZodString;
4407
+ }, "strict", z.ZodTypeAny, {
4408
+ env: string;
4409
+ }, {
4410
+ env: string;
4411
+ }>, z.ZodObject<{
4412
+ command: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>;
4413
+ }, "strict", z.ZodTypeAny, {
4414
+ command: string | string[];
4415
+ }, {
4416
+ command: string | string[];
4417
+ }>]>, "many">;
4418
+ check: z.ZodObject<{
4419
+ method: z.ZodEnum<["GET", "HEAD"]>;
4420
+ aliveStatus: z.ZodArray<z.ZodNumber, "many">;
4421
+ notFoundMeaning: z.ZodEnum<["ambiguous", "dead"]>;
4422
+ }, "strict", z.ZodTypeAny, {
4423
+ method: "GET" | "HEAD";
4424
+ aliveStatus: number[];
4425
+ notFoundMeaning: "ambiguous" | "dead";
4426
+ }, {
4427
+ method: "GET" | "HEAD";
4428
+ aliveStatus: number[];
4429
+ notFoundMeaning: "ambiguous" | "dead";
4430
+ }>;
4431
+ }, "strict", z.ZodTypeAny, {
4432
+ match: {
4433
+ host: string;
4434
+ excludeHost?: string[] | undefined;
4435
+ };
4436
+ rewrite: {
4437
+ when: string;
4438
+ to: string;
4439
+ vars?: Record<string, string> | undefined;
4440
+ }[];
4441
+ auth: {
4442
+ headers: Record<string, string>;
4443
+ };
4444
+ token: ({
4445
+ env: string;
4446
+ } | {
4447
+ command: string | string[];
4448
+ })[];
4449
+ check: {
4450
+ method: "GET" | "HEAD";
4451
+ aliveStatus: number[];
4452
+ notFoundMeaning: "ambiguous" | "dead";
4453
+ };
4454
+ }, {
4455
+ match: {
4456
+ host: string;
4457
+ excludeHost?: string[] | undefined;
4458
+ };
4459
+ rewrite: {
4460
+ when: string;
4461
+ to: string;
4462
+ vars?: Record<string, string> | undefined;
4463
+ }[];
4464
+ auth: {
4465
+ headers: Record<string, string>;
4466
+ };
4467
+ token: ({
4468
+ env: string;
4469
+ } | {
4470
+ command: string | string[];
4471
+ })[];
4472
+ check: {
4473
+ method: "GET" | "HEAD";
4474
+ aliveStatus: number[];
4475
+ notFoundMeaning: "ambiguous" | "dead";
4476
+ };
4477
+ }>]>, "many">;
4478
+ }, "strict", z.ZodTypeAny, {
4479
+ providers: ({
4480
+ match: {
4481
+ host: string;
4482
+ excludeHost?: string[] | undefined;
4483
+ };
4484
+ rewrite: {
4485
+ when: string;
4486
+ to: string;
4487
+ vars?: Record<string, string> | undefined;
4488
+ }[];
4489
+ auth: {
4490
+ headers: Record<string, string>;
4491
+ };
4492
+ token: ({
4493
+ env: string;
4494
+ } | {
4495
+ command: string | string[];
4496
+ })[];
4497
+ check: {
4498
+ method: "GET" | "HEAD";
4499
+ aliveStatus: number[];
4500
+ notFoundMeaning: "ambiguous" | "dead";
4501
+ };
4502
+ } | z.objectOutputType<{
4503
+ use: z.ZodString;
4504
+ }, z.ZodTypeAny, "passthrough">)[];
4505
+ cache?: {
4506
+ ttlMinutes?: number | undefined;
4507
+ } | undefined;
4508
+ }, {
4509
+ providers: ({
4510
+ match: {
4511
+ host: string;
4512
+ excludeHost?: string[] | undefined;
4513
+ };
4514
+ rewrite: {
4515
+ when: string;
4516
+ to: string;
4517
+ vars?: Record<string, string> | undefined;
4518
+ }[];
4519
+ auth: {
4520
+ headers: Record<string, string>;
4521
+ };
4522
+ token: ({
4523
+ env: string;
4524
+ } | {
4525
+ command: string | string[];
4526
+ })[];
4527
+ check: {
4528
+ method: "GET" | "HEAD";
4529
+ aliveStatus: number[];
4530
+ notFoundMeaning: "ambiguous" | "dead";
4531
+ };
4532
+ } | z.objectInputType<{
4533
+ use: z.ZodString;
4534
+ }, z.ZodTypeAny, "passthrough">)[];
4535
+ cache?: {
4536
+ ttlMinutes?: number | undefined;
4537
+ } | undefined;
4538
+ }>>;
1793
4539
  }, "strip", z.ZodTypeAny, {
4540
+ validation?: {
4541
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4542
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
4543
+ paths: string[];
4544
+ reason: string;
4545
+ expires?: string | undefined;
4546
+ }[]>> | undefined;
4547
+ } | undefined;
1794
4548
  include?: string[] | undefined;
1795
4549
  exclude?: string[] | undefined;
1796
4550
  collections?: Record<string, {
@@ -1810,7 +4564,46 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1810
4564
  } | undefined;
1811
4565
  exclude?: string[] | undefined;
1812
4566
  }> | undefined;
4567
+ linkAuth?: {
4568
+ providers: ({
4569
+ match: {
4570
+ host: string;
4571
+ excludeHost?: string[] | undefined;
4572
+ };
4573
+ rewrite: {
4574
+ when: string;
4575
+ to: string;
4576
+ vars?: Record<string, string> | undefined;
4577
+ }[];
4578
+ auth: {
4579
+ headers: Record<string, string>;
4580
+ };
4581
+ token: ({
4582
+ env: string;
4583
+ } | {
4584
+ command: string | string[];
4585
+ })[];
4586
+ check: {
4587
+ method: "GET" | "HEAD";
4588
+ aliveStatus: number[];
4589
+ notFoundMeaning: "ambiguous" | "dead";
4590
+ };
4591
+ } | z.objectOutputType<{
4592
+ use: z.ZodString;
4593
+ }, z.ZodTypeAny, "passthrough">)[];
4594
+ cache?: {
4595
+ ttlMinutes?: number | undefined;
4596
+ } | undefined;
4597
+ } | undefined;
1813
4598
  }, {
4599
+ validation?: {
4600
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4601
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
4602
+ reason: string;
4603
+ paths?: string[] | undefined;
4604
+ expires?: string | undefined;
4605
+ }[]>> | undefined;
4606
+ } | undefined;
1814
4607
  include?: string[] | undefined;
1815
4608
  exclude?: string[] | undefined;
1816
4609
  collections?: Record<string, {
@@ -1830,6 +4623,37 @@ export declare const ProjectConfigSchema: z.ZodObject<{
1830
4623
  } | undefined;
1831
4624
  exclude?: string[] | undefined;
1832
4625
  }> | undefined;
4626
+ linkAuth?: {
4627
+ providers: ({
4628
+ match: {
4629
+ host: string;
4630
+ excludeHost?: string[] | undefined;
4631
+ };
4632
+ rewrite: {
4633
+ when: string;
4634
+ to: string;
4635
+ vars?: Record<string, string> | undefined;
4636
+ }[];
4637
+ auth: {
4638
+ headers: Record<string, string>;
4639
+ };
4640
+ token: ({
4641
+ env: string;
4642
+ } | {
4643
+ command: string | string[];
4644
+ })[];
4645
+ check: {
4646
+ method: "GET" | "HEAD";
4647
+ aliveStatus: number[];
4648
+ notFoundMeaning: "ambiguous" | "dead";
4649
+ };
4650
+ } | z.objectInputType<{
4651
+ use: z.ZodString;
4652
+ }, z.ZodTypeAny, "passthrough">)[];
4653
+ cache?: {
4654
+ ttlMinutes?: number | undefined;
4655
+ } | undefined;
4656
+ } | undefined;
1833
4657
  }>>;
1834
4658
  claude: z.ZodOptional<z.ZodObject<{
1835
4659
  managedSettings: z.ZodOptional<z.ZodString>;
@@ -2026,12 +4850,12 @@ export declare const ProjectConfigSchema: z.ZodObject<{
2026
4850
  exclude?: string[] | undefined;
2027
4851
  defaults?: {
2028
4852
  validation?: {
2029
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
2030
- allow?: Record<string, {
4853
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4854
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
2031
4855
  paths: string[];
2032
4856
  reason: string;
2033
4857
  expires?: string | undefined;
2034
- }[]> | undefined;
4858
+ }[]>> | undefined;
2035
4859
  } | undefined;
2036
4860
  publish?: boolean | undefined;
2037
4861
  linkFollowDepth?: number | "full" | undefined;
@@ -2050,15 +4874,66 @@ export declare const ProjectConfigSchema: z.ZodObject<{
2050
4874
  source: string;
2051
4875
  dest: string;
2052
4876
  }[] | undefined;
4877
+ test?: {
4878
+ with?: ({
4879
+ workspace: string;
4880
+ } | {
4881
+ npm: string;
4882
+ } | {
4883
+ url: string;
4884
+ sha256?: string | undefined;
4885
+ } | {
4886
+ path: string;
4887
+ } | {
4888
+ vendored: true;
4889
+ })[] | undefined;
4890
+ env?: Record<string, string> | undefined;
4891
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
4892
+ timeout?: number | undefined;
4893
+ model?: string | undefined;
4894
+ maxTurns?: number | undefined;
4895
+ maxBudgetUsd?: number | undefined;
4896
+ stall?: number | undefined;
4897
+ evals?: string | undefined;
4898
+ experimenterPrompt?: string | undefined;
4899
+ requireAuth?: "subscription" | "api-key" | undefined;
4900
+ baseline?: boolean | undefined;
4901
+ skillCreator?: {
4902
+ workspace: string;
4903
+ } | {
4904
+ npm: string;
4905
+ } | {
4906
+ url: string;
4907
+ sha256?: string | undefined;
4908
+ } | {
4909
+ path: string;
4910
+ } | {
4911
+ vendored: true;
4912
+ } | undefined;
4913
+ optional?: ({
4914
+ workspace: string;
4915
+ } | {
4916
+ npm: string;
4917
+ } | {
4918
+ url: string;
4919
+ sha256?: string | undefined;
4920
+ } | {
4921
+ path: string;
4922
+ } | {
4923
+ vendored: true;
4924
+ })[] | undefined;
4925
+ passEnv?: string[] | undefined;
4926
+ build?: string | undefined;
4927
+ } | undefined;
2053
4928
  } | undefined;
2054
4929
  config?: Record<string, {
2055
4930
  validation?: {
2056
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
2057
- allow?: Record<string, {
4931
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
4932
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
2058
4933
  paths: string[];
2059
4934
  reason: string;
2060
4935
  expires?: string | undefined;
2061
- }[]> | undefined;
4936
+ }[]>> | undefined;
2062
4937
  } | undefined;
2063
4938
  publish?: boolean | undefined;
2064
4939
  linkFollowDepth?: number | "full" | undefined;
@@ -2077,9 +4952,68 @@ export declare const ProjectConfigSchema: z.ZodObject<{
2077
4952
  source: string;
2078
4953
  dest: string;
2079
4954
  }[] | undefined;
4955
+ test?: {
4956
+ with?: ({
4957
+ workspace: string;
4958
+ } | {
4959
+ npm: string;
4960
+ } | {
4961
+ url: string;
4962
+ sha256?: string | undefined;
4963
+ } | {
4964
+ path: string;
4965
+ } | {
4966
+ vendored: true;
4967
+ })[] | undefined;
4968
+ env?: Record<string, string> | undefined;
4969
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
4970
+ timeout?: number | undefined;
4971
+ model?: string | undefined;
4972
+ maxTurns?: number | undefined;
4973
+ maxBudgetUsd?: number | undefined;
4974
+ stall?: number | undefined;
4975
+ evals?: string | undefined;
4976
+ experimenterPrompt?: string | undefined;
4977
+ requireAuth?: "subscription" | "api-key" | undefined;
4978
+ baseline?: boolean | undefined;
4979
+ skillCreator?: {
4980
+ workspace: string;
4981
+ } | {
4982
+ npm: string;
4983
+ } | {
4984
+ url: string;
4985
+ sha256?: string | undefined;
4986
+ } | {
4987
+ path: string;
4988
+ } | {
4989
+ vendored: true;
4990
+ } | undefined;
4991
+ optional?: ({
4992
+ workspace: string;
4993
+ } | {
4994
+ npm: string;
4995
+ } | {
4996
+ url: string;
4997
+ sha256?: string | undefined;
4998
+ } | {
4999
+ path: string;
5000
+ } | {
5001
+ vendored: true;
5002
+ })[] | undefined;
5003
+ passEnv?: string[] | undefined;
5004
+ build?: string | undefined;
5005
+ } | undefined;
2080
5006
  }> | undefined;
2081
5007
  } | undefined;
2082
5008
  resources?: {
5009
+ validation?: {
5010
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
5011
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
5012
+ paths: string[];
5013
+ reason: string;
5014
+ expires?: string | undefined;
5015
+ }[]>> | undefined;
5016
+ } | undefined;
2083
5017
  include?: string[] | undefined;
2084
5018
  exclude?: string[] | undefined;
2085
5019
  collections?: Record<string, {
@@ -2099,6 +5033,37 @@ export declare const ProjectConfigSchema: z.ZodObject<{
2099
5033
  } | undefined;
2100
5034
  exclude?: string[] | undefined;
2101
5035
  }> | undefined;
5036
+ linkAuth?: {
5037
+ providers: ({
5038
+ match: {
5039
+ host: string;
5040
+ excludeHost?: string[] | undefined;
5041
+ };
5042
+ rewrite: {
5043
+ when: string;
5044
+ to: string;
5045
+ vars?: Record<string, string> | undefined;
5046
+ }[];
5047
+ auth: {
5048
+ headers: Record<string, string>;
5049
+ };
5050
+ token: ({
5051
+ env: string;
5052
+ } | {
5053
+ command: string | string[];
5054
+ })[];
5055
+ check: {
5056
+ method: "GET" | "HEAD";
5057
+ aliveStatus: number[];
5058
+ notFoundMeaning: "ambiguous" | "dead";
5059
+ };
5060
+ } | z.objectOutputType<{
5061
+ use: z.ZodString;
5062
+ }, z.ZodTypeAny, "passthrough">)[];
5063
+ cache?: {
5064
+ ttlMinutes?: number | undefined;
5065
+ } | undefined;
5066
+ } | undefined;
2102
5067
  } | undefined;
2103
5068
  claude?: {
2104
5069
  managedSettings?: string | undefined;
@@ -2137,12 +5102,12 @@ export declare const ProjectConfigSchema: z.ZodObject<{
2137
5102
  exclude?: string[] | undefined;
2138
5103
  defaults?: {
2139
5104
  validation?: {
2140
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
2141
- allow?: Record<string, {
5105
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
5106
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
2142
5107
  reason: string;
2143
5108
  paths?: string[] | undefined;
2144
5109
  expires?: string | undefined;
2145
- }[]> | undefined;
5110
+ }[]>> | undefined;
2146
5111
  } | undefined;
2147
5112
  publish?: boolean | undefined;
2148
5113
  linkFollowDepth?: number | "full" | undefined;
@@ -2161,15 +5126,66 @@ export declare const ProjectConfigSchema: z.ZodObject<{
2161
5126
  source: string;
2162
5127
  dest: string;
2163
5128
  }[] | undefined;
5129
+ test?: {
5130
+ with?: ({
5131
+ workspace: string;
5132
+ } | {
5133
+ npm: string;
5134
+ } | {
5135
+ url: string;
5136
+ sha256?: string | undefined;
5137
+ } | {
5138
+ path: string;
5139
+ } | {
5140
+ vendored: true;
5141
+ })[] | undefined;
5142
+ env?: Record<string, string> | undefined;
5143
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
5144
+ timeout?: number | undefined;
5145
+ model?: string | undefined;
5146
+ maxTurns?: number | undefined;
5147
+ maxBudgetUsd?: number | undefined;
5148
+ stall?: number | undefined;
5149
+ evals?: string | undefined;
5150
+ experimenterPrompt?: string | undefined;
5151
+ requireAuth?: "subscription" | "api-key" | undefined;
5152
+ baseline?: boolean | undefined;
5153
+ skillCreator?: {
5154
+ workspace: string;
5155
+ } | {
5156
+ npm: string;
5157
+ } | {
5158
+ url: string;
5159
+ sha256?: string | undefined;
5160
+ } | {
5161
+ path: string;
5162
+ } | {
5163
+ vendored: true;
5164
+ } | undefined;
5165
+ optional?: ({
5166
+ workspace: string;
5167
+ } | {
5168
+ npm: string;
5169
+ } | {
5170
+ url: string;
5171
+ sha256?: string | undefined;
5172
+ } | {
5173
+ path: string;
5174
+ } | {
5175
+ vendored: true;
5176
+ })[] | undefined;
5177
+ passEnv?: string[] | undefined;
5178
+ build?: string | undefined;
5179
+ } | undefined;
2164
5180
  } | undefined;
2165
5181
  config?: Record<string, {
2166
5182
  validation?: {
2167
- severity?: Record<string, "error" | "warning" | "ignore"> | undefined;
2168
- allow?: Record<string, {
5183
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
5184
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
2169
5185
  reason: string;
2170
5186
  paths?: string[] | undefined;
2171
5187
  expires?: string | undefined;
2172
- }[]> | undefined;
5188
+ }[]>> | undefined;
2173
5189
  } | undefined;
2174
5190
  publish?: boolean | undefined;
2175
5191
  linkFollowDepth?: number | "full" | undefined;
@@ -2188,9 +5204,68 @@ export declare const ProjectConfigSchema: z.ZodObject<{
2188
5204
  source: string;
2189
5205
  dest: string;
2190
5206
  }[] | undefined;
5207
+ test?: {
5208
+ with?: ({
5209
+ workspace: string;
5210
+ } | {
5211
+ npm: string;
5212
+ } | {
5213
+ url: string;
5214
+ sha256?: string | undefined;
5215
+ } | {
5216
+ path: string;
5217
+ } | {
5218
+ vendored: true;
5219
+ })[] | undefined;
5220
+ env?: Record<string, string> | undefined;
5221
+ auth?: "inherit" | "subscription" | "api-key" | "auto" | undefined;
5222
+ timeout?: number | undefined;
5223
+ model?: string | undefined;
5224
+ maxTurns?: number | undefined;
5225
+ maxBudgetUsd?: number | undefined;
5226
+ stall?: number | undefined;
5227
+ evals?: string | undefined;
5228
+ experimenterPrompt?: string | undefined;
5229
+ requireAuth?: "subscription" | "api-key" | undefined;
5230
+ baseline?: boolean | undefined;
5231
+ skillCreator?: {
5232
+ workspace: string;
5233
+ } | {
5234
+ npm: string;
5235
+ } | {
5236
+ url: string;
5237
+ sha256?: string | undefined;
5238
+ } | {
5239
+ path: string;
5240
+ } | {
5241
+ vendored: true;
5242
+ } | undefined;
5243
+ optional?: ({
5244
+ workspace: string;
5245
+ } | {
5246
+ npm: string;
5247
+ } | {
5248
+ url: string;
5249
+ sha256?: string | undefined;
5250
+ } | {
5251
+ path: string;
5252
+ } | {
5253
+ vendored: true;
5254
+ })[] | undefined;
5255
+ passEnv?: string[] | undefined;
5256
+ build?: string | undefined;
5257
+ } | undefined;
2191
5258
  }> | undefined;
2192
5259
  } | undefined;
2193
5260
  resources?: {
5261
+ validation?: {
5262
+ severity?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", "error" | "warning" | "info" | "ignore">> | undefined;
5263
+ allow?: Partial<Record<"LINK_OUTSIDE_PROJECT" | "LINK_TARGETS_DIRECTORY" | "LINK_TO_NAVIGATION_FILE" | "LINK_TO_GITIGNORED_FILE" | "LINK_MISSING_TARGET" | "LINK_DEFERRED_ARTIFACT" | "LINK_TO_SKILL_DEFINITION" | "LINK_DROPPED_BY_DEPTH" | "PACKAGED_UNREFERENCED_FILE" | "PACKAGED_BROKEN_LINK" | "DUPLICATE_RESOURCE_ID" | "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" | "LINK_BROKEN_FILE" | "LINK_BROKEN_ANCHOR" | "LINK_UNKNOWN" | "LINK_TO_GITIGNORED" | "MALFORMED_HTML" | "FRONTMATTER_MISSING" | "FRONTMATTER_INVALID_YAML" | "FRONTMATTER_SCHEMA_ERROR" | "FRONTMATTER_LINK_BROKEN" | "FRONTMATTER_ANCHOR_MISSING" | "FRONTMATTER_LINK_TO_GITIGNORED" | "FRONTMATTER_UNKNOWN_LINK" | "EXTERNAL_URL_DEAD" | "EXTERNAL_URL_TIMEOUT" | "EXTERNAL_URL_ERROR", {
5264
+ reason: string;
5265
+ paths?: string[] | undefined;
5266
+ expires?: string | undefined;
5267
+ }[]>> | undefined;
5268
+ } | undefined;
2194
5269
  include?: string[] | undefined;
2195
5270
  exclude?: string[] | undefined;
2196
5271
  collections?: Record<string, {
@@ -2210,6 +5285,37 @@ export declare const ProjectConfigSchema: z.ZodObject<{
2210
5285
  } | undefined;
2211
5286
  exclude?: string[] | undefined;
2212
5287
  }> | undefined;
5288
+ linkAuth?: {
5289
+ providers: ({
5290
+ match: {
5291
+ host: string;
5292
+ excludeHost?: string[] | undefined;
5293
+ };
5294
+ rewrite: {
5295
+ when: string;
5296
+ to: string;
5297
+ vars?: Record<string, string> | undefined;
5298
+ }[];
5299
+ auth: {
5300
+ headers: Record<string, string>;
5301
+ };
5302
+ token: ({
5303
+ env: string;
5304
+ } | {
5305
+ command: string | string[];
5306
+ })[];
5307
+ check: {
5308
+ method: "GET" | "HEAD";
5309
+ aliveStatus: number[];
5310
+ notFoundMeaning: "ambiguous" | "dead";
5311
+ };
5312
+ } | z.objectInputType<{
5313
+ use: z.ZodString;
5314
+ }, z.ZodTypeAny, "passthrough">)[];
5315
+ cache?: {
5316
+ ttlMinutes?: number | undefined;
5317
+ } | undefined;
5318
+ } | undefined;
2213
5319
  } | undefined;
2214
5320
  claude?: {
2215
5321
  managedSettings?: string | undefined;