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
@@ -8,7 +8,6 @@ tags = ["research", "academic", "papers", "literature-review", "science"]
|
|||||||
[metadata.routing]
|
[metadata.routing]
|
||||||
aliases = [
|
aliases = [
|
||||||
"academic research",
|
"academic research",
|
||||||
"literature review",
|
|
||||||
"paper search",
|
"paper search",
|
||||||
"scholarly research",
|
"scholarly research",
|
||||||
"find papers",
|
"find papers",
|
||||||
@@ -17,7 +16,6 @@ weak_aliases = [
|
|||||||
"papers",
|
"papers",
|
||||||
"citations",
|
"citations",
|
||||||
"bibliography",
|
"bibliography",
|
||||||
"systematic review",
|
|
||||||
"meta-analysis",
|
"meta-analysis",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -6,13 +6,11 @@ module = "builtin:chat"
|
|||||||
|
|
||||||
[metadata.routing]
|
[metadata.routing]
|
||||||
aliases = [
|
aliases = [
|
||||||
"data analysis",
|
|
||||||
"analyze data",
|
|
||||||
"analytics",
|
"analytics",
|
||||||
"metrics analysis",
|
"metrics analysis",
|
||||||
"report analysis",
|
"report analysis",
|
||||||
]
|
]
|
||||||
weak_aliases = ["dashboard", "kpi", "insights", "reporting"]
|
weak_aliases = ["kpi", "insights", "reporting"]
|
||||||
|
|
||||||
[model]
|
[model]
|
||||||
provider = "default"
|
provider = "default"
|
||||||
|
|||||||
@@ -9,10 +9,9 @@ aliases = [
|
|||||||
"data science",
|
"data science",
|
||||||
"build model",
|
"build model",
|
||||||
"train model",
|
"train model",
|
||||||
"statistical analysis",
|
|
||||||
"machine learning",
|
"machine learning",
|
||||||
]
|
]
|
||||||
weak_aliases = ["modeling", "forecast", "prediction", "statistics"]
|
weak_aliases = ["modeling", "statistics"]
|
||||||
|
|
||||||
[model]
|
[model]
|
||||||
provider = "default"
|
provider = "default"
|
||||||
|
|||||||
@@ -9,10 +9,9 @@ aliases = [
|
|||||||
"ci cd",
|
"ci cd",
|
||||||
"deployment pipeline",
|
"deployment pipeline",
|
||||||
"infrastructure ops",
|
"infrastructure ops",
|
||||||
"incident response",
|
|
||||||
"production operations",
|
"production operations",
|
||||||
]
|
]
|
||||||
weak_aliases = ["devops", "deployment", "kubernetes", "terraform", "infra"]
|
weak_aliases = ["devops", "deployment", "infra"]
|
||||||
|
|
||||||
[model]
|
[model]
|
||||||
provider = "default"
|
provider = "default"
|
||||||
|
|||||||
@@ -7,13 +7,12 @@ tags = ["research", "analysis", "web"]
|
|||||||
|
|
||||||
[metadata.routing]
|
[metadata.routing]
|
||||||
aliases = [
|
aliases = [
|
||||||
"deep research",
|
|
||||||
"web research",
|
"web research",
|
||||||
"investigate topic",
|
"investigate topic",
|
||||||
"gather sources",
|
"gather sources",
|
||||||
"fact finding",
|
"fact finding",
|
||||||
]
|
]
|
||||||
weak_aliases = ["research", "sources", "literature review", "web search"]
|
weak_aliases = ["sources", "web search"]
|
||||||
|
|
||||||
[model]
|
[model]
|
||||||
provider = "default"
|
provider = "default"
|
||||||
|
|||||||
@@ -9,11 +9,10 @@ tags = ["sales", "crm", "outreach", "pipeline", "prospecting", "deals"]
|
|||||||
aliases = [
|
aliases = [
|
||||||
"sales outreach",
|
"sales outreach",
|
||||||
"crm update",
|
"crm update",
|
||||||
"prospecting",
|
|
||||||
"pipeline review",
|
"pipeline review",
|
||||||
"deal tracking",
|
"deal tracking",
|
||||||
]
|
]
|
||||||
weak_aliases = ["sales", "crm", "pipeline", "leads"]
|
weak_aliases = ["crm", "leads"]
|
||||||
|
|
||||||
[model]
|
[model]
|
||||||
provider = "default"
|
provider = "default"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ aliases = [
|
|||||||
"engagement strategy",
|
"engagement strategy",
|
||||||
"social campaign",
|
"social campaign",
|
||||||
]
|
]
|
||||||
weak_aliases = ["social media", "content calendar", "engagement", "campaign"]
|
weak_aliases = ["social media", "engagement", "campaign"]
|
||||||
|
|
||||||
[model]
|
[model]
|
||||||
provider = "default"
|
provider = "default"
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ aliases = [
|
|||||||
"change detection",
|
"change detection",
|
||||||
"gather info",
|
"gather info",
|
||||||
"market intelligence",
|
"market intelligence",
|
||||||
"competitive analysis",
|
|
||||||
]
|
]
|
||||||
weak_aliases = [
|
weak_aliases = [
|
||||||
"watch",
|
"watch",
|
||||||
|
|||||||
+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:
|
if category and category not in VALID_HAND_CATEGORIES:
|
||||||
errors.append(f"{rel}: Invalid category '{category}' (valid: {', '.join(sorted(VALID_HAND_CATEGORIES))})")
|
errors.append(f"{rel}: Invalid category '{category}' (valid: {', '.join(sorted(VALID_HAND_CATEGORIES))})")
|
||||||
|
|
||||||
if "agent" not in data:
|
if "agents" not in data:
|
||||||
errors.append(f"{rel}: Missing [agent] section")
|
errors.append(f"{rel}: Missing [agents] section")
|
||||||
|
|
||||||
# Cross-reference: check that [[requires]] with requirement_type = "integration"
|
# Cross-reference: check that [[requires]] with requirement_type = "integration"
|
||||||
# reference existing integration TOML files
|
# reference existing integration TOML files
|
||||||
|
|||||||
Reference in new issue
Block a user