Skip to main content

Syntax

scoutica validate [directory]

Options

directory
string
Path to the card directory to validate. Defaults to the current directory (.).

Usage examples

# Validate the current directory
scoutica validate

# Validate a specific card folder
scoutica validate ./my-card/

What it checks

The validate command runs the validate_card.py Python script against your card directory. It performs five checks:
#CheckFileDescription
1SKILL.mdSKILL.mdFile exists and starts with valid YAML frontmatter (---)
2Candidate Profileprofile.jsonValidated against candidate_profile.schema.json — required fields: schema_version, title, seniority, skills, primary_domains
3Evidence Registryevidence.jsonValidated against evidence.schema.json — required fields: schema_version, items
4Rules of Engagementrules.yamlValidated against roe.schema.json — required fields: schema_version, engagement, remote, filters, privacy
5Rules directoryrules/Directory exists with all 4 rule files (warning if missing, not a failure)

Expected output

🔍 Validating Scoutica Card: /path/to/my-card

✅ SKILL.md: Valid (frontmatter present)
✅ Candidate Profile: Valid
✅ Evidence Registry: Valid
✅ Rules of Engagement: Valid
✅ rules/: All 4 rule files present

Results: 5 passed, 0 failed, 0 warnings
🎉 Card is valid!
The rules/ directory check returns a warning (not a failure) if missing. Your card can still be published, but agents may not know how to evaluate fit without rule templates.

Exit codes

CodeMeaning
0All checks passed — card is valid
1One or more required checks failed — review the output for details
Because validate exits with code 1 on failure, you can chain it safely with publish:
scoutica validate ./my-card && scoutica publish ./my-card
The publish step only runs if validation passes.

Prerequisites

  • Python 3 must be installed. The CLI will abort with an error if Python is not found.
  • The jsonschema and pyyaml Python packages are required. If they are missing, the CLI attempts to install them automatically via pip install jsonschema pyyaml.
Always run validate before publish. Publishing an invalid card may cause AI agents to misread or reject it.

Troubleshooting

If validation fails with a dependency error:
pip install jsonschema pyyaml
If the validation script itself is missing, re-run the installer:
curl -fsSL https://raw.githubusercontent.com/traylinx/scoutica-protocol/main/install.sh | bash