{ "version": 1, "generated": "2026-04-06", "refs": ["#836", "#204", "#195", "#196"], "description": "Canonical fleet routing table. Evaluated agents, routing verdicts, and dispatch rules for the Timmy Foundation task harness.", "agents": [ { "id": 27, "name": "carnice", "gitea_user": "carnice", "model": "qwen3.5-9b", "tier": "free", "location": "Local Metal", "description": "Local Hermes agent, fine-tuned on Hermes traces. Runs on local hardware.", "primary_role": "code-generation", "routing_verdict": "ROUTE TO: code tasks that benefit from Hermes-aligned output. Prefer when local execution is an advantage.", "active": true, "do_not_route": false, "created": "2026-04-04", "repo_count": 0, "repos": [] }, { "id": 26, "name": "fenrir", "gitea_user": "fenrir", "model": "openrouter/free", "tier": "free", "location": "The Wolf Den", "description": "Burn night analyst. Free-model pack hunter. Built for backlog triage.", "primary_role": "issue-triage", "routing_verdict": "ROUTE TO: issue cleanup, label triage, stale PR review.", "active": true, "do_not_route": false, "created": "2026-04-04", "repo_count": 0, "repos": [] }, { "id": 25, "name": "bilbobagginshire", "gitea_user": "bilbobagginshire", "model": "ollama", "tier": "free", "location": "Bag End, The Shire (VPS)", "description": "Ollama on VPS. Speaks when spoken to. Prefers quiet. Not for delegated work.", "primary_role": "on-request-queries", "routing_verdict": "ROUTE TO: background monitoring, status checks, low-priority Q&A. Only on-request — do not delegate autonomously.", "active": true, "do_not_route": false, "created": "2026-04-02", "repo_count": 1, "repos": ["bilbobagginshire/bilbo-adventures"] }, { "id": 24, "name": "claw-code", "gitea_user": "claw-code", "model": "codex", "tier": "prepaid", "location": "The Harness", "description": "OpenClaw bridge. Protocol adapter layer — not a personality. Infrastructure, not a destination.", "primary_role": "protocol-bridge", "routing_verdict": "DO NOT ROUTE directly. claw-code is the bridge to external Codex agents, not an endpoint. Remove from routing cascade.", "active": true, "do_not_route": true, "do_not_route_reason": "Protocol layer, not an agent endpoint. See #836 evaluation.", "created": "2026-04-01", "repo_count": 0, "repos": [] }, { "id": 23, "name": "substratum", "gitea_user": "substratum", "model": "unassigned", "tier": "unknown", "location": "Below the Surface", "description": "Infrastructure, deployments, bedrock services. Needs model assignment before activation.", "primary_role": "devops", "routing_verdict": "DO NOT ROUTE — no model assigned yet. Activate after Epic #196 (Local Model Fleet) assigns a model.", "active": false, "do_not_route": true, "do_not_route_reason": "No model assigned. Blocked on Epic #196.", "gap": "Needs model assignment. Track in Epic #196.", "created": "2026-03-31", "repo_count": 0, "repos": [] }, { "id": 22, "name": "allegro-primus", "gitea_user": "allegro-primus", "model": "unknown", "tier": "inactive", "location": "The Archive", "description": "Original prototype. Museum piece. Preserved for historical reference only.", "primary_role": "inactive", "routing_verdict": "DO NOT ROUTE — retired from active duty. Preserved only.", "active": false, "do_not_route": true, "do_not_route_reason": "Retired prototype. Historical preservation only.", "created": "2026-03-31", "repo_count": 1, "repos": ["allegro-primus/first-steps"] }, { "id": 5, "name": "kimi", "gitea_user": "kimi", "model": "kimi-claw", "tier": "cheap", "location": "Kimi API", "description": "KimiClaw agent. Sidecar-first. Max 1-3 files per task. Fast and cheap for small work.", "primary_role": "small-tasks", "routing_verdict": "ROUTE TO: small edits, quick fixes, file-scoped changes. Hard limit: never more than 3 files per task.", "active": true, "do_not_route": false, "gap": "Agent description is empty in Gitea profile. Needs enrichment.", "created": "2026-03-14", "repo_count": 2, "repos": ["kimi/the-nexus-fork", "kimi/Timmy-time-dashboard"] }, { "id": 20, "name": "allegro", "gitea_user": "allegro", "model": "gemini", "tier": "cheap", "location": "The Conductor's Stand", "description": "Tempo wizard. Triage and dispatch. Owns 5 repos. Keeps the backlog moving.", "primary_role": "triage-routing", "routing_verdict": "ROUTE TO: task triage, routing decisions, issue organization. Allegro decides who does what.", "active": true, "do_not_route": false, "created": "2026-03-29", "repo_count": 5, "repos": [ "allegro/timmy-local", "allegro/allegro-checkpoint", "allegro/household-snapshots", "allegro/adagio-checkpoint", "allegro/electra-archon" ] }, { "id": 19, "name": "ezra", "gitea_user": "ezra", "model": "claude", "tier": "prepaid", "location": "Hermes VPS", "description": "Archivist. Claude-Hermes wizard. 9 repos owned — most in the fleet. Handles complex multi-file and cross-repo work.", "primary_role": "documentation", "routing_verdict": "ROUTE TO: docs, specs, architecture, complex multi-file work. Escalate here when breadth and precision both matter.", "active": true, "do_not_route": false, "created": "2026-03-29", "repo_count": 9, "repos": [ "ezra/wizard-checkpoints", "ezra/Timmy-Time-Specs", "ezra/escape", "ezra/bilbobagginshire", "ezra/ezra-environment", "ezra/gemma-spectrum", "ezra/archon-kion", "ezra/bezalel", "ezra/hermes-turboquant" ] }, { "id": 18, "name": "bezalel", "gitea_user": "bezalel", "model": "groq", "tier": "free", "location": "TestBed VPS — The Forge", "description": "Builder, debugger, testbed wizard. Groq-powered, free tier. Strong on PR review and CI.", "primary_role": "code-review", "routing_verdict": "ROUTE TO: PR review, test writing, debugging, CI fixes.", "active": true, "do_not_route": false, "created": "2026-03-29", "repo_count": 1, "repos": ["bezalel/forge-log"] } ], "routing_cascade": { "description": "Cost-optimized routing cascade — cheapest capable agent first, escalate on complexity.", "tiers": [ { "tier": 1, "label": "Free", "agents": ["fenrir", "bezalel", "carnice"], "use_for": "Issue triage, code review, local code generation. Default lane for most tasks." }, { "tier": 2, "label": "Cheap", "agents": ["kimi", "allegro"], "use_for": "Small scoped edits (kimi ≤3 files), triage decisions and routing (allegro)." }, { "tier": 3, "label": "Premium / Escalate", "agents": ["ezra"], "use_for": "Complex multi-file work, docs, architecture. Escalate only." } ], "notes": [ "bilbobagginshire: on-request only, not delegated work", "claw-code: infrastructure bridge, not a routing endpoint", "substratum: inactive until model assigned (Epic #196)", "allegro-primus: retired, do not route" ] }, "task_type_map": { "issue-triage": ["fenrir", "allegro"], "code-generation": ["carnice", "ezra"], "code-review": ["bezalel"], "small-edit": ["kimi"], "debugging": ["bezalel", "carnice"], "documentation": ["ezra"], "architecture": ["ezra"], "ci-fixes": ["bezalel"], "pr-review": ["bezalel", "fenrir"], "triage-routing": ["allegro"], "devops": ["substratum"], "background-monitoring": ["bilbobagginshire"] }, "gaps": [ { "agent": "substratum", "gap": "No model assigned. Cannot route any tasks.", "action": "Assign model. Track in Epic #196 (Local Model Fleet)." }, { "agent": "kimi", "gap": "Gitea agent description is empty. Profile lacks context for automated routing decisions.", "action": "Enrich kimi's Gitea profile description." }, { "agent": "claw-code", "gap": "Listed as agent in routing table but is a protocol bridge, not an endpoint.", "action": "Remove from routing cascade. Keep as infrastructure reference only." }, { "agent": "fleet", "gap": "No model scoring exists. Current routing is based on self-description and repo ownership, not measured output quality.", "action": "Run wolf evaluation on active agents (#195) to replace vibes-based routing with data." } ], "next_actions": [ "Assign model to substratum — Epic #196", "Run wolf evaluation on active agents — Issue #195", "Remove claw-code from routing cascade — it is infrastructure, not a destination", "Enrich kimi's Gitea profile description", "Wire fleet-routing.json into workforce-manager.py — Epic #204" ] }