#Usage
maleta validatemaleta validate --file ./configs/maleta.jsonThe default file is maleta.json, and --file <path> accepts an alternative path. --tool is accepted by this command but silently ignored: validation uses only the manifest.
#What is validated
- Readable JSON and the
schemaVersion: 1format. - Required top-level fields:
id,slug,name,createdAt,updatedAt,skills,plugins,targetTool, andtargetOs. - Text and item limits, rules for builtin and GitHub sources, and tool and operating system enums.
- Every skill name must match
[A-Za-z0-9._-]+, must not be.,.., or contain..— for the string shorthand too — and two skills that would land in the same destination directory are rejected withSkill destination collision '<name>' between '<id>' and '<id>'. A skill namedsharedis also refused. OntargetOs: "windows"the comparison is case-insensitive and a trailing dot/space or a DOS device name is rejected withInvalid skill name '<x>' for Windows. - The same document rules install applies:
validateandinstall --dry-runaccept and reject exactly the same files.
A --file that is not a regular file (a directory, FIFO, or device) is rejected with [error] <path>: not a regular file; other input failures are file does not exist, permission denied, Maleta file is too large (enforced from the file size before anything is read), and file is UTF-16; save it as UTF-8. A UTF-8 BOM is accepted and stripped.
#Output
With a valid manifest, validate prints seven lines, always in this order:
valid: <caminho absoluto>
name: <nome da Maleta>
schema: 1
skills: <quantidade>
plugins: <quantidade>
targetTool: <all|claude|codex|agents>
targetOs: <windows|unix>#Exit codes
| Code | When |
|---|---|
0 | The manifest was read and validated; help also uses this code. |
1 | The file is unreadable or invalid, or fails a document validation rule. |
2 | A command, option, or flag value is invalid; --dry-run is not accepted by this command. |
Validation errors are prefixed with [error] <caminho>: <mensagem>. Core messages are collected in the schema reference.