Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.scoutica.com/llms.txt

Use this file to discover all available pages before exploring further.

Before you ever push your internal profile configuration to a recruiter, API gateway, or public GitHub repo via scoutica publish, it must rigorously conform to the Scoutica Protocol v1 specifications. The validate command acts as a localized type-checker for your professional identity.

Command Syntax

scoutica validate [directory]

Under the Hood

When executed, validate uses a custom Python module embedded in the CLI to:
  1. Load the official v1 schemas from ~/.scoutica/schemas/.
  2. Inspect profile.json, evidence.json, and rules.yaml in the target directory.
  3. Verify that all nested structures precisely match expected properties (e.g., ensuring years_experience is an Integer, domains is an Array of strings, and rules.remote.policy matches the Enum ["hybrid", "remote", "onsite", "unknown"]).
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.

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.