Two shell test harnesses ran the compiled hooks with CLAUDE_PROJECT_DIR pointed at the real repo, so every test run appended fixture rows (session_id: "test-123", one per agent in a loop) to the live .claude/logs/subagent-spawns.jsonl. Dormant agents read as healthy.
494
fixture rows in the current rotated log
5
effectively-dead agents masked as healthy
2
writers now honor ORK_TELEMETRY_DISABLE=1
Real spawns vs what the contaminated log showed
agent
log said
real (lifetime)
genui-architect
13-14
1
claude-design-orchestrator
13-14
1
event-driven-architect
13-14
1
demo-producer
13-14
2
security-layer-auditor
13-14
2
red = fixture rows, green = real spawns. Activation audits and prune decisions read this file.
The fix, at the writer
Why inlined in each writer, not in lib/common
The check lives inside subagent-validator.logSpawn and spawn-intent-logger directly. lib/common and analytics-buffer are wholesale-mocked in most unit tests, so an imported helper would vanish under the mock and the guard would silently not exist exactly where it is tested.