Skip to main content

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)

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 >2h -> 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 -> Company -> Agent -> 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

# Current: discover.js routing
node ~/system/tools/discover.js routing "<task description>"

Returns: Tools (6), Skills (0), Agents (2), MCP (0)

Problem: Only searches indexed sources. 17 orphan agents invisible.

---

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:
# Input: task title + description (from Task tool invocation)

Output: { company: "X", agent: "Y", tier: "N" }

Action: Inject routing decision into task metadata before dispatch

Hooks to create:

  • `~/.claude/hooks/pre-dispatch-classifier.sh` - classify task -> 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 ` -> 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->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