Files
librefang-registry/scripts
Evan d778da72a2 fix(validate): check for [agents] instead of [agent] in HAND.toml (#15)
* fix(validate): check for [agents] instead of [agent] in HAND.toml

All 14 hands use [agents.main] (plural) for multi-agent config,
but the validator was checking for [agent] (singular), causing
all hands to fail validation.

* fix(routing): resolve 19 routing alias collisions

Agent is a sub-unit of hand, so hands take priority for routing.
Remove conflicting aliases from agent side when hand already owns them.

- analyst: remove data analysis, analyze data, dashboard (owned by hand/analytics)
- data-scientist: remove statistical analysis, forecast, prediction (owned by hand/analytics, hand/predictor)
- sales-assistant: remove prospecting, sales, pipeline (owned by hand/lead, hand/devops)
- devops-lead: remove incident response, kubernetes, terraform (owned by hand/devops)
- researcher: remove deep research, research, literature review (owned by hand/researcher)
- academic-researcher: remove literature review, systematic review (owned by hand/researcher)
- social-media: remove duplicate content calendar from weak_aliases
- hand/collector: remove competitive analysis (owned by hand/strategist)
2026-03-23 09:41:29 +09:00
..

Scripts

Utility scripts for maintaining the LibreFang registry.

validate.py

Validates all TOML content files across the registry.

python scripts/validate.py

What It Checks

Per content type:

  • Providers -- required fields, valid tiers, non-negative costs, no duplicate model IDs
  • Agents -- required fields (name, description, module), name matches directory
  • Hands -- required fields (id, name, description), valid category, [agent] section, id matches directory
  • Integrations -- required fields (id, name), [transport] section, id matches filename
  • Skills -- [skill] section with name, [runtime] with valid type
  • Plugins -- name matches directory, [hooks] section, hook files exist

Cross-type checks:

  • Routing alias collisions between agents and hands (reported as warnings)
  • Cross-file duplicate model IDs within the same provider

Requirements

  • Python 3.11+ (uses tomllib)
  • Or Python 3.8+ with pip install tomli

Exit Codes

  • 0 -- all checks passed
  • 1 -- one or more validation errors