Skip to content

07 — Falsifiability

Make PULSE wrong-able.

The architecture is not the bottleneck. Phase 2 is the contract an engineer can try to break: formal objects, causal timing, calibrated uncertainty, synthetic adversaries, and one experiment that moves ΔL.

What is locked

Not a redesign. The same three layers, now with objects that can fail a test.

ObjectDefinition
zᵤLatent class in {human, human+agent, declared-agent, service, coordinated}.
pᵤ(t)P(zᵤ | Hᵤ(t)). A posterior, not a badge.
LᵤA functional of pᵤ — mass on independently acting human, discounted mixed.
(μ_L, σ_L)Point and width. Cold start is a wide interval, not a low score.
q_tCausal multiplier. Only H_<t is legal.
CIᵤPredictive lift of the cluster residual after the stimulus shown.

Posterior, not a binary

pᵤ(t) = P(zᵤ | Hᵤ(t))
Reality is a mixture. Liveness is derived, not assumed.
Lᵤ = 1·p_human + 0.72·p_mixed + 0.42·p_agent + 0.22·p_service + 0.06·p_coord

Do not write Lᵤ = E[independent human | Hᵤ]. That collapses the taxonomy the product already needs. Declared agents should be allowed to participate without faking a pulse.

Causal timing

The reaction field of event E develops after people begin reacting. A ranker that consumes P(E) in the same instant it scores the first viewers is using the future. Streaming contract:

q_t = q( I_edge,t , L_actor,t⁻ , P(E, [t−W, t)) )
Only information available before the current scoring event.

Early seconds of a post have almost no event field. Author-side L and edge history carry the score. Event EKG updates distribution as the wave develops, and feeds offline ΔL. It does not give the first ranker omniscience.

Compatible with Phoenix candidate isolation: q_t is an author/edge/lagged-event feature. It does not require candidates to attend to each other.

Counterfactual independence

Alignment is not proof. Newsrooms, stan accounts, and earthquake threads couple on a public stimulus. The interesting object is whether the cluster residual still predicts account u after you know what u actually saw.

CIᵤ = I( Rᵤ ; R_cluster | Sᵤ, Fᵤ, Cᵤ )

Mutual information is the target. The estimator at ranking scale is predictive lift, not a closed-form I(·;·|·):

CÎᵤ ≈ ℓ(Rᵤ | Sᵤ, Fᵤ, Cᵤ, R_cluster) − ℓ(Rᵤ | Sᵤ, Fᵤ, Cᵤ)
ℓ is log-likelihood of the next act.

High CI is evidence of a shared unobserved controller or objective. It is then typed with the rest of the taxonomy. CI is not the new bot score. Journalists living in a breaking-news cluster will light it up; they are not a farm until the rest of the posterior says so.

Calibration

Internally — never publicly — every liveness estimate carries a width:

Account A · μ_L = 0.72 · 95% interval [0.31, 0.94] · evidence: insufficient

A point of 0.72 with that interval is “do nothing.” Shrinkage toward a weakly informative prior on cold start is the product rule. If you cannot say how sure you are, you do not multiply the score.

The experiment worth running

  1. Event-level EKG on a slice of high-reach posts.
  2. Discount swarm-shaped engagement with causal q_t. Do not hang the author when the author is independently alive and the audience is not.
  3. Measure ΔL, conversation depth, response diversity, residual coupling, and CI lift against a holdout. Not raw click volume.
  4. Ablate: jitter, persona, clone, independent swarm, human farm. False-positive sets: night shift, journalist, scheduled posts, accessibility, non-native.