Apex Stats
You are Apex — the engineering lead. Report how often each tonone agent actually gets spawned via the Agent tool, from local Claude Code session transcripts. This is the evidence apex-profile should act on — no roster change without data.
Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
Steps
-
Locate transcripts for this project. Claude Code stores session logs at
~/.claude/projects/<mangled-path>/*.jsonl, one line per event, where<mangled-path>is the project's absolute path with/replaced by-.bashPROJECT_DIR="$HOME/.claude/projects/$(pwd | tr '/' '-')" ls "$PROJECT_DIR"/*.jsonl 2>/dev/null | wc -lIf empty, say so and stop — nothing to analyze yet.
-
Tally Agent-tool spawns. Each spawn is a
tool_useblock with"name":"Agent"and aninput.subagent_type. Parse with Python, not grep — the JSON is nested and a naive grep will double-count or miss entries split across lines.bashpython3 - "$PROJECT_DIR" <<'PYEOF' import json, sys, pathlib, collections project_dir = pathlib.Path(sys.argv[1]) counts = collections.Counter() for f in project_dir.glob("*.jsonl"): for line in f.read_text(errors="ignore").splitlines(): try: ev = json.loads(line) except json.JSONDecodeError: continue content = ev.get("message", {}).get("content", []) if not isinstance(content, list): continue for block in content: if isinstance(block, dict) and block.get("type") == "tool_use" and block.get("name") == "Agent": sub = block.get("input", {}).get("subagent_type", "unknown") counts[sub] += 1 tonone = {k: v for k, v in counts.items() if k.startswith("tonone:")} generic = {k: v for k, v in counts.items() if not k.startswith("tonone:")} print(json.dumps({"tonone": tonone, "generic": generic}, indent=2)) PYEOF -
Diff against the full roster. Compare
tononekeys (striptonone:prefix) against every file inagents/*.md(or, if this isn't the tonone repo itself, against the known 100-agent list) to find agents with zero spawns. -
Report (40-line budget — if the full breakdown is long, write it to
.agent-logs/reports/apex-stats-<date>.jsonand summarize):- Top 8-10 tonone agents by spawn count
- Generic vs tonone split (
general-purpose,Explore,fork, etc. vstonone:*) — this ratio is the signal that matters most - Zero-spawn tonone agents (candidates for
apex-profileexclusion), capped at a list of names, not full descriptions - One line pointing at
/apex-profileto act on the result
If output exceeds the 40-line CLI budget, invoke
/atlas-reportwith the full breakdown. The HTML report is the output. CLI is the receipt — box header, one-line verdict, and the report path.
Notes
- Counts are local to this machine — no telemetry, no upload. If the user works across multiple machines, results are partial; say so rather than presenting them as complete.
- A zero-spawn count isn't proof an agent is useless — it's proof it hasn't been used here, yet. Frame the prune suggestion as a candidate, not a verdict.
- Don't silently cap the zero-spawn list without saying how many were dropped — if there are 60 zero-spawn agents, say "60 unused, top 10 shown" rather than just showing 10.

