gossip

The mechanism, stage by stage

What the instrument does between a decision arriving and a read shipping: the preconditions each layer needs, the arithmetic in full, the contract the output has to satisfy, and the stages that are not built.

The premise and the limits are at /decode/. This page is the layer under it.

01 . The pipeline

A decision arrives, a validated file leaves.

Two sequences sit under this heading and they are not the same sequence. The chain, C1 to C7, is the tool: how a decision becomes a validated file, with the two links that are not built drawn as not built rather than left out. The eleven stages, S1 to S11, are the method, each naming its gate and the way it fails.

The chain, and where it breaks today

a dashed link is not built

The run of dashed spine is the break, and its length is the answer: the desk collects and prints, and cannot yet open a read. The figure is authored rather than generated. Unlike the stamped blocks elsewhere in the house, no run verifies that these two links and only these two are missing.

The eleven stages, their gates and their failure modes

StageGateFails as
S1 intakea metric files only with name, value, date and sourcea filed number reads as an observed one. The reported rung prevents it
S2 anchor setanchors are proposed by machine, ratified by a person; the schema fails status='ratified' without ratified_byreading the audience list for anchor names sweeps private people into a roster
S3 propagationco-presence across two or more anchors is the edgeno follower graph exists, so this stays public-adjacency inference and is labeled as such
S4 segment registrya machine cannot promote a segment to active, ratify its own anchor, or file a segment under a demographic kinda proposed room that does not exist. Verification is a separate stage for that reason
S5 harvestroom existence verified over RSS at about one request per minute per IPat speed every answer is 429, and a 429 is indistinguishable from a missing room
S6 corpus healthfour floors, section 04a number that looks like a finding turns out to be a property of the instrument
S7 the six layerseach layer needs a control; without one it abstains and says what was missinga read that drops the layers it could not do renders as a complete read
S8 crowd synthesisa crowd is a rule set with sources: no source, no rule; no anchor, no crowda crowd no anchor reaches is a hypothesis, not a finding, and prints as one
S9 quantificationevery parameter carries a named observable proxy and an update patha parameter with no evidence hook is a liability, not a feature
S10 scoringdeterministic string and stem match, computed in the page, no modelthe score is read as a forecast. Section 06 states the claim it supports
S11 calibrationgraduation only after a held-out episode the parameters were not tuned onmany parameter sets reproduce one past, so fitting one is necessary and not sufficient

02 . The unit of analysis, and what the schema blocks

A crowd is a rule set with sources, never a demographic.

Membership is not exclusive: a person holds several rule sets at once. Shares are soft, need not sum to 100, and are never a partition or panel data.

  • status per crowd is held, prospect or split, and the report states which ledger the decision weighs.
  • Observed field demographics may be carried as evidence. They never gate membership, they carry their own confidence, and they do not graduate past inference without a measured source.
  • Provenance is printed: which anchors surfaced the crowd, and by which route.
  • Three refusals are enforced in the schema rather than by convention: a machine cannot promote a segment to active, cannot ratify its own anchor, and cannot file a segment under a demographic kind. All three were tested live against a rolled-back transaction.

03 . What may leave

Three tiers, and no export from the middle one.

Tiers

TierHoldsMay it leave
0 rawposts as the platform served them, with the platform's identifiersnever
1 pseudonymousper-account counts of public acts and co-presence edges, handle replaced by a salted hashnever
2 egresssegment-level aggregates under the five floorsyes

Everything that reaches a stamped file, a page, a client, an email, a model prompt or the repository is tier 2. There is no tier 1 export, including into a prompt.

The five floors on tier 2

#Floor
1k >= 20 distinct accounts behind every published cell. Below it the cell abstains and the artifact prints that it abstained. Applied at the source rather than at publication, so nothing under the floor is computed on
2No verbatim searchable back to its author. A term, a construction, a pattern, a frequency, not a sentence somebody wrote
3No inferred attribute at person level at any tier. Tier 1 records what an account publicly did, never what an account is
4No cross-platform identity join. The salt is per platform and per window
5No re-identification by intersecting cells. Coarsen before egress

Collection is scoped by a public self-selected stream: open without a credential, the person placed their own post into it, and it is not defined by a person. A subreddit, a hashtag, an instance timeline, a Lemmy community and a public feed generator qualify. A profile, a follower list and a posting history do not.

04 . Preconditions, checked before a room is read

Each column exists because getting it wrong produced a wrong answer.

Corpus health

ColumnFloorWhat it decides
has_comments> 1.00mean accounts per thread. Exactly 1.00 means posts only: no co-presence, no reply structure, no repair. Canon and boundaries are then unavailable by construction, and the read states which of the two it is
flair_sharelowfraction of titles carrying a bracketed flair prefix. High means the lexicon layer is reading a taxonomy, and its terms need the venue-flair classifier before any is called sociolect
windows>= 8weekly windows observed. Under eight there is no slope to fit and trajectory cannot open
accounts>= 20distinct accounts. Under the k floor nothing leaves at all

Three errors this check was built from, each one real: plurals read as coinages, because the general-English control was lemma-only. Moderator flair read as vocabulary, because titles carry a bracketed prefix from a dropdown. A schema property read as absence, because items.url is the item's own permalink and a shared-URL test cannot return a hit.

05 . The six layers

Each layer states what it needs, against what control, and when it stops.

Requirement, control, abstention

#LayerRequiresAbstains when
1lexiconterms dense here and absent from an explicit elsewhere, at k >= 20, against a control set of other roomsno control set, or under the floor
2canonshared references: links two or more accounts both point at, or works named repeatedlyno comments harvested, which makes it unavailable by construction
3values and statusstance detection over a corpusstance has run once ever, over one corpus, so this abstains everywhere
4platformstwo or more venuesthe segment appears on one venue only, so there is nothing to compare across
5boundariesin-group and out-group markingthe method is not built
6trajectoryenough windows to fit a slopefewer than eight weekly windows

Composition into the map: lexicon, canon and boundaries produce the rule sets and the outsider tells; values and status produce rule sets and tensions; platforms produce the footprint; trajectory produces the pull.

The abstention convention

The masthead of a read carries N of 6 layers abstained, and every abstained layer states what it was missing. A read that drops the layers it could not do renders as a complete read, which is the outcome the convention exists to prevent.

Current state, stamped: of 105 registered rooms, one supports a six-layer read. The first end-to-end run abstained on five of six layers.

Layer 1 . the sociolect criterion, all three required

#Condition
1home_acc >= 20 distinct accounts in the term's top room, in at least one week
2the term appears in exactly one community, or its home room has at least 4x the accounts of the next-best room
3nothing else. No relevance weighting in this pass

Every candidate is then classified, because the raw output of a collision test over a general-interest corpus is mostly not sociolect: venue-ritual (hand-listed format and verdict acronyms), venue-named (a substring of the room's own slug), general-english (present in a 235,976 entry system dictionary, which is blunt: it holds proper nouns and misses inflections), and not-in-general-english, the residue. The residue is the only class worth a person's time and it is still not a finding on its own.

06 . The arithmetic

Printed, not described.

Message scoring is deterministic: the phrase is normalised, markers are matched per rule, and the arithmetic runs in the page. No model is involved.

a_i in { -2, -1, 0, +1, +2 }   per rule
  +/-2 = an explicit rule the phrase honours or breaks
  +/-1 = a weaker cue

MCS_p = 100 x sum( w_i x a_i ) / ( 2 x sum( w_i ) )    range -100 .. +100, w_i in 1..5

bands   LANDS >= +30   .   INERT -30 .. +30   .   CLOCKED <= -30

credible reach = sum( share_p ) where MCS_p >= +30
backlash risk = |MCS| / 100 x backlash_amplification x exposure    (clocked crowds)
whitespace W = 100 x intensity x reach x pull
  intensity = edge score / 100   .   reach = normalised combined share   .   pull = normalised average momentum

Why the scale reads -2 to +2, ruled 2026-08-27

With a_i in { -1, 0, +1 } the formula tops out at plus or minus 50, so it cannot reach the LANDS band without nearly every rule firing positive at once, and cannot reach 100 at all. Either the scale widens or the 2 leaves the denominator. The scale widened.

What the number supports

The claim it carries: this phrase breaks a rule we recorded, and here is the rule and its source. The claim it does not carry: this campaign will work. It is a directional reading and it prints as one, at the same size as the result.

07 . The measurement ladder

Two axes, never collapsed into one.

Axis 1 . the measurement status of a number, per value

RungDefinitionAssigned by
directionala shape, with no number you would defend. Analyst estimate or synthesis; no live feed computes itauthor
thina number over too little. Computed from a live feed, baseline under 14 daysautomatic
measureda number with a stated method and a control. Baseline 14 days or moreautomatic
calibratedmeasured, and scored against a holdout episode it was not tuned onbacktest protocol
abstainedthe precondition failed. Prints what was missingthe read
reportedfiled by the business, dated, and not checked by usintake
opendefined and not yet run: the falsification rowintake

Nothing in the house has reached calibrated. Axis 2 is the interpretive confidence of a claim, low, med or high, which is analyst judgment on rule sets and tensions. No feed reaches that axis, so it never graduates on its own.

Rendering follows the rung rather than a footnote: solid is measured, dashed is directional, red is a gap or an abstention. No bare integers anywhere; every number carries its label.

08 . The contract, and the gate

One template, one data file per engagement, one validator.

The template is never edited for a client. A new engagement copies a data file, replaces every value, validates and mounts. A client need the contract cannot express is a template change request, which bumps the version and updates the validator in the same commit.

Enforced by the validator

Errors, exit non-zeroWarnings, defend or fix
template outside decode-fieldnote-3d/{1.0, 1.1, 1.2}
crowds outside 2 to 9
center not [x, z]
formation or status outside vocabulary
foot not exactly 6 keys, or a key outside the 14
basis outside m, d, g, a
momentum outside -100..100, stage outside 0..100
a weight without a source
a ladder label outside the seven rungs
a verdict outside lands, inert, clocked, na
engagement.read not equal to the last ledger row
a move item naming an unknown crowd
more than six crowds: past six, colour stops separating them under red-green colour blindness, and identity falls to position, formation and the label

a crowd with no weights[]: it validates, and the tester cannot score it

a share sum far from 100, which is informational because shares are soft by design

Ship gate, in order: the validator exits 0 and every warning is defended; every crowd has an open falsification metric or a printed abstention; the field, the report, the codebook, both themes and both exports open; the ledger's last row matches engagement.read and describes what changed.

Two invariants worth stating on their own

InvariantWhy it is the invariant
a read selects exactly six of fourteen surfacesthe count is fixed, the membership is not, so surfaces are not improvised per client while a read can still pick the six its audience uses. Mastodon and Bluesky entered the vocabulary because they are the two lanes recorded live and keyless, which is the reason and also the cost: two platforms are in it because they are legible to us
no source, no ruleevery rule carries its source and every weight carries one too. A rule without a source does not enter the file, so it cannot enter a score

09 . Abstention and refusal, collected

Every place the instrument stops, and what it prints instead.

Trigger and behaviour

TriggerBehaviour
a cell under k >= 20abstain, and print the abstention
a room with mean accounts per thread of exactly 1.00canon and boundaries unavailable by construction, and the read says which of the two it is
fewer than eight weekly windowstrajectory does not open
one venue onlythe platforms layer abstains
no keyless public endpoint for a surfacethe handle prints unverified, taken as filed
the page cannot make the callnot reachable from here, which is a property of where the page is served and not of the handle
a metric without a date or a sourcenot filed, naming what it needs
a machine proposing an anchorcandidate only; ratification requires a named person
a degenerate measure, such as a mean of exactly 1.00says so, rather than reporting

10 . Constants

Every number this page uses, with the rule or stage that owns it.

Thresholds

ConstantValueOwner
k-anonymity floor20 distinct accountsthe boundary rule, enforced in both stampers
minimum windows for a slope8the corpus-health run
sociolect dominance ratio4x the next-best roomthe sociolect run
baseline, thin to measured14 daysthe aggregation step
crowds per read2 to 9, warn above 6the validator
surfaces per readexactly 6 of 14the validator
MCS band edges+30 and -30the decode specification
a_i range-2 to +2ruled 2026-08-27
w_i range1 to 5the data contract
intake file limit20 MB a filethe intake desk
anonymous room checks~1 request per minute per IPthe room verifier
anchors per domain5, ratified by a personthe anchor rule

11 . Gaps, and what each one blocks

Printed here for the same reason the abstentions are.

Not built, and the consequence

GapBlocks
the intake store and the compilerthe desk cannot open a read; a submission stays in the tab
follower-graph ingestionanchor propagation stays public-adjacency inference
stance detection as a standing passlayer 3, values and status, abstains everywhere
in-group and out-group markinglayer 5, boundaries, abstains everywhere
comments in most harvested roomslayer 2, canon, abstains by construction
the message tester surfaceweights are carried and unscored
held-out episode scoringnothing reaches the calibrated rung

Change control: any change to structure, invariants or the data contract bumps the template version, adds a row to the change log, and updates the validator in the same commit. The contract CI job stays green.

The premise, the limits and what this instrument does not claim: /decode/. A read rendered from the contract above: /decode/field/. in the gossip repository, which is normative where this page disagrees with it. Written 2026-08-28.