@forge/manifest
13.1.1-next.2-experimental-094961613.2.0-next.5
out/text/errors.js~
out/text/errors.jsModified+21
Index: package/out/text/errors.js
===================================================================
--- package/out/text/errors.js
+++ package/out/text/errors.js
@@ -170,8 +170,29 @@
skillPathInvalidFormat: (module) => `Skill ${module} has an invalid source. Must define source.dir as a relative path from the manifest root.`,
skillSubdirNotFound: (module, subdirectory) => `Directory '${subdirectory}' specified in skill ${module} does not exist from the manifest root.`,
skillSubdirMissingSkillMD: (module, subdirectory) => `Directory '${subdirectory}' specified in skill ${module} does not contain a SKILL.md file.`,
skillPathNotUnique: (module, path) => `Skill ${module} has a duplicate source.dir '${path}'. rovo:skill source.dir values must be unique.`,
+ skillFileMissingFrontmatterDelimiters: (module) => `Skill ${module} must define frontmatter with opening and closing '---' delimiters. Example:\n---\nname: my-skill\ndescription: ...\n---`,
+ skillFileFrontmatterYamlInvalid: (module) => `Skill ${module} has invalid YAML in SKILL.md frontmatter. Tip: frontmatter must be a YAML mapping (key: value). Check indentation and quoting.`,
+ skillFileNameRequired: (module) => `Skill ${module} frontmatter field 'name' is required.`,
+ skillFileNameLength: (module) => `Skill ${module} frontmatter field 'name' must be between 1 and 64 characters.`,
+ skillFileNameFormat: (module) => `Skill ${module} frontmatter field 'name' must be lowercase alphanumeric with hyphens and no leading, trailing, or consecutive hyphens.`,
+ skillFileNameMustMatchDirectory: (module, directoryName) => `Skill ${module} frontmatter field 'name' must match the parent directory name '${directoryName}'.`,
+ skillFileDescriptionRequired: (module) => `Skill ${module} frontmatter field 'description' is required.`,
+ skillFileDescriptionLength: (module) => `Skill ${module} frontmatter field 'description' must be between 1 and 1024 characters.`,
+ skillFileDescriptionTooShort: (module) => `Skill ${module} description should be at least 50 characters. Suggestion: Describe what the skill does, when to use it, and any prerequisites or limits.`,
+ skillFileCompatibilityMustBeString: (module) => `Skill ${module} frontmatter field 'compatibility' must be a string.`,
+ skillFileCompatibilityLength: (module) => `Skill ${module} frontmatter field 'compatibility' must be between 1 and 500 characters.`,
+ skillFileMetadataInvalid: (module) => `Skill ${module} frontmatter field 'metadata' must be a key-value mapping with string values.`,
+ skillFileLicenseMustBeString: (module) => `Skill ${module} frontmatter field 'license' must be a string.`,
+ skillFileAllowedToolsInvalid: (module) => `Skill ${module} frontmatter field 'allowed-tools' must be a space-delimited string.`,
+ skillFileAllowedToolsMismatch: (module) => `Skill ${module} frontmatter field 'allowed-tools' does not match manifest dependencies.tools.`,
+ skillFileReferencedFileMissing: (module, filePath) => `Skill ${module} references file '${filePath}' but it does not exist.`,
+ skillFileRequiredDirectoryMissing: (module, directoryPath) => `Skill ${module} requires directory '${directoryPath}' but it does not exist.`,
+ skillFileUnknownFrontmatterField: (module, field) => `Skill ${module} has unknown frontmatter field '${field}'.`,
+ skillFileBodyEmpty: (module) => `Skill ${module} SKILL.md body is empty.`,
+ skillFileBodyTooLong: (module) => `Skill ${module} SKILL.md body exceeds 500 lines. Suggestion: Move some content to reference files.`,
+ skillFileToolsNotMentioned: (module) => `Skill ${module} SKILL.md should document how it uses each tool declared in dependencies.tools.`,
incorrectMcp: (module, toolKey) => `${module} references undefined action module with key '${toolKey}'.`
},
action: {
unreferencedAction: (action) => `Action '${action}' is not referenced by any Rovo agent or automation:actionProvider module.`,