Skip to content

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.

Terminal window
scoutica validate [directory] [--schema-dir /absolute/path]

When executed, validate uses the installed validate_card.py helper to:

  1. Load trusted schemas from the checkout or ~/.scoutica/schemas/. A custom schema root is accepted only through the explicit absolute-path override.
  2. Inspect profile.json, evidence.json, and rules.yaml in the target directory.
  3. Enforce JSON Schema structure and formats plus the candidate SKILL.md frontmatter contract.

Validation requires Python 3.11+, jsonschema[format], and PyYAML. Install them explicitly with:

Terminal window
python3 -m pip install 'jsonschema[format]' PyYAML

Scoutica 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 scan command, validate catches it.
  • CI/CD Enforcer: It’s structurally designed to run in automated pipelines.

You decided to manually edit your rules.yaml because your minimum salary requirement changed. Instead of typing minimum_base_eur: 120000, you typed "120k".

Terminal window
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.