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)
This commit is contained in:
9 files changed
+8
-17
No files matched your search
+2
-2
@@ -162,8 +162,8 @@ def validate_hand_file(filepath: Path, integration_ids: set[str]) -> list[str]:
|
||||
if category and category not in VALID_HAND_CATEGORIES:
|
||||
errors.append(f"{rel}: Invalid category '{category}' (valid: {', '.join(sorted(VALID_HAND_CATEGORIES))})")
|
||||
|
||||
if "agent" not in data:
|
||||
errors.append(f"{rel}: Missing [agent] section")
|
||||
if "agents" not in data:
|
||||
errors.append(f"{rel}: Missing [agents] section")
|
||||
|
||||
# Cross-reference: check that [[requires]] with requirement_type = "integration"
|
||||
# reference existing integration TOML files
|
||||
|
||||
Reference in new issue
Block a user