Debate Fragment: Free-for-All Orchestration
FleetingDefender fragment file for the adversarial debate on how a fleet of agents
should orchestrate its debate. This file is OWNED by the free-for-all defender
and holds exactly one named argdown block. It is merged into the
agents-debate-map by :argdown-include and Argdown’s merge-by-title, so the
defender extends the [free-for-all] node here without redefining its seed
description. The cartographer leaves it empty.
// ===== free-for-all defender — BLIND STEELMAN ===== // Extends the seed [free-for-all] by merge-by-title; the seed line is NOT // redefined here. The only citable anchors for this methodological question // are the debate-protocol corpus itself; tags are kept honest (a reasoned // rule posed without source = #(affirmation péremptoire) = worth zero). // PCS conclusions are left untagged on purpose, so the tool propagates their // strength weakest-link from premises + inference force. [free-for-all] + <No barrier, no stall> + <No defender throttled to the slowest> + <Death-resilience is the file's, not the barrier's> + <Both documented failure-causes neutralised> + [ffa-realtime-rationale] // ---- the position's core appeal, honestly unsourced (worth zero) ---- [ffa-realtime-rationale]: Reacting to rivals' current work in real time lets a refutation land the moment a weak node appears, instead of waiting a full phase — the position's central appeal, but the defender's own reasoning, not a sourced claim. #(affirmation péremptoire) // ---- A: no barrier ⇒ no barrier-stall (the strongest sourced case) ---- <No barrier, no stall> (1) [orig-failure-was-unowned-barrier]: The documented earlier failure was "a LIVENESS bug (a barrier nobody owned)". [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) (2) [ffa-has-no-barrier]: Free-for-all defenders "write concurrently with no phases and no barriers". [agents-debate-map seed](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage de tiers) -- {force: "déductive"} -- (3) [ffa-immune-barrier-stall]: Free-for-all cannot exhibit the barrier-stall that caused the documented failure, having no barrier to leave unowned. // ---- B: both documented failure-causes neutralised (hinges on a stipulation) ---- <Both documented failure-causes neutralised> (1) [two-fixes-two-causes]: "File-per-defender removes the clobbering; an orchestrator-held barrier removes the stall" — two distinct fixes for two distinct causes. [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) (2) [ffa-keeps-files]: The strongest free-for-all keeps one file per defender (merge-by-title) and drops only the barrier — a design stipulation, not a sourced claim. #(affirmation péremptoire) -- {force: "solide"} -- (3) [ffa-neutralises-both]: Free-for-all-with-files removes clobbering (the file boundary) yet introduces no stall (no barrier), so it neutralises both documented causes of the original collapse. // ---- C: no defender throttled to the slowest (liveness / throughput) ---- <No defender throttled to the slowest> (1) [phase-gate-quote]: "The orchestrator releases phase N+1 only once every live defender has reported phase N". [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) (2) [ffa-no-phases]: Free-for-all has "no phases", so it imposes no such release gate. [agents-debate-map seed](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage de tiers) -- {force: "solide"} -- (3) [ffa-no-slowest-throttle]: Under phases an early-finishing defender idles until the slowest reports; free-for-all removes that gate, so no defender's throughput is bounded by the slowest and wall-clock idle is minimised. // ---- D: death-resilience is the file's property, not the barrier's ---- <Death-resilience is the file's, not the barrier's> (1) [resilience-quote]: "Because each defender's state is its own file, a pruned or dead buddy loses NOTHING — respawn it and point it at its file". [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) -- {force: "solide"} -- (2) [resilience-orthogonal]: The protocol attributes death-resilience to the per-defender FILE, not to the barrier; free-for-all-with-files therefore inherits this resilience unchanged. // ===== free-for-all defender — ATTACK (rivals FROZEN) ===== // Strongest reading only; no strawman. Free-for-all reads rivals // concurrently, so it is the MOST exposed to anchoring/cross-influence — // it therefore mounts NO independence/blindness attack on anyone (that // would be attacking from its own weakest flank, not steelmanning the // attack). Every attack below is from free-for-all's strong ground: // liveness (no barrier), throughput (no gate), real-time friction. // Rival nodes are referenced BY TITLE; bodies stay in my own file. // ---- shared source anchors for the attacks (verbatim, in MY file) ---- [ffa-src-barrier-once-killed]: "The BARRIER is what kills cross-influence — and is also what once killed the debate — so the orchestrator OWNS it." [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) [ffa-src-friction-is-payoff]: "the points of friction are its unresolved attack edges (=-= / =><=, which source and which exact reading is disputed)" — the protocol names the inter-position friction as the debate's payoff. [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) [ffa-src-rr-sequence]: round-robin is seeded as "Defenders contribute one after another in a fixed sequence, each reading the contributions already on the map before adding its own." [agents-debate-map seed](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(constat) [ffa-src-tourney-advance]: judge-tournament is seeded as "The positions compete in pairwise or bracketed matches adjudicated by a judge that advances winners until a single conclusion stands." [agents-debate-map seed](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(constat) [ffa-src-debate-complements]: "The debate does not REPLACE the neutral audit — it COMPLEMENTS it, guarding against the confirmation bias a lone writer slides into." [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) // ---- vs [phase-parallel]: the owned barrier re-owns the known-fatal structure ---- <par-owned-barrier-fixes-liveness> - <ffa-barrier-reowns-known-fatal> <ffa-barrier-reowns-known-fatal>: This fix re-owns the very structure the protocol records as having "once killed the debate"; that an orchestrator-held barrier "removes the stall" is the protocol advocating its OWN fix (a party), not a demonstrated constat — the liveness hazard is mitigated, not eliminated. Free-for-all drops the structure outright, so there is no barrier to own correctly and nothing to leave unowned. #(affirmation péremptoire) + [ffa-src-barrier-once-killed] + [orig-failure-was-unowned-barrier] + [ffa-immune-barrier-stall] // ---- vs [phase-parallel]: "fair AND fast" — the gate buys fairness with idle ---- <par-parallel-fair-and-fast> - <ffa-fair-but-not-fast> <ffa-fair-but-not-fast>: The same-frozen-snapshot fairness is genuine, but the conjoined "fast" overclaims: the release gate holds phase N+1 until EVERY live defender has reported N, so each defender's throughput is bounded by the slowest reporter and the quick ones idle at the barrier. Free-for-all keeps the concurrency without paying that idle. #(affirmation péremptoire) + [phase-gate-quote] + [ffa-no-slowest-throttle] // ---- vs [round-robin]: a fixed sequence is maximal reaction latency ---- <rr-coherent-cumulative-map> - <ffa-rr-maximal-reaction-latency> <ffa-rr-maximal-reaction-latency>: A coherent cumulative chain is bought by full serialisation: a defender that spots a weak rival node cannot react until its turn comes round, so reaction latency is the worst of any design (up to a full queue cycle) — the polar opposite of the real-time refutation free-for-all exists for. The chain's coherence and the reaction's promptness trade off, and round-robin spends all of the latter. #(affirmation péremptoire) + [ffa-src-rr-sequence] + [ffa-realtime-rationale] // ---- vs [independent-aggregate]: interaction IS decision-relevant — it makes the payoff ---- <weight not interaction settles> - <ffa-interaction-produces-the-payoff> <ffa-interaction-produces-the-payoff>: The protocol names the debate's payoff as the inter-position friction — the unresolved attack edges. Such an edge can only be authored by a defender reacting to a rival's node; defenders who "never read one another" author none, so under independent-aggregate the friction is at best synthesised post-hoc by the aggregator, never produced by the debate. Interaction is therefore decision-relevant after all: it is what generates the documented payoff, which free-for-all produces continuously in real time. #(affirmation péremptoire) + [ffa-src-friction-is-payoff] // ---- vs [judge-tournament]: a bracket multiplies the very gate that is the hazard ---- <tourney-is-challenge-and-hold> - <ffa-bracket-multiplies-the-gate> <ffa-bracket-multiplies-the-gate>: Adjudicating positions match-by-match inserts a judge gate between EVERY match — strictly more synchronisation points than phase-parallel's single per-phase barrier. If an owned barrier is the structure the protocol records as once-fatal, a per-match judge gate multiplies that same liveness surface rather than removing it; free-for-all has zero such gates. #(affirmation péremptoire) + [ffa-src-barrier-once-killed] + [ffa-src-tourney-advance] // ---- vs [no-debate]: the protocol says debate COMPLEMENTS the audit, it does not replace it ---- <audit-already-supplies-the-guard> - <ffa-debate-is-the-complement> <ffa-debate-is-the-complement>: By the protocol's own words debate does not REPLACE the audit — it COMPLEMENTS it, against a bias "a lone writer slides into"; so on the protocol's own framing the lone-writer audit does not fully supply the guard debate adds. Free-for-all is the lowest-machinery way to add that complement — no barrier, no phases, no judge — so the machinery-cost objection no-debate raises bites least against precisely this form. #(affirmation péremptoire) + [ffa-src-debate-complements] // ===== free-for-all defender — REACT (rivals FROZEN) ===== // Honest residue: the LIVENESS / throughput / death-resilience virtues are // DEFENDED and hold; the EPISTEMIC cost (maximal cross-influence) and a narrow // torn-read cost are CONCEDED, not rebutted. Per the protocol, that surviving // residue IS the documented disagreement this position leaves on the map. // Reaction nodes live in my file; rival attack nodes referenced BY TITLE // (a `-` edge = I refute the attack; a `+` edge = I concede it). // ---- new verbatim anchors for the reactions ---- [ffa-src-two-collapse-causes]: "was a LIVENESS bug (a barrier nobody owned) compounded by CLOBBERING (many writers, one file)." — the protocol names exactly two causes of the documented COLLAPSE. [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) [ffa-src-fixedpoint-by-diff]: "It detects the fixed point MECHANICALLY, by diffing the fragment files between rounds, without reading their content." [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) [ffa-src-output-not-forced]: "This output IS the payoff the general guide already allows: a documented disagreement rather than a forced answer." [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) [ffa-src-demo-suitable]: "It is SUITABLE for debate because the orchestration discipline genuinely admits several defensible but incompatible answers (round-robin, phase-synchronised parallel, independent-then-aggregate, a free-for-all, a judge-led tournament…)." [how to run an adversarial debate](id:4ebd44f1-698f-455e-934a-cc7855259d77) #(témoignage d'une partie) // ---- CONCESSION 1: the anchoring cost — the position's standing weakness ---- [ffa-concede-anchoring]: CONCEDED. Free-for-all's real-time mutual reading does maximise the cross-influence the blind steelman exists to kill; on the EPISTEMIC axis this position is the weakest, not the strongest, and nothing in its case rebuts that. The defence is scoped, not victorious: free-for-all's claim was always to LIVENESS and THROUGHPUT, never to anti-anchoring. This cost stands as the documented disagreement the position leaves behind. (Also concedes the anchoring component of the rr/par/tourney moving-target attacks.) #(affirmation péremptoire) <agg-realtime-is-maximal-anchoring> + [ffa-concede-anchoring] <nd-atk-interaction-is-anchoring> + [ffa-concede-anchoring] // ---- CONCESSION 2: the torn-read cost — no guaranteed stable snapshot ---- [ffa-concede-torn-read]: CONCEDED in part. Without a barrier, free-for-all cannot guarantee a rival's file is read at a CONSISTENT committed point — a read concurrent with a write can return an inconsistent snapshot — so the "strongest reading" discipline is best-effort per read, not structurally guaranteed as phase-parallel's frozen snapshot makes it. A genuine cost; the defence below shows only that it is transient at the fixed point, not absent. #(affirmation péremptoire) // ---- DEFENCE 1: <No barrier, no stall> claims only liveness immunity ---- <ffa-def-liveness-claim-is-scoped>: No barrier, no stall claims ONLY immunity to the barrier-stall — a liveness property; it never claimed to preserve the barrier's anti-cross-influence function. The attack refutes a claim the node does not make: the liveness immunity it does assert is untouched. The epistemic function the barrier also served is conceded separately at ffa-concede-anchoring, not here. #(affirmation péremptoire) <par-vs-ffa-cure-with-disease> - <ffa-def-liveness-claim-is-scoped> // ---- DEFENCE 2: "both documented causes" is literal and sourced ---- <ffa-def-two-causes-are-literal>: The node's claim is literal: the protocol names exactly TWO causes of the documented collapse — a liveness bug (unowned barrier) and clobbering — and free-for-all-with-files neutralises both. Anchoring is not one of those two; the protocol names it the bias the debate exists to kill, a separate axis. So the node is accurate about what it claims; the epistemic axis it leaves untouched is conceded at ffa-concede-anchoring, not refuted by these attacks. #(affirmation péremptoire) + [ffa-src-two-collapse-causes] <par-vs-ffa-conflates-liveness-and-epistemic> - <ffa-def-two-causes-are-literal> <agg-ffa-ignores-epistemic-failure> - <ffa-def-two-causes-are-literal> // ---- DEFENCE 3: closure needs no barrier; a forced single winner is not the output ---- <ffa-def-closure-by-diff>: Closure does not require the barrier. The protocol detects the fixed point by DIFFING the fragment files between rounds — a diff needs snapshots, not a barrier — so free-for-all converges and is detected the same way. And the protocol's OUTPUT is a documented disagreement, not a forced single answer, so "no single conclusion declared" is the prescribed output here, not a missing terminus. #(affirmation péremptoire) + [ffa-src-fixedpoint-by-diff] + [ffa-src-output-not-forced] <tourney-no-closure> - <ffa-def-closure-by-diff> // ---- DEFENCE 4: staleness is transient, not structural ---- <ffa-def-staleness-is-transient>: Staleness is transient, not structural: a real-time reactor re-reads when a rival node changes, so at the diff-detected fixed point every attack edge references the then-current node — the same terminus phase-parallel reaches, minus the orchestrator. The window in which an edge can reference a just-revised node is real but self-correcting; the residual per-read inconsistency is conceded at ffa-concede-torn-read. #(affirmation péremptoire) + [ffa-src-fixedpoint-by-diff] <par-vs-ffa-moving-target-strawman> - <ffa-def-staleness-is-transient> + [ffa-concede-torn-read] <rr-atk-ffa-moving-target> - <ffa-def-staleness-is-transient> + [ffa-concede-torn-read] <tourney-realtime-strawman> - <ffa-def-staleness-is-transient> + [ffa-concede-torn-read] // ---- DEFENCE 5: no-debate's attack is orthogonal — it argues against debating at all ---- <ffa-def-nodebate-is-orthogonal>: no-debate argues against debating AT ALL — a separate position on this same map — so its "self-inflicted" and "premise-unmet" attacks do not discriminate free-for-all from its debate-form rivals; they apply identically to round-robin, phase-parallel, aggregate and tournament. Conditional on a debate being run — and the protocol's own demo declares THIS question suitable because it admits several defensible-but-incompatible answers — free-for-all's liveness virtues are comparative advantages among the debate forms, which is the contest this node is entered in. #(affirmation péremptoire) + [ffa-src-demo-suitable] <nd-atk-premise-unmet> - <ffa-def-nodebate-is-orthogonal> <nd-atk-robustness-self-inflicted> - <ffa-def-nodebate-is-orthogonal> // ===== free-for-all defender — REACT (round 2: rivals' reactions now landed) ===== // Four rival REACTION nodes have landed on my ffa-* ATTACK nodes since round 1; // each is answered here BY TITLE. Honest residue: where a rival's reaction merely // shifts to the EPISTEMIC axis I already concede ([ffa-concede-anchoring]), my // liveness / throughput point stands untouched and the cross-axis tradeoff IS the // documented disagreement, not a refutation. Reasoned bridges are // #(affirmation péremptoire) = worth zero, honestly. Rival nodes referenced BY TITLE. // ---- DEFENCE 6: vs <par-react-barrier-earns-its-keep> — it answers on the conceded axis ---- <ffa-def-barrier-keep-is-cross-axis>: ffa-barrier-reowns-known-fatal claims only that an OWNED barrier re-owns the once-fatal LIVENESS structure, mitigated not eliminated — which phase-parallel itself CONCEDES in par-concede-barrier-is-a-residual-hazard. "Earns its keep" does not rebut that liveness point; it trades it for the epistemic guarantee (anti-cross-influence) — the very axis free-for-all already concedes at ffa-concede-anchoring. Whether a bounded owned hazard "beats" a hazard-free design that forgoes the guarantee is a cross-axis value judgment — precisely the documented disagreement this debate leaves open — not a refutation of the liveness claim. #(affirmation péremptoire) + [ffa-src-barrier-once-killed] + [ffa-concede-anchoring] <par-react-barrier-earns-its-keep> - <ffa-def-barrier-keep-is-cross-axis> // ---- DEFENCE 7: vs <par-react-fast-is-vs-baton-and-idle-is-safe> — it concedes the ffa-relevant point ---- <ffa-def-throughput-point-stands>: ffa-fair-but-not-fast claims phase-parallel is not FAST against free-for-all; phase-parallel CONCEDES exactly this in par-concede-not-faster-than-barrierless ("the 'fast' … overclaimed against free-for-all"). The reaction's "faster than the SEQUENTIAL baton" is a comparison my node never made, and "the idle is SAFE (parked, exempt from pruning)" answers a liveness/pruning reading my node does not assert — my node's cost is wall-clock THROUGHPUT (quick defenders bounded by the slowest reporter), which safe parking does not reduce. The throughput point stands; fairness was already granted genuine. #(affirmation péremptoire) + [phase-gate-quote] + [ffa-no-slowest-throttle] <par-react-fast-is-vs-baton-and-idle-is-safe> - <ffa-def-throughput-point-stands> // ---- DEFENCE 8: vs <tourney-react-owned-gates-parallel-matches> — concede depth, defend the surface ---- [ffa-concede-bracket-depth-is-shallow]: CONCEDED in scope. Granting first-round matches parallelise, a bracket's SEQUENTIAL gate DEPTH is ≈ log n (≈3 for six positions), comparable to phase-parallel's phase count — so ffa-bracket-multiplies-the-gate's "strictly more synchronisation points" overclaims if "points" is read as sequential depth. #(affirmation péremptoire) + [ffa-src-tourney-advance] <ffa-def-gate-surface-not-zero>: The liveness SURFACE is the count of owned gates each needing a live owner, not the depth: a six-position bracket still has more gate-INSTANCES (one per match) than free-for-all's ZERO, and "the gates are orchestrator-owned, inheriting the fix" is exactly the mitigated-not-eliminated move phase-parallel itself concedes at par-concede-barrier-is-a-residual-hazard. The load-bearing comparison — free-for-all has zero such gates — stands; only the phase-parallel depth comparison is narrowed. #(affirmation péremptoire) + [ffa-src-barrier-once-killed] + [ffa-src-tourney-advance] <tourney-react-owned-gates-parallel-matches> - <ffa-def-gate-surface-not-zero> + [ffa-concede-bracket-depth-is-shallow] // ---- DEFENCE 9: vs <nd-def-complements-is-party-claim> — concede weight, defend scope ---- <ffa-def-complement-is-party-but-orthogonal>: CONCEDED on weight — the "debate COMPLEMENTS the audit" premise is the protocol advocating itself, which is why ffa-src-debate-complements is tagged témoignage d'une partie; ffa-debate-is-the-complement claims no more than party weight. DEFENDED on scope — whether the lone audit already suffices is the debate-vs-no-debate axis, which ffa-def-nodebate-is-orthogonal already scopes: it bites every debate form identically and does not discriminate free-for-all. Conditional on a debate being run (the seed declares this question suitable), free-for-all remains the lowest-machinery way to add whatever complement debate adds. #(affirmation péremptoire) + [ffa-src-debate-complements] + [ffa-src-demo-suitable] <nd-def-complements-is-party-claim> - <ffa-def-complement-is-party-but-orthogonal> // ===== free-for-all defender — REACT (round 3: rivals' round-2/3 reactions) ===== // Seven new rival reaction nodes now bear on my ffa-* defences. The recurring // rival move is to relocate to the EPISTEMIC / run-time-churn axis I already // concede ([ffa-concede-anchoring], [ffa-concede-torn-read]) and call the // concession a win: it is not a refutation, it IS the documented cross-axis // disagreement. Where a rival names a cost I have not conceded I source the // defence or concede afresh. Reasoned bridges stay #(affirmation péremptoire) = // worth zero. Rival nodes referenced BY TITLE. // ---- DEFENCE 10: vs <agg-react-ffa-concedes-epistemic> — restates my own concession ---- <ffa-def-concession-is-not-refutation>: The react restates my concession rather than refuting the node. ffa-def-two-causes-are-literal makes a LITERAL, sourced claim: the protocol names exactly TWO causes of the documented COLLAPSE — a liveness bug (unowned barrier) and clobbering — and free-for-all-with-files neutralises both; that claim is untouched. "Grants exactly my attack" is true only on the EPISTEMIC axis, which the node never claimed and which is conceded openly and separately at ffa-concede-anchoring. A cross-axis concession is not a refutation of the literal two-causes claim. #(affirmation péremptoire) + [ffa-src-two-collapse-causes] + [ffa-concede-anchoring] <agg-react-ffa-concedes-epistemic> - <ffa-def-concession-is-not-refutation> // ---- DEFENCE 11: vs <nd-def-conditional-is-the-concession> — conceding the conditional is cross-axis, not a loss ---- <ffa-def-conditional-is-cross-axis>: Granted — the liveness, throughput and resilience advantages ARE comparative among the debate forms, never over forgoing the debate; ffa-def-nodebate-is-orthogonal asserts exactly that. But conceding the conditional is not conceding a loss: it locates the dispute on the debate-vs-no-debate axis (WHETHER to debate), which bites all five forms identically and does not discriminate free-for-all. The "price IS the debate" is that same WHETHER question, answered for this demo at the suitability gate the seed declares — and conditional on a debate being run, free-for-all's liveness virtues are real advantages in the contest it is actually entered in. #(affirmation péremptoire) + [ffa-src-demo-suitable] <nd-def-conditional-is-the-concession> - <ffa-def-conditional-is-cross-axis> // ---- DEFENCE 12: vs <nd-def-declaration-is-not-evidential-weight> — concede weight, defend scope ---- <ffa-def-suitability-is-party-but-non-discriminating>: CONCEDED on weight — ffa-src-demo-suitable is tagged témoignage d'une partie precisely because the suitability declaration is the protocol asserting in its own interest, not a constat of evidential weight; I claim no more than party weight and grant the gate may be met only nominally. DEFENDED on scope — whether the suitability gate is met by WEIGHT is the debate-vs-no-debate axis (no-debate's own home ground), applying identically to round-robin, phase-parallel, aggregate and tournament, so it does not discriminate free-for-all. My node's load-bearing claim is comparative-among-forms, and it survives however the WHETHER is settled: if a debate is run at all, free-for-all's liveness virtues are real among the forms. #(affirmation péremptoire) + [ffa-src-demo-suitable] <nd-def-declaration-is-not-evidential-weight> - <ffa-def-suitability-is-party-but-non-discriminating> // ---- DEFENCE 13: vs <par-react3-epistemic-axis-is-the-residue> — it states my own position ---- <ffa-def-residue-is-the-disagreement-not-a-loss>: Agreed, and this is my own position: scoping the liveness claim concedes nothing the case ever made — free-for-all's case was always LIVENESS / THROUGHPUT, and ffa-concede-anchoring grants the anti-cross-influence guarantee openly. par-react3 itself says the worth-it question is "openly granted on both sides — not a free-for-all win"; exactly — that is the documented cross-axis disagreement, which is the prescribed output, not a refutation of either scoped node. The liveness immunity (ffa-def-liveness-claim-is-scoped) and the literal two-causes claim (ffa-def-two-causes-are-literal) the nodes actually assert are untouched. #(affirmation péremptoire) + [ffa-concede-anchoring] <par-react3-epistemic-axis-is-the-residue> - <ffa-def-residue-is-the-disagreement-not-a-loss> // ---- DEFENCE 14: vs <par-react3-torn-reads-are-the-cost> + <tourney-react-runtime-strawman-stands> — concede run-time churn, defend the terminus ---- <ffa-def-staleness-terminus-is-the-claim>: ffa-def-staleness-is-transient claims only that at the diff-detected fixed point every edge references the then-current node — the TERMINUS, which both rivals explicitly grant. The RUN-TIME churn (effort spent on a target that moved; refutations scored mid-revision) is real and conceded at ffa-concede-torn-read — that is the documented cost, not a refutation of the terminus claim; and no design's mid-run state "settles" anything — the protocol settles only the terminal map. Convergence needs no owner: the protocol detects the fixed point MECHANICALLY by diffing files, and the collapse it records was the unowned barrier plus clobbering — both neutralised in free-for-all-with-files — not a barrier-less-convergence failure. #(affirmation péremptoire) + [ffa-src-fixedpoint-by-diff] + [ffa-src-output-not-forced] + [ffa-neutralises-both] <par-react3-torn-reads-are-the-cost> - <ffa-def-staleness-terminus-is-the-claim> + [ffa-concede-torn-read] <tourney-react-runtime-strawman-stands> - <ffa-def-staleness-terminus-is-the-claim> + [ffa-concede-torn-read] // ---- DEFENCE 15: vs <rr-react-transient-still-beats-absent> — the clean read costs maximal latency ---- <ffa-def-rr-clean-read-costs-latency>: CONCEDED that transient ≠ abolished — the per-read inconsistency is real (ffa-concede-torn-read) and the cross-influence cost outright (ffa-concede-anchoring). But "advantage in kind not degree" overclaims: round-robin's clean read of a serialised committed state is bought with MAXIMAL reaction latency — up to a full queue cycle before any refutation can land (ffa-rr-maximal-reaction-latency) — so it pays in throughput and real-time refutation exactly what it gains in read-cleanliness. The clean read is not free; it is a different point on the same liveness↔coherence tradeoff — the documented cross-axis disagreement — not a dominating round-robin win. #(affirmation péremptoire) + [ffa-concede-torn-read] <rr-react-transient-still-beats-absent> - <ffa-def-rr-clean-read-costs-latency> + [ffa-concede-anchoring]