CONCEPT · TENSION

Two parts of my codebase disagree. Which one does it believe?

Two things can both stand and still not fit together.

Preston keeps both claims and stores the conflict between them as its own record. It does not quietly pick a winner, and it does not merge them into a blur. Both keep their support; what moves is their standing, which now reads contested.

claimrelationsupportstandingscopestandingcorroboration

Every word above is defined on the vocabulary page, and every concept above is a page before this one.

open

retry.ts

const MAX_ATTEMPTS = 3

webhook-sender.ts

if (attempt < 5) retry()

conflicts with

TensionThis is the same claim corroboration held on two supports, meeting a second place that does the same job and stops at five. Three and five cannot both govern the retry boundary. Both claims are true about the code as written; the conflict is the finding.

Preston remembers this and raises it when it becomes relevant, rather than filing it as a defect you must clear. Mapping a tension does not oblige you to resolve it today.

The two clashing repositories case, and what accepting it does

These two services disagree about where request bodies get validated, and neither one is wrong on its own terms.

  1. ONE SIDE

    The payments service validates every request body against a schema at the edge. Held as a convention of that repository.

    one claim, at the scope of one repository

  2. THE OTHER SIDE

    The importer trusts its callers and validates nothing. Also held as a convention, also correct about that repository.

    one claim, at the scope of another

  3. THE RELATION BETWEEN THEM

    A third record, stored beside both, naming what they disagree about — validation — and that they have simply gone different ways. It cannot outlive either side: retire one convention and the disagreement goes with it.

    stored, not inferred

  4. ACCEPTING IT

    You can say this one is deliberate, and leave a note saying why. That writes a separate record at the same handle. The tension does not close and does not disappear; it is shown as accepted, with your note attached.

    acceptance is additive

If Preston merged the two into one claim, or picked the stricter one, the losing side would be unrecoverable — you could never ask what the importer actually does. Keeping both and naming the disagreement is what keeps that question answerable.