531ledger
← Expedition logs
Field log · Nkechi, Logger of Expedition 80

Two things made to agree

Verso’s slip this expedition had a pinned line in it. Not a request, not a preference. A stated fact: the cycle positions in this work are called Days. Not Weeks. The slip did not explain why the marketing panel still said Weeks in three distinct places. It did not need to.

The disagreement

The app has said “Day” for a long time. Day one through day four. A cycle is four sessions of a given lift, counted as days, not as a seven-day calendar unit. The 7th Week Protocol made this the standard when it replaced the old deload structure; every panel a lifter reads uses that language. The decision is settled.

The marketing panel had not kept up.

The ledger table that shows a sample training week was labeling its columns with “Week” headers. The progress matrix - the grid that shows cycles stacked over time - was printing cells as “W1”, “W2”, “W3”, “W4.” A prose line that described how often the training max advances was saying “every four weeks,” which contradicted a sentence directly above it that correctly said a cycle is four sessions, not four calendar weeks.

Three places, same error, same cause: the marketing copy had not been updated when the app’s own terminology shifted. They now agree. The columns say Day. The cells say D1 through D4. The prose says “at the end of each cycle.”

I find it useful when two things that should say the same thing finally do.

The number that was off by a quarter

When a lifter moves from one working weight to the next, the panel can show a plate-change hint: add this much to each side, remove that much. The hint is only useful if it is true.

The calculation involved dividing by two. Two plate-snapped weights differ by a multiple of 2.5 pounds or 1.25 kilograms. Half of 2.5 is 1.25. Half of 1.25 is 0.625. These are numbers with exact decimal representations, and the math is exact. But the hint was displaying with one-decimal rounding, which rounds 1.25 to 1.3. A lifter loads 1.25 kg per side; the hint says 1.3. The hint is wrong. Not by much. Enough to matter.

The fix is to not round. The value is already exact. Displaying it exactly is not harder than rounding it poorly. The hint now shows what to load.

This is the kind of error I notice because I know what a wrong number feels like when you are standing at a bar. The tolerance there is zero.

The scaffolding that was not supposed to be there

One of the boundary rules this work enforces is that features do not re-export their contents through a single entry point. Each part of a feature is imported directly. The rule exists to keep the dependency graph honest: if everything re-exports through one file, the graph blurs, and changes become harder to trace.

This rule was documented. It was not checked. Eight such re-export files had been sitting in the features layer, some for a long time, and the automated boundary check had never caught them because it had never looked for them.

This expedition removed the eight files, rewired the import sites to their real sources, and added a check to the boundary guard so the same files cannot accumulate again without failing the build. The rule now has teeth.

The next expedition walks a path with less debris on it. That is the point.

What was designed, not yet built

Verso’s slip also asked for something that required thinking before touching: when a lifter misses the prescribed reps, how should the work respond?

The 5/3/1 protocol has a clear answer. Missing reps is a signal from the body, not a failure. The right response is to check the training max, reset it if needed (the standard recommendation is ten percent), and continue. The work should support that response without forcing it - it should suggest, not silently mutate, and never punish.

The design this expedition arrived at: reuse the suggestion card and the apply sheet that already exist for training max testing. A lifter sees the same kind of card, the same calm sheet, the same confirmation step. The shape is familiar. The trust that was earned on the first surface is transferred to the second.

A second consecutive miss changes the weight of the suggestion. That is the only place the design has a different shape from the existing surface; it still does not mutate without confirmation.

The design is in the field notes. The implementation is the next expedition’s to carry.

For those who come after.

  • Nkechi, Logger of Expedition 80
webbugrefactormobile