Rebuild printable roast plans and remove machine-based adjustments
Test and deploy / test-and-deploy (push) Successful in 2m28s

This commit is contained in:
snowspeeder committed 2026-09-05 14:56:11 -04:00
1 parent e9f2393c96
commit 824a964f9d
30 files changed
+1721 -908

No files matched your search

+16 -12
View File
@@ -10,7 +10,6 @@
<link rel="manifest" href="/manifest.webmanifest?v=__ASSET_VERSION__" />
<link rel="icon" href="/icon.svg?v=__ASSET_VERSION__" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/icon.svg?v=__ASSET_VERSION__" />
<link rel="stylesheet" href="/worksheet.css" media="print" />
<link rel="stylesheet" href="/app.css?v=__ASSET_VERSION__" />
</head>
<body>
@@ -255,8 +254,7 @@
<button class="primary-btn" type="submit" id="chat-send">Send</button>
</form>
<p class="field-note">
Answers are grounded in this plan's numbers, your learned pace, and
the roaster behavior learned from your uploaded roasts.
Answers use this plan’s inputs and calculated milestones. Roaster history does not modify the plan.
</p>
</div>
</aside>
@@ -402,8 +400,7 @@
<div class="help-body" id="help-dialog-body"></div>
<p class="help-attrib">
Timing framework: Rob Hoos, <em>Cultivars: A Practical Guide for Coffee Roasters</em>.
Temperatures, bands and machine settings: your own logged roasts on the Hottop
KN-8828B-2K+ — they transfer to no other machine.
Temperatures are illustrative planning references, not universal targets. Enter your own readings; preheat setpoint and bean temperature are different measurements.
</p>
</div>
</dialog>
@@ -886,14 +883,21 @@
So the rule is: decline steadily from the
post-turning-point peak, through small frequent heat cuts
rather than a few big ones, and stay ahead of the
machine's roughly 60-second lag — what you change now
shows up a minute from now, so cut <em>before</em> the
machine’s response delay — changes take time to affect the bean, so cut <em>before</em> the
exotherm, gently. If a phase would need a rate outside the
proven bands to hit its milestone, the plan is not
illustrative ranges to hit its milestone, the plan is not
reachable — fix the ledger, not the roaster.
</p>
</details>
<div class="subhead">Temperatures &amp; rate-of-rise</div>
<p class="field-note">Blank fields use an illustrative curve: charge 392°F, yellow 320°F, first crack 392°F. These are not preheat settings. First crack must be heard; enter your own probe readings to replace the illustration. Drop is derived from development time and a declining planned rise.</p>
<div class="field-grid">
<label class="field">Preheat setpoint<input class="field-input" name="preheat.tempC" placeholder="°F" /></label>
<label class="field">Preheat time (min)<input class="field-input" name="preheat.minutes" /></label>
<label class="field">Preheat fan (%)<input class="field-input" name="preheat.fanPct" /></label>
<label class="field">Drum (%)<input class="field-input" name="preheat.drumPct" /></label>
</div>
<label class="field-label">Development target (m:ss, optional override)<input class="field-input" name="4.4" placeholder="e.g. 1:15" /></label>
<div class="milestone-list">
<div
class="milestone-row band-row"
@@ -1220,15 +1224,15 @@
name="6.4"
placeholder="0"
aria-label="Batch-size correction"
title="225 g lands first crack ~1:30–2:00 later than 200 g"
title="Optional adjustment from your own observations"
/>
</div>
<div class="ledger-row ledger-subtotal">
<span class="l-fid"></span
><span class="l-label">Subtotal (before pace)</span
><span class="l-label">Timing subtotal</span
><output class="l-val" data-out="subtotalA">—</output>
</div>
<div class="ledger-row ledger-pace">
<div class="ledger-row ledger-pace" hidden>
<span class="l-fid"></span
><span class="l-label">× Machine pace</span
><output class="l-val" data-out="pace-factor">×1.00</output>
@@ -1846,7 +1850,7 @@
</tr>
<tr class="row">
<td class="ln"></td>
<td class="desc">Subtotal (before pace)</td>
<td class="desc">Timing subtotal</td>
<td class="val"><output data-out="subtotalA">—</output></td>
</tr>
<tr class="row">