← back to pin list

Customer sheet and shop sheet are always separate

kerfmaster pin list · The spec — what we build to

rulingclosed d22d23closed d24A decision by Aristide or Jordan. True because it was decided; it can be superseded, but it cannot be stale.

Content last changed 2026-08-09 — computed from the item itself, not typed.

Contract — Report stage

This contract states a decision, not an implementation.

takes delivery

makes delivery

fails if One page serving two audiences; customer wording re-typed beside the numbers instead of derived from them; a number softened on the way out; the customer sheet linking to the shop sheet.

Contract last changed 2026-08-06 — computed, not typed. Dated separately from the text above, so neither date can speak for the other.

1 open question blocks this pin

⚠ Known defects

This item's subject has known defects in the code. Recorded and deliberately NOT fixed — recording a defect is not a licence to fix it. Source: cadmaster/defects.jsoncadmaster/KNOWN_DEFECTS.md, not this page — the text below is generated from the register so the two can never disagree.

Every result that goes to a customer is split into two generated pages from one dataset: a customer sheet and a shop sheet. This is a standing ruling by Aristide (2026-08-05), given in response to the MVT icon preview, which had customer copy and shop engineering on the same page.

What separates them

Rules that keep the split honest

  1. One dataset, two renderers. Both pages are generated from the same JSON so they cannot drift. The customer wording is derived from the measured numbers, never re-typed alongside them.
  2. The shop sheet quotes the customer sheet back. Each option shows the exact sentence the customer is reading, so anyone can check the translation didn’t soften the finding.
  3. The customer sheet never links to the shop sheet. The shop sheet links to the customer sheet; not the other way round.
  4. Softening is a defect. Plain language means fewer words, not a smaller number. If the shop sheet says it bends at 9 lb, the customer sheet says 9 lb.

First built for the MVT icon: build_mvt_preview.pyviewer/mvt-preview/ (customer) and viewer/mvt-preview/shop/ (shop).

2026-08-06 — the split now covers the mounting. Options B and C carry sited spacers: an exploded view, an edge-on section drawn to true scale in both axes, and a hole position for every spacer. Customer sheet gets the pictures, how far it stands off the wall, and the least metal round any hole; shop sheet gets the same sites as coordinates with clearance, web, what each spacer passes, and the note that a 0.219 in hole is under the pierce standoff. Two vocabularies, one map (CLIENT_WORDS): the build calls it the ring, the customer sentence says circle. The mounting sentence is generated by mount_note() from the sited spacers, like every other customer sentence on the page.

The customer letter is a renderer, never an author (added 2026-08-09, from the round-3 blind test)

The letter/cover page falls under one-dataset-two-renderers like every other customer artifact: every claim in it is DERIVED from the measured dataset, never hand-written beside it. Round 3 hand-wrote the letter and it contradicted the measurement in three places ("nothing shows on the front" vs 45 in² of visible template; "mounts anywhere on the wall" vs offsets with zero bolts; "13–15 lb" omitting an 11.5 lb plate the lags actually carry). A claim that cannot be traced to a measured number does not go in the letter. Any ship-hold or unresolved breach on the shop sheet appears on the letter too — a customer must never be invited to approve a job the shop has on hold.

The letter is graded by its FUNCTION: can a stranger choose?

Same doctrine as tolerance-follows-function, applied to documents (Aristide, 2026-08-09 — a letter you cannot decide from is "totally useless" no matter how clean its language). A customer letter is defined by what the reader can DO after reading it: pick an option and say yes. The options ARE the approval mechanism, so the letter must carry, all derived from the dataset: a preview image per option (front view, on the wall, rendered from the measured geometry — never a verbal description standing in for the picture); the measured weight/size/consequence numbers per option, unsoftened; cost per option, or an explicit "quote follows"; and the decision question itself. Grading is the same test: could a stranger pick an option from this page alone? If not, the letter fails regardless of how polite its prose is. Deferring the decisive artifact ("we can show you a drawing before you decide") is the letter confessing it failed its function.