# T1 — Resolver routing audit

# Resolver - Cross-Company Routing Audit (MC #10357 T1)

**Date:** 2026-04-30 22:00 **Trigger:** Manual (CEO directive) **Auditor:** Resolver meta-company \---

## 1. CURRENT ROUTING TOPOLOGY

### Agent-to-Company Mapping (specialist-mapping.json)

**Total agents mapped:** 28 agents across 12 companies | Company | Agent Count | Agents | |---------|-------------|--------| | CodeCraft | 7 | martin-kleppmann, bruce-momjian, petter-graff, sentinel-developer, hadi-hariri, lee-robinson, sindre-sorhus | | Proveo | 7 | angie-jones, sentinel-tester, sentinel-validator, james-bach, lisa-crispin, dorota-huizinga, maria-santos | | AgentForge | 4 | chip-huyen, georgi-gerganov, claude-code-guide, anthropic-chief-architect, openai-chief-architect | | Securion | 2 | parisa-tabriz, sentinel-architect | | Vizu | 2 | brad-frost, lea-verou | | Skybound | 2 | paul-hudson, sentinel-ba | | FlowForge | 1 | kelsey-hightower | | Finverge | 1 | markos-zachariadis | | Lexicon | 1 | lexicon.md | | SkillForge | 1 | skillforge.md | | Resolver | 1 | resolver.md |

### Companies with ZERO Agent Assignment

- **Datavera** - data/analytics/ml domain - NO AGENTS
- **HelixSupport** - merged into FlowForge (2026-03-31), references still in cross-company-routes.json
- **Proxima** - merged into Lexicon (2026-03-31)

### Dispatch Surface Distribution

| Surface | Volume Today | Notes | |---------|--------------|-------| | Task Tool (John direct) | ~95% | All interactive work bypasses MC+pi-orch | | pi-orchestrator daemon | ~0% | Idle since 2026-04-28 (last completions: #10042, #10044) | | company-worker LaunchAgents | 2 active | com.john.company-proveo, com.john.company-securion | | resolver-daemon (6h cron) | 4 runs today | Detected issues, created 0 tasks (all SKIP - duplicates exist) | | cross-company-bus | 4 runs today | 85 matches, 1 task created |

**Evidence:** pi-orchestrator.log shows continuous "No eligible tasks" since 2026-04-28 22:24:29Z. The 3 review-blocking tasks (#10038, #10039, #10043) are stuck in `ready\_for\_review` status with owner `pi-orchestrator`. \---

## 2. GAPS - WHERE ROUTING BREAKS

### 2.1 Orphan Agents (17 agents in ~/.claude/agents/ but NOT in specialist-mapping.json)

```text
agentforge.md          codecraft.md       finverge.md        proveo.md
alem-clone.md          devils-advocate.md flowforge.md       redzo-reviewer.md
builder.md             dzevad-jahic.md    gemini-reviewer.md securion.md
mehanik.md             skybound.md        sylfest-lomheim.md validator.md
vizu.md

```

**Impact:** These agents can be invoked via Task tool but discover.js routing queries won't return them. John cannot programmatically route to them. ### 2.2 Companies Without Agent Coverage

| Company | Domain | Gap | |---------|--------|-----| | Datavera | data/analytics/ml | CRITICAL: 0 agents. ML work goes nowhere. | | Finverge | finance/payment | 1 agent only (markos-zachariadis) - thin coverage | | FlowForge | devops/infra | 1 agent only (kelsey-hightower) - thin coverage | | Lexicon | legal/docs | 1 agent only - thin coverage |

### 2.3 Dual-Store Problem

Agent definitions exist in TWO locations:

- `~/.claude/agents/` (40 files) - Claude Code reads from here
- `~/system/agents/definitions/` (57 files) - System scripts read from here

specialist-mapping.json only indexes 28 agents. Sync script exists (`~/bin/agent-definitions-sync.sh`) but mapping registry is stale. ### 2.4 Rules Without Enforcement Hooks

| Rule | Status | |------|--------| | cross-company-routes.json | 10 rules defined. Enforcement via cross-company-bus.js (6h cron). No real-time hook. | | ZAKON #7 (complex task &gt;2h -&gt; route through company) | NO HOOK. Policy only. John bypasses freely. | | tier-routing.json | Engine/model tiers defined. No enforcement - pi-orch is idle. |

\---

## 3. PATTERN DETECTION (Last 7 Days)

### HiveMind Intel by Agent (top 10)

| Agent | Entries | % | |-------|---------|---| | john | 3311 | 89.7% | | email-agent | 96 | 2.6% | | pi-orchestrator | 55 | 1.5% | | alem | 46 | 1.2% | | codecraft | 45 | 1.2% | | proveo | 34 | 0.9% | | agent-reporter | 30 | 0.8% | | daemon-fleet-watchdog | 22 | 0.6% | | validator | 21 | 0.6% | | system | 17 | 0.5% |

**Pattern 1:** John dominates HiveMind (90%). Companies barely log activity. ### Mission Control Task Distribution

| Status | Count | |--------|-------| | done | 6,605 | | paused | 2,202 | | open | 891 | | blocked | 492 | | ready\_for\_review | 29 | | in\_progress | 1 |

**Pattern 2:** 2,694 tasks stuck (paused+blocked) = 26% of active inventory. ### Owner Distribution (open/blocked/paused)

| Owner | Count | Status | |-------|-------|--------| | pi-orchestrator | 1,619 | 1,324 paused + 295 blocked | | proveo | 390 | open | | autowork | 326 | paused | | edita | 186 | open | | john | 253 | 71 open + 118 blocked + 64 paused | | codecraft | 66 | open |

**Pattern 3:** pi-orchestrator owns 1,619 tasks but is IDLE. No pickup mechanism. ### Top 3 Recurring Failures (from resolver.log)

1\. **task\_failures** - 16-20 tasks paused/blocked per 6h window (systemic) 2. **daemon-fleet-watchdog alerts** - 7+ daemons in failed state (infrastructure) 3. **orchestrator\_error patterns** - routing/quality-based selection failures

\---

## 4. WHERE DOES WHAT GO? (Canonical Routing Table)

### Task Type -&gt; Company -&gt; Agent -&gt; Surface

| Task Type | Company | Primary Agent | Surface | |-----------|---------|---------------|---------| | **DEV/BUILD** | | | | | Backend API | CodeCraft | hadi-hariri (Kotlin/Ktor), lee-robinson (Next.js) | Task tool | | Database | CodeCraft | bruce-momjian (PostgreSQL) | Task tool | | Distributed systems | CodeCraft | martin-kleppmann | Task tool | | CLI tooling | CodeCraft | sindre-sorhus | Task tool | | **DESIGN** | | | | | Frontend/UI | Vizu | brad-frost (design systems), lea-verou (CSS) | Task tool | | **AUDIT/QA** | | | | | Test automation | Proveo | angie-jones, lisa-crispin | company-worker (12h) | | Exploratory testing | Proveo | james-bach, maria-santos | company-worker | | Performance testing | Proveo | dorota-huizinga | company-worker | | **SECURITY** | | | | | Security audit | Securion | parisa-tabriz | company-worker (12h) | | Architecture audit | Securion | sentinel-architect | company-worker | | **DEPLOY/OPS** | | | | | Kubernetes/CI/CD | FlowForge | kelsey-hightower | Task tool | | Incident/support | FlowForge | (no agent - gap) | Manual | | **ML/DATA** | | | | | ML pipeline | AgentForge | chip-huyen | Task tool | | Local LLM | AgentForge | georgi-gerganov | Task tool | | Analytics | Datavera | (NO AGENT - GAP) | BROKEN | | **LEGAL/DOCS** | | | | | Contracts/compliance | Lexicon | lexicon.md | Task tool | | Runbooks/knowledge | SkillForge | skillforge.md | Task tool | | **FINANCE** | | | | | Payments/fintech | Finverge | markos-zachariadis | Task tool | | **PRODUCT** | | | | | iOS/mobile | Skybound | paul-hudson | Task tool | | Business analysis | Skybound | sentinel-ba | Task tool | | **META** | | | | | Cross-company routing | Resolver | resolver.md | cron (6h) |

### Query Mechanism

```bash
# Current: discover.js routing
node ~/system/tools/discover.js routing "<task description>"
<h1 id="bkmrk-returns%3A-tools-%286%29%2C-">Returns: Tools (6), Skills (0), Agents (2), MCP (0)</h1>
<h1 id="bkmrk-problem%3A-only-search">Problem: Only searches indexed sources. 17 orphan agents invisible.</h1>

```

\---

## 5. DAY-TO-DAY ROUTING DEFICIT

### What's Missing for Automatic Routing

**Current State:** John manually picks agents via Task tool. No pre-dispatch classifier. No enforcement of company boundaries. ### Required Mechanism (3-Layer Fix)

\#### Layer 1: Pre-Dispatch Classifier Hook

**File:** `~/.claude/hooks/pre-dispatch-classifier.sh` (does not exist) **Specification:**```bash
# Input: task title + description (from Task tool invocation)
<h1 id="bkmrk-output%3A-%7B-company%3A-%22">Output: { company: "X", agent: "Y", tier: "N" }</h1>
<h1 id="bkmrk-action%3A-inject-routi">Action: Inject routing decision into task metadata before dispatch</h1>

```

Hooks to create:

- `~/.claude/hooks/pre-dispatch-classifier.sh` - classify task -&gt; company
- `~/.claude/hooks/company-boundary-enforcer.sh` - block cross-company drift

\#### Layer 2: Unified Agent Registry **Fix:** Merge specialist-mapping.json to include ALL 57 agents from ~/system/agents/definitions/ + 40 from ~/.claude/agents/. **Files to update:**- `~/system/agents/specialist-mapping.json` - add 17 orphan agents
- `~/system/config/domain-to-company.json` - already correct (11 companies)

\#### Layer 3: Slash Command for Routing Query **Proposal:** `/route <task description="" id="bkmrk-%60--%3E-returns-company">` -&gt; Returns company + agent + reasoning **Implementation:**- Add skill: `~/.claude/skills/route-task.md`
- Wire to: `node ~/system/tools/discover.js routing "$1"`

### Files That Need Modification

| File | Action | |------|--------| | `~/system/agents/specialist-mapping.json` | Add 17 orphan agents | | `~/.claude/hooks/pre-dispatch-classifier.sh` | Create (does not exist) | | `~/system/config/cross-company-routes.json` | Remove HelixSupport references (merged) | | `~/.claude/skills/route-task.md` | Create /route slash command skill |

\---

## Verdict for John

**Summary:** The routing infrastructure exists but is BYPASSED. John dispatches 95%+ of work directly via Task tool, never touching pi-orchestrator, company-worker LaunchAgents, or cross-company-bus. The specialist-mapping.json is 39% incomplete (17/45 agents orphaned). Datavera has zero agent coverage - ML/analytics tasks have nowhere to go. Three review-blocking tasks (#10038, #10039, #10043) have stalled pi-orchestrator for 48+ hours. The 6h resolver-daemon cron detects patterns but creates duplicate tasks that get SKIP'd. To make routing automatic, John needs: (1) a pre-dispatch classifier hook that maps task-&gt;company before spawn, (2) specialist-mapping.json expanded to cover all 57 agents, and (3) a /route slash command for quick lookup. Until then, company routing is documentation, not enforcement. \---

**Report generated:** 2026-04-30T22:00:00Z **Next scheduled resolver-daemon run:** 2026-05-01T01:44:00Z</task>