scoutica validate
Before you publish a card, validate it against the shipped Scoutica schemas.
The validate command acts as a localized type-checker for your professional identity.
Command Syntax
Section titled “Command Syntax”scoutica validate [directory] [--schema-dir /absolute/path]Under the Hood
Section titled “Under the Hood”When executed, validate uses the installed validate_card.py helper to:
- Load trusted schemas from the checkout or
~/.scoutica/schemas/. A custom schema root is accepted only through the explicit absolute-path override. - Inspect
profile.json,evidence.json, andrules.yamlin the target directory. - Enforce JSON Schema structure and formats plus the candidate
SKILL.mdfrontmatter contract.
Validation requires Python 3.11+, jsonschema[format], and PyYAML. Install them explicitly with:
python3 -m pip install 'jsonschema[format]' PyYAMLScoutica reports missing prerequisites and exits nonzero; it never installs packages during validation.
If it encounters an error, it will immediately exit with a non-zero exit code (1) and meticulously print out the precise nesting path where your data failed.
Why use it:
- Prevents pushing broken representations to the public web.
- If an AI Hallucinates a new property that doesn’t exist during the
scancommand,validatecatches it. - CI/CD Enforcer: It’s structurally designed to run in automated pipelines.
Use Case: Catching Typos
Section titled “Use Case: Catching Typos”You decided to manually edit your rules.yaml because your minimum salary requirement changed. Instead of typing minimum_base_eur: 120000, you typed "120k".
scoutica validate ./❌ rules.yaml validation failed: '120k' is not of type 'integer' at path: ['compensation']['minimum_base_eur']['permanent']You immediately see the strict typing error, patch it to an integer, and re-run validation successfully.