N NoBullshit.wiki 中文

Breakfast shop inventory count specialist - the work-in-prep conversion tool: dough, soaking beans, fillings, and blanks converted back to flour, bean, and meat jin in one pass, ready to fold into the daily count sheet

Works with:Claude / GPT-4 classCategories:Breakfast ShopLevel:Intermediate Updated

Build a single-file HTML work-in-prep conversion tool for a breakfast
shop count specialist to use after closing - converting the measured
quantities of proofed dough, soaking beans, fillings, and blanks back
into raw-material jin of flour, dry beans, and meat filling, ready to
fold into the daily count sheet.

Background: at closing a breakfast shop always holds things the books
cannot place: proofed dough, beans soaking, mixed fillings, wrapped
buns not yet steamed. They occupy raw materials, but the flour and
beans on the books never got decremented - so the daily count never
reconciles. This tool does the conversion and nothing else.

Recipe table (editable on the page, persisted to localStorage):
- Each tub of proofed dough = [x] jin flour + [y] jin water
- Each jin of dry beans becomes [z] jin soaked (wet) beans
- Each uncooked bun blank = [x] liang flour + [y] liang filling
- Each youtiao blank = [x] liang flour
- Each bucket of raw soy milk = [x] jin dry beans + [y] jin water
- Every recipe change is dated - after a recipe changes, historical
  conversions are no longer comparable; the page header shows the
  current recipe's effective date

Count entry (today's measurements; decimals supported, e.g. 3.5 tubs):
- Proofed / resting dough: number of tubs
- Soaking beans: wet weight in jin
- Leftover fillings: meat filling jin / vegetable filling jin (no
  conversion; pass through to output as-is)
- Bun blanks: piece count; youtiao blanks: piece count
- Raw soy milk: bucket count

Output (the tool's only job):
- "Work-in-prep converted to raw materials" table: flour / dry bean
  occupation in jin, each line showing the full conversion (e.g.
  3.5 tubs x 4 jin flour per tub = 14 jin), hand-checkable
- Each line tagged "deducts from raw-material line..." - which
  raw-material book balance this number comes off, preventing
  semi-finished goods being double-counted against raw materials
- Meat and vegetable fillings listed as-is, tagged "already in
  work-in-prep form; do not also enter as raw material"
- One total line: copy directly into the daily count sheet's
  "work-in-prep converted to raw materials" row

Implementation requirements:
- Single file, no external dependencies, no network requests;
  recipes in localStorage, survive refresh
- All conversions laid out on the page; no black-box results
- Print-friendly, fits half a page of A4
- An "est." toggle beside each measured input; when checked, the
  corresponding output line carries an "est." badge

Notes for the coding agent:
- No trend charts, no monthly comparisons - this is a same-day
  converter, not an analyzer
- When the recipe table is incompletely filled, affected output
  lines display "recipe missing," never zero
- Units are jin and liang; do not auto-convert grams or kilograms -
  that fights the shop's spoken units

Why it is written this way

Everybody knows work-in-prep conversion should happen daily; nobody does, and the blocker is arithmetic, not awareness: flour per tub, soak ratios, filling content of eighty-odd blanks - ten minutes of hand math at the exact moment everyone most wants to go home. Skipping once has no consequence, so it is skipped forever, and the daily count permanently carries an unexplained wedge that dead-ends every book-to-physical investigation at the work-in-prep door. The tool's entire value is compressing the cost to one minute: enter a few numbers per zone, copy out one total line.

"Which raw-material line it deducts from" mechanizes double-counting prevention. Double-counting is not carelessness but inevitability: a person counting blanks naturally counts pieces, then weighs the flour in jin - each number is right alone and together they are wrong. Forcing every output to name the book line it offsets turns "pick one of the two" from a demand on the human into a property of the table structure - whoever uses it cannot double-count. Dating recipe changes works the same way: after a recipe changes, last week's 14 jin and this week's 14 jin are no longer the same thing, and comparing them directly yields the false conclusion that occupation is flat. The header date remembers "comparable history ends here" on the user's behalf.

Laying out every conversion, and showing "recipe missing" instead of computing zeros for unfilled recipes, is trust design for this class of tool: nobody in the shop trusts a black box - the count specialist sanity-checks against the number in their head, and one mismatch retires the whole tool. Zeros are more dangerous still: with an incomplete recipe the tool would emit an innocent-looking column of zeros whose total gets copied straight into the count sheet, wrong without a sound. The mandatory "est." badge enforces honesty: half a tub of dough can only be eyeballed, so estimation is allowed but always labeled - the sheet's reader knows exactly which number is soft.

Refusing trend charts and monthly comparisons draws the tool's boundary. Same-day converters drifting into analytics is the first step of the slide: data accumulates, someone predicts tomorrow's prep from it, derives a loss rate - and half its inputs are eyeballed "est." figures that cannot support any longitudinal conclusion. The tool answers "how much raw material does today's work-in-prep occupy" and nothing else.

Variables

Variable Notes
Recipe parameters Flour-to-water per tub, soak ratio, per-blank flour and filling, beans per milk bucket - all from your own measured recipes; date every change the day it happens

work-in-prep conversionsingle-file tooldaily count sheet