Install
openclaw skills install @terr123123/task-routingA lightweight task routing engine for intelligent task assignment based on change type, size, risk, and urgency.
openclaw skills install @terr123123/task-routingA lightweight task routing engine that enables intelligent task assignment based on task characteristics (type, size, risk, urgency).
clawhub install task-routing
from task_routing.src import RoutingEngine
from task_routing.src.models import TaskMetadata, ChangeType, SizeLevel, RiskLevel
# Initialize routing engine
engine = RoutingEngine()
# Create task metadata
metadata = TaskMetadata(
change_type=ChangeType.FEATURE,
change_size=SizeLevel.M,
risk_level=RiskLevel.MEDIUM
)
# Route task
decision = engine.route(metadata)
print(f"Target: {decision.target}")
print(f"Confidence: {decision.confidence}")
from task_routing.src.models import RoutingRule, RoutingCondition
custom_rule = RoutingRule(
name="security_to_security_team",
conditions=[
RoutingCondition("change_type", ChangeType.SECURITY),
RoutingCondition("risk_level", [RiskLevel.HIGH, RiskLevel.CRITICAL], "in")
],
target="security_team",
priority=200
)
engine.add_rule(custom_rule)
tasks = [
TaskMetadata(ChangeType.SECURITY, SizeLevel.M, RiskLevel.CRITICAL),
TaskMetadata(ChangeType.BUGFIX, SizeLevel.S, RiskLevel.HIGH),
TaskMetadata(ChangeType.DOCS, SizeLevel.XS, RiskLevel.LOW),
]
ranking = engine.get_priority_ranking(tasks)
for r in ranking:
print(f"Rank {r['rank']}: {r['task']['change_type']} - Priority: {r['priority_score']}")
route(metadata) → Route single taskroute_batch(tasks) → Route multiple tasksadd_rule(rule) → Add custom routing ruleremove_rule(rule_name) → Remove routing rulecalculate_priority(metadata) → Calculate priority scoreget_priority_ranking(tasks) → Get priority rankingsave_rules() → Save rules to JSONload_rules(rules_data) → Load rules from JSON