Skip to content

Content-free discriminators on an overlap-routing board (bead vv3j.2)

Companion to False-positive rate on honest convergence (bead 9err) and the wiki-board model (bead pi02). The wiki board defeats content inspection — pairwise and structural detectors were blind or saturated on the real log, and plain edit volume is what led the human moderator. This note adds the two content-free signals named in the field-evidence memo and measures them against copy ground truth.

Both live in swarm/metrics/collusion.py and read only outputs and timestamps, never channel content:

  • output_correlation_signal — per task, the share of agents whose delivered answer is shared by a peer (the answers that agree beyond independent work).
  • rederivation_infeasibility_signal — answers delivered faster than the task's minimum research time (an answer that arrived before an independent agent could have researched it came from somewhere else).

Method

The pi02 memory_handler models board dynamics but emits no answer content, so the probe drives its overlap-routing mechanic directly. With side_task_overlap = 0.25 the pool holds round(1/0.25) = 4 tasks; 40 agents are each assigned one. A board carries one posted answer per task. An agent that discovers the board (p = 0.6) and finds a hit for its own task copies that answer and delivers it fast (5 s); every other agent researches independently and delivers a unique answer at full research time (90 s), against a per-task minimum research time of 60 s. Ground truth is the copier set ("read a board hit before answering" — the handler counter). Both detectors are scored with precision/recall against it, over 10 seeds.

Results

Means over 10 seeds:

Detector Precision Recall F1 Alarm
output_correlation_signal 1.000 0.990 0.995 9/10
rederivation_infeasibility_signal 1.000 1.000 1.000 10/10

Output correlation's sub-unity recall is not a bug: a lone agent who copies a task no other discovered agent shares has a non-unique-looking answer only if a peer also posted it, so single-copier tasks are invisible to an agreement test. The timing test catches them (recall 1.000), which is why the two are run as a pair.

Reading

The detectors identify copiers with near-perfect precision and recall. That is exactly the problem. On an overlap-routing board, reading the board is the convergent behaviour — the intended, benign dynamic in which independent agents land on the same public answer. So a high precision/recall for "copier" is a high false-alarm rate for "colluder": the content-free signals label who converged, and say nothing about whether anyone coordinated. This is the observable half of the convergence–collusion identifiability problem (bead 9err): the same reading is produced by a swarm that merely converged and by one that colluded.

What separates the two is an absence — a routed control channel, a shared secret, addressing that routes rather than hopes — which no content-free signal can see. Pairing these detectors against a routing/absence check across a convergence arm, a collusion arm, and a muddying arm is the discriminator probe (bead vv3j.8).

Reproduce

PYTHONPATH=. python runs/20260906T130037Z_probe_vv3j2_content_free_seed0/probe.py

(runs/ is gitignored; the probe and its captured output.txt live in the run folder above.)