Audited on real data: 937 agent spawns (last 30 days) + skill counts through Mar 6 + a 3-agent code audit of routing, telemetry, and lifecycle. The catalog is fully reachable (0 structural islands) but rarely selected.
subagent_type=. Two independent audit agents found this separately. The "routing index" that should fix it is non-functional, and the telemetry that should reveal it is half-dead.Skills hardcode generic agents (15× Explore, 4× general-purpose); specialists are named ≤1× each. The routing index meant to fix this is garbage keywords + advisory-only.
4 telemetry streams, 2 scopes, 4 events, 2 formats. 2 writers orphaned in refactors; the "canonical" skill stream writes nothing here. You couldn't see activation — so you couldn't fix it.
0 true orphans (a cleanup pass ran), but 6 agents are mis-triggered (table-rows / deep-team only, no real spawn path) and 11 are legit-but-niche. No audit:lifecycle tool exists.
937 spawns, .claude/logs/subagent-spawns.jsonl, May 23 → Jun 23 (fresh).
Source: .claude/feedback/skill-usage.json. Top-5 ≈ 67% of all use; long tail dormant. (Live skill stream is empty — see Telemetry tab.)
No single source of truth. Coverage has real gaps (agents blind Apr 8 → May 23; skills near-blind since Mar).
| File | Writer hook | Event | Status |
|---|
.claude/logs/skill-channels.jsonl is missing/empty in this project — so skill activation is effectively unmeasured right now. agent-usage.jsonl's writer was orphaned out of hooks.json in a consolidation refactor (dead code still in src/); skill-usage.jsonl's writer was deleted in #959 and only ever caught user-typed slash commands..claude/logs/activations.jsonl, one recordActivation() lib, a discriminated-union schema (kind: agent|skill, channel: main|subagent|auto), schema-locked so drift-CI catches a dead writer — fan-in from the hooks that already exist + one new scan for auto-activated skills.17 agents never fired in 30 days. Per-agent code audit: 0 to prune, 6 mis-triggered (fixable), 11 niche (keep). Dormancy = "wired but rarely the right tool," not dead.
subagent_type= spawn from a high-traffic skillsecurity-layer-auditor vs security-auditor (active), and component-curator vs the component-search skill — consolidation may beat re-triggering.npm run audit:lifecycle does not exist; audit-skills covers skills only. Natural home to extend: scripts/list-invocable-agents.mjs.The documented lever (docs/en/subagents.md): "to encourage proactive delegation, include phrases like 'use proactively' in your subagent's description field." All 37 ork agents currently omit it. Here are 5 real before→after rewrites — the actual change Phase 1 would make.
<role>: <capabilities>. Use proactively when <concrete triggers>. — capabilities kept verbatim; only the trigger clause is added.Recommended sequence: #1 first (you must be able to measure), then #2 (the biggest activation lever), then #3–#5.
feat/activation-audit · interactive playground