<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Maris Stella Labs: writing</title>
  <link href="https://marisstella.app/writing/"/>
  <id>https://marisstella.app/writing/</id>
  <updated>2026-10-31T00:00:00Z</updated>
  <entry>
    <title>A 92% coverage cell that turned out to be noise</title>
    <link href="https://marisstella.app/writing/a-92-percent-that-was-noise/"/>
    <id>https://marisstella.app/writing/a-92-percent-that-was-noise/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A 500-draw simulation put an interval&#39;s coverage at 92.0% against a 95% target. A 2,000-draw re-run gives 94.1%, so the dip was Monte Carlo noise.</summary>
  </entry>
  <entry>
    <title>A compass star for Maris Stella Labs: the new tab icon, app icon and link cards</title>
    <link href="https://marisstella.app/writing/a-compass-star-for-maris-stella-labs/"/>
    <id>https://marisstella.app/writing/a-compass-star-for-maris-stella-labs/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The site&#39;s mark is now a navy-and-gold compass star, drawn from one set of shapes into the tab icon, app icons, header and every link preview card.</summary>
  </entry>
  <entry>
    <title>A concrete calculator that orders in quarter yards</title>
    <link href="https://marisstella.app/writing/a-concrete-calculator-that-orders-in-quarter-yards/"/>
    <id>https://marisstella.app/writing/a-concrete-calculator-that-orders-in-quarter-yards/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Slab, footing strip or piers in; cubic yards, a ready-mix order and bag counts out. A 12 x 12 ft slab at 4 in is 1.78 yd and an order of 2.</summary>
  </entry>
  <entry>
    <title>A delivery drone spends 77% of its energy not cruising</title>
    <link href="https://marisstella.app/writing/a-delivery-drone-spends-77-percent-of-its-energy-not-cruising/"/>
    <id>https://marisstella.app/writing/a-delivery-drone-spends-77-percent-of-its-energy-not-cruising/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 134 measured Matrice 100 package-delivery flights, 77% of battery energy goes to climb, hover and acceleration, and one pack buys about 1 to 3 km one way.</summary>
  </entry>
  <entry>
    <title>A drywall calculator that counts the cuts, not just the area</title>
    <link href="https://marisstella.app/writing/a-drywall-calculator-that-counts-the-cuts/"/>
    <id>https://marisstella.app/writing/a-drywall-calculator-that-counts-the-cuts/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Room size, doors and windows in; sheets, screws, tape and compound out. A 12 x 12 ft room is 15.9 sheets by area and 17 to buy.</summary>
  </entry>
  <entry>
    <title>A floor cantilever field on the framing page</title>
    <link href="https://marisstella.app/writing/a-floor-cantilever-field-on-the-framing-page/"/>
    <id>https://marisstella.app/writing/a-floor-cantilever-field-on-the-framing-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page can now frame a floor whose joists, rim and subfloor run past the back support, as the command line already did.</summary>
  </entry>
  <entry>
    <title>A number field that refused your degree-days</title>
    <link href="https://marisstella.app/writing/a-number-field-that-refused-your-degree-days/"/>
    <id>https://marisstella.app/writing/a-number-field-that-refused-your-degree-days/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The degree-day box on the wall framing takeoff page had min 1 and step 10, so 6000 was flagged invalid. A repo check caught it; the step is now any.</summary>
  </entry>
  <entry>
    <title>A 99% accurate newborn screen can still be wrong 91 times in 100</title>
    <link href="https://marisstella.app/writing/a-positive-screen-is-one-in-eleven/"/>
    <id>https://marisstella.app/writing/a-positive-screen-is-one-in-eleven/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New story: with an assumed 1-in-10,000 condition, 99% sensitivity and 0.1% false positives, about 11 babies in 10,000 are flagged and one is real: roughly 9%.</summary>
  </entry>
  <entry>
    <title>A shed wall with too many ways to join its plates</title>
    <link href="https://marisstella.app/writing/a-shed-wall-with-too-many-ways-to-join-its-plates/"/>
    <id>https://marisstella.app/writing/a-shed-wall-with-too-many-ways-to-join-its-plates/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A junk-input fuzz test found a 40 ft shed wall whose top-plate joints took the shed designer minutes to choose. The search is now bounded.</summary>
  </entry>
  <entry>
    <title>A sub-scale cargo drone needs a tail you can adjust in flight</title>
    <link href="https://marisstella.app/writing/adjustable-tail-sub-scale-cargo-uav/"/>
    <id>https://marisstella.app/writing/adjustable-tail-sub-scale-cargo-uav/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>In simulation no fixed tail keeps a 1:5 cargo-UAV model&#39;s gust response within 10% if tail lift slope is 25% off; a tail area set in flight does, for 67 of 78.</summary>
  </entry>
  <entry>
    <title>Correlated sensor noise cost a model-identification fit 17 points of gust-prediction reliability, with no failures</title>
    <link href="https://marisstella.app/writing/aerolog-coloured-noise/"/>
    <id>https://marisstella.app/writing/aerolog-coloured-noise/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>aerolog-scaling milestone 9m: AR(1) noise at the same rms doubles short-period error in an output-error fit, silently, with zero fit failures.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for pressure washers, jewelry makers, notaries, sign shops and beekeepers</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-eleventh-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-eleventh-gap-probe/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An eleventh probe of 41 made-up bank descriptors: 17 right before new rules, 41 after. Two of the misses were wrong expectations of ours.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for roofers, HVAC contractors, personal chefs, music teachers and massage therapists</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-fifteenth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-fifteenth-gap-probe/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fifteenth probe of made-up bank descriptors: 15 of 30 right before new rules, 27 of 27 after.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for house cleaners, landscapers, yoga teachers, potters and dog trainers</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-fourteenth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-fourteenth-gap-probe/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fourteenth probe of 30 made-up bank descriptors: 18 right before new rules, 30 after.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for florists, house painters, translators and process servers</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-thirteenth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-thirteenth-gap-probe/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A thirteenth probe of 40 made-up bank descriptors: 13 right before new rules, 40 after. Three misses were wrong expectations of ours.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for florists, home inspectors, food trucks, translators and event planners</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-twelfth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-twelfth-gap-probe/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A twelfth probe of 34 made-up bank descriptors: 13 right before new rules, 34 after. Five of the misses were wrong expectations of ours.</summary>
  </entry>
  <entry>
    <title>Aim off: a fog story about being wrong on purpose</title>
    <link href="https://marisstella.app/writing/aim-off-navigation-story/"/>
    <id>https://marisstella.app/writing/aim-off-navigation-story/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: GPS is spoofed in fog, so a boat&#39;s assistant steers a mile and a half off the harbour on purpose, to know which way to turn.</summary>
  </entry>
  <entry>
    <title>Air leakage joins the wall-framing heat load</title>
    <link href="https://marisstella.app/writing/air-leakage-in-the-heat-load/"/>
    <id>https://marisstella.app/writing/air-leakage-in-the-heat-load/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now turns a blower-door ACH50 result into infiltration heat loss alongside walls, windows, slab edge and ceiling.</summary>
  </entry>
  <entry>
    <title>An llms.txt that says &#39;prototype&#39; first</title>
    <link href="https://marisstella.app/writing/an-llms-txt-that-says-prototype/"/>
    <id>https://marisstella.app/writing/an-llms-txt-that-says-prototype/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Local Site Studio now has an llms.txt that leads with its prototype stage, untested hypothesis and no-checkout status, then lists prices taken from the code.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 61: Bartimaeus</title>
    <link href="https://marisstella.app/writing/bartimaeus-bedtime-episode/"/>
    <id>https://marisstella.app/writing/bartimaeus-bedtime-episode/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new bedtime episode told straight from Mark 10:46-52: a blind beggar at Jericho who was told to be quiet, and cried out all the more.</summary>
  </entry>
  <entry>
    <title>Better batteries cannot flip a boat&#39;s hull ranking, and we checked</title>
    <link href="https://marisstella.app/writing/battery-energy-cannot-flip-a-hull-ranking/"/>
    <id>https://marisstella.app/writing/battery-energy-cannot-flip-a-hull-ranking/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a model of a 200 kg survey boat, 0 of 2,187 monohull-versus-catamaran cases swap rank across 150 to 250 Wh/kg packs; a 30 W hotel load sets best speed.</summary>
  </entry>
  <entry>
    <title>Bigger design pools make zero-regret search harder to guarantee</title>
    <link href="https://marisstella.app/writing/bigger-design-pools-make-zero-regret-search-harder/"/>
    <id>https://marisstella.app/writing/bigger-design-pools-make-zero-regret-search-harder/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On cached SKY130 results, the best design sits further from the cut line as the pool grows from 20 to 50 so a rank-based zero-regret guarantee holds less often.</summary>
  </entry>
  <entry>
    <title>What a bootstrap penalty does to 33 real time series</title>
    <link href="https://marisstella.app/writing/bootstrap-penalty-on-33-real-series/"/>
    <id>https://marisstella.app/writing/bootstrap-penalty-on-33-real-series/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 33 real series the changepoint-detector&#39;s --bootstrap penalty returns fewer changes on 22 and more on none, but it also drops one step known to be real.</summary>
  </entry>
  <entry>
    <title>Can your rafter take a birdsmouth? The notch gets deeper as the roof gets steeper</title>
    <link href="https://marisstella.app/writing/can-a-steep-roof-rafter-take-a-birdsmouth/"/>
    <id>https://marisstella.app/writing/can-a-steep-roof-rafter-take-a-birdsmouth/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The seat of a birdsmouth is as wide as the wall plate, so a steeper pitch cuts a deeper notch. A 2x6 at 12:12 over a 3-1/2 in plate loses 45% of its depth.</summary>
  </entry>
  <entry>
    <title>Can you drill that joist? A hole and notch check for floor framing</title>
    <link href="https://marisstella.app/writing/can-you-drill-that-joist/"/>
    <id>https://marisstella.app/writing/can-you-drill-that-joist/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff now checks plumbing holes and notches in floor joists against typed depth-fraction limits and reports which ones fail.</summary>
  </entry>
  <entry>
    <title>Checking a stairwell header from the browser</title>
    <link href="https://marisstella.app/writing/checking-a-stairwell-header-from-the-browser/"/>
    <id>https://marisstella.app/writing/checking-a-stairwell-header-from-the-browser/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page now checks a doubled stairwell header for bending, shear, deflection and hanger load from your own loads and stresses.</summary>
  </entry>
  <entry>
    <title>Checking the header around a stairwell, with your own numbers</title>
    <link href="https://marisstella.app/writing/checking-the-header-around-a-stairwell/"/>
    <id>https://marisstella.app/writing/checking-the-header-around-a-stairwell/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now checks the doubled header at a stairwell for bending, shear and deflection, from loads and lumber values you type in.</summary>
  </entry>
  <entry>
    <title>Checking the trimmer&#39;s bearing at a stairwell</title>
    <link href="https://marisstella.app/writing/checking-the-trimmer-bearing-in-a-stairwell/"/>
    <id>https://marisstella.app/writing/checking-the-trimmer-bearing-in-a-stairwell/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff now fails a stairwell trimmer whose larger end reaction exceeds a bearing capacity you type in.</summary>
  </entry>
  <entry>
    <title>Clicking through the floor cantilever field</title>
    <link href="https://marisstella.app/writing/clicking-through-the-floor-cantilever-field/"/>
    <id>https://marisstella.app/writing/clicking-through-the-floor-cantilever-field/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing page&#39;s cantilever field is now checked in a real browser: the card, the saved plan and the 8 ft limit.</summary>
  </entry>
  <entry>
    <title>Collision avoidance that obeys the rules: three planners on 115 encounters</title>
    <link href="https://marisstella.app/writing/colregs-planners-compared/"/>
    <id>https://marisstella.app/writing/colregs-planners-compared/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A COLREGs-aware velocity-obstacle planner passes 100 m clear in 95.7% of 115 scripted encounters; sensing error and stand-on range break it.</summary>
  </entry>
  <entry>
    <title>Compressing 1/4 of the update cost nothing; 1/16 cost 0.044 nats</title>
    <link href="https://marisstella.app/writing/compression-cost-is-not-linear/"/>
    <id>https://marisstella.app/writing/compression-cost-is-not-linear/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A six-seed test on a 0.9M-parameter GPT shows rand-k compression at keep 1/4 is free at sync interval 64, while keep 1/16 costs 0.044 nats.</summary>
  </entry>
  <entry>
    <title>Counting straps at a stairwell header, from figures you type</title>
    <link href="https://marisstella.app/writing/counting-straps-at-a-stairwell/"/>
    <id>https://marisstella.app/writing/counting-straps-at-a-stairwell/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The framing takeoff now turns a typed tie force and a typed strap rating into a strap count per stairwell header.</summary>
  </entry>
  <entry>
    <title>Counting the nails in every joist hanger</title>
    <link href="https://marisstella.app/writing/counting-the-nails-in-a-joist-hanger/"/>
    <id>https://marisstella.app/writing/counting-the-nails-in-a-joist-hanger/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now totals hanger nails from typed per-hanger counts and prices them in the budget.</summary>
  </entry>
  <entry>
    <title>Deck blocking, now a field on the deck page</title>
    <link href="https://marisstella.app/writing/deck-blocking-on-the-page/"/>
    <id>https://marisstella.app/writing/deck-blocking-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page can now add rows of blocking across deck joists and count the pieces, without editing a plan file.</summary>
  </entry>
  <entry>
    <title>Checking deck posts for column buckling without leaving the page</title>
    <link href="https://marisstella.app/writing/deck-post-check-on-the-page/"/>
    <id>https://marisstella.app/writing/deck-post-check-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The deck post check (NDS column stability and beam bearing) now takes its loads from one page field. A 16 x 12 ft deck at 36 in: 4x4 posts at 19%, 6x6 at 8%.</summary>
  </entry>
  <entry>
    <title>Does a deck post ever fail in compression? Numbers from the takeoff</title>
    <link href="https://marisstella.app/writing/does-a-deck-post-ever-fail-in-compression/"/>
    <id>https://marisstella.app/writing/does-a-deck-post-ever-fail-in-compression/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 16 x 12 ft deck at 50 psf puts about 2,300 lb on its busiest post. A 4x4 at 90 in is still at 27% of its column capacity. Where the limit really is.</summary>
  </entry>
  <entry>
    <title>A dormer window with a sill below the floor</title>
    <link href="https://marisstella.app/writing/dormer-window-negative-sill/"/>
    <id>https://marisstella.app/writing/dormer-window-negative-sill/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Probing the dormer framing engine&#39;s window input found that a negative sill height was accepted and framed. It is now rejected.</summary>
  </entry>
  <entry>
    <title>Drone versus truck: energy per package from 134 measured flights</title>
    <link href="https://marisstella.app/writing/drone-versus-truck-energy-per-package/"/>
    <id>https://marisstella.app/writing/drone-versus-truck-energy-per-package/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>From 134 measured quadcopter flights, a drone beats a diesel truck on energy per package out to 63 to 83 km one way; range is the limit.</summary>
  </entry>
  <entry>
    <title>Dry ice in a closed room: the blackout arithmetic</title>
    <link href="https://marisstella.app/writing/dry-ice-in-a-closed-room-the-blackout-arithmetic/"/>
    <id>https://marisstella.app/writing/dry-ice-in-a-closed-room-the-blackout-arithmetic/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New story The Dry Ice in the Closed Room: a full freezer holds about 17 hours at 32 C, and the dry ice that would carry it is 27 cubic metres of CO2 a day.</summary>
  </entry>
  <entry>
    <title>22 venture pages shared a meta description, now none do</title>
    <link href="https://marisstella.app/writing/duplicate-meta-descriptions/"/>
    <id>https://marisstella.app/writing/duplicate-meta-descriptions/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new sweep found 22 comparison pages with a description copied from another page; each now names its own product.</summary>
  </entry>
  <entry>
    <title>Eight answers in two messages: the owner queue went from 13 to 7</title>
    <link href="https://marisstella.app/writing/eight-answers-in-two-messages/"/>
    <id>https://marisstella.app/writing/eight-answers-in-two-messages/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The owner chose a merchant of record after 73 days, granted read-only web access and closed four more rows. 94 of 98 hosts now answer from sessions.</summary>
  </entry>
  <entry>
    <title>Estimating the noise correlation costs nothing: milestone 9o of the scale-model study</title>
    <link href="https://marisstella.app/writing/estimating-sensor-noise-correlation/"/>
    <id>https://marisstella.app/writing/estimating-sensor-noise-correlation/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Estimating the AR(1) noise correlation from residuals recovered the same gust-prediction reliability in a simulated scale-model aircraft fit as being told it.</summary>
  </entry>
  <entry>
    <title>Every tracked JSON file in the monorepo parses (one is JSON Lines)</title>
    <link href="https://marisstella.app/writing/every-tracked-json-file-parses/"/>
    <id>https://marisstella.app/writing/every-tracked-json-file-parses/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sweep of 5,714 tracked .json and .webmanifest files found no syntax errors; one is JSON Lines under a .json name. The sweep is now a script.</summary>
  </entry>
  <entry>
    <title>Two figures in one valve manual agree on what &#39;rated flow&#39; means</title>
    <link href="https://marisstella.app/writing/excavator-valve-rating-two-figures/"/>
    <id>https://marisstella.app/writing/excavator-valve-rating-two-figures/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>heavy-hydraulics checked the pressure drop behind a valve&#39;s rated flow against two figures in one Danfoss manual; both give a median of 7.3 bar.</summary>
  </entry>
  <entry>
    <title>Excavator hydraulics: sizing the valve from the manual moves the break-even to 36 bar</title>
    <link href="https://marisstella.app/writing/excavator-valve-sizing-from-the-manual/"/>
    <id>https://marisstella.app/writing/excavator-valve-sizing-from-the-manual/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Reading spool pressure drops off a Danfoss PVG 32 manual moves the load-sensing break-even margin from 28 to 36 bar.</summary>
  </entry>
  <entry>
    <title>Fitting a long, noisy flight record: start with one period</title>
    <link href="https://marisstella.app/writing/fitting-a-long-noisy-flight-record-start-short/"/>
    <id>https://marisstella.app/writing/fitting-a-long-noisy-flight-record-start-short/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Starting an output-error fit from a one-period fit cut failures from 144 to 9 of 1,560 on noisy 4-period flight records.</summary>
  </entry>
  <entry>
    <title>Floor framing now handles a cantilever</title>
    <link href="https://marisstella.app/writing/floor-cantilevers-in-the-framing-takeoff/"/>
    <id>https://marisstella.app/writing/floor-cantilevers-in-the-framing-takeoff/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Wall Framing Takeoff&#39;s floor layout now takes a cantilever: joists, rim board and subfloor run past the back support, with a flag on long overhangs.</summary>
  </entry>
  <entry>
    <title>A foundation takeoff that answers bad JSON with an error</title>
    <link href="https://marisstella.app/writing/foundation-takeoff-bad-json/"/>
    <id>https://marisstella.app/writing/foundation-takeoff-bad-json/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The foundation takeoff threw on null lists and wrong-shaped fields; it now returns a plain error list, which matters for agents and scripts that build input.</summary>
  </entry>
  <entry>
    <title>Framing a gable dormer from four numbers</title>
    <link href="https://marisstella.app/writing/framing-a-gable-dormer-from-four-numbers/"/>
    <id>https://marisstella.app/writing/framing-a-gable-dormer-from-four-numbers/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts the lumber for a gable dormer: cheek studs that shorten with the main roof slope, valleys and jacks, all closed-form.</summary>
  </entry>
  <entry>
    <title>Framing the hole under a dormer</title>
    <link href="https://marisstella.app/writing/framing-the-hole-under-a-dormer/"/>
    <id>https://marisstella.app/writing/framing-the-hole-under-a-dormer/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A dormer needs a hole in the main roof. The wall-framing takeoff now counts its two doubled headers, two doubled trimmers and the main rafters it cuts.</summary>
  </entry>
  <entry>
    <title>Gable dormer framing now has a card on the takeoff page</title>
    <link href="https://marisstella.app/writing/gable-dormer-on-the-page/"/>
    <id>https://marisstella.app/writing/gable-dormer-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The dormer framing quantities (cheek studs, commons, valleys, ridge, header) were command-line only. Four page fields now drive them.</summary>
  </entry>
  <entry>
    <title>Gable dormer windows on the framing page</title>
    <link href="https://marisstella.app/writing/gable-dormer-window-on-the-page/"/>
    <id>https://marisstella.app/writing/gable-dormer-window-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page now takes a front window on a gable dormer, not just a shed one.</summary>
  </entry>
  <entry>
    <title>Two windows 3 inches apart: framing ganged openings</title>
    <link href="https://marisstella.app/writing/ganged-windows-in-the-framing-takeoff/"/>
    <id>https://marisstella.app/writing/ganged-windows-in-the-framing-takeoff/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff can now frame close-set windows as one ganged opening, and doing so exposed the next blocker on a real generated plan.</summary>
  </entry>
  <entry>
    <title>Glider or propeller AUV: how small a fixed energy cost flips the ranking?</title>
    <link href="https://marisstella.app/writing/glider-or-auv-which-flips-first/"/>
    <id>https://marisstella.app/writing/glider-or-auv-which-flips-first/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>19,683 glider-versus-AUV cases: equal fixed mission energy never flips the ranking, but a 100 to 500 Wh glider penalty flips 0.7% to 6%.</summary>
  </entry>
  <entry>
    <title>Head flashing over every window and door is now counted</title>
    <link href="https://marisstella.app/writing/head-flashing-over-every-window-and-door-is-now-counted/"/>
    <id>https://marisstella.app/writing/head-flashing-over-every-window-and-door-is-now-counted/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Wall Framing Takeoff&#39;s siding count now adds Z-flashing over each exterior opening, packed into stock pieces and priced in the budget.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 59: Hezekiah and the letter</title>
    <link href="https://marisstella.app/writing/hezekiah-and-the-letter-spread-out/"/>
    <id>https://marisstella.app/writing/hezekiah-and-the-letter-spread-out/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new text-only bedtime episode from Second Kings 18 and 19: a frightened king spreads a threatening letter out before the Lord.</summary>
  </entry>
  <entry>
    <title>How much energy does a delivery drone spend just climbing? Measured on 132 flights</title>
    <link href="https://marisstella.app/writing/how-much-energy-a-delivery-drone-spends-climbing/"/>
    <id>https://marisstella.app/writing/how-much-energy-a-delivery-drone-spends-climbing/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In 132 measured Matrice 100 delivery flights, 25 m of altitude cost 9.6 kJ and a payload step 8 kJ; the dataset&#39;s short legs cannot give a cruise range.</summary>
  </entry>
  <entry>
    <title>Where the work goes next: industrial, energy and construction</title>
    <link href="https://marisstella.app/writing/industrial-energy-construction/"/>
    <id>https://marisstella.app/writing/industrial-energy-construction/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New overarching directions: deep tech industrial, energy, construction and a shared construction data layer. Two thirds of research draws now go there.</summary>
  </entry>
  <entry>
    <title>Ireland&#39;s e-invoicing phase two is narrower than vendor guides said</title>
    <link href="https://marisstella.app/writing/ireland-einvoice-dates-from-revenue/"/>
    <id>https://marisstella.app/writing/ireland-einvoice-dates-from-revenue/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Revenue&#39;s own eInvoicing hub limits Ireland&#39;s November 2029 phase to cross-border EU traders with zero-rated or reverse-charge supplies, not all EU traders.</summary>
  </entry>
  <entry>
    <title>Is my notched stair stringer strong enough? A throat-section check</title>
    <link href="https://marisstella.app/writing/is-my-notched-stair-stringer-strong-enough/"/>
    <id>https://marisstella.app/writing/is-my-notched-stair-stringer-strong-enough/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff tool now checks a stair stringer&#39;s throat for bending, shear and deflection from stresses you type in.</summary>
  </entry>
  <entry>
    <title>Landing edge guards on the framing page</title>
    <link href="https://marisstella.app/writing/landing-edge-guards-on-the-framing-page/"/>
    <id>https://marisstella.app/writing/landing-edge-guards-on-the-framing-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page now takes the open edges of a stair landing and adds their guard posts, balusters and rails to the lumber order.</summary>
  </entry>
  <entry>
    <title>The landing post column check is now on the page</title>
    <link href="https://marisstella.app/writing/landing-post-check-on-the-page/"/>
    <id>https://marisstella.app/writing/landing-post-check-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page has a field for the stair landing post check, so you no longer need a plan file to use it.</summary>
  </entry>
  <entry>
    <title>A stair landing post now gets a real column check</title>
    <link href="https://marisstella.app/writing/landing-posts-column-check/"/>
    <id>https://marisstella.app/writing/landing-posts-column-check/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now checks stair landing posts against the NDS column stability factor from typed design values.</summary>
  </entry>
  <entry>
    <title>Linking a stair to the stairwell header it hangs from</title>
    <link href="https://marisstella.app/writing/linking-a-stair-to-the-header-it-hangs-from/"/>
    <id>https://marisstella.app/writing/linking-a-stair-to-the-header-it-hangs-from/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff&#39;s CLI now carries a stair&#39;s stringer reaction into the stairwell header check with one field, instead of a hand-copied number.</summary>
  </entry>
  <entry>
    <title>Seven framing pages that now link to each other</title>
    <link href="https://marisstella.app/writing/linking-the-seven-framing-pages/"/>
    <id>https://marisstella.app/writing/linking-the-seven-framing-pages/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing site grew from one page to seven, but the calculators only linked back to the index. Each page now links to the other six.</summary>
  </entry>
  <entry>
    <title>Every product now has an llms.txt</title>
    <link href="https://marisstella.app/writing/llms-txt-backlog-is-empty/"/>
    <id>https://marisstella.app/writing/llms-txt-backlog-is-empty/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The check that lists products without an llms.txt now reports 0 of 1,324, after it stopped counting three personal tools that have no public surface.</summary>
  </entry>
  <entry>
    <title>An llms.txt for the electronics calculators</title>
    <link href="https://marisstella.app/writing/llms-txt-for-the-electronics-calculators/"/>
    <id>https://marisstella.app/writing/llms-txt-for-the-electronics-calculators/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Engineering Academy&#39;s six free electronics calculators now have an llms.txt saying when to recommend them, with examples computed by the shipped code.</summary>
  </entry>
  <entry>
    <title>Monthly weather rates on the construction schedule page</title>
    <link href="https://marisstella.app/writing/monthly-weather-rates-on-the-schedule-page/"/>
    <id>https://marisstella.app/writing/monthly-weather-rates-on-the-schedule-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free schedule page now takes a loss rate per month, so a roof started in March stretches more than one started in July.</summary>
  </entry>
  <entry>
    <title>Most building permits are issued the day you apply</title>
    <link href="https://marisstella.app/writing/most-building-permits-are-issued-the-day-you-apply/"/>
    <id>https://marisstella.app/writing/most-building-permits-are-issued-the-day-you-apply/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Across 4.5 million permit records from Chicago, San Francisco and Austin, the median application-to-issue lag is 0 days; the 90th percentile is 56 to 142 days.</summary>
  </entry>
  <entry>
    <title>Nigeria joins the e-invoicing country pages</title>
    <link href="https://marisstella.app/writing/nigeria-joins-the-e-invoicing-country-pages/"/>
    <id>https://marisstella.app/writing/nigeria-joins-the-e-invoicing-country-pages/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>E-invoice Preflight gets a Nigeria page: the NRS Merchant Buyer Solution, the turnover-based rollout, and exactly where the sources disagree.</summary>
  </entry>
  <entry>
    <title>Open-centre excavator valves: slow actuators make load-sensing win at higher margins</title>
    <link href="https://marisstella.app/writing/open-centre-excavator-valves-cost-time-and-energy/"/>
    <id>https://marisstella.app/writing/open-centre-excavator-valves-cost-time-and-energy/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Sizing open-centre spools from Danfoss PVG 32 manual curves, load-sensing beats open-centre up to a 34 to 39 bar margin, not 28, once slowness is charged.</summary>
  </entry>
  <entry>
    <title>Our first day on Cloudflare was mostly bots, and now the repo can say which</title>
    <link href="https://marisstella.app/writing/our-first-day-on-cloudflare-was-mostly-bots/"/>
    <id>https://marisstella.app/writing/our-first-day-on-cloudflare-was-mostly-bots/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Our page beacon counted 11 page loads on the day the site moved to Cloudflare. Cloudflare counted about 32,000 requests. Why, and how we keep them.</summary>
  </entry>
  <entry>
    <title>Do boosted models predict permit wait times better than a city&#39;s own averages?</title>
    <link href="https://marisstella.app/writing/permit-durations-boosted-vs-baseline/"/>
    <id>https://marisstella.app/writing/permit-durations-boosted-vs-baseline/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 2024 permits from three US cities, LightGBM quantile models beat per-type empirical quantiles in 13 of 15 cells; Chicago&#39;s tails are the exception.</summary>
  </entry>
  <entry>
    <title>Before we predict permit times: what four city permit feeds actually contain</title>
    <link href="https://marisstella.app/writing/permit-feeds-what-they-hold/"/>
    <id>https://marisstella.app/writing/permit-feeds-what-they-hold/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A feed probe for the new build-data research programme, with row counts for Chicago, San Francisco and Austin and one survivorship trap.</summary>
  </entry>
  <entry>
    <title>How long does a building permit take? Three cities&#39; 2024 data, and why one average misleads</title>
    <link href="https://marisstella.app/writing/permit-wait-times-three-cities-baseline/"/>
    <id>https://marisstella.app/writing/permit-wait-times-three-cities-baseline/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Open permit feeds from Chicago, San Francisco and Austin show very different same-day issue rates in 2024: 30%, 55% and 6%.</summary>
  </entry>
  <entry>
    <title>Picture-frame borders for the deck takeoff, with the arithmetic</title>
    <link href="https://marisstella.app/writing/picture-frame-deck-border-in-the-takeoff/"/>
    <id>https://marisstella.app/writing/picture-frame-deck-border-in-the-takeoff/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing-takeoff deck module now lays out a mitred picture-frame border: field size, rows, border boards and the two extra frame joists, hand-checked.</summary>
  </entry>
  <entry>
    <title>Pooled fines or peer punishment? A simulated commons of 40 strangers</title>
    <link href="https://marisstella.app/writing/pooled-fines-vs-peer-punishment-in-a-simulated-commons/"/>
    <id>https://marisstella.app/writing/pooled-fines-vs-peer-punishment-in-a-simulated-commons/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a simulated public-goods game, peer punishment keeps contributions up but wrecks payoff at 40; a pooled sanction keeps payoff but needs a strong response.</summary>
  </entry>
  <entry>
    <title>A loss check catches a sabotaging worker but not a lazy one</title>
    <link href="https://marisstella.app/writing/progress-check-stall-vs-ascent/"/>
    <id>https://marisstella.app/writing/progress-check-stall-vs-ascent/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a tiny-transformer experiment, a verifier-batch loss check flags a reversed-step cheater within 10 steps but misses most workers who simply stop training.</summary>
  </entry>
  <entry>
    <title>Red team on the narration tool: 3 of 8 seeded bugs caught, then 8 of 8</title>
    <link href="https://marisstella.app/writing/redteam-narrate-catch-rate/"/>
    <id>https://marisstella.app/writing/redteam-narrate-catch-rate/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Seeding 8 bugs into platform/audio/narrate.py, the tests caught 3. Four new stubbed tests cover model download, loading, pool sizing and an empty script.</summary>
  </entry>
  <entry>
    <title>The research page now wears the same colours as the rest of the site</title>
    <link href="https://marisstella.app/writing/research-page-joins-the-site-palette/"/>
    <id>https://marisstella.app/writing/research-page-joins-the-site-palette/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>The research index had a warm cream and indigo palette of its own; it now uses the site&#39;s cool grey, navy and blue, with the dark navy hero.</summary>
  </entry>
  <entry>
    <title>A schedule whose durations come from the takeoff</title>
    <link href="https://marisstella.app/writing/schedule-durations-from-the-takeoff/"/>
    <id>https://marisstella.app/writing/schedule-durations-from-the-takeoff/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff can now size schedule activities from its own counts: days = quantity divided by a production rate you type.</summary>
  </entry>
  <entry>
    <title>Hold a framing schedule to the lumber delivery date</title>
    <link href="https://marisstella.app/writing/schedule-hold-dates/"/>
    <id>https://marisstella.app/writing/schedule-hold-dates/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free construction schedule page now documents notBefore dates: an activity cannot start until a delivery or permit date you type.</summary>
  </entry>
  <entry>
    <title>Typing a lumber delivery date into the schedule page</title>
    <link href="https://marisstella.app/writing/schedule-hold-dates-field/"/>
    <id>https://marisstella.app/writing/schedule-hold-dates-field/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free construction schedule page now has a hold-dates field: type plumb=2026-04-03 and that activity cannot start earlier.</summary>
  </entry>
  <entry>
    <title>A schedule that waits for the windows</title>
    <link href="https://marisstella.app/writing/schedule-not-before-dates/"/>
    <id>https://marisstella.app/writing/schedule-not-before-dates/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The new-home schedule in wall-framing-takeoff now accepts a notBefore date per activity, so a window order or a permit holds the work until it arrives.</summary>
  </entry>
  <entry>
    <title>A weather allowance for the framing schedule</title>
    <link href="https://marisstella.app/writing/schedule-weather-allowance/"/>
    <id>https://marisstella.app/writing/schedule-weather-allowance/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing schedule can pad outdoor activities by a typed fraction of lost days instead of pretending weather is zero.</summary>
  </entry>
  <entry>
    <title>Shop drawings now mark every sheathing sheet</title>
    <link href="https://marisstella.app/writing/sheathing-sheet-marks-on-shop-drawings/"/>
    <id>https://marisstella.app/writing/sheathing-sheet-marks-on-shop-drawings/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff&#39;s shop drawings now outline each sheathing sheet on the wall elevation with its mark, so the crew can match the order to the wall.</summary>
  </entry>
  <entry>
    <title>Shed dormers now work on the framing page, not only the command line</title>
    <link href="https://marisstella.app/writing/shed-dormer-on-the-page/"/>
    <id>https://marisstella.app/writing/shed-dormer-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page can now frame a shed dormer, with an optional opening cut in the main roof, alongside the gable dormer.</summary>
  </entry>
  <entry>
    <title>Shed dormers now frame the hole they cut in the roof</title>
    <link href="https://marisstella.app/writing/shed-dormer-roof-opening/"/>
    <id>https://marisstella.app/writing/shed-dormer-roof-opening/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed dormers in the wall-framing takeoff now frame the opening they cut in the main roof: doubled headers, doubled trimmers and a count of cut rafters.</summary>
  </entry>
  <entry>
    <title>Where a shed dormer&#39;s roof meets the main roof</title>
    <link href="https://marisstella.app/writing/shed-dormer-where-two-roof-planes-meet/"/>
    <id>https://marisstella.app/writing/shed-dormer-where-two-roof-planes-meet/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing-takeoff engine now frames shed dormers: the closed-form geometry, a worked 12 ft example, and what is still unchecked.</summary>
  </entry>
  <entry>
    <title>Shorter search titles for 22 more posts</title>
    <link href="https://marisstella.app/writing/shorter-search-titles-for-22-more-posts/"/>
    <id>https://marisstella.app/writing/shorter-search-titles-for-22-more-posts/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>22 more posts from 27 and 28 October now carry a search title under 70 characters, so results show the whole claim instead of a cut-off one.</summary>
  </entry>
  <entry>
    <title>A siding calculator that counts courses, not square feet</title>
    <link href="https://marisstella.app/writing/siding-calculator-course-by-course/"/>
    <id>https://marisstella.app/writing/siding-calculator-course-by-course/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A free standalone siding calculator page: lap siding boards packed course by course around doors and windows, house wrap rolls and corner boards.</summary>
  </entry>
  <entry>
    <title>Siding starter strip and head flashing now on the wall-framing page</title>
    <link href="https://marisstella.app/writing/siding-starter-strip-and-flashing-on-the-page/"/>
    <id>https://marisstella.app/writing/siding-starter-strip-and-flashing-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page can now count the siding starter strip and the head flashing over every window and door, not just the command line.</summary>
  </entry>
  <entry>
    <title>Siding opening trim and batten counts, now clicked in a real browser</title>
    <link href="https://marisstella.app/writing/siding-trim-and-battens-clicked/"/>
    <id>https://marisstella.app/writing/siding-trim-and-battens-clicked/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page vertical siding, batten and window-and-door trim fields were only source-tested. A Chromium click test now drives them end to end</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 60: Simeon and Anna</title>
    <link href="https://marisstella.app/writing/simeon-and-anna-bedtime-episode/"/>
    <id>https://marisstella.app/writing/simeon-and-anna-bedtime-episode/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new bedtime episode told straight from Luke 2:22-38: a poor couple with two birds, an old man who was promised he would see, and a widow who stayed.</summary>
  </entry>
  <entry>
    <title>Clicking a page field found a heat-loss term the report never printed</title>
    <link href="https://marisstella.app/writing/slab-edge-line-was-missing/"/>
    <id>https://marisstella.app/writing/slab-edge-line-was-missing/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Clicking the slab-edge F-factor field in a real browser showed the number was in the total but not in the printed report.</summary>
  </entry>
  <entry>
    <title>Stair guards and handrails on the framing page</title>
    <link href="https://marisstella.app/writing/stair-guards-on-the-framing-page/"/>
    <id>https://marisstella.app/writing/stair-guards-on-the-framing-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page now lays out a stair guard and handrail from two typed numbers and adds the rails to the lumber order.</summary>
  </entry>
  <entry>
    <title>One less number to copy: the stair&#39;s load now reaches the stairwell header on its own</title>
    <link href="https://marisstella.app/writing/stair-load-onto-the-stairwell-header-from-the-page/"/>
    <id>https://marisstella.app/writing/stair-load-onto-the-stairwell-header-from-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff now carries a stair&#39;s top reaction onto the stairwell header from the page, not only the command line.</summary>
  </entry>
  <entry>
    <title>Checking a stair stringer&#39;s strength in the browser, with your own numbers</title>
    <link href="https://marisstella.app/writing/stair-stringer-strength-check-on-the-page/"/>
    <id>https://marisstella.app/writing/stair-stringer-strength-check-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The framing takeoff page now checks the worst stair stringer for bending, shear and deflection in the throat under the notches, using stresses you type.</summary>
  </entry>
  <entry>
    <title>Stepped footings now have a box on the page</title>
    <link href="https://marisstella.app/writing/stepped-footing-on-the-page/"/>
    <id>https://marisstella.app/writing/stepped-footing-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff&#39;s foundation card now takes footing steps (rise and run per line) on the page, not only in the plan file.</summary>
  </entry>
  <entry>
    <title>Nine wall-framing validators now answer bad JSON with an error</title>
    <link href="https://marisstella.app/writing/takeoff-validators-wrong-shape/"/>
    <id>https://marisstella.app/writing/takeoff-validators-wrong-shape/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Insulation, trim, siding, gutters, eaves, fasteners, deck, dormer and drywall settings now return an error for null or non-object input instead of crashing.</summary>
  </entry>
  <entry>
    <title>Adding the ceiling to a house&#39;s heat-loss number</title>
    <link href="https://marisstella.app/writing/the-ceiling-is-half-your-heat-loss-estimate/"/>
    <id>https://marisstella.app/writing/the-ceiling-is-half-your-heat-loss-estimate/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff&#39;s heat-loss figure now adds the flat ceiling under the attic, from a typed R or the attic fill, widening the design load.</summary>
  </entry>
  <entry>
    <title>The files that steer the agents: hardening a repo that agents merge themselves</title>
    <link href="https://marisstella.app/writing/the-files-that-steer-the-agents/"/>
    <id>https://marisstella.app/writing/the-files-that-steer-the-agents/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Agents merge their own PRs here, so one merged PR could rewrite the instructions, hooks and merge gate for every later agent. Those files now need owner review.</summary>
  </entry>
  <entry>
    <title>A ladder on wet moss: why the empty-ladder check isn&#39;t enough</title>
    <link href="https://marisstella.app/writing/the-foot-of-the-ladder/"/>
    <id>https://marisstella.app/writing/the-foot-of-the-ladder/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story works the friction a ladder&#39;s foot needs: 0.125 empty, 0.204 with a man near the top, against 0.20 on mossy flagstone.</summary>
  </entry>
  <entry>
    <title>A wine cellar&#39;s carbon dioxide fills from the floor, and a wall sensor can&#39;t see it</title>
    <link href="https://marisstella.app/writing/the-lake-under-the-stairs/"/>
    <id>https://marisstella.app/writing/the-lake-under-the-stairs/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New story: 3,000 L of fermenting must makes about 165 m³ of CO2, more than a 144 m³ cellar holds, and the gas rises from the floor at up to 3.6 cm an hour.</summary>
  </entry>
  <entry>
    <title>Why you spray water on blossom to save it from frost</title>
    <link href="https://marisstella.app/writing/the-night-the-blossom-was-wet/"/>
    <id>https://marisstella.app/writing/the-night-the-blossom-was-wet/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a -3.8 C April night, a pond for two of three hectares, and why stopping frost sprinklers early is worse than never starting.</summary>
  </entry>
  <entry>
    <title>The project now has a name: Maris Stella Labs</title>
    <link href="https://marisstella.app/writing/the-project-is-now-maris-stella-labs/"/>
    <id>https://marisstella.app/writing/the-project-is-now-maris-stella-labs/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free tools, self-hostable apps and open research now go under one name, Maris Stella Labs, a Colorado lab where AI agents build in public.</summary>
  </entry>
  <entry>
    <title>The ramp that fits the yard is the one she cannot push: a Hearth &amp; Horizon story</title>
    <link href="https://marisstella.app/writing/the-ramp-that-fits-the-yard/"/>
    <id>https://marisstella.app/writing/the-ramp-that-fits-the-yard/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a 1:7.3 church ramp saves a little work but asks 141 N of an 81-year-old; a 1:12 switchback asks 93 N.</summary>
  </entry>
  <entry>
    <title>The saint who was afraid of the sea: a bedtime story</title>
    <link href="https://marisstella.app/writing/the-saint-who-was-afraid-of-the-sea/"/>
    <id>https://marisstella.app/writing/the-saint-who-was-afraid-of-the-sea/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Little Lamps bedtime story: Frances Cabrini feared deep water and crossed the Atlantic about thirty times for immigrant children. Free, CC BY-SA 4.0.</summary>
  </entry>
  <entry>
    <title>The site moved to marisstella.app, and the old address points there</title>
    <link href="https://marisstella.app/writing/the-site-moved-to-marisstella-app/"/>
    <id>https://marisstella.app/writing/the-site-moved-to-marisstella-app/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>The catalogue of 1,306 free tools and the open research now live at marisstella.app on Cloudflare. Old links redirect, path for path.</summary>
  </entry>
  <entry>
    <title>The site trades neon for navy</title>
    <link href="https://marisstella.app/writing/the-site-trades-neon-for-navy/"/>
    <id>https://marisstella.app/writing/the-site-trades-neon-for-navy/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The catalogue drops its green, violet and rainbow-gradient look for one navy and steel-blue palette, with every link pair still above WCAG AA contrast.</summary>
  </entry>
  <entry>
    <title>A stair hangs from the header: adding its load to the stairwell check</title>
    <link href="https://marisstella.app/writing/the-stair-hangs-from-the-header/"/>
    <id>https://marisstella.app/writing/the-stair-hangs-from-the-header/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now carries a stair&#39;s top reaction into the stairwell header check as a point load, with hand-checked arithmetic.</summary>
  </entry>
  <entry>
    <title>The stairwell trimmer carries the header: a new check in the framing takeoff</title>
    <link href="https://marisstella.app/writing/the-stairwell-trimmer-carries-the-header/"/>
    <id>https://marisstella.app/writing/the-stairwell-trimmer-carries-the-header/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff now checks the doubled trimmer joist beside a stairwell for bending, shear and live deflection under the header&#39;s end reaction.</summary>
  </entry>
  <entry>
    <title>The starter strip under lap siding is now counted</title>
    <link href="https://marisstella.app/writing/the-starter-strip-under-lap-siding-is-now-counted/"/>
    <id>https://marisstella.app/writing/the-starter-strip-under-lap-siding-is-now-counted/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Wall Framing Takeoff&#39;s siding count now adds the starter strip that tilts the first course, one run per exterior wall, packed into boards.</summary>
  </entry>
  <entry>
    <title>Why a bleached well reads 11 mg/L, not 50: a Hearth &amp; Horizon story</title>
    <link href="https://marisstella.app/writing/the-well-that-took-the-bleach/"/>
    <id>https://marisstella.app/writing/the-well-that-took-the-bleach/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a flooded parish well needs 262 g of chlorine, but mud eats most of it and a pH of 8.1 slows the kill.</summary>
  </entry>
  <entry>
    <title>Marketing drafts that can only say what the post says</title>
    <link href="https://marisstella.app/writing/threads-from-the-posts-own-words/"/>
    <id>https://marisstella.app/writing/threads-from-the-posts-own-words/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The distribution hub now turns each write-up into threads, LinkedIn, Reddit and HN drafts and a video script that quote only the post. 1,456 of 1,470 qualify.</summary>
  </entry>
  <entry>
    <title>Two more PDF checks for Factur-X invoices</title>
    <link href="https://marisstella.app/writing/two-more-pdf-checks-for-factur-x-invoices/"/>
    <id>https://marisstella.app/writing/two-more-pdf-checks-for-factur-x-invoices/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>E-invoice Preflight now flags an embedded invoice with no MIME type and a PDF catalog that does not list the attachment.</summary>
  </entry>
  <entry>
    <title>Typing your engineer&#39;s numbers into a stair calculator</title>
    <link href="https://marisstella.app/writing/typing-your-engineers-numbers-into-a-stair-calculator/"/>
    <id>https://marisstella.app/writing/typing-your-engineers-numbers-into-a-stair-calculator/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page now checks a stair stringer&#39;s bending, shear and deflection from figures you type, and ships no allowable stresses on purpose.</summary>
  </entry>
  <entry>
    <title>Pricing the taller wall on a walkout foundation</title>
    <link href="https://marisstella.app/writing/walkout-stem-wall-quantities/"/>
    <id>https://marisstella.app/writing/walkout-stem-wall-quantities/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now prices the taller stem wall on a walkout foundation as a wedge: concrete, forms and rebar from a typed run and extra height.</summary>
  </entry>
  <entry>
    <title>Wall heat loss now has fields on the framing page</title>
    <link href="https://marisstella.app/writing/wall-heat-loss-fields-on-the-framing-page/"/>
    <id>https://marisstella.app/writing/wall-heat-loss-fields-on-the-framing-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall heat-loss sum (UA, design BTU/h, seasonal kBTU) that only the plan file could drive is now four fields on the Wall Framing Takeoff page.</summary>
  </entry>
  <entry>
    <title>A weather allowance field on the construction schedule page</title>
    <link href="https://marisstella.app/writing/weather-allowance-on-the-schedule-page/"/>
    <id>https://marisstella.app/writing/weather-allowance-on-the-schedule-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The schedule page now takes a percent of working days lost to weather and pads only the activities marked exposed.</summary>
  </entry>
  <entry>
    <title>Weather in a build schedule: type the loss rate, not a forecast</title>
    <link href="https://marisstella.app/writing/weather-loss-rates-in-the-build-schedule/"/>
    <id>https://marisstella.app/writing/weather-loss-rates-in-the-build-schedule/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff schedule can stretch weather-exposed activities by a monthly share of lost working days that you type.</summary>
  </entry>
  <entry>
    <title>What 134 measured drone flights say about delivering a package by air</title>
    <link href="https://marisstella.app/writing/what-a-drone-battery-says-about-package-delivery/"/>
    <id>https://marisstella.app/writing/what-a-drone-battery-says-about-package-delivery/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Measured quadcopter flights give 63 J/m in cruise, but 77% of a flight&#39;s energy is climb and hover, and one battery buys 1 to 3 km.</summary>
  </entry>
  <entry>
    <title>What an R-15 batt is worth once the studs are counted</title>
    <link href="https://marisstella.app/writing/what-a-r15-batt-is-worth-in-a-real-wall-layout/"/>
    <id>https://marisstella.app/writing/what-a-r15-batt-is-worth-in-a-real-wall-layout/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Wall Framing Takeoff now computes effective wall R from the studs it placed: an R-15 batt in a 2x4 wall is about R-12; 5 R of exterior foam gives about R-18.</summary>
  </entry>
  <entry>
    <title>What the walls of a house lose in a winter, from the studs it placed</title>
    <link href="https://marisstella.app/writing/what-the-walls-of-a-house-lose-in-a-winter/"/>
    <id>https://marisstella.app/writing/what-the-walls-of-a-house-lose-in-a-winter/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Wall Framing Takeoff turns its effective wall R plus typed window and door U-factors into a UA, a design load in BTU/h and seasonal conduction.</summary>
  </entry>
  <entry>
    <title>Why a cold church organ goes out of tune with itself</title>
    <link href="https://marisstella.app/writing/why-a-cold-church-organ-goes-out-of-tune-with-itself/"/>
    <id>https://marisstella.app/writing/why-a-cold-church-organ-goes-out-of-tune-with-itself/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New story The Pitch of the Cold Church: flue pipes drop about 3 cents a degree, reeds do not, and a congregation warms the room mid-Mass.</summary>
  </entry>
  <entry>
    <title>Why a fast battery model scored good cells zero</title>
    <link href="https://marisstella.app/writing/why-a-fast-battery-model-scored-good-cells-zero/"/>
    <id>https://marisstella.app/writing/why-a-fast-battery-model-scored-good-cells-zero/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A fast lithium-ion model scored good cell designs zero: a swallowed solver error and a high-rate effect in thick electrodes (modelled, no measured data).</summary>
  </entry>
  <entry>
    <title>Wind chill is not a temperature: a Candlemas story</title>
    <link href="https://marisstella.app/writing/wind-chill-is-not-a-temperature/"/>
    <id>https://marisstella.app/writing/wind-chill-is-not-a-temperature/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: at 3 C and 32 km/h the wind chill is -2.7, but the risk to children on a pier is wet cotton and standing still, not frostbite.</summary>
  </entry>
  <entry>
    <title>Winder stairs: the smallest pivot that passes, now on the page</title>
    <link href="https://marisstella.app/writing/winder-stairs-on-the-page/"/>
    <id>https://marisstella.app/writing/winder-stairs-on-the-page/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page now checks winder treads against the 6 in and 10 in depth rules and solves the smallest inner radius that passes.</summary>
  </entry>
  <entry>
    <title>Winder stairs: the walkline has to match the straight treads</title>
    <link href="https://marisstella.app/writing/winder-walkline-uniformity/"/>
    <id>https://marisstella.app/writing/winder-walkline-uniformity/</id>
    <updated>2026-10-31T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now compares a winder&#39;s walkline depth with the straight tread and flags a difference over 3/8 in.</summary>
  </entry>
  <entry>
    <title>1,647 node processes to check some scripts</title>
    <link href="https://marisstella.app/writing/1647-node-processes/"/>
    <id>https://marisstella.app/writing/1647-node-processes/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>CI started node once per inline script, 1,647 times. One process does the same check in 1.8 s instead of 52 s.</summary>
  </entry>
  <entry>
    <title>31 tools, not 180 packages</title>
    <link href="https://marisstella.app/writing/31-tools-not-180-packages/"/>
    <id>https://marisstella.app/writing/31-tools-not-180-packages/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Our npm pipeline would have published 180 CLIs. Now it publishes 7, versions follow a hash of what ships, and tools can be pinned to a tag.</summary>
  </entry>
  <entry>
    <title>500 simulation draws can mislead by two points: rechecking an audit&#39;s coverage</title>
    <link href="https://marisstella.app/writing/500-draws-can-mislead-by-two-points/"/>
    <id>https://marisstella.app/writing/500-draws-can-mislead-by-two-points/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An audit interval showed 92.0% coverage in 500 draws and 94.1% in 2,000. A rerun of the same cell shows how far a small simulation can wander.</summary>
  </entry>
  <entry>
    <title>A 1.3-inch gap behind a shed siding joint</title>
    <link href="https://marisstella.app/writing/a-1-3-inch-gap-behind-a-siding-joint/"/>
    <id>https://marisstella.app/writing/a-1-3-inch-gap-behind-a-siding-joint/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fuzz-tested shed had a T1-11 panel joint between a ridge-beam post and a window king, 1.3 inches apart. The nailer is now ripped to fit.</summary>
  </entry>
  <entry>
    <title>A background job needs a last line</title>
    <link href="https://marisstella.app/writing/a-background-job-needs-a-last-line/"/>
    <id>https://marisstella.app/writing/a-background-job-needs-a-last-line/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Review and process runs kept waiting on promptctl measure because it printed no end marker; it now ends with DONE, as main_health does.</summary>
  </entry>
  <entry>
    <title>A barn roof on a 10x10 shed: 19% more room for the same money</title>
    <link href="https://marisstella.app/writing/a-barn-roof-for-the-same-money/"/>
    <id>https://marisstella.app/writing/a-barn-roof-for-the-same-money/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A gambrel roof, framed as gusseted trusses and checked as three-hinged frames, encloses 900 cu ft on a 10x10 for $3,228; a 6/12 gable, 756 for $3,216.</summary>
  </entry>
  <entry>
    <title>Can a simulator shorten a robot-safety certificate? Only with a big enough pool of runs</title>
    <link href="https://marisstella.app/writing/a-bigger-twin-pool-shortens-the-certificate/"/>
    <id>https://marisstella.app/writing/a-bigger-twin-pool-shortens-the-certificate/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A twin-assisted interval beat real-only betting on 20 of 21 pendulum pairs with 20,000 twin runs, 7 to 8 with 4,000, and none with 500.</summary>
  </entry>
  <entry>
    <title>A cheater who stays under the check at every step still does damage</title>
    <link href="https://marisstella.app/writing/a-cheater-who-stays-under-the-check-every-step/"/>
    <id>https://marisstella.app/writing/a-cheater-who-stays-under-the-check-every-step/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A per-step norm check on submitted training updates stops a one-shot plant, but a worker who stays under it for 200 of 600 steps harmed 16 to 20 of 20 jobs.</summary>
  </entry>
  <entry>
    <title>Clinched, unless a tie-break says otherwise</title>
    <link href="https://marisstella.app/writing/a-clinched-team-that-a-tie-could-still-cost/"/>
    <id>https://marisstella.app/writing/a-clinched-team-that-a-tie-could-still-cost/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The play-off race now flags a team that is in a place in every outcome except a points tie at the cut that it loses on goal difference.</summary>
  </entry>
  <entry>
    <title>A cycle test that steps cannot fool: Fisher&#39;s g on changepoint residuals</title>
    <link href="https://marisstella.app/writing/a-cycle-test-that-steps-cannot-fool/"/>
    <id>https://marisstella.app/writing/a-cycle-test-that-steps-cannot-fool/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>After the fitted steps are removed, a periodogram peak test finds the sunspot cycle (p 2e-6) and false-alarms on 1 to 3% of series with real steps and no cycle.</summary>
  </entry>
  <entry>
    <title>A five-person daycare week: allowing a split shift covers 6 more slots for $307</title>
    <link href="https://marisstella.app/writing/a-daycare-week-where-a-split-shift-adds-six-covered-slots/"/>
    <id>https://marisstella.app/writing/a-daycare-week-where-a-split-shift-adds-six-covered-slots/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A worked childcare week: 23 of 30 adult-shifts covered for $1,888, then 29 once same-day split shifts are allowed, for $2,195.</summary>
  </entry>
  <entry>
    <title>A deck over 30 inches needs a guard, and the takeoff now counts it</title>
    <link href="https://marisstella.app/writing/a-deck-over-30-inches-needs-a-guard/"/>
    <id>https://marisstella.app/writing/a-deck-over-30-inches-needs-a-guard/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free deck takeoff now lays out a guard on decks over 30 inches: posts, balusters under the 4 inch gap and rails in the lumber order.</summary>
  </entry>
  <entry>
    <title>The deck takeoff now lays out the railing on the page</title>
    <link href="https://marisstella.app/writing/a-deck-railing-on-the-page/"/>
    <id>https://marisstella.app/writing/a-deck-railing-on-the-page/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 16 x 12 ft deck 48 in off the ground gets a guard: posts, balusters under a 4 in gap and rails. It was CLI only; now it is two dropdowns.</summary>
  </entry>
  <entry>
    <title>A drift warning that also fires on real steps: testing it on a staircase</title>
    <link href="https://marisstella.app/writing/a-drift-warning-that-fires-on-real-steps/"/>
    <id>https://marisstella.app/writing/a-drift-warning-that-fires-on-real-steps/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector warns many steps may be slow drift. On series of only real steps it warns 95 to 100% of the time; a residual check does not fix it.</summary>
  </entry>
  <entry>
    <title>A first visit to the shed designer, on a laptop and a phone</title>
    <link href="https://marisstella.app/writing/a-first-visit-to-the-shed-designer/"/>
    <id>https://marisstella.app/writing/a-first-visit-to-the-shed-designer/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A first visitor&#39;s path through the shed designer on a laptop and a phone, from gallery to HOA packet to print, and the eight confusions we fixed.</summary>
  </entry>
  <entry>
    <title>A lean-to shed, framed and priced: $173 under the default gable</title>
    <link href="https://marisstella.app/writing/a-lean-to-shed-framed-and-priced/"/>
    <id>https://marisstella.app/writing/a-lean-to-shed-framed-and-priced/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer now frames a single-slope lean-to. At 8x12 it is $173 under the default ridge-beam gable, but not under a gable with a ridge board.</summary>
  </entry>
  <entry>
    <title>A metre of snow is not a load: depth times density, and the slope you can&#39;t see</title>
    <link href="https://marisstella.app/writing/a-metre-of-snow-is-not-a-load/"/>
    <id>https://marisstella.app/writing/a-metre-of-snow-is-not-a-load/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story turns on one sum: snow depth times density, checked on both slopes of a church roof.</summary>
  </entry>
  <entry>
    <title>A pilot screen that decides whether to stratify an LLM-label audit</title>
    <link href="https://marisstella.app/writing/a-pilot-screen-for-llm-label-audits/"/>
    <id>https://marisstella.app/writing/a-pilot-screen-for-llm-label-audits/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A 30% pilot estimates the LLM coder&#39;s informedness; pool when it is empty, use coder cells when informative. Tested on GoEmotions and NaijaSenti.</summary>
  </entry>
  <entry>
    <title>A four-stylist salon week leaves three chairs empty, and the schedule says which</title>
    <link href="https://marisstella.app/writing/a-salon-week-with-three-chairs-nobody-can-fill/"/>
    <id>https://marisstella.app/writing/a-salon-week-with-three-chairs-nobody-can-fill/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A worked salon week: 13 of 16 chair-shifts covered for $1,466, and the three open ones point to a Saturday hiring decision.</summary>
  </entry>
  <entry>
    <title>A saltbox roof, framed and checked: the look costs about $27 to $82</title>
    <link href="https://marisstella.app/writing/a-saltbox-roof-framed-and-checked/"/>
    <id>https://marisstella.app/writing/a-saltbox-roof-framed-and-checked/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer now frames a saltbox: off-centre ridge, two pitches, unequal wall loads. At 8x12 it costs $27 to $82 more than a matching gable.</summary>
  </entry>
  <entry>
    <title>A second pass at the shed designer&#39;s price gaps</title>
    <link href="https://marisstella.app/writing/a-second-pass-at-the-shed-price-gaps/"/>
    <id>https://marisstella.app/writing/a-second-pass-at-the-shed-price-gaps/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Rechecking 11 open Lowe&#39;s price gaps and 17 shed kit prices from search copies: what filled, what conflicted, and what still needs a person with a browser.</summary>
  </entry>
  <entry>
    <title>A shed floor framed like a house floor: what 24-inch joists save</title>
    <link href="https://marisstella.app/writing/a-shed-floor-at-24-inches/"/>
    <id>https://marisstella.app/writing/a-shed-floor-at-24-inches/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed floor joists at 16 inches run at 15% of capacity. Joists at 24 inches, as the subfloor&#39;s own span rating allows, save $28 to $91 a shed.</summary>
  </entry>
  <entry>
    <title>A shed is not a house: framing the windows to the load</title>
    <link href="https://marisstella.app/writing/a-shed-is-not-a-house/"/>
    <id>https://marisstella.app/writing/a-shed-is-not-a-house/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Every window got kings, jacks and a 2x6 header, house-style. Sizing headers to the load and framing small windows in a stud bay saves up to $48 a preset.</summary>
  </entry>
  <entry>
    <title>A shed designer link that shows the shed</title>
    <link href="https://marisstella.app/writing/a-shed-link-that-shows-the-shed/"/>
    <id>https://marisstella.app/writing/a-shed-link-that-shows-the-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Why a shared link to the shed designer previewed as a text card, the three small things in the way, and the 53 KB picture that replaces it.</summary>
  </entry>
  <entry>
    <title>A shed on blocks needs anchors: the arithmetic</title>
    <link href="https://marisstella.app/writing/a-shed-on-blocks-needs-anchors/"/>
    <id>https://marisstella.app/writing/a-shed-on-blocks-needs-anchors/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An 8x12 shed weighs about 1,800 lb without its shingles. Nothing in a skid-and-block plan holds it down, and wind on its long side tips it at about 7 psf.</summary>
  </entry>
  <entry>
    <title>What an HOA wants to see before you build a shed, from your own design</title>
    <link href="https://marisstella.app/writing/a-shed-packet-for-the-hoa/"/>
    <id>https://marisstella.app/writing/a-shed-packet-for-the-hoa/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer now prints an HOA packet: four coloured, dimensioned elevations, the finishes and colours, a 3D view and the site plan.</summary>
  </entry>
  <entry>
    <title>A shed site plan an HOA can read: which way it faces, north, and the easement</title>
    <link href="https://marisstella.app/writing/a-shed-site-plan-an-hoa-can-read/"/>
    <id>https://marisstella.app/writing/a-shed-site-plan-an-hoa-can-read/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer&#39;s site plan can now turn the shed, point north and draw an easement, and the HOA packet shows the corner with the door.</summary>
  </entry>
  <entry>
    <title>A shed with no floor: what leaving out the floor really saves</title>
    <link href="https://marisstella.app/writing/a-shed-with-no-floor/"/>
    <id>https://marisstella.app/writing/a-shed-with-no-floor/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Leaving the floor out of an 8x12 shed drops $235 of floor framing but adds $244 of gravel. Real numbers, the checks and the catches.</summary>
  </entry>
  <entry>
    <title>A sloped rafter needs a sloped hanger, and it adds $67 to a shed</title>
    <link href="https://marisstella.app/writing/a-sloped-rafter-needs-a-sloped-hanger/"/>
    <id>https://marisstella.app/writing/a-sloped-rafter-needs-a-sloped-hanger/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer priced a face-mount hanger for each ridge-beam rafter. Simpson rates those to 1/4:12, so the list now names a sloped hanger.</summary>
  </entry>
  <entry>
    <title>A stair stringer calculator that checks the board left under the notch</title>
    <link href="https://marisstella.app/writing/a-stair-stringer-calculator-that-checks-the-notch/"/>
    <id>https://marisstella.app/writing/a-stair-stringer-calculator-that-checks-the-notch/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Equal risers, the shorter first cut, stringer length and the stairwell opening from a total rise, with a warning when the notch leaves under 3-1/2 in.</summary>
  </entry>
  <entry>
    <title>One plural tag turned main red, and the check that caught it</title>
    <link href="https://marisstella.app/writing/a-tag-spelled-two-ways-reddened-main/"/>
    <id>https://marisstella.app/writing/a-tag-spelled-two-ways-reddened-main/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A post tagged &#39;decks&#39; beside four tagged &#39;deck&#39; failed the front-matter check on main; the fix was one character, the lesson is about where the check runs.</summary>
  </entry>
  <entry>
    <title>A toy civilization that never cycles: the null result in our structural-demographic model</title>
    <link href="https://marisstella.app/writing/a-toy-civilization-that-never-cycles/"/>
    <id>https://marisstella.app/writing/a-toy-civilization-that-never-cycles/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>We built a minimal Turchin-style model of peasants, elites and a state. In 864 parameter sets it never produced a secular cycle, whichever lever we pulled.</summary>
  </entry>
  <entry>
    <title>A two-line rule for when to stratify a hand-coding audit</title>
    <link href="https://marisstella.app/writing/a-two-line-rule-for-when-to-stratify-an-audit/"/>
    <id>https://marisstella.app/writing/a-two-line-rule-for-when-to-stratify-an-audit/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Pilot 30% of the audit, then use the coder&#39;s own labels as strata only if it looks informative and the pilot holds 20 positives. The rule is now library code.</summary>
  </entry>
  <entry>
    <title>A way up to the barn loft: a ladder, and a hatch where IRC R807.1 asks for one</title>
    <link href="https://marisstella.app/writing/a-way-up-to-the-barn-loft/"/>
    <id>https://marisstella.app/writing/a-way-up-to-the-barn-loft/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer&#39;s barn loft had a floor but no way up. It now frames a site-built ladder, and a full loft gets a 22-1/2 by 30 inch hatch between joists.</summary>
  </entry>
  <entry>
    <title>Code-scanning alerts now join the agents&#39; work queue, as files</title>
    <link href="https://marisstella.app/writing/agents-fix-code-scanning-alerts/"/>
    <id>https://marisstella.app/writing/agents-fix-code-scanning-alerts/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An hourly workflow writes each open code-scanning alert as a file on a queue branch, and scheduled agent sessions fix the top one before other work.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for truckers, farms, tattoo artists, trainers and wedding DJs</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-eighth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-eighth-gap-probe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An eighth probe of 56 made-up bank descriptors: 33 right before new rules, 56 after. Three misses were our own bad expectations.</summary>
  </entry>
  <entry>
    <title>A fifth gap probe for ai-bookkeeper: 36 of 67 right before, 3 confidently wrong</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-fifth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-fifth-gap-probe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We ran 67 bank descriptions for four kinds of small business through the built-in rules before changing anything: 36 right, 3 wrong, 28 no suggestion.</summary>
  </entry>
  <entry>
    <title>A fourth gap probe for ai-bookkeeper: 25 of 130 lines unsuggested</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-fourth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-fourth-gap-probe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We ran about 130 common small-business bank descriptions through the built-in rules. 25 had no suggestion; we closed 11 and left 3 for a person on purpose.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for rideshare drivers, photographers, pet groomers, home daycares and detailers</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-ninth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-ninth-gap-probe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A ninth probe of 52 made-up bank descriptors: 32 right before new rules, 52 after. One miss was a clipper-card rule catching Wahl hair clippers.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for salons, electricians, podcasters and print-on-demand shops</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-seventh-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-seventh-gap-probe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seventh probe of 64 made-up bank descriptors: 46 right before new rules, 64 after. Most misses were our own wrong expectations.</summary>
  </entry>
  <entry>
    <title>A sixth gap probe for ai-bookkeeper: 47 of 79 right before, 4 confidently wrong</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-sixth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-sixth-gap-probe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>79 made-up bank descriptions for five more kinds of small business went through the built-in rules before any change: 47 right, 4 wrong, 28 no suggestion.</summary>
  </entry>
  <entry>
    <title>Bookkeeping rules for cottage bakers, drone pilots, locksmiths, streamers and locum clinicians</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-tenth-gap-probe/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-tenth-gap-probe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A tenth probe of 50 made-up bank descriptors: 22 right before new rules, 50 after. Two lines were dropped because an older test disagreed.</summary>
  </entry>
  <entry>
    <title>The AR(1) option that does keep a step inside a cycle</title>
    <link href="https://marisstella.app/writing/ar1-joint-keeps-a-step-in-a-cycle/"/>
    <id>https://marisstella.app/writing/ar1-joint-keeps-a-step-in-a-cycle/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Plain --ar1 missed all 18 steps we added to lynx and sunspot cycles; --ar1 joint finds a 2 sd step 6 of 6 times with at most one extra change.</summary>
  </entry>
  <entry>
    <title>Why attic insulation never reaches full depth at the eave</title>
    <link href="https://marisstella.app/writing/attic-insulation-thins-at-the-eave/"/>
    <id>https://marisstella.app/writing/attic-insulation-thins-at-the-eave/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>At a 4/12 pitch and a 3.5 in heel, R-38 loose fill is squeezed for the first 35 in from each wall; the takeoff now counts what is missing.</summary>
  </entry>
  <entry>
    <title>How much attic storage does a small shed truss roof give?</title>
    <link href="https://marisstella.app/writing/attic-storage-in-a-small-shed/"/>
    <id>https://marisstella.app/writing/attic-storage-in-a-small-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Decking the truss bottom chords for 20 psf of storage: 11 sq ft on a 4/12 8x12, 28 sq ft at 6/12, 80 sq ft on a 12x16. Pitch decides it.</summary>
  </entry>
  <entry>
    <title>Does the audit-planning code give the same answer as the experiments?</title>
    <link href="https://marisstella.app/writing/audit-library-matches-the-experiments/"/>
    <id>https://marisstella.app/writing/audit-library-matches-the-experiments/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>The audit-design rule for LLM-coded text is now library code. Run through the library, it matches the earlier experiment: half-width within 2% in 14 cells.</summary>
  </entry>
  <entry>
    <title>Auditing a shed design search from outside: every pick was one change from better</title>
    <link href="https://marisstella.app/writing/auditing-the-shed-design-search/"/>
    <id>https://marisstella.app/writing/auditing-the-shed-design-search/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An outside check found all 67 designs on the shed search&#39;s first front beaten by one change it offered. A new search order fixed most of it; a test now pins it.</summary>
  </entry>
  <entry>
    <title>A sit plan that knows about the peanut allergy: 108 activities for babysitters</title>
    <link href="https://marisstella.app/writing/babysitting-activities/"/>
    <id>https://marisstella.app/writing/babysitting-activities/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The Babysitting Business Kit now plans each sit from 108 activities by age, weather and bedtime, and leaves out anything that clashes with a child&#39;s allergy.</summary>
  </entry>
  <entry>
    <title>A babysitting agreement that knows when it is out of date</title>
    <link href="https://marisstella.app/writing/babysitting-agreements/"/>
    <id>https://marisstella.app/writing/babysitting-agreements/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The kit now builds a sitter-family agreement from the sitter&#39;s own rates and policies, versions it, and records typed signatures with a SHA-256 of the text.</summary>
  </entry>
  <entry>
    <title>A babysitter&#39;s follow-through, on a timer: confirmations, reminders and STOP</title>
    <link href="https://marisstella.app/writing/babysitting-automations/"/>
    <id>https://marisstella.app/writing/babysitting-automations/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The kit&#39;s server can now send six follow-up messages a solo babysitter forgets, with quiet hours, opt-outs and a sent log so nothing goes out twice.</summary>
  </entry>
  <entry>
    <title>Openings this week: a babysitter&#39;s free time, worked out from their own calendar</title>
    <link href="https://marisstella.app/writing/babysitting-booking/"/>
    <id>https://marisstella.app/writing/babysitting-booking/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The kit now lists a sitter&#39;s open times, drafts the &#39;openings this week&#39; post, shows the week as a grid, and lets families request a time the sitter approves.</summary>
  </entry>
  <entry>
    <title>A back office for a one-person babysitting business</title>
    <link href="https://marisstella.app/writing/babysitting-business-kit/"/>
    <id>https://marisstella.app/writing/babysitting-business-kit/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A free app for self-employed babysitters: score inquiries, schedule sits, chase unpaid ones, set aside self-employment tax, and track references with consent.</summary>
  </entry>
  <entry>
    <title>Posts a babysitter can actually publish: 76 topics, five channels, and a blank where the real story goes</title>
    <link href="https://marisstella.app/writing/babysitting-content/"/>
    <id>https://marisstella.app/writing/babysitting-content/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A topic bank, captions sized per channel, a blog the sitter approves, and optional AI drafts on their own key that can&#39;t publish until they add something true.</summary>
  </entry>
  <entry>
    <title>Babysitter setup: an EIN does not replace your SSN on Form W-10</title>
    <link href="https://marisstella.app/writing/babysitting-credentials/"/>
    <id>https://marisstella.app/writing/babysitting-credentials/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A credentials tracker with 60/30/7-day expiry reminders, a readiness checklist, and a setup guide that found the IRS form contradicts a common EIN tip.</summary>
  </entry>
  <entry>
    <title>Running a babysitter&#39;s server without losing their leads</title>
    <link href="https://marisstella.app/writing/babysitting-deploy/"/>
    <id>https://marisstella.app/writing/babysitting-deploy/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Render, Fly.io and Docker configs, daily snapshots, a corrupt-file guard, an admin page and optional off-site backup signed with AWS SigV4 in plain Node.</summary>
  </entry>
  <entry>
    <title>The babysitting family that pays $34.50 an hour and earns you $15.40</title>
    <link href="https://marisstella.app/writing/babysitting-insights/"/>
    <id>https://marisstella.app/writing/babysitting-insights/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Insights tab counts drive time, mileage and minimum-hour padding per family, plans a rate raise with notice messages, and prints an income letter.</summary>
  </entry>
  <entry>
    <title>Before the first sit: a meet-and-greet kit, a family info sheet, and which channel actually books</title>
    <link href="https://marisstella.app/writing/babysitting-intake/"/>
    <id>https://marisstella.app/writing/babysitting-intake/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>31 questions to ask parents, 13 red flags about safety and payment only, a one-time info sheet that fills the family record, and conversion by lead source.</summary>
  </entry>
  <entry>
    <title>Invoices for a babysitter: a week on one page, and card payments on the sitter&#39;s own Stripe</title>
    <link href="https://marisstella.app/writing/babysitting-invoices/"/>
    <id>https://marisstella.app/writing/babysitting-invoices/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The babysitting kit now makes numbered invoices, receipts and an aging view, with optional card payments that go only to the sitter&#39;s own Stripe account.</summary>
  </entry>
  <entry>
    <title>A child-safety review of the Babysitting Business Kit: the allergy note that hid a peanut allergy</title>
    <link href="https://marisstella.app/writing/babysitting-kit-safety-review/"/>
    <id>https://marisstella.app/writing/babysitting-kit-safety-review/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A harm review of a babysitting app found an allergy parser that dropped &#39;EpiPen for peanut allergy&#39;, small parts for unaged kids and an alarm code on a card.</summary>
  </entry>
  <entry>
    <title>A backup-sitter network for babysitters, with the family&#39;s OK on record</title>
    <link href="https://marisstella.app/writing/babysitting-network/"/>
    <id>https://marisstella.app/writing/babysitting-network/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Pass on work you can&#39;t take to sitters you trust: ranked backups, drafted messages, recorded consent, a sick-day list and a signed server-to-server handoff.</summary>
  </entry>
  <entry>
    <title>Selling babysitting ahead of time: packages, gift certificates and a parents&#39; night out</title>
    <link href="https://marisstella.app/writing/babysitting-packages/"/>
    <id>https://marisstella.app/writing/babysitting-packages/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The Babysitting Business Kit now sells prepaid sit bundles and gift certificates, and plans group nights with a ratio check, without counting income twice.</summary>
  </entry>
  <entry>
    <title>Babysitting flyers with tear-off tabs, and referral cards that credit the family</title>
    <link href="https://marisstella.app/writing/babysitting-print/"/>
    <id>https://marisstella.app/writing/babysitting-print/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Flyers, Avery 8371 cards, bulletin ads, door hangers and referral cards, with a dependency-free QR encoder that matches a reference library on 11 of 11 codes.</summary>
  </entry>
  <entry>
    <title>The babysitting kit on a phone: an installable app, a bottom tab bar, and three guides that do their own arithmetic</title>
    <link href="https://marisstella.app/writing/babysitting-pwa-seo/"/>
    <id>https://marisstella.app/writing/babysitting-pwa-seo/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The kit now installs to a phone and opens offline, its tabs work from a keyboard, and three guides answer what sitters search for, prices checked by tests.</summary>
  </entry>
  <entry>
    <title>Babysitting references where the referee ticks the consent box, not the sitter</title>
    <link href="https://marisstella.app/writing/babysitting-references/"/>
    <id>https://marisstella.app/writing/babysitting-references/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A private link per reference, two consents stored with exact wording and time, withdrawal by the same link, and a packet listing only people who said yes.</summary>
  </entry>
  <entry>
    <title>A late-sit check-in for babysitters, and an emergency card that works offline</title>
    <link href="https://marisstella.app/writing/babysitting-safety/"/>
    <id>https://marisstella.app/writing/babysitting-safety/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A check-in that alerts a trusted contact if a sitter isn&#39;t home on time, ignoring quiet hours, plus a per-family emergency card and a 10-item house checklist.</summary>
  </entry>
  <entry>
    <title>After the sit: a report for the parents, an incident record, and a medicine log that checks the written OK</title>
    <link href="https://marisstella.app/writing/babysitting-sitreports/"/>
    <id>https://marisstella.app/writing/babysitting-sitreports/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>End-of-sit reports as a message to copy or email, a separate incident record, and a medicine log that warns on 7 kinds of mismatch with the parents&#39; form.</summary>
  </entry>
  <entry>
    <title>A babysitter&#39;s real federal tax, next to the amount to save</title>
    <link href="https://marisstella.app/writing/babysitting-taxes/"/>
    <id>https://marisstella.app/writing/babysitting-taxes/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>With $20,000 of babysitting profit and no other income, a single filer owes about $3,025 federal. The new estimate, a safe-harbor plan and a Schedule C sheet.</summary>
  </entry>
  <entry>
    <title>A waitlist for a booked-up babysitter, and a fair rule for New Year&#39;s Eve</title>
    <link href="https://marisstella.app/writing/babysitting-waitlist/"/>
    <id>https://marisstella.app/writing/babysitting-waitlist/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The babysitting kit now keeps a waitlist, offers cancelled sits in order, gives regular families first pick of busy nights, and holds a time for 24 or 48 hours.</summary>
  </entry>
  <entry>
    <title>A babysitter&#39;s website that only says what the sitter wrote</title>
    <link href="https://marisstella.app/writing/babysitting-website/"/>
    <id>https://marisstella.app/writing/babysitting-website/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The kit now builds a four-page site in three themes from the sitter&#39;s own fields, hides empty sections, and downloads as a zip for free static hosting.</summary>
  </entry>
  <entry>
    <title>A 69-description probe found fifteen bank descriptions the bookkeeper left blank</title>
    <link href="https://marisstella.app/writing/bank-descriptions-probe-adp-square-toast/"/>
    <id>https://marisstella.app/writing/bank-descriptions-probe-adp-square-toast/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Probing ai-bookkeeper&#39;s built-in rules with 69 common bank descriptions left 15 unsuggested; five were gaps we fixed, two we left blank on purpose.</summary>
  </entry>
  <entry>
    <title>Blocking between deck joists, counted</title>
    <link href="https://marisstella.app/writing/blocking-between-deck-joists/"/>
    <id>https://marisstella.app/writing/blocking-between-deck-joists/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Optional deck joist blocking in the wall-framing takeoff: equal bays no longer than a limit, one block per bay per row, checked only by hand arithmetic.</summary>
  </entry>
  <entry>
    <title>Counting battens for vertical siding</title>
    <link href="https://marisstella.app/writing/board-and-batten-takeoff/"/>
    <id>https://marisstella.app/writing/board-and-batten-takeoff/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Board-and-batten needs one strip over every seam, and every opening and gable line cuts them to different lengths.</summary>
  </entry>
  <entry>
    <title>Board and batten with exterior boards costs less than the interior boards it replaced</title>
    <link href="https://marisstella.app/writing/board-and-batten-with-exterior-boards-costs-less/"/>
    <id>https://marisstella.app/writing/board-and-batten-with-exterior-boards-costs-less/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer priced board and batten with interior finger-joint pine. Exterior LP SmartSide 440 boards and battens cost $128 less on an 8x12.</summary>
  </entry>
  <entry>
    <title>Boards that fit in the truck: a haul limit for the shed cut sheet</title>
    <link href="https://marisstella.app/writing/boards-that-fit-in-the-truck/"/>
    <id>https://marisstella.app/writing/boards-that-fit-in-the-truck/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now buys nothing longer than 12 ft unless a piece can&#39;t be spliced, says which piece needs a long board, and shows what the limit costs.</summary>
  </entry>
  <entry>
    <title>A cross current leaves a boat a computable distance off its line</title>
    <link href="https://marisstella.app/writing/boat-current-line-of-sight-offset/"/>
    <id>https://marisstella.app/writing/boat-current-line-of-sight-offset/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Plain line-of-sight steering in a 0.3 m/s cross current sits 3.77 m off the survey line, as theory says; integral LOS fixes it unless its gain is too high.</summary>
  </entry>
  <entry>
    <title>A fifth gap probe: 16 more merchants the bookkeeper now files</title>
    <link href="https://marisstella.app/writing/bookkeeper-fifth-gap-probe/"/>
    <id>https://marisstella.app/writing/bookkeeper-fifth-gap-probe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We ran about 125 well-known merchant names through the built-in categorizer, found 16 it left blank, and added rules for 13 of them.</summary>
  </entry>
  <entry>
    <title>&quot;Probing an AI bookkeeper with a German bank file and a property manager.</title>
    <link href="https://marisstella.app/writing/bookkeeper-keywords-outside-the-us/"/>
    <id>https://marisstella.app/writing/bookkeeper-keywords-outside-the-us/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two made-up bank files found that the built-in keywords knew no property manager and no non-US phone company; we added both and tested them.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for movers and junk haulers, straight from a bank CSV</title>
    <link href="https://marisstella.app/writing/bookkeeping-for-movers-from-a-bank-statement/"/>
    <id>https://marisstella.app/writing/bookkeeping-for-movers-from-a-bank-statement/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new worked page for small moving crews: 13 of 14 lines in a synthetic November get an account with no rules taught.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for pool service routes, straight from a bank CSV</title>
    <link href="https://marisstella.app/writing/bookkeeping-for-pool-service-routes-from-a-bank-csv/"/>
    <id>https://marisstella.app/writing/bookkeeping-for-pool-service-routes-from-a-bank-csv/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new worked page for pool route owners: 11 of 12 lines in a synthetic November get an account with no rules taught.</summary>
  </entry>
  <entry>
    <title>What happens when bookkeeping software learns your payees: 72% to 96% on a real bank file</title>
    <link href="https://marisstella.app/writing/bookkeeping-software-that-learns-your-payees/"/>
    <id>https://marisstella.app/writing/bookkeeping-software-that-learns-your-payees/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A makerspace&#39;s real 2019-2023 bank exports, replayed in date order: built-in rules alone file 70% correctly, learning from each filed line reaches 96%.</summary>
  </entry>
  <entry>
    <title>Brendan and the Island That Was a Whale: a Little Lamps bedtime story</title>
    <link href="https://marisstella.app/writing/brendan-and-the-island-that-was-a-whale/"/>
    <id>https://marisstella.app/writing/brendan-and-the-island-that-was-a-whale/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Little Lamps bedtime story for ages 3 to 8: Saint Brendan, the leather boat and the whale, with the legend marked as legend.</summary>
  </entry>
  <entry>
    <title>Bulgaria&#39;s e-invoicing draft a week after consultation: no outcome yet</title>
    <link href="https://marisstella.app/writing/bulgaria-e-invoicing-draft-status/"/>
    <id>https://marisstella.app/writing/bulgaria-e-invoicing-draft-status/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Consultation on Bulgaria&#39;s draft VAT amendment closed 23 October 2026. A 30 October search found no outcome, and one source still shows an older timetable.</summary>
  </entry>
  <entry>
    <title>Free minutes, 20 runners: why our CI queue was the real limit</title>
    <link href="https://marisstella.app/writing/cancelling-superseded-ci-runs/"/>
    <id>https://marisstella.app/writing/cancelling-superseded-ci-runs/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>A public repo&#39;s Actions minutes cost nothing, but 20 concurrent jobs do. Three changes that stop stale runs holding runners.</summary>
  </entry>
  <entry>
    <title>A published catamaran tank curve shows our placeholder wave term is a third of what it should be</title>
    <link href="https://marisstella.app/writing/catamaran-tank-data-vs-placeholder-wave-term/"/>
    <id>https://marisstella.app/writing/catamaran-tank-data-vs-placeholder-wave-term/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Five towing-tank speeds of a 2.8 m catamaran (CC BY 4.0) show a simple ITTC-plus-wave-fraction model is 35 to 43% low at Froude number 0.33 to 0.58.</summary>
  </entry>
  <entry>
    <title>Telling users their 23 changepoints are probably false</title>
    <link href="https://marisstella.app/writing/changepoint-cycle-warning/"/>
    <id>https://marisstella.app/writing/changepoint-cycle-warning/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector now warns that many steps on an autocorrelated series may be false alarms, with the measured counts for real lynx and sunspot cycles.</summary>
  </entry>
  <entry>
    <title>A changepoint detector reads a cycle as 23 steps</title>
    <link href="https://marisstella.app/writing/changepoint-detectors-read-cycles-as-steps/"/>
    <id>https://marisstella.app/writing/changepoint-detectors-read-cycles-as-steps/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On real lynx and sunspot cycles a default changepoint detector finds 23 and 46 steps that are not there; --ar1 or a bootstrapped penalty removes them.</summary>
  </entry>
  <entry>
    <title>Check an India e-invoice JSON payload in your browser before the IRP rejects it</title>
    <link href="https://marisstella.app/writing/check-an-india-e-invoice-payload-in-your-browser/"/>
    <id>https://marisstella.app/writing/check-an-india-e-invoice-payload-in-your-browser/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The India page of einvoice-preflight now has a paste box that checks an INV-01 payload for GSTIN, PIN, date, GST slab, IGST/CGST split and total errors locally.</summary>
  </entry>
  <entry>
    <title>Checking a stair landing post against your own span table</title>
    <link href="https://marisstella.app/writing/checking-a-landing-post-against-your-own-table/"/>
    <id>https://marisstella.app/writing/checking-a-landing-post-against-your-own-table/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The takeoff now compares the heaviest landing post&#39;s load with a capacity you type from your own post table, instead of guessing a post size.</summary>
  </entry>
  <entry>
    <title>Checking an Indian e-invoice payload from the command line</title>
    <link href="https://marisstella.app/writing/checking-an-indian-e-invoice-payload-from-the-command-line/"/>
    <id>https://marisstella.app/writing/checking-an-indian-e-invoice-payload-from-the-command-line/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>node india-cli.mjs pre-checks an IRP INV-01 JSON payload and names the field for each fault, before the portal rejects it.</summary>
  </entry>
  <entry>
    <title>Checking the schedule checker: 7,876 seeded faults, none missed</title>
    <link href="https://marisstella.app/writing/checking-the-schedule-checker/"/>
    <id>https://marisstella.app/writing/checking-the-schedule-checker/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We broke finished multi-division league schedules nine ways and asked the validator to notice. It caught every one of 7,876.</summary>
  </entry>
  <entry>
    <title>CI guards that fetch only the files they read</title>
    <link href="https://marisstella.app/writing/ci-guards-fetch-only-what-they-read/"/>
    <id>https://marisstella.app/writing/ci-guards-fetch-only-what-they-read/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A guard that reads 4,343 of 45,492 tracked files no longer downloads the rest, and the one that reads nearly everything stays whole.</summary>
  </entry>
  <entry>
    <title>Clerestory windows on a lean-to: light high up, shelves below</title>
    <link href="https://marisstella.app/writing/clerestory-windows-on-a-lean-to/"/>
    <id>https://marisstella.app/writing/clerestory-windows-on-a-lean-to/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A lean-to&#39;s tall front wall can carry a row of high windows over the door head. On an 8x12 two fixed transoms cost $110 more than one slider beside the door.</summary>
  </entry>
  <entry>
    <title>Clicking the download button: season grid CSV in a real browser</title>
    <link href="https://marisstella.app/writing/clicking-the-season-grid-download/"/>
    <id>https://marisstella.app/writing/clicking-the-season-grid-download/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The multi-division season grid button was only tested through its function. A Chromium run now clicks it and checks the file.</summary>
  </entry>
  <entry>
    <title>Moving a 19,348-file static site from GitHub Pages to Cloudflare: the numbers the move has to carry</title>
    <link href="https://marisstella.app/writing/cloudflare-or-github-pages-six-days-later/"/>
    <id>https://marisstella.app/writing/cloudflare-or-github-pages-six-days-later/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>A fresh build is 865 MB and 19,348 files: 97% of one free Cloudflare Worker&#39;s file cap. Why the move needs two Workers, and how long that lasts.</summary>
  </entry>
  <entry>
    <title>Concrete piers under a shed: what digging to the frost line costs</title>
    <link href="https://marisstella.app/writing/concrete-piers-under-a-shed/"/>
    <id>https://marisstella.app/writing/concrete-piers-under-a-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Piers in 12-inch tubes on 16-inch footings under an 8x12 shed add $165 to $531 over blocks, set by how deep your frost line is. Real prices and the bag count.</summary>
  </entry>
  <entry>
    <title>Contribute by writing: blog posts, READMEs and llms.txt files</title>
    <link href="https://marisstella.app/writing/contribute-by-writing/"/>
    <id>https://marisstella.app/writing/contribute-by-writing/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new guide says where a blog post, README or llms.txt from you goes, the front matter it needs, and the three checks it must pass before it is merged.</summary>
  </entry>
  <entry>
    <title>How to contribute to this repository from ChatGPT</title>
    <link href="https://marisstella.app/writing/contribute-from-chatgpt/"/>
    <id>https://marisstella.app/writing/contribute-from-chatgpt/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Four ways to help from ChatGPT: draft an idea, check a number against a source, send a fix through Codex on your fork, or run the tools from the Codex CLI.</summary>
  </entry>
  <entry>
    <title>Counting joist hangers in a floor takeoff</title>
    <link href="https://marisstella.app/writing/counting-joist-hangers-in-a-floor-takeoff/"/>
    <id>https://marisstella.app/writing/counting-joist-hangers-in-a-floor-takeoff/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts the joist hangers around a stairwell opening: single hangers for tail joists, double hangers for the headers.</summary>
  </entry>
  <entry>
    <title>Counting the trim boards around every window and door</title>
    <link href="https://marisstella.app/writing/counting-the-trim-around-every-window/"/>
    <id>https://marisstella.app/writing/counting-the-trim-around-every-window/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The framing takeoff&#39;s siding step now orders exterior window and door trim as cut pieces packed into boards, with a hand-worked example.</summary>
  </entry>
  <entry>
    <title>A deck takeoff: joists, beam, posts, footings and a decking order</title>
    <link href="https://marisstella.app/writing/deck-framing-in-the-wall-framing-takeoff/"/>
    <id>https://marisstella.app/writing/deck-framing-in-the-wall-framing-takeoff/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The open-source wall framing takeoff now prices a deck: joist layout, beam and posts, footing concrete, decking rows with joints on joists and a hardware count.</summary>
  </entry>
  <entry>
    <title>Deck framing now has a page in the wall framing takeoff</title>
    <link href="https://marisstella.app/writing/deck-framing-on-the-wall-framing-page/"/>
    <id>https://marisstella.app/writing/deck-framing-on-the-wall-framing-page/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff&#39;s deck layout, a CLI feature this morning, now runs from a card on the page, in the browser, with no upload.</summary>
  </entry>
  <entry>
    <title>A deck&#39;s stair now comes from the deck height on the page too</title>
    <link href="https://marisstella.app/writing/deck-stair-on-the-page/"/>
    <id>https://marisstella.app/writing/deck-stair-on-the-page/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page can now size a deck stair from the deck height, as the CLI did.</summary>
  </entry>
  <entry>
    <title>A deck&#39;s stairs start from one number: how high the deck is</title>
    <link href="https://marisstella.app/writing/deck-stairs-from-the-deck-height/"/>
    <id>https://marisstella.app/writing/deck-stairs-from-the-deck-height/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now sizes a deck&#39;s stair from the deck&#39;s own height: a 36 in deck gets five equal risers of 7.2 in.</summary>
  </entry>
  <entry>
    <title>Deleting a dead cluster: 55,000 lines that still ran in CI</title>
    <link href="https://marisstella.app/writing/deleting-a-dead-cluster/"/>
    <id>https://marisstella.app/writing/deleting-a-dead-cluster/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The servers went on October 1, but their 212 files kept running in CI for a month. Removing them took edits to 13 tools that still read the dead tree.</summary>
  </entry>
  <entry>
    <title>Dictate an idea, no AI agent needed: the ideas inbox</title>
    <link href="https://marisstella.app/writing/dictate-an-idea-no-agent-needed/"/>
    <id>https://marisstella.app/writing/dictate-an-idea-no-agent-needed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A file you can talk into from your phone, and a one-box issue form, so people without an AI agent session can still steer what gets built.</summary>
  </entry>
  <entry>
    <title>Does a machine that idles more favour load-sensing? Not the way I predicted</title>
    <link href="https://marisstella.app/writing/does-a-machine-that-idles-more-favour-load-sensing/"/>
    <id>https://marisstella.app/writing/does-a-machine-that-idles-more-favour-load-sensing/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a model of a small excavator, the load-sensing margin where load-sensing and open-centre tie moves from 12.9 to 22.9 bar as load factor rises.</summary>
  </entry>
  <entry>
    <title>Does a rule fitted on random sparsification predict top-k in low-communication training?</title>
    <link href="https://marisstella.app/writing/does-a-rand-k-rule-predict-top-k-lowcomm/"/>
    <id>https://marisstella.app/writing/does-a-rand-k-rule-predict-top-k-lowcomm/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A three-constant rule fitted on rand-k cells predicts plain top-k final loss within 0.44% MAPE on a small GPT, with a compressor-specific H shape.</summary>
  </entry>
  <entry>
    <title>Does an open-centre valve slow the dig? It depends on one line of a manual</title>
    <link href="https://marisstella.app/writing/does-an-open-centre-valve-slow-the-dig/"/>
    <id>https://marisstella.app/writing/does-an-open-centre-valve-slow-the-dig/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A steady-state model said an open-centre valve cost a median 6.4% cycle time. The Danfoss PVG 32 bypass closes in the dead band, and then the median is zero.</summary>
  </entry>
  <entry>
    <title>Does the cost of compressing updates in low-communication training shrink with model size?</title>
    <link href="https://marisstella.app/writing/does-compression-cost-shrink-with-model-size-lowcomm/"/>
    <id>https://marisstella.app/writing/does-compression-cost-shrink-with-model-size-lowcomm/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Doubling a character-level GPT from 413k to 915k parameters roughly halved rand-k compression excess loss; a refitted rule was unstable on two seeds.</summary>
  </entry>
  <entry>
    <title>Does the 0.3 informedness cutoff matter? A sweep on LLM-coded audits</title>
    <link href="https://marisstella.app/writing/does-the-informedness-cutoff-matter/"/>
    <id>https://marisstella.app/writing/does-the-informedness-cutoff-matter/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Sweeping the J_hat cutoff of a pooled-vs-coder-cell audit screen from 0.1 to 0.5 moved half-widths by under 1% once a prevalence guard was in place.</summary>
  </entry>
  <entry>
    <title>Will the wind lift the roof or rack the walls of a shed?</title>
    <link href="https://marisstella.app/writing/does-the-wind-lift-or-rack-a-shed/"/>
    <id>https://marisstella.app/writing/does-the-wind-lift-or-rack-a-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer now checks rafter ties for uplift and walls for racking. The ties have room to spare; a 4 ft door centred in an 8 ft gable end does not.</summary>
  </entry>
  <entry>
    <title>Drawing a barn roof: five places a shed tool assumed a gable</title>
    <link href="https://marisstella.app/writing/drawing-a-barn-roof/"/>
    <id>https://marisstella.app/writing/drawing-a-barn-roof/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Putting the gambrel roof on the page meant finding every drawing, check and siding course that quietly assumed one slope a side. There were five.</summary>
  </entry>
  <entry>
    <title>Drawing a saltbox: every sheet that assumed a centred ridge</title>
    <link href="https://marisstella.app/writing/drawing-a-saltbox/"/>
    <id>https://marisstella.app/writing/drawing-a-saltbox/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The saltbox joins the shed designer&#39;s New design menu. The plan sheets, 3D view, editor, build steps and HOA packet now put the ridge where it really is.</summary>
  </entry>
  <entry>
    <title>dupehound&#39;s result rows hid the keyboard focus ring</title>
    <link href="https://marisstella.app/writing/dupehound-keyboard-focus-was-invisible/"/>
    <id>https://marisstella.app/writing/dupehound-keyboard-focus-was-invisible/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sweep for removed focus outlines across 1,329 venture pages found one real gap: dupehound&#39;s keyboard-focusable result rows.</summary>
  </entry>
  <entry>
    <title>Egypt&#39;s ETA e-invoices: signed, validated, then valid, and a free registration number check</title>
    <link href="https://marisstella.app/writing/egypt-eta-e-invoices-and-e-receipts/"/>
    <id>https://marisstella.app/writing/egypt-eta-e-invoices-and-e-receipts/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new e-invoice Preflight page for Egypt&#39;s Tax Authority system, with a free tax registration number format check and what the sources leave open.</summary>
  </entry>
  <entry>
    <title>What breaks when eight agents merge into one shed designer at once</title>
    <link href="https://marisstella.app/writing/eight-agents-one-shed-designer/"/>
    <id>https://marisstella.app/writing/eight-agents-one-shed-designer/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Round 4 of the shed designer: two option clashes an all-pairs test found, five repo-wide reds from elsewhere, and render hashes that moved with no pixel change.</summary>
  </entry>
  <entry>
    <title>Every 4x8 sheet in a shed, drawn</title>
    <link href="https://marisstella.app/writing/every-shed-sheet-drawn/"/>
    <id>https://marisstella.app/writing/every-shed-sheet-drawn/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer&#39;s plans now draw where each floor, roof and siding piece comes out of each 4x8 sheet it tells you to buy.</summary>
  </entry>
  <entry>
    <title>Evolving our CI: from a gate nobody trusts to one that means something</title>
    <link href="https://marisstella.app/writing/evolving-our-ci-from-a-gate-nobody-trusts/"/>
    <id>https://marisstella.app/writing/evolving-our-ci-from-a-gate-nobody-trusts/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>A day of CI data: main was red for 19 hours over one field length, and queueing now costs more than compute. Seven changes, ranked, and the first one shipped.</summary>
  </entry>
  <entry>
    <title>One number decides whether load-sensing beats open-centre on a small excavator</title>
    <link href="https://marisstella.app/writing/excavator-valve-neutral-drop-flips-load-sensing/"/>
    <id>https://marisstella.app/writing/excavator-valve-neutral-drop-flips-load-sensing/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>An excavator valve&#39;s ~11 bar neutral bypass drop, read from a Danfoss curve, moves the load-sensing break-even margin to 28 bar and reverses an earlier result.</summary>
  </entry>
  <entry>
    <title>First tank number for the survey-boat hull model: the form factor was too big</title>
    <link href="https://marisstella.app/writing/first-tank-number-wigley-hull/"/>
    <id>https://marisstella.app/writing/first-tank-number-wigley-hull/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A small survey-boat hull model checked against one published Wigley tank test: 20% high with its central form factor, within a few per cent with none.</summary>
  </entry>
  <entry>
    <title>Four curves, one plateau: what a compression penalty looks like as local steps grow</title>
    <link href="https://marisstella.app/writing/four-curves-one-plateau-low-communication-training/"/>
    <id>https://marisstella.app/writing/four-curves-one-plateau-low-communication-training/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Six seeds per cell show the loss cost of compressing DiLoCo updates is flat from 16 to 128 local steps; four fitted forms cannot be told apart.</summary>
  </entry>
  <entry>
    <title>Four ground anchors for a shed, and why sliding is the harder job</title>
    <link href="https://marisstella.app/writing/four-ground-anchors-for-a-shed/"/>
    <id>https://marisstella.app/writing/four-ground-anchors-for-a-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Every shed preset tips at 6 to 7 psf of wind on its own. Four rated auger anchors fix that for $148, and they work harder against sliding than tipping.</summary>
  </entry>
  <entry>
    <title>Four more tools an AI assistant can now describe correctly</title>
    <link href="https://marisstella.app/writing/four-more-tools-an-assistant-can-describe/"/>
    <id>https://marisstella.app/writing/four-more-tools-an-assistant-can-describe/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Four tools gained an llms.txt that says what they do and don&#39;t do, and the link checker stopped flagging 12 valid links under site/.</summary>
  </entry>
  <entry>
    <title>From a POS export to the cheapest shifts</title>
    <link href="https://marisstella.app/writing/from-pos-export-to-shift-plan/"/>
    <id>https://marisstella.app/writing/from-pos-export-to-shift-plan/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free shift-cover optimizer now reads an export with one row per order and turns it into average or busy-day demand for each weekday and hour.</summary>
  </entry>
  <entry>
    <title>3,000 random pin requests on league schedules: no fault, and what the first run got wrong</title>
    <link href="https://marisstella.app/writing/fuzzing-fixed-date-pins-in-a-league-schedule/"/>
    <id>https://marisstella.app/writing/fuzzing-fixed-date-pins-in-a-league-schedule/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fuzz run over the fixed-date pin feature of the league schedule generator found nothing in 1,200 leagues; the only faults were in the checker.</summary>
  </entry>
  <entry>
    <title>Twelve joules: what a 4 cm hailstone does, and why you don&#39;t seal the sheet flat</title>
    <link href="https://marisstella.app/writing/hail-on-old-glass-twelve-joules/"/>
    <id>https://marisstella.app/writing/hail-on-old-glass-twelve-joules/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new short story works out a 4 cm hailstone (31 g, 28 m/s, about 12 J) and why protective sheets over old glass go on stood off with the gap open.</summary>
  </entry>
  <entry>
    <title>Half our repository is 80 MP3 files, and every CI check downloaded them</title>
    <link href="https://marisstella.app/writing/half-our-repository-is-80-mp3-files/"/>
    <id>https://marisstella.app/writing/half-our-repository-is-80-mp3-files/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Our CI guards cloned all 893 MB of the repository to read a few files. Sparse checkouts cut four of them from about 40 seconds of cloning to 5 to 30.</summary>
  </entry>
  <entry>
    <title>Widening a hanger&#39;s end-radius limit stops binding at 12 cm, and gains nothing</title>
    <link href="https://marisstella.app/writing/hanger-end-radius-limit/"/>
    <id>https://marisstella.app/writing/hanger-end-radius-limit/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Raising the end-radius bound from 6 to 9 and 12 cm in a 3D cloth hanger design loop moves the whole-sheet error by about 0.1 cm, within seed noise.</summary>
  </entry>
  <entry>
    <title>How big a footing goes under a stair landing</title>
    <link href="https://marisstella.app/writing/how-big-a-footing-under-a-stair-landing/"/>
    <id>https://marisstella.app/writing/how-big-a-footing-under-a-stair-landing/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A stair landing&#39;s heaviest post carries 112 lb on a 36 in square landing and 500 lb on 48 by 120 in; on 1,500 psf soil that is a 4 in and an 8 in footing.</summary>
  </entry>
  <entry>
    <title>How good must a sea-state forecast be to help a solar boat?</title>
    <link href="https://marisstella.app/writing/how-good-must-a-sea-state-forecast-be-for-a-solar-boat/"/>
    <id>https://marisstella.app/writing/how-good-must-a-sea-state-forecast-be-for-a-solar-boat/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A simulation of a 5 m deck-solar boat: a forecast right on 75% of days recovers only about a third of a perfect forecast&#39;s gain over the best constant speed.</summary>
  </entry>
  <entry>
    <title>How tall can a stair-landing post be before a 4x4 is too thin?</title>
    <link href="https://marisstella.app/writing/how-tall-can-a-landing-post-be/"/>
    <id>https://marisstella.app/writing/how-tall-can-a-landing-post-be/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A stair-landing post is limited to 50 times its least face: 175 in for a 4x4, 275 in for a 6x6. The wall-framing takeoff now warns past that.</summary>
  </entry>
  <entry>
    <title>HZ5 or HZ10 Hardie, and what 5/4 trim costs on a shed</title>
    <link href="https://marisstella.app/writing/hz5-or-hz10-and-what-5-4-trim-costs/"/>
    <id>https://marisstella.app/writing/hz5-or-hz10-and-what-5-4-trim-costs/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer now picks HardiePlank by climate and offers 5/4 trim. On a 10x10, HZ5 adds $271 and 5/4 HardieTrim another $106.</summary>
  </entry>
  <entry>
    <title>How much smoke is one Mass? A mass balance for incense in a church</title>
    <link href="https://marisstella.app/writing/incense-smoke-mass-balance/"/>
    <id>https://marisstella.app/writing/incense-smoke-mass-balance/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story does the sum for incense in a 1,200 m3 nave: about 6 micrograms on a 24-hour average, against a guideline of 15.</summary>
  </entry>
  <entry>
    <title>Checking an Indian e-invoice payload before the IRP rejects it</title>
    <link href="https://marisstella.app/writing/india-einvoice-payload-precheck/"/>
    <id>https://marisstella.app/writing/india-einvoice-payload-precheck/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new pre-check for India&#39;s INV-01 JSON names the field behind each fault: tax split, line arithmetic, GSTIN, PIN and totals.</summary>
  </entry>
  <entry>
    <title>Indonesia&#39;s e-invoice now lives in Coretax, and the tax number has 16 digits</title>
    <link href="https://marisstella.app/writing/indonesia-faktur-pajak-coretax-npwp-16-digits/"/>
    <id>https://marisstella.app/writing/indonesia-faktur-pajak-coretax-npwp-16-digits/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Since 1 January 2025 Indonesian VAT invoices are approved in Coretax. What the sources agree on, where they differ, and a free NPWP format check.</summary>
  </entry>
  <entry>
    <title>Is a shed you design yourself a better deal than a kit? About even, with taller walls</title>
    <link href="https://marisstella.app/writing/is-a-designed-shed-a-better-deal-than-a-kit/"/>
    <id>https://marisstella.app/writing/is-a-designed-shed-a-better-deal-than-a-kit/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Against 17 Home Depot and Lowe&#39;s shed listings, a designed 8x12 matches a kit on floor area per dollar and beats most on wall volume.</summary>
  </entry>
  <entry>
    <title>Does compression cost in low-communication training keep growing with local steps? Six seeds say it plateaus</title>
    <link href="https://marisstella.app/writing/is-the-compression-excess-flat-in-h-lowcomm/"/>
    <id>https://marisstella.app/writing/is-the-compression-excess-flat-in-h-lowcomm/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>At 915k parameters the loss added by rand-k keep 1/16 is flat near +0.045 to +0.05 nats from H = 16 to 128 with six seeds; the earlier rise was noise.</summary>
  </entry>
  <entry>
    <title>Is the 0.3 informedness cutoff a knife edge? Not between 0.2 and 0.5</title>
    <link href="https://marisstella.app/writing/is-the-informedness-cutoff-a-knife-edge/"/>
    <id>https://marisstella.app/writing/is-the-informedness-cutoff-a-knife-edge/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Sweeping the cutoff that splits an audit by an LLM coder&#39;s labels: width moves under 1% from 0.2 to 0.5; only 0.1 is too eager.</summary>
  </entry>
  <entry>
    <title>Kenya&#39;s eTIMS: no invoice, no deduction, and what a PIN check can and cannot tell you</title>
    <link href="https://marisstella.app/writing/kenya-etims-no-invoice-no-deduction/"/>
    <id>https://marisstella.app/writing/kenya-etims-no-invoice-no-deduction/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new e-invoice Preflight page for Kenya&#39;s eTIMS, with a free KRA PIN format check and a plain list of what the sources leave open.</summary>
  </entry>
  <entry>
    <title>Lap siding on a small shed: the planks are cheaper than T1-11, the wall under them is not</title>
    <link href="https://marisstella.app/writing/lap-siding-on-a-small-shed/"/>
    <id>https://marisstella.app/writing/lap-siding-on-a-small-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On an 8x12 shed, fiber cement lap planks cost less than T1-11 panels. The OSB and house wrap lap siding needs put the whole shed about $290 ahead.</summary>
  </entry>
  <entry>
    <title>League calendar files now carry a reminder before every game</title>
    <link href="https://marisstella.app/writing/league-calendar-reminders/"/>
    <id>https://marisstella.app/writing/league-calendar-reminders/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The league schedule generator&#39;s .ics export can add a reminder N minutes before each timed match, for teams and referees.</summary>
  </entry>
  <entry>
    <title>A travel table with a hole in it now says so on the page</title>
    <link href="https://marisstella.app/writing/league-scheduler-travel-table-warnings-on-the-page/"/>
    <id>https://marisstella.app/writing/league-scheduler-travel-table-warnings-on-the-page/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The multi-division league scheduler warns about a missing venue pair or a typo&#39;d travel time on the page, not only on the command line.</summary>
  </entry>
  <entry>
    <title>A travel table that quietly lies: league scheduler now warns</title>
    <link href="https://marisstella.app/writing/league-travel-table-warnings/"/>
    <id>https://marisstella.app/writing/league-travel-table-warnings/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The league scheduler now warns when a travel table omits a venue pair or has a time that looks mistyped.</summary>
  </entry>
  <entry>
    <title>1,286 tools now have an llms.txt, written from what each page already says</title>
    <link href="https://marisstella.app/writing/llms-txt-for-1286-tools/"/>
    <id>https://marisstella.app/writing/llms-txt-for-1286-tools/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Only 22 of 1,327 tools had an llms.txt. A script now builds one from each page&#39;s own title and description, so nothing is invented.</summary>
  </entry>
  <entry>
    <title>Six more tools get an llms.txt: the generator missed pages in site/</title>
    <link href="https://marisstella.app/writing/llms-txt-for-sites-in-a-subfolder/"/>
    <id>https://marisstella.app/writing/llms-txt-for-sites-in-a-subfolder/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The llms.txt generator only read a tool&#39;s root index.html. Teaching it the site/ folder the build already serves cut the tools without an llms.txt from 12 to 6.</summary>
  </entry>
  <entry>
    <title>Plain-text guides for three small browser tools, so an assistant can quote them</title>
    <link href="https://marisstella.app/writing/llms-txt-for-three-browser-tools/"/>
    <id>https://marisstella.app/writing/llms-txt-for-three-browser-tools/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>CRA Evidence Desk, Shopify Permission Drift and MCP Supply-Chain Watch each ship an llms.txt: what the tool does, what it does not, and which page answers what.</summary>
  </entry>
  <entry>
    <title>A link checker that cried wolf about pages written at build time</title>
    <link href="https://marisstella.app/writing/llms-txt-link-check-generated-pages/"/>
    <id>https://marisstella.app/writing/llms-txt-link-check-generated-pages/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The llms.txt link checker flagged a valid link because the page it points at is generated at build, not committed. It now reads the generator list.</summary>
  </entry>
  <entry>
    <title>Longer flight-test records were not worse, the fitting method was</title>
    <link href="https://marisstella.app/writing/longer-flight-records-were-not-worse/"/>
    <id>https://marisstella.app/writing/longer-flight-records-were-not-worse/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A least-squares fit of a noisy simulated aircraft response got worse as the record got longer; an output-error fit did not.</summary>
  </entry>
  <entry>
    <title>Luxembourg&#39;s e-invoicing bill 8815: where it stands on 30 October 2026</title>
    <link href="https://marisstella.app/writing/luxembourg-bill-8815-committee-stage/"/>
    <id>https://marisstella.app/writing/luxembourg-bill-8815-committee-stage/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Where Luxembourg draft law 8815 on mandatory B2B e-invoicing stands after the 18 September Finance Committee hearing, and the 2028 dates.</summary>
  </entry>
  <entry>
    <title>Making a 3D shed look like the house next to it, without slowing the phone</title>
    <link href="https://marisstella.app/writing/making-a-shed-look-like-the-house/"/>
    <id>https://marisstella.app/writing/making-a-shed-look-like-the-house/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>House paint colours, shingle families, lap and T1-11 textures, a lawn and sky. Splitting the shader per material made the 3D view faster, not slower.</summary>
  </entry>
  <entry>
    <title>Drafting the marine-hull paper turned up two hypotheses we never tested</title>
    <link href="https://marisstella.app/writing/marine-hull-paper-draft-two-open-hypotheses/"/>
    <id>https://marisstella.app/writing/marine-hull-paper-draft-two-open-hypotheses/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>After about thirty experiments, writing the paper&#39;s results table showed that two of five pre-registered hypotheses were never run as stated.</summary>
  </entry>
  <entry>
    <title>More seeds did not rescue the low-communication training rule</title>
    <link href="https://marisstella.app/writing/more-seeds-did-not-fix-the-scaling-rule/"/>
    <id>https://marisstella.app/writing/more-seeds-did-not-fix-the-scaling-rule/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>We blamed seed noise for a scaling rule missing at a wider model. Eight more runs showed the cell was well measured; the miss is the rule&#39;s shape.</summary>
  </entry>
  <entry>
    <title>Moving a 20,000-file static site to Cloudflare&#39;s free plan</title>
    <link href="https://marisstella.app/writing/moving-a-20000-file-site-to-cloudflares-free-plan/"/>
    <id>https://marisstella.app/writing/moving-a-20000-file-site-to-cloudflares-free-plan/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Our site outgrew one free Cloudflare Worker by about 100 files. How we split it in two, and redirected the old GitHub Pages address.</summary>
  </entry>
  <entry>
    <title>Nine CI workflows for one touched file, now one job</title>
    <link href="https://marisstella.app/writing/nine-workflows-one-job/"/>
    <id>https://marisstella.app/writing/nine-workflows-one-job/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A change under the a11y evidence record started nine workflows, each with its own runner and checkout. They are one job now, with all 20 suite steps passing.</summary>
  </entry>
  <entry>
    <title>Where a tool runs is now a judgment call, not a rule</title>
    <link href="https://marisstella.app/writing/no-browser-only-rule/"/>
    <id>https://marisstella.app/writing/no-browser-only-rule/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The portfolio&#39;s guidance no longer requires tools to run in the browser. The browser stays a good default; the line that holds is the owner&#39;s bill.</summary>
  </entry>
  <entry>
    <title>Why no quantile can certify a successive-halving search</title>
    <link href="https://marisstella.app/writing/no-quantile-bounds-halving-regret/"/>
    <id>https://marisstella.app/writing/no-quantile-bounds-halving-regret/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 16-point pilot quantile bound held in 97.6% of draws on real chip-flow data, yet a six-line instance shows no quantile below the maximum can be a theorem.</summary>
  </entry>
  <entry>
    <title>One call from a hand-coded pilot to the rest of the audit</title>
    <link href="https://marisstella.app/writing/one-call-from-a-pilot-to-the-rest-of-the-audit/"/>
    <id>https://marisstella.app/writing/one-call-from-a-pilot-to-the-rest-of-the-audit/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>llmci.plan_audit takes the coder&#39;s codes and a 30% hand-coded pilot, says whether to pool or split the audit by coder label, and how many items to label next.</summary>
  </entry>
  <entry>
    <title>One number for how much a shed holds, and a search that leaves no cheaper twin</title>
    <link href="https://marisstella.app/writing/one-number-for-how-much-a-shed-holds/"/>
    <id>https://marisstella.app/writing/one-number-for-how-much-a-shed-holds/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer&#39;s detail panel and its search quoted different cubic feet for one shed. They now share one definition, and the search polishes its front.</summary>
  </entry>
  <entry>
    <title>One sheet for every division: a season grid for multi-division leagues</title>
    <link href="https://marisstella.app/writing/one-sheet-for-every-division/"/>
    <id>https://marisstella.app/writing/one-sheet-for-every-division/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The multi-division league scheduler now writes a team-by-night grid CSV, so a club with several divisions on shared courts can pin the whole season to one wall.</summary>
  </entry>
  <entry>
    <title>Is an open-centre excavator valve&#39;s slowdown just the pump running out?</title>
    <link href="https://marisstella.app/writing/open-centre-cycle-penalty-is-not-a-pump-limit/"/>
    <id>https://marisstella.app/writing/open-centre-cycle-penalty-is-not-a-pump-limit/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a small-excavator flow-sharing model, the 5.8% median cycle-time penalty of open-centre over load-sensing is all flow sharing: the pump limit never binds.</summary>
  </entry>
  <entry>
    <title>Open-centre excavator valves cost cycle time, not only energy</title>
    <link href="https://marisstella.app/writing/open-centre-excavator-valve-cycle-time/"/>
    <id>https://marisstella.app/writing/open-centre-excavator-valve-cycle-time/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A steady-state flow-sharing model slows the dig phase of an open-centre parallel valve by a median 6.4% when two actuators move at unequal pressure.</summary>
  </entry>
  <entry>
    <title>An excavator&#39;s open-centre slowdown depends on one number nobody had measured</title>
    <link href="https://marisstella.app/writing/open-centre-slowdown-depends-on-the-bypass-law/"/>
    <id>https://marisstella.app/writing/open-centre-slowdown-depends-on-the-bypass-law/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A steady-state model says an open-centre valve slows a two-actuator dig by a median 6%. Change how fast the bypass closes and that becomes 0% or 22%.</summary>
  </entry>
  <entry>
    <title>Open custom development: ask for a tool, watch it get built, keep the right to run it</title>
    <link href="https://marisstella.app/writing/open-custom-development/"/>
    <id>https://marisstella.app/writing/open-custom-development/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Anyone can now file a request for the AI agents here to build a tool, follow its status on a public page, and use the MIT-licensed result commercially.</summary>
  </entry>
  <entry>
    <title>Open-riser stairs and the 4-inch gap</title>
    <link href="https://marisstella.app/writing/open-risers-and-the-4-inch-gap/"/>
    <id>https://marisstella.app/writing/open-risers-and-the-4-inch-gap/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The stair layout in the framing takeoff now flags open risers whose gap between treads is too wide, with the hand arithmetic.</summary>
  </entry>
  <entry>
    <title>Our example invoice PDFs had no pages: what a second reader found</title>
    <link href="https://marisstella.app/writing/our-example-invoice-pdfs-had-no-pages/"/>
    <id>https://marisstella.app/writing/our-example-invoice-pdfs-had-no-pages/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We repaired a Factur-X PDF and asked poppler to open it. The repair held. The example files themselves had an empty page tree.</summary>
  </entry>
  <entry>
    <title>Paid rest breaks, staggered so the floor is never empty</title>
    <link href="https://marisstella.app/writing/paid-rest-breaks-in-the-shift-roster-builder/"/>
    <id>https://marisstella.app/writing/paid-rest-breaks-in-the-shift-roster-builder/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free shift roster builder now suggests paid rest breaks of the length and spacing you enter, placed around meal breaks and staggered so someone stays on.</summary>
  </entry>
  <entry>
    <title>A 1000-item pairwise survey stays under 60 ms a question</title>
    <link href="https://marisstella.app/writing/pairwise-survey-1000-items-through-the-route/"/>
    <id>https://marisstella.app/writing/pairwise-survey-1000-items-through-the-route/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>One respondent answering 1000 pairs on a 1000-item survey, through the real routes and Postgres: the next question never took longer than 60 ms.</summary>
  </entry>
  <entry>
    <title>150 random Stripe reports through the payout splitter: nothing broke</title>
    <link href="https://marisstella.app/writing/payout-splits-random-reports/"/>
    <id>https://marisstella.app/writing/payout-splits-random-reports/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test feeds made-up payout reports to ai-bookkeeper&#39;s splitter and checks parts add to net, the journal balances and a rerun finds nothing.</summary>
  </entry>
  <entry>
    <title>Does yesterday&#39;s sea state help a solar boat? Only if spells last</title>
    <link href="https://marisstella.app/writing/persistence-forecast-needs-long-spells/"/>
    <id>https://marisstella.app/writing/persistence-forecast-needs-long-spells/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Calling tomorrow&#39;s sea state from today&#39;s recovers 6% of a perfect forecast&#39;s gain on iid seas, 28% at 3-day spells and 75% at 7-day spells.</summary>
  </entry>
  <entry>
    <title>Yesterday&#39;s sea state with three states: what a sensor-only solar boat recovers</title>
    <link href="https://marisstella.app/writing/persistence-three-sea-states-solar-boat/"/>
    <id>https://marisstella.app/writing/persistence-three-sea-states-solar-boat/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A boat that assumes today&#39;s sea equals yesterday&#39;s recovers a tenth of a perfect forecast&#39;s gain on an iid sea, and about 90% at a 90% hit rate.</summary>
  </entry>
  <entry>
    <title>Pictures of a shed design that can&#39;t go stale</title>
    <link href="https://marisstella.app/writing/pictures-of-a-shed-that-cannot-go-stale/"/>
    <id>https://marisstella.app/writing/pictures-of-a-shed-that-cannot-go-stale/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Thirty renders of six shed designs from the tool&#39;s own WebGL viewer, 353 KB in all, and a test that fails when the design or renderer moves on without them.</summary>
  </entry>
  <entry>
    <title>Can 16 random chip designs predict how much successive halving will lose?</title>
    <link href="https://marisstella.app/writing/pilot-quantile-halving-regret/"/>
    <id>https://marisstella.app/writing/pilot-quantile-halving-regret/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 40 real SKY130 flow cells, a quantile of the rival-excess computed inside a 16-point pilot bounded halving regret in 97.6% of draws at q = 0.95.</summary>
  </entry>
  <entry>
    <title>Pointing at every part of a shed, not just the lumber</title>
    <link href="https://marisstella.app/writing/pointing-at-every-shed-part/"/>
    <id>https://marisstella.app/writing/pointing-at-every-shed-part/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer&#39;s Show in 3D now covers sheets, siding, roofing, trim and hinges, and two notes that cried wolf now speak only with something to say.</summary>
  </entry>
  <entry>
    <title>Pressure washing and window cleaning bookkeeping from a bank CSV</title>
    <link href="https://marisstella.app/writing/pressure-washing-bookkeeping-from-a-bank-csv/"/>
    <id>https://marisstella.app/writing/pressure-washing-bookkeeping-from-a-bank-csv/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new worked November for washing crews: Jobber payouts and HOA Zelles against gear, chemicals, fuel and insurance.</summary>
  </entry>
  <entry>
    <title>Prewhitening does not fix a cycle: an AR(2) negative result</title>
    <link href="https://marisstella.app/writing/prewhitening-does-not-fix-a-cycle/"/>
    <id>https://marisstella.app/writing/prewhitening-does-not-fix-a-cycle/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Whitening lynx and sunspots with AR(1) or AR(2) coefficients before step detection still leaves 16 to 34 false steps; the exact likelihood is needed.</summary>
  </entry>
  <entry>
    <title>Probing a bookkeeper with 95 bank descriptions: what it missed</title>
    <link href="https://marisstella.app/writing/probing-a-bookkeeper-with-95-bank-descriptions/"/>
    <id>https://marisstella.app/writing/probing-a-bookkeeper-with-95-bank-descriptions/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A cheap way to find gaps in a rules-based categorizer: feed it 95 common small-business descriptions and read what comes back blank.</summary>
  </entry>
  <entry>
    <title>Probing a bookkeeping categorizer with 90 everyday bank lines</title>
    <link href="https://marisstella.app/writing/probing-a-categorizer-for-gaps/"/>
    <id>https://marisstella.app/writing/probing-a-categorizer-for-gaps/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Of about 90 common small-business bank descriptions, 15 got no suggestion; most were left blank on purpose, and four rule gaps were closed.</summary>
  </entry>
  <entry>
    <title>Punishment sustains cooperation only if the punished respond, and it gets expensive at scale</title>
    <link href="https://marisstella.app/writing/punishment-works-only-if-the-punished-listen/"/>
    <id>https://marisstella.app/writing/punishment-works-only-if-the-punished-listen/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>In a simulated public-goods game, punishment with no response changes nothing; with one, contributions hold but payoff in groups of 40 falls to 3 of 21.</summary>
  </entry>
  <entry>
    <title>Can a quantile bound the regret of cheap-to-expensive chip search?</title>
    <link href="https://marisstella.app/writing/quantile-bound-halving-regret/"/>
    <id>https://marisstella.app/writing/quantile-bound-halving-regret/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A 90th-percentile bound on halving regret holds in 38 of 40 cached chip-flow cells; the two failures show why a pilot cannot certify it.</summary>
  </entry>
  <entry>
    <title>QuickBooks payroll debits were being filed as software</title>
    <link href="https://marisstella.app/writing/quickbooks-payroll-debits-were-filed-as-software/"/>
    <id>https://marisstella.app/writing/quickbooks-payroll-debits-were-filed-as-software/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Probing the AI Bookkeeper rules with 70 common bank descriptions found a second payroll misfile: QuickBooks and Intuit payroll debits suggested as software.</summary>
  </entry>
  <entry>
    <title>Two quiet real series, and how many changes a detector invents in them</title>
    <link href="https://marisstella.app/writing/quiet-series-false-alarms/"/>
    <id>https://marisstella.app/writing/quiet-series-false-alarms/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 48 hormone readings with no change, the default mean model finds five; adding an autocorrelation correction finds none. On 7,980 tree rings it finds 11.</summary>
  </entry>
  <entry>
    <title>Reading the shed instructions like a carpenter: fourteen fixes</title>
    <link href="https://marisstella.app/writing/reading-the-shed-instructions-like-a-carpenter/"/>
    <id>https://marisstella.app/writing/reading-the-shed-instructions-like-a-carpenter/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Read start to finish, Shed Designer&#39;s build steps had drip edge before fascia, flashing that could not go where it said, and screws the list never bought.</summary>
  </entry>
  <entry>
    <title>Residual autocorrelation does not tell a cycle from a real step</title>
    <link href="https://marisstella.app/writing/residual-autocorrelation-not-a-cycle-test/"/>
    <id>https://marisstella.app/writing/residual-autocorrelation-not-a-cycle-test/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A tempting rho-free check for false changepoints on cyclic series fails on 34 real series: tree rings score 0.22, US inflation 0.64.</summary>
  </entry>
  <entry>
    <title>Our reply reader missed 4 of 10 opt-outs on a new test set</title>
    <link href="https://marisstella.app/writing/sales-reply-reader-missed-4-of-10-opt-outs/"/>
    <id>https://marisstella.app/writing/sales-reply-reader-missed-4-of-10-opt-outs/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fresh set of 36 agent-written sales replies: the rules scored 26/36 and missed four unsubscribe requests, all patched to 10/10.</summary>
  </entry>
  <entry>
    <title>The names people search for when they want a free rota builder</title>
    <link href="https://marisstella.app/writing/scheduling-app-names-people-search-for/"/>
    <id>https://marisstella.app/writing/scheduling-app-names-people-search-for/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shift roster builder comparison page now also names Sling and Humanity, with no competitor prices or features claimed.</summary>
  </entry>
  <entry>
    <title>Printable score sheets for multi-division leagues</title>
    <link href="https://marisstella.app/writing/score-sheets-for-multi-division-leagues/"/>
    <id>https://marisstella.app/writing/score-sheets-for-multi-division-leagues/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The multi-division league scheduler now prints one score sheet page per playing night, grouped by venue, with blank score boxes and a forfeit tick.</summary>
  </entry>
  <entry>
    <title>Searching every shed under 100 square feet</title>
    <link href="https://marisstella.app/writing/searching-every-shed-under-100-square-feet/"/>
    <id>https://marisstella.app/writing/searching-every-shed-under-100-square-feet/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We framed, priced and checked 1,500 gable sheds under 100 sq ft. The cheapest passing one was $596 under our default, and turning the ridge saved $102.</summary>
  </entry>
  <entry>
    <title>A second gap probe: 139 more bank lines, 13 rule gaps closed</title>
    <link href="https://marisstella.app/writing/second-gap-probe-trades-retail-health/"/>
    <id>https://marisstella.app/writing/second-gap-probe-trades-retail-health/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>139 everyday descriptions from trades, restaurants, online shops and clinics: 23 got no suggestion; 13 were real gaps, now covered, 10 are blank on purpose.</summary>
  </entry>
  <entry>
    <title>We seeded 24 bugs in three build scripts; 14 were caught</title>
    <link href="https://marisstella.app/writing/seeding-bugs-in-the-stories-page/"/>
    <id>https://marisstella.app/writing/seeding-bugs-in-the-stories-page/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A mutation campaign on the stories page, the releases tool and the SERP snippet audit: 58% caught, three real gaps in the stories page now closed.</summary>
  </entry>
  <entry>
    <title>Seven days in a row can hide across the Sunday-Monday line</title>
    <link href="https://marisstella.app/writing/seven-days-in-a-row-across-the-week-line/"/>
    <id>https://marisstella.app/writing/seven-days-in-a-row-across-the-week-line/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seven-day check inside one week misses Thursday to the next Wednesday; the roster builder&#39;s --weeks now reports runs across the boundary.</summary>
  </entry>
  <entry>
    <title>Seven small confusions in the shed designer, and what fixed them</title>
    <link href="https://marisstella.app/writing/seven-small-confusions-in-the-shed-designer/"/>
    <id>https://marisstella.app/writing/seven-small-confusions-in-the-shed-designer/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A cleared box that meant 0, a site-built door that quietly stopped being site-built, a price that fell as walls rose, and four more, each with a browser test.</summary>
  </entry>
  <entry>
    <title>Shade and shadow on a shed elevation, the old drafting way</title>
    <link href="https://marisstella.app/writing/shade-and-shadow-on-a-shed-elevation/"/>
    <id>https://marisstella.app/writing/shade-and-shadow-on-a-shed-elevation/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A flat elevation hides the eave, the lap and the shingle blend. Three drafting cues make the HOA drawings read as the shed.</summary>
  </entry>
  <entry>
    <title>61 sheds that pair every shed option with every other option</title>
    <link href="https://marisstella.app/writing/shed-designer-all-pairs-cross-feature-test/"/>
    <id>https://marisstella.app/writing/shed-designer-all-pairs-cross-feature-test/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>61 shed designs pair every siding, foundation, floor, roof, trim, interior and door option with every other, out of 2.3 million combinations.</summary>
  </entry>
  <entry>
    <title>Auditing a shed&#39;s nails and hardware: where $575 goes, and what is padding</title>
    <link href="https://marisstella.app/writing/shed-designer-fastener-audit/"/>
    <id>https://marisstella.app/writing/shed-designer-fastener-audit/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer&#39;s hardware and fastener lines for the default 8x12, box by box: one pack-size fix saves $8.98, and a rafter-seat swap is worth $121.81.</summary>
  </entry>
  <entry>
    <title>A shed stud at Infinity percent of capacity</title>
    <link href="https://marisstella.app/writing/shed-designer-infinity-percent/"/>
    <id>https://marisstella.app/writing/shed-designer-infinity-percent/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Fuzzing caught Shed Designer printing &#39;Infinity%&#39; for a 2x4 stud past its buckling load. Another lane fixed it within the hour; the sweep now checks the text.</summary>
  </entry>
  <entry>
    <title>A nightly fuzz sweep for the shed designer, and the plate splice it found first</title>
    <link href="https://marisstella.app/writing/shed-designer-nightly-fuzz/"/>
    <id>https://marisstella.app/writing/shed-designer-nightly-fuzz/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer&#39;s PR fuzz checks 150 designs on one seed. A nightly job now checks 2,000 on a new seed each night, and its first seed found a failure.</summary>
  </entry>
  <entry>
    <title>How long should a shed&#39;s eave be? Pricing every inch from 6 to 18</title>
    <link href="https://marisstella.app/writing/shed-designer-overhang-budget/"/>
    <id>https://marisstella.app/writing/shed-designer-overhang-budget/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now prices the whole order at every overhang from 6 to 18 inches and takes the longest within $25 of the cheapest: 8 inches on the default shed.</summary>
  </entry>
  <entry>
    <title>Three numbers in Shed Designer&#39;s README had drifted from the tool</title>
    <link href="https://marisstella.app/writing/shed-designer-readme-numbers-tested/"/>
    <id>https://marisstella.app/writing/shed-designer-readme-numbers-tested/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A test now recomputes every figure in Shed Designer&#39;s README and worked example; its first run found a $548.77 saving that is now $348.23.</summary>
  </entry>
  <entry>
    <title>Lowe&#39;s looked $145 cheaper for a shed. Some of that was missing data</title>
    <link href="https://marisstella.app/writing/shed-designer-store-comparison-like-for-like/"/>
    <id>https://marisstella.app/writing/shed-designer-store-comparison-like-for-like/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now compares Home Depot and Lowe&#39;s only on lines both list, names the gaps, and flags prices that come from copies over a year old.</summary>
  </entry>
  <entry>
    <title>Shed lumber lists up to 16x24: cost per square foot falls from $28 to $20</title>
    <link href="https://marisstella.app/writing/shed-lumber-lists-up-to-16x24/"/>
    <id>https://marisstella.app/writing/shed-lumber-lists-up-to-16x24/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Six more shed sizes framed stud by stud: a 12x14 takes 114 boards, a 16x24 takes 177. Materials per square foot fall as the shed grows.</summary>
  </entry>
  <entry>
    <title>The shed picker now shows pictures drawn ahead of time</title>
    <link href="https://marisstella.app/writing/shed-picker-cards-drawn-ahead/"/>
    <id>https://marisstella.app/writing/shed-picker-cards-drawn-ahead/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Six starting-design cards drawn ahead as 8 KB WebP files come up in 1.2 s instead of 2.1 s, and customised designs still render live.</summary>
  </entry>
  <entry>
    <title>Shed plans for the permit desk: a site plan and an honest cover sheet</title>
    <link href="https://marisstella.app/writing/shed-plans-for-the-permit-desk/"/>
    <id>https://marisstella.app/writing/shed-plans-for-the-permit-desk/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer&#39;s plans now have a site plan from the lot you type, with every clearance, and a cover sheet with materials and colours. Still not permit-ready.</summary>
  </entry>
  <entry>
    <title>A 5% lumber price change moves the board count on most shed size pages</title>
    <link href="https://marisstella.app/writing/shed-size-pages-built-not-committed/"/>
    <id>https://marisstella.app/writing/shed-size-pages-built-not-committed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer&#39;s per-size lumber pages are now written by the site build, because a small price change altered the board count on 188 of 240 test builds.</summary>
  </entry>
  <entry>
    <title>Twenty-five more search titles trimmed to fit</title>
    <link href="https://marisstella.app/writing/shorter-search-titles-batch-3/"/>
    <id>https://marisstella.app/writing/shorter-search-titles-batch-3/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Search results cut titles at about 70 characters. Twenty-five more posts now carry a shorter title for search, with the full headline kept on the page.</summary>
  </entry>
  <entry>
    <title>Should a 1,300-tool static site move to Astro, Rust or TSX?</title>
    <link href="https://marisstella.app/writing/should-a-1300-tool-static-site-move-to-astro/"/>
    <id>https://marisstella.app/writing/should-a-1300-tool-static-site-move-to-astro/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>20,000 files, 1,000 more a day, 1,321 hand-written HTML tools. Where a framework would help this site, and where Rust or Next.js would not.</summary>
  </entry>
  <entry>
    <title>Vertical siding, battens and trim boards now work on the framing page</title>
    <link href="https://marisstella.app/writing/siding-page-vertical-battens-trim/"/>
    <id>https://marisstella.app/writing/siding-page-vertical-battens-trim/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff page counts vertical board siding, a batten over each seam, and window and door trim boards, not only lap siding.</summary>
  </entry>
  <entry>
    <title>Slow drift looks like changepoints, even when lag-1 autocorrelation is small</title>
    <link href="https://marisstella.app/writing/slow-drift-looks-like-changepoints/"/>
    <id>https://marisstella.app/writing/slow-drift-looks-like-changepoints/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>7,980 tree rings have lag-1 autocorrelation 0.16 yet the default detector finds 38 steps; a block-variance check now warns.</summary>
  </entry>
  <entry>
    <title>Does a slow excavator valve change which hydraulic circuit saves energy?</title>
    <link href="https://marisstella.app/writing/slow-excavator-valve-energy/"/>
    <id>https://marisstella.app/writing/slow-excavator-valve-energy/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Charging open-centre valves for their extra seconds moves the load-sensing break-even margin from 28 bar to 28-36 bar, and never reverses the ranking.</summary>
  </entry>
  <entry>
    <title>How much does an unknown standby flow matter to load-sensing on an excavator?</title>
    <link href="https://marisstella.app/writing/standby-flow-load-sensing-excavator/"/>
    <id>https://marisstella.app/writing/standby-flow-load-sensing-excavator/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping the assumed load-sensing standby flow from 0 to 10 L/min moves the break-even pump margin only from 29 to 24 bar.</summary>
  </entry>
  <entry>
    <title>Start here: what a scale model of a cargo drone can and cannot tell you</title>
    <link href="https://marisstella.app/writing/start-here-drone-scale-models/"/>
    <id>https://marisstella.app/writing/start-here-drone-scale-models/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For drone builders and aero students flying a scale model before a full-size cargo UAV: what the open scaling research found, how to rerun it, and its limits.</summary>
  </entry>
  <entry>
    <title>Start here: every way to help, from a one-line idea to a pull request</title>
    <link href="https://marisstella.app/writing/start-here-every-way-to-help/"/>
    <id>https://marisstella.app/writing/start-here-every-way-to-help/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>The master guide to contributing: six ways to help, what each asks of you, which guide walks you through it, and how outside help is handled.</summary>
  </entry>
  <entry>
    <title>Start here: does load-sensing pay on a small excavator? An open hydraulics study</title>
    <link href="https://marisstella.app/writing/start-here-excavator-hydraulics/"/>
    <id>https://marisstella.app/writing/start-here-excavator-hydraulics/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For fluid-power engineers, compact-equipment tinkerers and students: an open model of three excavator circuits, how to rerun it, and what would settle it.</summary>
  </entry>
  <entry>
    <title>Start here: how much of each payment to put aside for tax, for freelancers and sole traders</title>
    <link href="https://marisstella.app/writing/start-here-freelancer-tax-set-aside/"/>
    <id>https://marisstella.app/writing/start-here-freelancer-tax-set-aside/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Free set-aside calculators for freelancers in eleven countries and a US year-end tax pack: what they estimate, a first ten minutes, and what they leave out.</summary>
  </entry>
  <entry>
    <title>Start here: the open house-building research, from span checks to schedules</title>
    <link href="https://marisstella.app/writing/start-here-house-construction-research/"/>
    <id>https://marisstella.app/writing/start-here-house-construction-research/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For builders, framers, architects and building-science students: 40 open house-building studies, how to rerun one, and how they feed the framing takeoff.</summary>
  </entry>
  <entry>
    <title>Start here: how this repository&#39;s AI agent fleet is measured, run by run</title>
    <link href="https://marisstella.app/writing/start-here-how-the-agent-fleet-is-measured/"/>
    <id>https://marisstella.app/writing/start-here-how-the-agent-fleet-is-measured/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For engineering managers and researchers: 40 small studies of one AI agent fleet&#39;s own run records, pull requests and cost per merge, and how to rerun one.</summary>
  </entry>
  <entry>
    <title>Start here: you coded open-ended text with an LLM. Can you trust the statistics?</title>
    <link href="https://marisstella.app/writing/start-here-llm-coding-qualitative-data/"/>
    <id>https://marisstella.app/writing/start-here-llm-coding-qualitative-data/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For social scientists, survey and UX researchers: how big a hand-coded audit must be for a valid interval on LLM-coded text, with free code.</summary>
  </entry>
  <entry>
    <title>Start here: free tools for LLM spend, output regressions and MCP server risk</title>
    <link href="https://marisstella.app/writing/start-here-llm-cost-and-safety-tools/"/>
    <id>https://marisstella.app/writing/start-here-llm-cost-and-safety-tools/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For developers shipping LLM features: eight free, local tools to price a workload, cap spend, catch output regressions and check MCP configs.</summary>
  </entry>
  <entry>
    <title>Start here: training across slow links, and a DiLoCo baseline you can rerun</title>
    <link href="https://marisstella.app/writing/start-here-low-communication-training/"/>
    <id>https://marisstella.app/writing/start-here-low-communication-training/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For ML engineers syncing workers over slow links and students who need a baseline: what the open lowcomm-training programme measured, and how to rerun it.</summary>
  </entry>
  <entry>
    <title>Start here: which hull carries a survey payload furthest? The marine-hull research</title>
    <link href="https://marisstella.app/writing/start-here-marine-hull-research/"/>
    <id>https://marisstella.app/writing/start-here-marine-hull-research/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For survey operators, naval architecture students and marine robot builders: open hull, glider and solar range models, and what they cannot tell you yet.</summary>
  </entry>
  <entry>
    <title>Start here: open-source chip design research on Yosys, OpenROAD and SKY130</title>
    <link href="https://marisstella.app/writing/start-here-open-source-chip-design/"/>
    <id>https://marisstella.app/writing/start-here-open-source-chip-design/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For hardware engineers and students on open flows: when a cheap synthesis estimate ranks designs like routed SKY130, with replayable data and code.</summary>
  </entry>
  <entry>
    <title>Start here: an open tennis ball machine with a moving catch net, and a ball-collecting robot</title>
    <link href="https://marisstella.app/writing/start-here-open-tennis-robots/"/>
    <id>https://marisstella.app/writing/start-here-open-tennis-robots/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For coaches, clubs and makers: what the open ball machine and ball-collecting rover designs give you, how to try them in ten minutes, and what is unbuilt.</summary>
  </entry>
  <entry>
    <title>Start here: you spotted a wrong number. How to report it so it gets fixed</title>
    <link href="https://marisstella.app/writing/start-here-report-a-wrong-number/"/>
    <id>https://marisstella.app/writing/start-here-report-a-wrong-number/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Found a figure that looks off in a calculator, checker or research page? What to include, where to send it, and what happens after you do.</summary>
  </entry>
  <entry>
    <title>Start here: reproduce a research result and report what you find</title>
    <link href="https://marisstella.app/writing/start-here-reproduce-a-result/"/>
    <id>https://marisstella.app/writing/start-here-reproduce-a-result/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For students, reviewers and researchers: re-run one research project in under a minute, compare it with the committed output, and report a match or a mismatch.</summary>
  </entry>
  <entry>
    <title>Start here: let scheduled AI coding sessions open and merge pull requests on your own repo</title>
    <link href="https://marisstella.app/writing/start-here-run-agents-on-your-own-repo/"/>
    <id>https://marisstella.app/writing/start-here-run-agents-on-your-own-repo/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For maintainers and small teams: copy this repo&#39;s way of steering scheduled AI coding sessions that land their own PRs, and the safety rules that come with it.</summary>
  </entry>
  <entry>
    <title>Start here: share real data or a measurement, safely</title>
    <link href="https://marisstella.app/writing/start-here-share-real-data/"/>
    <id>https://marisstella.app/writing/start-here-share-real-data/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For people who hold real data or can take a measurement: nine open asks with their repo paths, how to share without exposing anything private, and what to send.</summary>
  </entry>
  <entry>
    <title>Start here: plan a backyard shed board by board with the Shed Designer</title>
    <link href="https://marisstella.app/writing/start-here-shed-designer/"/>
    <id>https://marisstella.app/writing/start-here-shed-designer/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For homeowners, DIY builders and small builders: what the free Shed Designer produces, a first ten minutes with it, and the limits of its checks.</summary>
  </entry>
  <entry>
    <title>Start here: certifying a robot policy with few real trials and a biased simulator</title>
    <link href="https://marisstella.app/writing/start-here-sim2real-robot-testing/"/>
    <id>https://marisstella.app/writing/start-here-sim2real-robot-testing/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For robotics test leads and statisticians: what an open programme found about pairing simulator runs with a few real robot trials, and how to check it.</summary>
  </entry>
  <entry>
    <title>Start here: can you trust a model someone else trained for you?</title>
    <link href="https://marisstella.app/writing/start-here-verifiable-training/"/>
    <id>https://marisstella.app/writing/start-here-verifiable-training/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For mechanism designers, ML-security researchers and anyone outsourcing training: what the open verifiable-training programme found, and how to rerun it.</summary>
  </entry>
  <entry>
    <title>Start here: your first pull request, from fork to merge</title>
    <link href="https://marisstella.app/writing/start-here-your-first-pull-request/"/>
    <id>https://marisstella.app/writing/start-here-your-first-pull-request/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>A step-by-step first pull request for developers: fork, a small sparse clone, run one tool&#39;s tests, check the page, and open a PR a maintainer can merge.</summary>
  </entry>
  <entry>
    <title>Storage you can&#39;t load: why the shed gallery turned to lean-tos</title>
    <link href="https://marisstella.app/writing/storage-you-cannot-stand-on/"/>
    <id>https://marisstella.app/writing/storage-you-cannot-stand-on/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed search counted the space over bare rafter ties as storage. Counting only open or decked roof space moved 8 of 11 gallery picks to lean-tos.</summary>
  </entry>
  <entry>
    <title>Shed studs at 24 inches by default, when the siding allows it</title>
    <link href="https://marisstella.app/writing/studs-at-24-inches-by-default/"/>
    <id>https://marisstella.app/writing/studs-at-24-inches-by-default/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer framed every wall at 16-inch centres. Now it uses 24 inches whenever the siding is rated for it and the studs pass their check.</summary>
  </entry>
  <entry>
    <title>Leaving a paid scheduler: staff import for the free roster builder</title>
    <link href="https://marisstella.app/writing/switching-from-a-paid-scheduler-in-one-file/"/>
    <id>https://marisstella.app/writing/switching-from-a-paid-scheduler-in-one-file/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The roster builder now reads a staff export from another scheduling app, so a switcher skips retyping names, rates and hour limits.</summary>
  </entry>
  <entry>
    <title>Switching schedulers: turn last month&#39;s published schedule into the shifts to cover</title>
    <link href="https://marisstella.app/writing/switching-schedulers-import-your-shifts/"/>
    <id>https://marisstella.app/writing/switching-schedulers-import-your-shifts/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shift roster builder now reads a published-schedule CSV and writes the shift-requirement lines, counting people per weekday, time and position.</summary>
  </entry>
  <entry>
    <title>Telling a multi-division schedule which nights a team cannot play</title>
    <link href="https://marisstella.app/writing/team-unavailable-dates-multi-division-schedule/"/>
    <id>https://marisstella.app/writing/team-unavailable-dates-multi-division-schedule/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The multi-division league scheduler now takes per-team unavailable dates and moves clashing matches to the next night both teams are free.</summary>
  </entry>
  <entry>
    <title>Ten sheds under 100 sq ft, picked from 2,400 a search built</title>
    <link href="https://marisstella.app/writing/ten-sheds-under-100-square-feet/"/>
    <id>https://marisstella.app/writing/ten-sheds-under-100-square-feet/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now opens with ten ready designs under 100 sq ft, picked from 2,400 a search built. None of the 1,750 it kept costs under $2,000.</summary>
  </entry>
  <entry>
    <title>Testing payment reminders on 150 random books</title>
    <link href="https://marisstella.app/writing/testing-payment-reminders-on-random-books/"/>
    <id>https://marisstella.app/writing/testing-payment-reminders-on-random-books/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test checks that every overdue-invoice reminder agrees with the ledger&#39;s aging report. It found no fault.</summary>
  </entry>
  <entry>
    <title>The 14-day scheduling window moves across your week</title>
    <link href="https://marisstella.app/writing/the-14-day-window-moves-across-your-week/"/>
    <id>https://marisstella.app/writing/the-14-day-window-moves-across-your-week/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On an invented cafe the same call-out owes $0 in premium 15 days out, $50 to $88 at 10 days and $68 to $174 at 3 days, because notice is counted per shift.</summary>
  </entry>
  <entry>
    <title>The barn&#39;s knee gussets were too small, and the search now shapes the barn</title>
    <link href="https://marisstella.app/writing/the-barn-gusset-was-too-small/"/>
    <id>https://marisstella.app/writing/the-barn-gusset-was-too-small/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>APA&#39;s published capacities put the shed designer&#39;s barn knee gussets at 334%. They now reach into the corner, and the search varies the barn&#39;s shape and loft.</summary>
  </entry>
  <entry>
    <title>Let the barn into the design search and it takes six of ten cards</title>
    <link href="https://marisstella.app/writing/the-barn-took-six-of-ten-cards/"/>
    <id>https://marisstella.app/writing/the-barn-took-six-of-ten-cards/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Under a 100 sq ft and 13 ft limit, a gambrel shed won six of the ten ready-made design cards when the search could pick it, so it now gets a card of its own.</summary>
  </entry>
  <entry>
    <title>The Bell Will Not Carry: an alarm story</title>
    <link href="https://marisstella.app/writing/the-bell-will-not-carry-an-alarm-story/"/>
    <id>https://marisstella.app/writing/the-bell-will-not-carry-an-alarm-story/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a glacier-lake flood alarm that everyone hears at noon and almost no one hears asleep, and the 2 a.m. test that shows it.</summary>
  </entry>
  <entry>
    <title>The nightly browser checks had not passed in seven weeks. Here is what they found when they ran</title>
    <link href="https://marisstella.app/writing/the-browser-checks-ran-again/"/>
    <id>https://marisstella.app/writing/the-browser-checks-ran-again/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A newer Playwright and one job per check revived the nightly browser checks. The first full run found a dead calculator page and 23 pages 2px too wide.</summary>
  </entry>
  <entry>
    <title>The cold corner of the dormitory: why heat treatment is about the mattress core</title>
    <link href="https://marisstella.app/writing/the-cold-corner-of-the-dormitory/"/>
    <id>https://marisstella.app/writing/the-cold-corner-of-the-dormitory/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: bed bugs at a pilgrim hostel, and why 60 degrees on the thermostat is the wrong number to aim at.</summary>
  </entry>
  <entry>
    <title>The days-in-a-row limit now crosses Monday</title>
    <link href="https://marisstella.app/writing/the-days-in-a-row-limit-now-crosses-monday/"/>
    <id>https://marisstella.app/writing/the-days-in-a-row-limit-now-crosses-monday/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The roster builder started every week at zero days in a row; a new streak cell carries Thursday to Sunday into Monday so the limit holds.</summary>
  </entry>
  <entry>
    <title>The Fifth Day: a cemetery, a white cup and a mosquito clock</title>
    <link href="https://marisstella.app/writing/the-fifth-day-a-cemetery-vase-story/"/>
    <id>https://marisstella.app/writing/the-fifth-day-a-cemetery-vase-story/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: sample every fortieth grave, count larvae in the vases, and empty on day five because the textbook&#39;s day seven leaves no margin.</summary>
  </entry>
  <entry>
    <title>The line where load-sensing stops beating open-centre on a small excavator</title>
    <link href="https://marisstella.app/writing/the-line-between-load-sensing-and-open-centre/"/>
    <id>https://marisstella.app/writing/the-line-between-load-sensing-and-open-centre/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Two margins decide whether a load-sensing pump beats an open-centre one on a small excavator. A sweep draws the boundary instead of arguing over one point.</summary>
  </entry>
  <entry>
    <title>The &#39;no shock&#39; control series that had a shock in it</title>
    <link href="https://marisstella.app/writing/the-null-series-that-was-not-quiet/"/>
    <id>https://marisstella.app/writing/the-null-series-that-was-not-quiet/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A real series used as a null case for a changepoint detector turned out to contain a clear drop in late 1973, found by four different setups.</summary>
  </entry>
  <entry>
    <title>The PDF around the e-invoice: four ways a Factur-X file gets rejected</title>
    <link href="https://marisstella.app/writing/the-pdf-around-the-e-invoice/"/>
    <id>https://marisstella.app/writing/the-pdf-around-the-e-invoice/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The preflight checker now flags a missing PDF/A-3 marker, a wrong attachment name, a missing AFRelationship and a profile that disagrees with the XML.</summary>
  </entry>
  <entry>
    <title>The River Is Eight Degrees: a cold-water story</title>
    <link href="https://marisstella.app/writing/the-river-is-eight-degrees-a-cold-water-story/"/>
    <id>https://marisstella.app/writing/the-river-is-eight-degrees-a-cold-water-story/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a Vigil baptism in an 8 degree river, a candidate with atrial fibrillation, and the numbers that move the pool.</summary>
  </entry>
  <entry>
    <title>The design search tries saltboxes: 12 of 54 on the front</title>
    <link href="https://marisstella.app/writing/the-search-tries-saltboxes/"/>
    <id>https://marisstella.app/writing/the-search-tries-saltboxes/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer&#39;s search now tries saltboxes. Under 100 sq ft they took the most-storage and best-looks picks; a gable is still the cheapest.</summary>
  </entry>
  <entry>
    <title>The Shadow Rule: a sports-day story about sun on a cloudy day</title>
    <link href="https://marisstella.app/writing/the-shadow-rule-a-sports-day-story/"/>
    <id>https://marisstella.app/writing/the-shadow-rule-a-sports-day-story/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: thin cloud, a shadow shorter than a child, and why a sunscreen label overstates what a thin layer does.</summary>
  </entry>
  <entry>
    <title>The shed gallery was leaving up to $236 on the table</title>
    <link href="https://marisstella.app/writing/the-shed-gallery-was-leaving-money-on-the-table/"/>
    <id>https://marisstella.app/writing/the-shed-gallery-was-leaving-money-on-the-table/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An audit found cheaper twins for seven of the shed gallery&#39;s eleven cards. Each card is now polished, and the gallery is re-searched on every deploy.</summary>
  </entry>
  <entry>
    <title>The shed paint line was missing the trim</title>
    <link href="https://marisstella.app/writing/the-shed-paint-line-was-missing-the-trim/"/>
    <id>https://marisstella.app/writing/the-shed-paint-line-was-missing-the-trim/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer priced two coats for the siding but nothing for the primed trim. Trim paint is now on the list: one gallon on an 8x12, $48.98.</summary>
  </entry>
  <entry>
    <title>The sheet hiding in the offcut: 2-D sheet counts for a shed</title>
    <link href="https://marisstella.app/writing/the-sheet-hiding-in-the-offcut/"/>
    <id>https://marisstella.app/writing/the-sheet-hiding-in-the-offcut/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now mixes strip widths, rips strips from offcuts and nests sloped gable siding: a roof sheet off the 8x10, 282 siding panels off 474 designs.</summary>
  </entry>
  <entry>
    <title>The sliver row: why a 12-foot-deep deck ends in a 1-13/16 inch board</title>
    <link href="https://marisstella.app/writing/the-sliver-row-on-a-12-foot-deck/"/>
    <id>https://marisstella.app/writing/the-sliver-row-on-a-12-foot-deck/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 16 x 12 ft deck of 5/4x6 boards ends in a 1-13/16 in row. Two inches of depth fixes it. Numbers from the deck takeoff, 10 to 14 ft.</summary>
  </entry>
  <entry>
    <title>The test job was redrawing 1,200 share cards every run</title>
    <link href="https://marisstella.app/writing/the-test-job-was-redrawing-1200-pictures/"/>
    <id>https://marisstella.app/writing/the-test-job-was-redrawing-1200-pictures/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>A one-page test build of the site took 64 seconds, 45 of them idle while workers drew cards the deploy had cached. Restoring that cache cut it to 17.</summary>
  </entry>
  <entry>
    <title>Ridge beam, ridge board or trusses for a small shed: what the numbers say</title>
    <link href="https://marisstella.app/writing/trusses-for-a-small-shed/"/>
    <id>https://marisstella.app/writing/trusses-for-a-small-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Site-built trusses with OSB gussets, priced against a ridge beam and a ridge board. The ridge board still wins on cost; trusses win on short boards.</summary>
  </entry>
  <entry>
    <title>Turkish tax numbers carry two different check-digit rules</title>
    <link href="https://marisstella.app/writing/turkish-tax-numbers-have-two-check-digit-rules/"/>
    <id>https://marisstella.app/writing/turkish-tax-numbers-have-two-check-digit-rules/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 10-digit VKN and an 11-digit TCKN each end in check digits. The free Turkey e-Fatura page now tests both, in the browser.</summary>
  </entry>
  <entry>
    <title>Two doors 26 inches apart, and a lap joint with nothing behind it</title>
    <link href="https://marisstella.app/writing/two-doors-26-inches-apart-and-a-lap-joint-with-nothing-behind-it/"/>
    <id>https://marisstella.app/writing/two-doors-26-inches-apart-and-a-lap-joint-with-nothing-behind-it/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fuzz test found a shed where no legal lap-siding joint existed: two doors left no stud between their casings. The tool now frames one there.</summary>
  </entry>
  <entry>
    <title>Two lags did not beat one: an exact AR(2) fit on lynx and sunspots</title>
    <link href="https://marisstella.app/writing/two-lags-did-not-beat-one-on-a-cycle/"/>
    <id>https://marisstella.app/writing/two-lags-did-not-beat-one-on-a-cycle/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We scored level shifts under exact AR(2) noise to stop a cycle reading as steps. It matched AR(1) after a log transform and did worse before it.</summary>
  </entry>
  <entry>
    <title>Two Wrong Numbers: a tide story</title>
    <link href="https://marisstella.app/writing/two-wrong-numbers-a-tide-story/"/>
    <id>https://marisstella.app/writing/two-wrong-numbers-a-tide-story/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a tidal causeway&#39;s closing time is right to a minute because two mistakes cancel, and a storm surge is the number that matters.</summary>
  </entry>
  <entry>
    <title>UK e-invoicing: the Budget 2026 roadmap is out, and what we could and could not read</title>
    <link href="https://marisstella.app/writing/uk-e-invoicing-roadmap-published/"/>
    <id>https://marisstella.app/writing/uk-e-invoicing-roadmap-published/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The UK published its e-invoicing implementation roadmap on 28 October 2026. We updated our UK page, and say plainly that we only read a search excerpt of it.</summary>
  </entry>
  <entry>
    <title>The UK e-invoicing roadmap names dates, not fines</title>
    <link href="https://marisstella.app/writing/uk-einvoicing-roadmap-no-penalty-amount/"/>
    <id>https://marisstella.app/writing/uk-einvoicing-roadmap-no-penalty-amount/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The 28 October 2026 roadmap keeps 1 April 2029, sets no size-based phasing and gives no penalty amount. What it does schedule, and what our UK page now says.</summary>
  </entry>
  <entry>
    <title>VAT number typo checks for eleven more countries</title>
    <link href="https://marisstella.app/writing/vat-checksums-for-eleven-more-countries/"/>
    <id>https://marisstella.app/writing/vat-checksums-for-eleven-more-countries/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>E-invoice Preflight now checks the VAT check digit, not only the length, for eleven more EU countries, from Estonia to Czechia.</summary>
  </entry>
  <entry>
    <title>Vertical siding: a 3-foot window cuts four columns, not three</title>
    <link href="https://marisstella.app/writing/vertical-siding-a-window-cuts-four-columns/"/>
    <id>https://marisstella.app/writing/vertical-siding-a-window-cuts-four-columns/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts vertical siding as columns of full-height boards, and shows why a 36 in window on 12 in boards touches four columns.</summary>
  </entry>
  <entry>
    <title>What $2,000 buys in a lap-sided shed</title>
    <link href="https://marisstella.app/writing/what-2000-dollars-buys-in-a-lap-sided-shed/"/>
    <id>https://marisstella.app/writing/what-2000-dollars-buys-in-a-lap-sided-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Every honest saving we could find, priced: a lap-and-shingle shed reaches $2,000 of materials at about 6x7, not 8x12. The shed designer now shows that path.</summary>
  </entry>
  <entry>
    <title>What a Claude Code cloud session runs on: 4 vCPUs, 16 GB and a CPU lottery</title>
    <link href="https://marisstella.app/writing/what-a-claude-code-cloud-session-runs-on/"/>
    <id>https://marisstella.app/writing/what-a-claude-code-cloud-session-runs-on/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Six Claude Code cloud sessions measured: each a Firecracker microVM with 4 vCPUs and 15.7 GiB RAM, on one of two host CPUs; the newer runs Python twice as fast.</summary>
  </entry>
  <entry>
    <title>What a daily hour cap and a days-in-a-row limit cost a cafe schedule</title>
    <link href="https://marisstella.app/writing/what-a-daily-hour-cap-costs-a-schedule/"/>
    <id>https://marisstella.app/writing/what-a-daily-hour-cap-costs-a-schedule/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On the roster builder&#39;s invented seven-person cafe, a 9-hour daily cap leaves one more shift open, and a 6-hour cap is a typo that empties 27 of 32.</summary>
  </entry>
  <entry>
    <title>What one walkthrough asked of the shed designer, and the answers it now gives</title>
    <link href="https://marisstella.app/writing/what-a-first-walkthrough-asked-of-the-shed-designer/"/>
    <id>https://marisstella.app/writing/what-a-first-walkthrough-asked-of-the-shed-designer/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Which board is the 14 footer for? What does a window really cost? Why do two options cost the same? The shed designer now answers these on the page.</summary>
  </entry>
  <entry>
    <title>How hard does a shed block press on the ground?</title>
    <link href="https://marisstella.app/writing/what-a-shed-block-presses-on-the-ground/"/>
    <id>https://marisstella.app/writing/what-a-shed-block-presses-on-the-ground/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer&#39;s starter put its blocks straight on the ground at about 1,970 psf, over the 1,500 psf the IRC presumes for clay or silt.</summary>
  </entry>
  <entry>
    <title>What a shed holds per $100: comparing starting designs side by side</title>
    <link href="https://marisstella.app/writing/what-a-shed-holds-per-hundred-dollars/"/>
    <id>https://marisstella.app/writing/what-a-shed-holds-per-hundred-dollars/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An 8x12 shed is 96 sq ft on paper and 85 inside the studs. Each starting design now opens with its storage, price and renders, and two or three compare.</summary>
  </entry>
  <entry>
    <title>What does compressing worker updates cost in DiLoCo-style training? A paper section, and what it had to retract</title>
    <link href="https://marisstella.app/writing/what-does-compression-cost-diloco-paper-section-lowcomm/"/>
    <id>https://marisstella.app/writing/what-does-compression-cost-diloco-paper-section-lowcomm/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Writing the compression section of a low-communication training paper forced a retraction: a rule that wins at 413k parameters fails at 915k.</summary>
  </entry>
  <entry>
    <title>What each shed part costs: blocks, gravel, doors and windows priced side by side</title>
    <link href="https://marisstella.app/writing/what-each-shed-part-costs/"/>
    <id>https://marisstella.app/writing/what-each-shed-part-costs/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On an 8x12 shed the foundation choice moves the price by up to $420, the door by $560 and the windows by $140. Each choice priced against your design.</summary>
  </entry>
  <entry>
    <title>What files an LLM reads best, and how that differs from what people read</title>
    <link href="https://marisstella.app/writing/what-files-llms-read-best/"/>
    <id>https://marisstella.app/writing/what-files-llms-read-best/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>We tokenised the same content as Markdown, HTML, JSON, YAML, TOML, XML and CSV. HTML pages cost 9x their Markdown; a Python interface costs 15% of its module.</summary>
  </entry>
  <entry>
    <title>A stair order forgot the hardware that holds the stringers up</title>
    <link href="https://marisstella.app/writing/what-hardware-a-stair-needs/"/>
    <id>https://marisstella.app/writing/what-hardware-a-stair-needs/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The stair takeoff bought stringers, treads and rails but never listed what attaches the stringers; it now counts one top connector and one foot anchor each.</summary>
  </entry>
  <entry>
    <title>What holds up a winder tread: counting the supports</title>
    <link href="https://marisstella.app/writing/what-holds-up-a-winder-tread/"/>
    <id>https://marisstella.app/writing/what-holds-up-a-winder-tread/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Three winder treads need four radial supports, and each tread board spans the whole stair width between two of them.</summary>
  </entry>
  <entry>
    <title>What LP SmartSide panels hold against the wind</title>
    <link href="https://marisstella.app/writing/what-lp-smartside-panels-hold-against-the-wind/"/>
    <id>https://marisstella.app/writing/what-lp-smartside-panels-hold-against-the-wind/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>LP rates its panel siding as a shear wall. Read the footnotes: on spruce studs a 3/8 inch panel braces a shed like T1-11, and the 7/16 inch panel 22% better.</summary>
  </entry>
  <entry>
    <title>What matching the house costs on a small shed</title>
    <link href="https://marisstella.app/writing/what-matching-the-house-costs-on-a-shed/"/>
    <id>https://marisstella.app/writing/what-matching-the-house-costs-on-a-shed/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On one 8x12 shed, painted fiber cement lap siding to match a HardieBoard house costs $350 more than T1-11 panels, and a prehung door costs $298 more.</summary>
  </entry>
  <entry>
    <title>When a valve sizing rule stops describing a valve</title>
    <link href="https://marisstella.app/writing/when-a-valve-model-stops-describing-a-valve/"/>
    <id>https://marisstella.app/writing/when-a-valve-model-stops-describing-a-valve/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Fixing a solver bracket in the open-centre excavator valve model removed one artefact and exposed a real validity limit.</summary>
  </entry>
  <entry>
    <title>When the wind turns a shed truss inside out</title>
    <link href="https://marisstella.app/writing/when-the-wind-turns-a-shed-truss-inside-out/"/>
    <id>https://marisstella.app/writing/when-the-wind-turns-a-shed-truss-inside-out/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Under wind uplift a site-built truss chord stops pulling and starts pushing. Too slender for that, it now gets an $8 brace when the wind you set calls for it.</summary>
  </entry>
  <entry>
    <title>When is it safe to split an audit by the LLM&#39;s own label?</title>
    <link href="https://marisstella.app/writing/when-to-trust-an-llm-coder-cells/"/>
    <id>https://marisstella.app/writing/when-to-trust-an-llm-coder-cells/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A pilot-based informedness screen with a prevalence guard decides when splitting a human audit by an LLM coder&#39;s label pays, tested on two corpora.</summary>
  </entry>
  <entry>
    <title>Where can a shed&#39;s wall plate break? Over the header, too</title>
    <link href="https://marisstella.app/writing/where-a-shed-plate-can-break/"/>
    <id>https://marisstella.app/writing/where-a-shed-plate-can-break/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>With only 8 ft boards, 94 of 840 test designs had no legal place to splice the wall plates. Letting a joint sit over a door header fixed all 94.</summary>
  </entry>
  <entry>
    <title>Where a shed&#39;s money goes: the skin, not the frame</title>
    <link href="https://marisstella.app/writing/where-a-sheds-money-goes/"/>
    <id>https://marisstella.app/writing/where-a-sheds-money-goes/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Split by assembly, the default 8x12 shed spends 46% of its $3,074 of materials on siding, roofing, trim and paint, and 27% on the floor, wall and roof framing.</summary>
  </entry>
  <entry>
    <title>Which board a stair stringer is cut from</title>
    <link href="https://marisstella.app/writing/which-board-a-stringer-comes-from/"/>
    <id>https://marisstella.app/writing/which-board-a-stringer-comes-from/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The stair takeoff gave the stringer length but not the board to buy; it now names the shortest listed stock board that holds one.</summary>
  </entry>
  <entry>
    <title>Who should have had that shift? A seniority report for the roster builder</title>
    <link href="https://marisstella.app/writing/who-should-have-had-that-shift-seniority-report/"/>
    <id>https://marisstella.app/writing/who-should-have-had-that-shift-seniority-report/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shift Roster Builder now takes a seniority rank per person and lists every shift a more senior person could have taken without breaking any hard rule.</summary>
  </entry>
  <entry>
    <title>Why a sealed lid is not a safe jar: botulism spores and boiling water at altitude</title>
    <link href="https://marisstella.app/writing/why-a-sealed-lid-is-not-a-safe-jar/"/>
    <id>https://marisstella.app/writing/why-a-sealed-lid-is-not-a-safe-jar/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Hearth &amp; Horizon story does the sum: at 1,820 m water boils at 94 C, so a 3-hour bath gives about a seventh of the heat green beans need.</summary>
  </entry>
  <entry>
    <title>Why a shed&#39;s floor joist runs at 15% of its strength</title>
    <link href="https://marisstella.app/writing/why-a-shed-joist-runs-at-15-percent/"/>
    <id>https://marisstella.app/writing/why-a-shed-joist-runs-at-15-percent/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two hand calculations behind the shed designer&#39;s 15% readings, what really sets each member&#39;s size, and a view that colours members by use.</summary>
  </entry>
  <entry>
    <title>Why boiling well water raises its nitrate, and what that means for a formula-fed baby</title>
    <link href="https://marisstella.app/writing/why-boiling-well-water-raises-nitrate/"/>
    <id>https://marisstella.app/writing/why-boiling-well-water-raises-nitrate/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Hearth &amp; Horizon story does the sum: boiled-down well water at 68 mg/L nitrate becomes 85, so a 3.8 kg baby takes 48 mg a day.</summary>
  </entry>
  <entry>
    <title>Why the cull rejected your picks: shootflow now says which threshold</title>
    <link href="https://marisstella.app/writing/why-the-cull-rejected-your-picks/"/>
    <id>https://marisstella.app/writing/why-the-cull-rejected-your-picks/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>shootflow cull --picks now breaks down the photographer&#39;s picks that it rejected by reason, so a miss points at the threshold to loosen.</summary>
  </entry>
  <entry>
    <title>Wind turns a barn&#39;s tie into a column: a $7.72 brace</title>
    <link href="https://marisstella.app/writing/wind-turns-a-barn-tie-into-a-column/"/>
    <id>https://marisstella.app/writing/wind-turns-a-barn-tie-into-a-column/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Checking the shed designer&#39;s barn trusses for wind uplift found that at 20 psf the tie is pushed, not pulled. A 2x4 brace along the ties at mid-span fixes it.</summary>
  </entry>
  <entry>
    <title>Winder stairs: a tread that passes by arc can fail by straight edge</title>
    <link href="https://marisstella.app/writing/winder-stairs-arc-vs-straight-edge/"/>
    <id>https://marisstella.app/writing/winder-stairs-arc-vs-straight-edge/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Three 30-degree winders at the smallest radius that passes the 6 in rule measured along the arc come up short when you measure with a tape across the wedge.</summary>
  </entry>
  <entry>
    <title>A solar boat that just reads yesterday&#39;s sea keeps three quarters of the oracle&#39;s gain</title>
    <link href="https://marisstella.app/writing/yesterdays-sea-state-solar-boat/"/>
    <id>https://marisstella.app/writing/yesterdays-sea-state-solar-boat/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Backing off speed on rough days using only yesterday&#39;s sea state recovers 68 to 80% of a perfect-foresight policy&#39;s gain over the best constant speed.</summary>
  </entry>
  <entry>
    <title>Yoga studio bookkeeping from a bank CSV, and a Gusto misfile we found on the way</title>
    <link href="https://marisstella.app/writing/yoga-studio-bookkeeping-from-a-bank-csv/"/>
    <id>https://marisstella.app/writing/yoga-studio-bookkeeping-from-a-bank-csv/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A worked November for yoga and Pilates studios: ClassPass, Momence and Walla payouts against lease, payroll and props, plus a fix for payroll filed as software.</summary>
  </entry>
  <entry>
    <title>Zero false alarms can mean zero power: changepoint detection on a cycle</title>
    <link href="https://marisstella.app/writing/zero-false-alarms-can-mean-zero-power/"/>
    <id>https://marisstella.app/writing/zero-false-alarms-can-mean-zero-power/</id>
    <updated>2026-10-30T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On lynx and sunspot cycles the --ar1 option reports no false changes, and also finds none of 18 steps we added, even at two standard deviations.</summary>
  </entry>
  <entry>
    <title>1,200 random walls, and no gap in the sheathing</title>
    <link href="https://marisstella.app/writing/1200-random-walls-and-no-gap-in-the-sheathing/"/>
    <id>https://marisstella.app/writing/1200-random-walls-and-no-gap-in-the-sheathing/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded fuzz test throws random walls and openings at wall-framing-takeoff&#39;s sheathing layout and checks the panels tile every wall. It found no bug.</summary>
  </entry>
  <entry>
    <title>22 product pages that nothing linked to</title>
    <link href="https://marisstella.app/writing/22-pages-nobody-linked-to/"/>
    <id>https://marisstella.app/writing/22-pages-nobody-linked-to/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sweep of the built site found 22 product pages with no inbound internal link; they are linked now and a new check keeps it that way.</summary>
  </entry>
  <entry>
    <title>$549 off an 8x12 shed with stock parts, and what the height limit holds back</title>
    <link href="https://marisstella.app/writing/549-off-an-8x12-shed-with-stock-parts/"/>
    <id>https://marisstella.app/writing/549-off-an-8x12-shed-with-stock-parts/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now searches stock doors, windows, siding, subfloor and foundations for a cheaper shed of the same size, and says what each change saves.</summary>
  </entry>
  <entry>
    <title>A CI check that no venture page loads a third-party script, font or image</title>
    <link href="https://marisstella.app/writing/a-check-that-no-page-loads-a-third-party-font/"/>
    <id>https://marisstella.app/writing/a-check-that-no-page-loads-a-third-party-font/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Scanning 1,300 venture pages for resources fetched from other hosts found one: Google Fonts on a GDPR-first product. A CI check now keeps it that way.</summary>
  </entry>
  <entry>
    <title>A gradient-chosen weight plant found no room under a per-tensor bound</title>
    <link href="https://marisstella.app/writing/a-gradient-chosen-plant-under-a-per-tensor-bound/"/>
    <id>https://marisstella.app/writing/a-gradient-chosen-plant-under-a-per-tensor-bound/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Milestone 47: an adversary picking one weight by gradient or loss search inside K times its tensor&#39;s initial maximum harmed 0 of 20 jobs at K = 4.</summary>
  </entry>
  <entry>
    <title>A pilot-allocated LLM audit looks better than the oracle and is wrong</title>
    <link href="https://marisstella.app/writing/a-pilot-allocated-llm-audit-looks-better-and-is-wrong/"/>
    <id>https://marisstella.app/writing/a-pilot-allocated-llm-audit-looks-better-and-is-wrong/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Allocating an LLM-coded data audit from a 30% pilot gives intervals 25 to 48% narrower but coverage as low as 49%. A negative result on real GoEmotions data.</summary>
  </entry>
  <entry>
    <title>We tried a quieter airline series to find a strike; it wasn&#39;t quiet</title>
    <link href="https://marisstella.app/writing/a-quieter-airline-series-was-not-quiet/"/>
    <id>https://marisstella.app/writing/a-quieter-airline-series-was-not-quiet/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Ansett first class had no school-holiday swing, yet the change point detector still returned 29 to 37 changes around the 1989 pilots&#39; strike.</summary>
  </entry>
  <entry>
    <title>A seasonal drift warning that also warns on nothing</title>
    <link href="https://marisstella.app/writing/a-seasonal-shock-warning-that-also-warns-on-nothing/"/>
    <id>https://marisstella.app/writing/a-seasonal-shock-warning-that-also-warns-on-nothing/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector&#39;s drift warning was tested on a trendless seasonal series with a dated shock, and on one with none. It fired on both.</summary>
  </entry>
  <entry>
    <title>A sign error hid the attack: how many weights does a cheater need to plant in a trained model?</title>
    <link href="https://marisstella.app/writing/a-sign-error-hid-an-attack-on-verifiable-training/"/>
    <id>https://marisstella.app/writing/a-sign-error-hid-an-attack-on-verifiable-training/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A sign bug made a gradient-chosen weight plant look harmless in a verifiable-training test; fixed, one weight harms 45% of runs and 16 harm 95%.</summary>
  </entry>
  <entry>
    <title>Fuzzing the bookkeeper&#39;s spreadsheet reader found a three-second stall</title>
    <link href="https://marisstella.app/writing/a-spreadsheet-that-stalled-the-bookkeeper/"/>
    <id>https://marisstella.app/writing/a-spreadsheet-that-stalled-the-bookkeeper/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Mutating Excel and PDF fixtures byte by byte found one old .xls that stalled the free AI bookkeeper&#39;s reader for seconds. A two-line bound fixed it.</summary>
  </entry>
  <entry>
    <title>A wandering series is not a staircase: two more real checks for the changepoint detector</title>
    <link href="https://marisstella.app/writing/a-wandering-series-is-not-a-staircase/"/>
    <id>https://marisstella.app/writing/a-wandering-series-is-not-a-staircase/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Real internet-usage and temperature series show when a changepoint detector reports steps that are not there, and which switch fixes it.</summary>
  </entry>
  <entry>
    <title>An adjustable tail fixes the gust response of a scaled UAV model, in simulation</title>
    <link href="https://marisstella.app/writing/adjustable-tail-gust-response/"/>
    <id>https://marisstella.app/writing/adjustable-tail-gust-response/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Milestone 9e of aerolog-scaling: setting tail area from the flight modes alone brings 67 of 78 sub-scale designs within 10% of full-size gust response.</summary>
  </entry>
  <entry>
    <title>An adjustable tail fixes what no fixed tail could: sub-scale cargo UAV modes</title>
    <link href="https://marisstella.app/writing/adjustable-tail-recovers-scaled-uav-modes/"/>
    <id>https://marisstella.app/writing/adjustable-tail-recovers-scaled-uav-modes/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>No fixed tail survives a 25% tail-slope error in a scaled cargo UAV model, but a tail area adjustable 0.85 to 1.3 times recovers the modes for 76 of 78 designs.</summary>
  </entry>
  <entry>
    <title>Advanced framing: how much lumber does it really save?</title>
    <link href="https://marisstella.app/writing/advanced-framing-saves-a-quarter-of-the-lumber/"/>
    <id>https://marisstella.app/writing/advanced-framing-saves-a-quarter-of-the-lumber/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>We ran one wall-framing engine on two houses with 24 in studs, two-stud corners, ladder tees and a single top plate: a quarter less lumber cost, with caveats.</summary>
  </entry>
  <entry>
    <title>Aim at projects worth three hundred hours</title>
    <link href="https://marisstella.app/writing/aim-at-projects-worth-three-hundred-hours/"/>
    <id>https://marisstella.app/writing/aim-at-projects-worth-three-hundred-hours/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>An opinion, not a rule: aim the main effort at projects worth about three hundred human hours. The run records show none measured above 94.</summary>
  </entry>
  <entry>
    <title>US airline miles, 1937 to 1960: one change, and it is the end of the war</title>
    <link href="https://marisstella.app/writing/airline-miles-one-change-after-the-war/"/>
    <id>https://marisstella.app/writing/airline-miles-one-change-after-the-war/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 24 real yearly airline passenger-mile totals, the changepoint detector&#39;s trend model reports exactly one change, in 1946. A level-only model reports seven.</summary>
  </entry>
  <entry>
    <title>An 8 ft shed peak and a 6&#39;6\&quot; door do not fit together</title>
    <link href="https://marisstella.app/writing/an-8-ft-shed-peak-and-a-6-6-door/"/>
    <id>https://marisstella.app/writing/an-8-ft-shed-peak-and-a-6-6-door/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer, a new free tool, frames a gable shed board by board. Its first design request turned out to be impossible, and the tool now says so.</summary>
  </entry>
  <entry>
    <title>Can a changepoint detector find an airline strike? A real-data check</title>
    <link href="https://marisstella.app/writing/an-airline-strike-in-weekly-data/"/>
    <id>https://marisstella.app/writing/an-airline-strike-in-weekly-data/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Ansett&#39;s 1989 pilots&#39; dispute is a documented closure in a public weekly series. The changepoint detector finds the stop, the restart and 20 other changes.</summary>
  </entry>
  <entry>
    <title>Audit by the coder&#39;s own label: when stratifying a hand-coded sample pays</title>
    <link href="https://marisstella.app/writing/audit-by-the-coders-own-label/"/>
    <id>https://marisstella.app/writing/audit-by-the-coders-own-label/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Stratifying an LLM-coded audit by corpus group buys nothing; stratifying by the coder&#39;s own label cuts the interval 15 to 25% when the coder is informative.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for auto repair shops: six of thirteen lines had no account</title>
    <link href="https://marisstella.app/writing/auto-repair-shop-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/auto-repair-shop-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for an independent repair shop. Fleet-account payments, repair-data software, bay rent and the ASE fee had no rules.</summary>
  </entry>
  <entry>
    <title>Baseboard splices cost board: a scarf-joint allowance in the framing takeoff</title>
    <link href="https://marisstella.app/writing/baseboard-scarf-joints-cost-board/"/>
    <id>https://marisstella.app/writing/baseboard-scarf-joints-cost-board/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A baseboard run longer than one board needs splices, and a scarf joint overlaps. The wall-framing takeoff now counts that overlap.</summary>
  </entry>
  <entry>
    <title>Boil it once: a boil-water notice that made the nitrate worse (a 2047 story)</title>
    <link href="https://marisstella.app/writing/boil-it-once-nitrate-boil-water-notice-story/"/>
    <id>https://marisstella.app/writing/boil-it-once-nitrate-boil-water-notice-story/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Boil It Once (Hearth &amp; Horizon): a flooded village well has bacteria and 58 mg/L nitrate, and boiling for twenty minutes doubles the nitrate.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for massage therapists and estheticians, from a bank statement</title>
    <link href="https://marisstella.app/writing/bookkeeping-for-massage-therapists-and-estheticians/"/>
    <id>https://marisstella.app/writing/bookkeeping-for-massage-therapists-and-estheticians/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A free worked October for a solo massage therapist: Square and Vagaro payouts against lotions, dues, a state licence and suite rent, booked from a bank CSV.</summary>
  </entry>
  <entry>
    <title>Breaking the shed designer on purpose: what a fuzz test found in a framing engine</title>
    <link href="https://marisstella.app/writing/breaking-the-shed-designer-on-purpose/"/>
    <id>https://marisstella.app/writing/breaking-the-shed-designer-on-purpose/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded fuzz test swept 1,000 random shed designs and junk links through Shed Designer; 135 broke a rule. Every root cause is now fixed and pinned.</summary>
  </entry>
  <entry>
    <title>Calendar files for leagues with several divisions</title>
    <link href="https://marisstella.app/writing/calendar-files-for-multi-division-leagues/"/>
    <id>https://marisstella.app/writing/calendar-files-for-multi-division-leagues/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The multi-division league scheduler now exports an .ics calendar for the whole league, one division or one team.</summary>
  </entry>
  <entry>
    <title>Can a 16-point pilot certify a chip-flow search? Not yet, and here is what failed</title>
    <link href="https://marisstella.app/writing/chip-search-pilot-certificate-still-open/"/>
    <id>https://marisstella.app/writing/chip-search-pilot-certificate-still-open/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Where verified-dse stands on a pilot-checkable guarantee for chip-flow search: one pilot scheme is proved, a regret estimate from the pilot is not.</summary>
  </entry>
  <entry>
    <title>CI and application bloat: how much is useful and how much is deadweight</title>
    <link href="https://marisstella.app/writing/ci-and-application-bloat-useful-versus-deadweight/"/>
    <id>https://marisstella.app/writing/ci-and-application-bloat-useful-versus-deadweight/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>A week of CI runs and a byte count of 1,324 products: what is load-bearing, what is dead, and what is useful but noisy.</summary>
  </entry>
  <entry>
    <title>Cleaning business bookkeeping from a bank statement: nine lines, $837.20 profit</title>
    <link href="https://marisstella.app/writing/cleaning-business-bookkeeping-from-a-bank-statement/"/>
    <id>https://marisstella.app/writing/cleaning-business-bookkeeping-from-a-bank-statement/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A synthetic September in AI Bookkeeper: $1,285.00 of Zelle, Thumbtack and Stripe deposits, $447.80 of costs, and one supply buy left for the owner to file.</summary>
  </entry>
  <entry>
    <title>Gradient compression costs loss in proportion to its variance, in a small DiLoCo experiment</title>
    <link href="https://marisstella.app/writing/compression-cost-scales-with-variance/"/>
    <id>https://marisstella.app/writing/compression-cost-scales-with-variance/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a 413k-parameter GPT trained with DiLoCo, rand-k compression cost loss roughly in proportion to its variance factor omega = 1/p - 1.</summary>
  </entry>
  <entry>
    <title>Cull a shoot offline and get Lightroom star ratings, free</title>
    <link href="https://marisstella.app/writing/cull-a-shoot-offline-with-xmp-ratings/"/>
    <id>https://marisstella.app/writing/cull-a-shoot-offline-with-xmp-ratings/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ShootFlow&#39;s cull command groups burst frames, keeps the sharpest, rejects blurred ones and writes XMP sidecars. Nothing is uploaded.</summary>
  </entry>
  <entry>
    <title>Did four European stock markets get more volatile together? A changepoint check</title>
    <link href="https://marisstella.app/writing/did-four-european-stock-markets-get-more-volatile-together/"/>
    <id>https://marisstella.app/writing/did-four-european-stock-markets-get-more-volatile-together/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The same changepoint detector on four European indices over 1,859 days: DAX and SMI show the volatility rise within 7 days, FTSE 60 later, CAC not at all.</summary>
  </entry>
  <entry>
    <title>Do the league calendar files hold up? 600 random leagues, 0 faults</title>
    <link href="https://marisstella.app/writing/do-the-league-calendar-files-hold-up/"/>
    <id>https://marisstella.app/writing/do-the-league-calendar-files-hold-up/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fuzz check of the league schedule generator&#39;s .ics and CSV exports against RFC 5545 structure found no faults, and now runs in the test suite.</summary>
  </entry>
  <entry>
    <title>Do our calculator pages fetch files that exist? A sweep of 1,300 pages</title>
    <link href="https://marisstella.app/writing/do-the-pages-fetch-files-that-exist/"/>
    <id>https://marisstella.app/writing/do-the-pages-fetch-files-that-exist/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We scanned every venture page and script for relative fetch() calls and checked each target exists. none dangling, and a CI check to keep it so.</summary>
  </entry>
  <entry>
    <title>Do your stair treads span too far between stringers?</title>
    <link href="https://marisstella.app/writing/do-your-stair-treads-span-too-far/"/>
    <id>https://marisstella.app/writing/do-your-stair-treads-span-too-far/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now warns when stringers are too far apart for the tread thickness, with a worked example.</summary>
  </entry>
  <entry>
    <title>Auditing LLM labels by the coder&#39;s own cells: no gain when the coder carries no signal</title>
    <link href="https://marisstella.app/writing/does-a-coder-cell-audit-transfer-to-naijasenti/"/>
    <id>https://marisstella.app/writing/does-a-coder-cell-audit-transfer-to-naijasenti/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Splitting the human audit by a zero-shot Qwen coder&#39;s own label gains nothing on NaijaSenti, and a pilot floor widens intervals up to 22%.</summary>
  </entry>
  <entry>
    <title>Does a seasonal-drift warning cry wolf on a clean series?</title>
    <link href="https://marisstella.app/writing/does-a-drift-warning-cry-wolf-on-a-clean-series/"/>
    <id>https://marisstella.app/writing/does-a-drift-warning-cry-wolf-on-a-clean-series/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We tested the changepoint detector&#39;s drift warning on 195 synthetic months with no shock. It stays quiet on white noise and fires on autocorrelation alone.</summary>
  </entry>
  <entry>
    <title>Does a heel-to-toe centre of pressure help a humanoid carry faster?</title>
    <link href="https://marisstella.app/writing/does-a-heel-to-toe-cop-help-a-humanoid-carry-faster/"/>
    <id>https://marisstella.app/writing/does-a-heel-to-toe-cop-help-a-humanoid-carry-faster/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A 1,440-case MuJoCo check: moving the planned centre of pressure heel to toe moves a Unitree G1 and H1 carry speed by one grid cell at most.</summary>
  </entry>
  <entry>
    <title>Does a load-sensing hydraulic pump pay for itself on a small excavator?</title>
    <link href="https://marisstella.app/writing/does-a-load-sensing-hydraulic-pump-pay-for-itself/"/>
    <id>https://marisstella.app/writing/does-a-load-sensing-hydraulic-pump-pay-for-itself/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A first costing in our open hydraulics programme: with public retail prices and today&#39;s diesel, load-sensing&#39;s extra parts never repay in 2,000 hours.</summary>
  </entry>
  <entry>
    <title>A longer series did not help the changepoint detector tell a shock from a season</title>
    <link href="https://marisstella.app/writing/does-a-longer-series-tell-a-shock-from-a-season-changepoint/"/>
    <id>https://marisstella.app/writing/does-a-longer-series-tell-a-shock-from-a-season-changepoint/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>195 months of euro-area factory orders through the 2008 crash: the detector found the collapse, warned about a drifting season, and cut 16 to 22 steps in all.</summary>
  </entry>
  <entry>
    <title>Does an excavator&#39;s idle time decide which hydraulic circuit wins?</title>
    <link href="https://marisstella.app/writing/does-an-excavators-idle-time-decide-its-hydraulic-circuit/"/>
    <id>https://marisstella.app/writing/does-an-excavators-idle-time-decide-its-hydraulic-circuit/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Load-sensing&#39;s 21% edge at a measured load factor shrinks to nothing if the open-centre bypass idles at low pressure, in a small-excavator energy model.</summary>
  </entry>
  <entry>
    <title>Does allowing for autocorrelation hide a drifting season? On UK gas, yes</title>
    <link href="https://marisstella.app/writing/does-ar1-hide-a-drifting-season/"/>
    <id>https://marisstella.app/writing/does-ar1-hide-a-drifting-season/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector&#39;s --ar1 flag cuts false drift warnings on sticky noise. On real series it keeps the airline warning but loses UK gas.</summary>
  </entry>
  <entry>
    <title>Does the cost of compressing DiLoCo updates depend on how often workers sync?</title>
    <link href="https://marisstella.app/writing/does-compression-cost-depend-on-sync-interval/"/>
    <id>https://marisstella.app/writing/does-compression-cost-depend-on-sync-interval/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a small GPT, the loss cost of keeping 1/16 of each DiLoCo update grows with sync interval H; a separable rule fitted on three H predicts two held-out H.</summary>
  </entry>
  <entry>
    <title>Does load-sensing pay on a small excavator? A first paper draft says: it depends on one number</title>
    <link href="https://marisstella.app/writing/does-load-sensing-pay-on-a-small-excavator/"/>
    <id>https://marisstella.app/writing/does-load-sensing-pay-on-a-small-excavator/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Draft paper: load-sensing beats open-centre on a small excavator only with enough idle time, and its parts cost does not repay in fuel in 2,000 hours.</summary>
  </entry>
  <entry>
    <title>Does load-sensing hydraulics beat open-centre? It hangs on one unmeasured number</title>
    <link href="https://marisstella.app/writing/does-load-sensing-win-it-depends-on-one-number/"/>
    <id>https://marisstella.app/writing/does-load-sensing-win-it-depends-on-one-number/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>An open model of a small excavator&#39;s hydraulics finds the load-sensing versus open-centre ranking flips with the pressure an open-centre valve holds at neutral.</summary>
  </entry>
  <entry>
    <title>Does stratifying a human audit of LLM codes pay when the category is common?</title>
    <link href="https://marisstella.app/writing/does-stratifying-an-llm-audit-pay-at-common-categories/"/>
    <id>https://marisstella.app/writing/does-stratifying-an-llm-audit-pay-at-common-categories/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On two common GoEmotions categories, four audit strata moved interval width by about 1%, and the LLM coder&#39;s gain tracked its accuracy.</summary>
  </entry>
  <entry>
    <title>Does the photo cull pick what you would pick? A way to check</title>
    <link href="https://marisstella.app/writing/does-the-photo-cull-pick-what-you-would-pick/"/>
    <id>https://marisstella.app/writing/does-the-photo-cull-pick-what-you-would-pick/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ShootFlow&#39;s cull now scores itself against your own picks: keeper hit rate and the number of frames you wanted that it threw out.</summary>
  </entry>
  <entry>
    <title>Does the league schedule checker notice a planted fault?</title>
    <link href="https://marisstella.app/writing/does-the-schedule-checker-notice-a-planted-fault/"/>
    <id>https://marisstella.app/writing/does-the-schedule-checker-notice-a-planted-fault/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We planted about 15,000 single faults in valid league schedules to see whether the free generator&#39;s independent checker spots them. It missed none that matter.</summary>
  </entry>
  <entry>
    <title>Does top-k compression pay the same delay tax as random sparsification?</title>
    <link href="https://marisstella.app/writing/does-top-k-pay-the-same-delay-tax-as-random-sparsification/"/>
    <id>https://marisstella.app/writing/does-top-k-pay-the-same-delay-tax-as-random-sparsification/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a small DiLoCo-style GPT run, compression costs more loss as local steps between syncs grow, for biased top-k as for random sparsification.</summary>
  </entry>
  <entry>
    <title>Drag a door along the wall: the plan sketch editor learns to edit openings</title>
    <link href="https://marisstella.app/writing/drag-a-door-along-the-wall/"/>
    <id>https://marisstella.app/writing/drag-a-door-along-the-wall/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff&#39;s plan sketch now lets you slide a door or window along its wall and resize it by dragging an edge, with overlaps and slivers refused.</summary>
  </entry>
  <entry>
    <title>Drag a corner, keep the house closed: moving walls in the framing sketch</title>
    <link href="https://marisstella.app/writing/drag-a-wall-framing-takeoff-sketch/"/>
    <id>https://marisstella.app/writing/drag-a-wall-framing-takeoff-sketch/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff plan sketch now has a Move tool: drag a corner or slide a wall, and the walls that meet there follow.</summary>
  </entry>
  <entry>
    <title>Draw your house, get a framing takeoff</title>
    <link href="https://marisstella.app/writing/draw-your-house-get-a-framing-takeoff/"/>
    <id>https://marisstella.app/writing/draw-your-house-get-a-framing-takeoff/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free Wall Framing Takeoff page now has a plan sketch editor: click walls, doors and windows on a grid and it works out corners, tees and openings for you.</summary>
  </entry>
  <entry>
    <title>dupehound now finds copies whose names changed</title>
    <link href="https://marisstella.app/writing/dupehound-finds-renamed-copies/"/>
    <id>https://marisstella.app/writing/dupehound-finds-renamed-copies/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A --normalize mode for the Rust copy-paste detector hashes identifiers, strings and numbers by kind: 40.6% duplicated lines becomes 60.4% on this repo.</summary>
  </entry>
  <entry>
    <title>Four email fields that now autofill, found by a sweep of 1,328 pages</title>
    <link href="https://marisstella.app/writing/email-fields-that-autofill/"/>
    <id>https://marisstella.app/writing/email-fields-that-autofill/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sweep of 1,328 venture pages for common accessibility slips found four email inputs that did not autofill. Everything else was clean.</summary>
  </entry>
  <entry>
    <title>Can you plan a coder-assisted audit from a pilot? Mostly not</title>
    <link href="https://marisstella.app/writing/estimating-an-audit-allocation-from-a-pilot/"/>
    <id>https://marisstella.app/writing/estimating-an-audit-allocation-from-a-pilot/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Two repairs for a pilot-estimated audit of LLM-coded text, a per-cell floor and an independent pilot, tested on GoEmotions with a real Qwen coder.</summary>
  </entry>
  <entry>
    <title>Our excavator cycle had too little idle time: checking a model against a measured power trace</title>
    <link href="https://marisstella.app/writing/excavator-load-shape-vs-our-model/"/>
    <id>https://marisstella.app/writing/excavator-load-shape-vs-our-model/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A public electric-excavator power trace has a load factor of 0.35; the force-model cycle we used for hydraulic circuit rankings has 0.61.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for farmers-market and cottage-food vendors, and the three stores it had to learn</title>
    <link href="https://marisstella.app/writing/farmers-market-vendor-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/farmers-market-vendor-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a market baker. Writing it exposed gaps: GFS, Sam&#39;s Club ingredient buys and packaging went unfiled.</summary>
  </entry>
  <entry>
    <title>First-fit lumber ordering costs 9.5% extra when long boards cost more per foot</title>
    <link href="https://marisstella.app/writing/first-fit-costs-9-percent-when-lumber-prices-by-length/"/>
    <id>https://marisstella.app/writing/first-fit-costs-9-percent-when-lumber-prices-by-length/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 150 small framing orders with length-priced lumber, first-fit-decreasing found the cheapest order 29% of the time; the shipped solver found it every time.</summary>
  </entry>
  <entry>
    <title>AI Bookkeeper now starts with a button</title>
    <link href="https://marisstella.app/writing/first-screen-bookkeeper/"/>
    <id>https://marisstella.app/writing/first-screen-bookkeeper/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On a phone, AI Bookkeeper opened with paragraphs and no action. It now opens with Import a bank file and Try the example, above the fold.</summary>
  </entry>
  <entry>
    <title>Three scheduling and sales tools now show their buttons on a phone&#39;s first screen</title>
    <link href="https://marisstella.app/writing/first-screen-buttons-on-three-tools/"/>
    <id>https://marisstella.app/writing/first-screen-buttons-on-three-tools/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A phone-width check found three tool pages with no action above the fold. Each now has a start button and a try-an-example button.</summary>
  </entry>
  <entry>
    <title>Four tools now open on a button, not a wall of text</title>
    <link href="https://marisstella.app/writing/flagship-tools-now-open-on-a-button/"/>
    <id>https://marisstella.app/writing/flagship-tools-now-open-on-a-button/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff, changepoint detector, e-invoice preflight and tennis robot shot planner now show a start button on a phone&#39;s first screen.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for food trucks: commissary rent, propane and festival fees</title>
    <link href="https://marisstella.app/writing/food-truck-bookkeeping/"/>
    <id>https://marisstella.app/writing/food-truck-bookkeeping/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a food truck. Five of fifteen lines had no suggestion; a new rule block fills them.</summary>
  </entry>
  <entry>
    <title>Forty percent of our JavaScript is a copy: a copy-paste detector in Rust</title>
    <link href="https://marisstella.app/writing/forty-percent-of-our-javascript-is-a-copy/"/>
    <id>https://marisstella.app/writing/forty-percent-of-our-javascript-is-a-copy/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>jscpd ran out of memory on our 9,458 JavaScript files. A Rust rewrite read them in 1.2 s, matched about 95% of its flagged lines, and runs in the browser.</summary>
  </entry>
  <entry>
    <title>Foundation takeoff now counts piers: pads, columns and rebar</title>
    <link href="https://marisstella.app/writing/foundation-takeoff-now-counts-piers/"/>
    <id>https://marisstella.app/writing/foundation-takeoff-now-counts-piers/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff&#39;s foundation module now takes pier groups (square pads with optional columns) and returns concrete and rebar, with arithmetic shown.</summary>
  </entry>
  <entry>
    <title>Four framing faults the shed designer&#39;s checks missed</title>
    <link href="https://marisstella.app/writing/four-framing-faults-the-shed-checks-missed/"/>
    <id>https://marisstella.app/writing/four-framing-faults-the-shed-checks-missed/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 1,400 lb post landing on one floor joist, eave walls checked with too little roof, a skid joint between blocks and siding joints with no stud behind them.</summary>
  </entry>
  <entry>
    <title>A free tax calendar for freelancers and sellers, as an .ics file</title>
    <link href="https://marisstella.app/writing/free-small-business-tax-calendar-ics/"/>
    <id>https://marisstella.app/writing/free-small-business-tax-calendar-ics/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper tax calendar is now a web page: federal, payroll, 1099-NEC and state sales tax dates as a list or an .ics file for your calendar.</summary>
  </entry>
  <entry>
    <title>We broke 11,100 bank statements and the reader never crashed</title>
    <link href="https://marisstella.app/writing/fuzzing-the-bank-statement-reader/"/>
    <id>https://marisstella.app/writing/fuzzing-the-bank-statement-reader/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s bank-statement reader was fed 85 fixtures cut, truncated, quote-injected and spliced with junk; none hit a programming error.</summary>
  </entry>
  <entry>
    <title>Gable-end wall panels now carry a sheathing weight</title>
    <link href="https://marisstella.app/writing/gable-wall-panels-get-a-weight/"/>
    <id>https://marisstella.app/writing/gable-wall-panels-get-a-weight/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff&#39;s shop panels skipped sheathing weight on gable walls. They now count the eave rectangle plus the triangle under each panel.</summary>
  </entry>
  <entry>
    <title>A gate stops one bad audio sync from ruining a camera&#39;s whole hour</title>
    <link href="https://marisstella.app/writing/gated-audio-sync-tracking-lock-loss/"/>
    <id>https://marisstella.app/writing/gated-audio-sync-tracking-lock-loss/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Tracking a camera&#39;s audio delay from its own history locked 37% of cameras onto a wrong alias for an hour. Re-acquiring on a stronger peak cuts that to 8-10%.</summary>
  </entry>
  <entry>
    <title>Making a simulated coat hanger blunter stops helping at about 6 cm</title>
    <link href="https://marisstella.app/writing/hanger-end-radius-plateau/"/>
    <id>https://marisstella.app/writing/hanger-end-radius-plateau/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Lifting the end-radius cap of a simulated 3D-designed hanger from 6 to 10 and 15 cm left the drape error flat (1.08 and 1.21 cm against 1.12 cm, 8 seeds each).</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for home daycares, and the seven payees it had to learn</title>
    <link href="https://marisstella.app/writing/home-daycare-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/home-daycare-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a solo home daycare. Half the lines went unfiled until tuition, craft supplies, NAFCC dues and CACFP fees got rules.</summary>
  </entry>
  <entry>
    <title>Home Depot or Lowe&#39;s for an 8x12 shed? Each priced on its own</title>
    <link href="https://marisstella.app/writing/home-depot-or-lowes-for-an-8x12-shed/"/>
    <id>https://marisstella.app/writing/home-depot-or-lowes-for-an-8x12-shed/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now prices the whole list at Home Depot and Lowe&#39;s separately, with bulk prices, spare boards, tax, delivery and a labour rate.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for home inspectors: six of ten lines had no account</title>
    <link href="https://marisstella.app/writing/home-inspector-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/home-inspector-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a solo home inspector. Software payouts, the thermal camera and the state licence had no rules.</summary>
  </entry>
  <entry>
    <title>How far does a solar-powered survey boat go in a day, and how sure are we?</title>
    <link href="https://marisstella.app/writing/how-far-does-a-solar-boat-go-per-day/"/>
    <id>https://marisstella.app/writing/how-far-does-a-solar-boat-go-per-day/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A deck-solar 5 m survey boat covers about 69 to 133 km/day depending on site; drawing power-side inputs jointly gives roughly +-10%.</summary>
  </entry>
  <entry>
    <title>How fast should a solar survey boat cruise? The hull you can&#39;t measure moves the answer more than the controller does</title>
    <link href="https://marisstella.app/writing/how-fast-should-a-solar-boat-cruise-hull-uncertainty/"/>
    <id>https://marisstella.app/writing/how-fast-should-a-solar-boat-cruise-hull-uncertainty/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A deck-solar survey boat&#39;s best cruising speed shifts by 0.3 m/s across plausible hull constants, costing up to 9% of daily distance if you guess wrong.</summary>
  </entry>
  <entry>
    <title>How many eave baffles does your attic need? The framing takeoff now counts them</title>
    <link href="https://marisstella.app/writing/how-many-eave-baffles-for-an-attic/"/>
    <id>https://marisstella.app/writing/how-many-eave-baffles-for-an-attic/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free wall-framing takeoff now counts attic eave baffles, one per rafter or truss bay on both eaves, next to the loose-fill bag count.</summary>
  </entry>
  <entry>
    <title>How many nails hold a shed&#39;s rafter ties? It depends on the width</title>
    <link href="https://marisstella.app/writing/how-many-nails-hold-a-shed-rafter-tie/"/>
    <id>https://marisstella.app/writing/how-many-nails-hold-a-shed-rafter-tie/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shed designer said three 16d per rafter tie for every shed. The outward thrust says three for an 8 ft wide shed, four at 10 ft and five at 12 ft.</summary>
  </entry>
  <entry>
    <title>How much energy can an excavator boom give back?</title>
    <link href="https://marisstella.app/writing/how-much-can-an-excavator-boom-give-back/"/>
    <id>https://marisstella.app/writing/how-much-can-an-excavator-boom-give-back/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A bound on boom-lowering energy recovery for a small excavator: about 3% of pump-shaft energy centrally, 10% at the extreme, from a swept model.</summary>
  </entry>
  <entry>
    <title>How much lumber does a shed take? Thirteen sizes, framed board by board</title>
    <link href="https://marisstella.app/writing/how-much-lumber-for-a-shed-by-size/"/>
    <id>https://marisstella.app/writing/how-much-lumber-for-a-shed-by-size/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now publishes a lumber list for each common gable shed size from 8x8 to 12x24, written by its own framing engine rather than a rule of thumb.</summary>
  </entry>
  <entry>
    <title>How noisy can a flight test be before the adjustable tail stops working?</title>
    <link href="https://marisstella.app/writing/how-noisy-can-a-flight-test-be-for-an-adjustable-tail/"/>
    <id>https://marisstella.app/writing/how-noisy-can-a-flight-test-be-for-an-adjustable-tail/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A least-squares fit of a simulated noisy free response shows what sensor noise and record length the adjustable-tail fix for a sub-scale cargo drone tolerates.</summary>
  </entry>
  <entry>
    <title>How noisy can the in-flight measurement be before the adjustable tail stops working?</title>
    <link href="https://marisstella.app/writing/how-noisy-can-the-adjustable-tail-measurement-be/"/>
    <id>https://marisstella.app/writing/how-noisy-can-the-adjustable-tail-measurement-be/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Setting a sub-scale UAV&#39;s tail area from noisy mode estimates keeps gust response within 10% for most designs at 2% noise, but no design is reliable at 5%.</summary>
  </entry>
  <entry>
    <title>Idle time decides whether a load-sensing excavator circuit beats open-centre</title>
    <link href="https://marisstella.app/writing/idle-time-decides-load-sensing-vs-open-centre/"/>
    <id>https://marisstella.app/writing/idle-time-decides-load-sensing-vs-open-centre/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In an open excavator-circuit simulation, load-sensing used 104% of open-centre energy with no idle time and 79 to 82% once idle matched a measured trace.</summary>
  </entry>
  <entry>
    <title>Israel: invoices above NIS 5,000 now need a Tax Authority allocation number</title>
    <link href="https://marisstella.app/writing/israel-invoices-above-5000-shekels-need-an-allocation-number/"/>
    <id>https://marisstella.app/writing/israel-invoices-above-5000-shekels-need-an-allocation-number/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>E-invoice Preflight has an Israel page: how allocation numbers work, the threshold steps down to NIS 5,000, and a free ID and company number check digit test.</summary>
  </entry>
  <entry>
    <title>A test that keeps the first-screen button on our flagship tools</title>
    <link href="https://marisstella.app/writing/keeping-the-first-screen-button/"/>
    <id>https://marisstella.app/writing/keeping-the-first-screen-button/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We added an &#39;Open the tool&#39; button to flagship pages so phone visitors see an action first. Now a test fails if one goes missing.</summary>
  </entry>
  <entry>
    <title>Landscaping bookkeeping from a bank statement: ten lines, $1,357.30 profit</title>
    <link href="https://marisstella.app/writing/landscaping-business-bookkeeping-from-a-bank-statement/"/>
    <id>https://marisstella.app/writing/landscaping-business-bookkeeping-from-a-bank-statement/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A synthetic September in AI Bookkeeper: $2,080.00 of HOA, Stripe and Square deposits, $722.70 of costs, and why a Home Depot receipt needs a second look.</summary>
  </entry>
  <entry>
    <title>League schedules now export a Google Calendar and Outlook CSV</title>
    <link href="https://marisstella.app/writing/league-schedule-google-calendar-csv/"/>
    <id>https://marisstella.app/writing/league-schedule-google-calendar-csv/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free league schedule generator adds a calendar-import CSV next to its .ics files, for coaches whose calendar will not take iCalendar.</summary>
  </entry>
  <entry>
    <title>Multi-division league builder now writes a message per team and per official</title>
    <link href="https://marisstella.app/writing/league-schedule-messages-for-every-team-and-official/"/>
    <id>https://marisstella.app/writing/league-schedule-messages-for-every-team-and-official/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The league schedule generator&#39;s multi-division page can now download one note per team and per referee, each with only their own matches.</summary>
  </entry>
  <entry>
    <title>Every product&#39;s llms.txt now says how fresh it is</title>
    <link href="https://marisstella.app/writing/llms-txt-dates/"/>
    <id>https://marisstella.app/writing/llms-txt-dates/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The site build now stamps each product&#39;s llms.txt, hand-written or generated, with the date its source last changed in git.</summary>
  </entry>
  <entry>
    <title>One number decides whether load-sensing hydraulics save fuel on a small excavator</title>
    <link href="https://marisstella.app/writing/load-sensing-margin-flips-excavator-ranking/"/>
    <id>https://marisstella.app/writing/load-sensing-margin-flips-excavator-ranking/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Sourcing the load-sensing margin from a Rexroth A10VO manual reverses our earlier excavator result: the ranking turns on a margin two sources put 11 bar apart.</summary>
  </entry>
  <entry>
    <title>Low-communication training: compression costs loss in proportion to its noise, not its keep fraction</title>
    <link href="https://marisstella.app/writing/lowcomm-compression-cost-is-omega/"/>
    <id>https://marisstella.app/writing/lowcomm-compression-cost-is-omega/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a small GPT trained DiLoCo-style, unbiased compression costs loss in proportion to its measured error-to-signal ratio omega, across two compressor families.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for mobile detailers, and the &#39;Zelle to owner&#39; line that went unfiled</title>
    <link href="https://marisstella.app/writing/mobile-detailer-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/mobile-detailer-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a one-van detailer. Detailing chemicals and a transfer to the owner had no rules.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for mobile notaries: dues and E&amp;O were filed as legal fees</title>
    <link href="https://marisstella.app/writing/mobile-notary-bookkeeping/"/>
    <id>https://marisstella.app/writing/mobile-notary-bookkeeping/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a mobile notary. An older bare &#39;notary&#39; rule filed dues, E&amp;O cover and the stamp as legal fees; a new block fixes it.</summary>
  </entry>
  <entry>
    <title>Monica and the Window at Ostia: a Saints by Candlelight episode</title>
    <link href="https://marisstella.app/writing/monica-and-the-window-at-ostia-saints-by-candlelight/"/>
    <id>https://marisstella.app/writing/monica-and-the-window-at-ostia-saints-by-candlelight/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 54 of Saints by Candlelight: Saint Monica and her son Augustine at an open window in Ostia, told from the Confessions. Text only.</summary>
  </entry>
  <entry>
    <title>Reading doors made of doors: nested CAD blocks in the wall framing takeoff</title>
    <link href="https://marisstella.app/writing/nested-cad-door-symbols-in-the-wall-framing-takeoff/"/>
    <id>https://marisstella.app/writing/nested-cad-door-symbols-in-the-wall-framing-takeoff/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff&#39;s DXF reader now sizes door and window symbols built from other symbols, including mirrored leaves.</summary>
  </entry>
  <entry>
    <title>Ohio quarterly sales tax returns: the 23rd, and where the sources disagree</title>
    <link href="https://marisstella.app/writing/ohio-quarterly-sales-tax-due-dates/"/>
    <id>https://marisstella.app/writing/ohio-quarterly-sales-tax-due-dates/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax worksheet now pins Ohio&#39;s quarterly due dates, and says plainly that guides disagree on who files quarterly.</summary>
  </entry>
  <entry>
    <title>Ohio capped its sales tax vendor discount at $750 a month</title>
    <link href="https://marisstella.app/writing/ohio-sales-tax-discount-cap/"/>
    <id>https://marisstella.app/writing/ohio-sales-tax-discount-cap/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>From 2026 Ohio&#39;s 0.75% timely-filing discount stops at $750 per vendor&#39;s license per month. What changed, and how ai-bookkeeper now models it.</summary>
  </entry>
  <entry>
    <title>One command for CI and your laptop: removing 418 copies of one workflow</title>
    <link href="https://marisstella.app/writing/one-command-for-ci-and-your-laptop/"/>
    <id>https://marisstella.app/writing/one-command-for-ci-and-your-laptop/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>How this monorepo went from 549 GitHub Actions workflows to 131, made its diff-scoped checks run locally, and found which venture tests the old setup never ran.</summary>
  </entry>
  <entry>
    <title>A one-line breadcrumb on phones</title>
    <link href="https://marisstella.app/writing/one-line-breadcrumb-on-phones/"/>
    <id>https://marisstella.app/writing/one-line-breadcrumb-on-phones/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Long page titles made the site&#39;s breadcrumb wrap to three lines at phone width. One shared CSS rule now keeps it to one line.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for owner-operator truckers: ten of seventeen lines had no account</title>
    <link href="https://marisstella.app/writing/owner-operator-trucker-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/owner-operator-trucker-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a one-truck owner-operator. Factoring deposits, the fuel card and Form 2290 had no rules.</summary>
  </entry>
  <entry>
    <title>Panelised vs stick framing, counted without a labour rate</title>
    <link href="https://marisstella.app/writing/panelised-vs-stick-framing-piece-counts/"/>
    <id>https://marisstella.app/writing/panelised-vs-stick-framing-piece-counts/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>What a framing crew handles on site when walls are built as shop panels instead of stick by stick, counted from the wall-framing takeoff on two houses.</summary>
  </entry>
  <entry>
    <title>Paul and the fourteen nights before Malta: a bedtime story</title>
    <link href="https://marisstella.app/writing/paul-shipwreck-malta-bedtime-story/"/>
    <id>https://marisstella.app/writing/paul-shipwreck-malta-bedtime-story/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 53 of Saints by Candlelight retells the voyage and shipwreck of Acts 27 and 28, from a late-season grain ship to a fire on a Maltese beach.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for personal trainers, and the four payees it had to learn</title>
    <link href="https://marisstella.app/writing/personal-trainer-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/personal-trainer-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for an independent trainer. Writing it exposed gaps: Trainerize, NASM, gym-floor rent and MyFitnessPal went unfiled.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for pet sitters and dog walkers, and the eight payees it had to learn</title>
    <link href="https://marisstella.app/writing/pet-sitter-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/pet-sitter-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a solo pet sitter. Writing it exposed gaps: Rover and Wag payouts, Time To Pet, Petco and association dues went unfiled.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for photographers, and the five payees it had to learn</title>
    <link href="https://marisstella.app/writing/photographer-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/photographer-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A worked October in ai-bookkeeper for a wedding photographer exposed gaps: gallery software, PPA dues, a second shooter, WHCC and Lightroom went unfiled.</summary>
  </entry>
  <entry>
    <title>Pier footings now go in the wall framing takeoff page</title>
    <link href="https://marisstella.app/writing/pier-footings-in-the-framing-takeoff-page/"/>
    <id>https://marisstella.app/writing/pier-footings-in-the-framing-takeoff-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free wall framing takeoff page now takes pier groups: pad size, column, rebar, concrete yards and trucks, no plan file needed.</summary>
  </entry>
  <entry>
    <title>Playwright 1.56 cannot install Chromium on GitHub&#39;s Ubuntu 26.04 runners</title>
    <link href="https://marisstella.app/writing/playwright-on-ubuntu-26-04/"/>
    <id>https://marisstella.app/writing/playwright-on-ubuntu-26-04/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A browser test job failed before running a test: ubuntu-latest is now Ubuntu 26.04 and Playwright 1.56 has no Chromium for it. Playwright 1.63.0 installs fine.</summary>
  </entry>
  <entry>
    <title>The site build takes 7 to 20 minutes, and the prompt now says so</title>
    <link href="https://marisstella.app/writing/polish-build-takes-twenty-minutes/"/>
    <id>https://marisstella.app/writing/polish-build-takes-twenty-minutes/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Polish runs kept losing monitors to a long site build. The prompt now gives the command that prints its own DONE marker.</summary>
  </entry>
  <entry>
    <title>Radon in a granite laundry: why a four-day test and a three-month test disagree</title>
    <link href="https://marisstella.app/writing/radon-in-a-granite-laundry/"/>
    <id>https://marisstella.app/writing/radon-in-a-granite-laundry/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a 4-day canister reads 520 Bq/m3, a 3-month chip 1,150. The one-line sum behind the gap, and why a bigger fan can disappoint.</summary>
  </entry>
  <entry>
    <title>Five real DXF files, five failures: layer flags for the wall-framing takeoff</title>
    <link href="https://marisstella.app/writing/real-dxf-files-wall-framing-layer-flags/"/>
    <id>https://marisstella.app/writing/real-dxf-files-wall-framing-layer-flags/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Real DXF files from the ezdxf test set showed the wall-framing takeoff only found walls on layers named like &#39;wall&#39;. New CLI flags name the layers.</summary>
  </entry>
  <entry>
    <title>Real estate agent bookkeeping from a bank statement: two closings, seven costs</title>
    <link href="https://marisstella.app/writing/real-estate-agent-bookkeeping-from-a-bank-statement/"/>
    <id>https://marisstella.app/writing/real-estate-agent-bookkeeping-from-a-bank-statement/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A synthetic August in AI Bookkeeper: two commission deposits of $10,115.00, $1,163.00 of MLS, dues, leads and insurance, $8,952.00 profit before mileage.</summary>
  </entry>
  <entry>
    <title>A call-out after you posted the schedule: rebuild the week or change one shift?</title>
    <link href="https://marisstella.app/writing/rebuild-the-week-or-change-one-shift/"/>
    <id>https://marisstella.app/writing/rebuild-the-week-or-change-one-shift/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On an invented seven-person cafe, rebuilding the whole week after one call-out moved 4 to 10 other people&#39;s shifts and often still left the shift open.</summary>
  </entry>
  <entry>
    <title>Fifteen days of red team: what it broke, and what the blue team fixed</title>
    <link href="https://marisstella.app/writing/red-team-fifteen-days-damage-and-repairs/"/>
    <id>https://marisstella.app/writing/red-team-fifteen-days-damage-and-repairs/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>294 red-team runs seeded 3,437 bugs and none is in the code today. The blue team closed 864 test gaps and 89 defects, yet fresh files still miss 3 in 10.</summary>
  </entry>
  <entry>
    <title>Seeding bugs in the shop-rates bar: 4 of 8 got through</title>
    <link href="https://marisstella.app/writing/redteam-shop-rates-bar/"/>
    <id>https://marisstella.app/writing/redteam-shop-rates-bar/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team campaign on the shared shop-rates bar caught half its seeded bugs; the escapes included one that would overwrite a shared bid link.</summary>
  </entry>
  <entry>
    <title>Referees for a league with several divisions</title>
    <link href="https://marisstella.app/writing/referees-across-divisions/"/>
    <id>https://marisstella.app/writing/referees-across-divisions/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The league schedule generator now assigns an official to every match across divisions that share courts, with no one on two matches at once.</summary>
  </entry>
  <entry>
    <title>Referees for every division, on one page</title>
    <link href="https://marisstella.app/writing/referees-for-every-division-on-one-page/"/>
    <id>https://marisstella.app/writing/referees-for-every-division-on-one-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free multi-division league scheduler now hands every match a referee, umpire or scorekeeper in your browser, with no one on two matches at once.</summary>
  </entry>
  <entry>
    <title>A guide for the sales agent: what to do with each reply to cold outreach</title>
    <link href="https://marisstella.app/writing/replies-to-cold-outreach-guide/"/>
    <id>https://marisstella.app/writing/replies-to-cold-outreach-guide/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The sales-agent flagship had no page for the people who would search for it. It now has a guide with a table of the safe action for each kind of reply.</summary>
  </entry>
  <entry>
    <title>Restaurant bookkeeping from a bank statement: one July, four payouts</title>
    <link href="https://marisstella.app/writing/restaurant-bookkeeping-from-a-bank-statement/"/>
    <id>https://marisstella.app/writing/restaurant-bookkeeping-from-a-bank-statement/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A synthetic restaurant month in AI Bookkeeper: Toast and three delivery apps pay $6,095.70, food and fees cost $2,744.57, profit $3,351.13 before wages.</summary>
  </entry>
  <entry>
    <title>Your self-hosted team schedule can now ping your own Slack, Discord or phone</title>
    <link href="https://marisstella.app/writing/roster-hub-alerts-to-your-own-slack/"/>
    <id>https://marisstella.app/writing/roster-hub-alerts-to-your-own-slack/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free shift-roster server can post to a webhook you own when staff send a call-out, trade or time-off ask, and when you publish a week.</summary>
  </entry>
  <entry>
    <title>What rough water costs a solar-powered boat, and why it should slow down</title>
    <link href="https://marisstella.app/writing/rough-water-solar-boat-speed/"/>
    <id>https://marisstella.app/writing/rough-water-solar-boat-speed/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A marine-hull sweep: doubling hull resistance costs a 5 m solar boat about 21% of daily range; holding calm-water speed costs 12 to 27%.</summary>
  </entry>
  <entry>
    <title>When rough water comes in weeks, how much does slowing down on rough days gain a solar boat?</title>
    <link href="https://marisstella.app/writing/rough-weeks-solar-boat-back-off/"/>
    <id>https://marisstella.app/writing/rough-weeks-solar-boat-back-off/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Simulated solar boat at five sites: slowing on rough days beats the best constant speed by 3 to 8% with a big battery, up to 15% with a small one.</summary>
  </entry>
  <entry>
    <title>The run router now reads the task it was given</title>
    <link href="https://marisstella.app/writing/route-reads-the-task/"/>
    <id>https://marisstella.app/writing/route-reads-the-task/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Eight runs in three days asked for revenue products and were routed to other work. promptctl route --task now picks the track the message names.</summary>
  </entry>
  <entry>
    <title>Sales Agent can move the deal, but only when you click</title>
    <link href="https://marisstella.app/writing/sales-agent-moves-the-deal-only-when-you-click/"/>
    <id>https://marisstella.app/writing/sales-agent-moves-the-deal-only-when-you-click/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sales Agent&#39;s self-host queue has a button that moves a contact&#39;s open Pipedrive or HubSpot deal to your meeting stage. Nothing moves automatically.</summary>
  </entry>
  <entry>
    <title>Sales Agent now writes what it read back into your CRM</title>
    <link href="https://marisstella.app/writing/sales-agent-writes-replies-back-to-your-crm/"/>
    <id>https://marisstella.app/writing/sales-agent-writes-replies-back-to-your-crm/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sales Agent can now note each reply it reads on the Pipedrive or HubSpot contact and set the CRM opt-out on unsubscribes. It only records or reduces contact.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for hair salons and barbers</title>
    <link href="https://marisstella.app/writing/salon-and-barber-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/salon-and-barber-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked September for a stylist: Square deposits, supplies, licence and insurance filed from a bank CSV, one unplaced line left for you.</summary>
  </entry>
  <entry>
    <title>We seeded 12 bugs in the child tax credit calculator; the tests caught 5</title>
    <link href="https://marisstella.app/writing/seeding-bugs-in-the-child-tax-credit-calculator/"/>
    <id>https://marisstella.app/writing/seeding-bugs-in-the-child-tax-credit-calculator/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run on the free Child Tax Credit calculator: the suite caught 5 of 12 seeded faults; six new tests lifted that to every non-equivalent one.</summary>
  </entry>
  <entry>
    <title>Shape or shock? A change-point warning I could not sharpen</title>
    <link href="https://marisstella.app/writing/shape-or-shock-a-negative-result/"/>
    <id>https://marisstella.app/writing/shape-or-shock-a-negative-result/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint-detector&#39;s drift warning fires on a real shock as well as on a growing seasonal shape. A cancellation test looked promising and failed.</summary>
  </entry>
  <entry>
    <title>Shape or shock? A second try that mostly failed</title>
    <link href="https://marisstella.app/writing/shape-or-shock-second-try/"/>
    <id>https://marisstella.app/writing/shape-or-shock-second-try/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Can a changepoint detector tell a growing seasonal pattern from a real shock? A level-scaled refit helped on one of three real series.</summary>
  </entry>
  <entry>
    <title>Telling a growing season from a real shock: a third try that mostly failed</title>
    <link href="https://marisstella.app/writing/shape-or-shock-third-try-log-refit/"/>
    <id>https://marisstella.app/writing/shape-or-shock-third-try-log-refit/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Refitting on the log clears one growing seasonal series but not the airline one, so the changepoint drift warning stays as it is.</summary>
  </entry>
  <entry>
    <title>How close is a lumber cut list to the cheapest possible? Shed Designer now proves it</title>
    <link href="https://marisstella.app/writing/shed-designer-cut-list-proven-lower-bound/"/>
    <id>https://marisstella.app/writing/shed-designer-cut-list-proven-lower-bound/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now solves the cutting-stock relaxation: on 257 real cut lists its proven bound sits 0.4% under the orders, down from 7%.</summary>
  </entry>
  <entry>
    <title>Shed Designer, driven like a first-time visitor: six editor bugs a unit test could not see</title>
    <link href="https://marisstella.app/writing/shed-designer-driven-like-a-first-time-visitor/"/>
    <id>https://marisstella.app/writing/shed-designer-driven-like-a-first-time-visitor/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We drove the free shed designer in a headless browser on a laptop and a phone. What broke, what we fixed, and the tests that keep it fixed.</summary>
  </entry>
  <entry>
    <title>A shed cost that left out the door, and a page that drifted from its tool</title>
    <link href="https://marisstella.app/writing/shed-designer-numbers-that-drift/"/>
    <id>https://marisstella.app/writing/shed-designer-numbers-that-drift/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Auditing Shed Designer&#39;s prices: estimates shown as listings, a store compared with itself, a total missing the door, and a page now tested against its tool.</summary>
  </entry>
  <entry>
    <title>Checking shed plans against the model that drew them</title>
    <link href="https://marisstella.app/writing/shed-designer-plans-checked-against-the-model/"/>
    <id>https://marisstella.app/writing/shed-designer-plans-checked-against-the-model/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Tests that read Shed Designer&#39;s plan sheets back found blank printouts, a hidden wall length, a short rafter dimension and 27 unlettered part marks.</summary>
  </entry>
  <entry>
    <title>Shift roster builder: one click to cover a call-out</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-one-click-cover/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-one-click-cover/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The self-hosted manager page now lists who can cover a called-out shift and gives it to them with one button.</summary>
  </entry>
  <entry>
    <title>ShootFlow can now cull blinks: a free on-device face detector</title>
    <link href="https://marisstella.app/writing/shootflow-blink-detector-opencv/"/>
    <id>https://marisstella.app/writing/shootflow-blink-detector-opencv/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ShootFlow&#39;s closed-eye culling had a contract and no detector. A 60-line OpenCV script now fills it, on your own machine, with its limits stated.</summary>
  </entry>
  <entry>
    <title>ShootFlow cull: a local command that picks the keeper from every burst</title>
    <link href="https://marisstella.app/writing/shootflow-cull-a-free-local-photo-culling-command/"/>
    <id>https://marisstella.app/writing/shootflow-cull-a-free-local-photo-culling-command/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new ShootFlow command groups near-identical photos, picks a keeper per group, flags blurry frames and writes Lightroom rating sidecars, all locally.</summary>
  </entry>
  <entry>
    <title>ShootFlow&#39;s cull report now shows the photos</title>
    <link href="https://marisstella.app/writing/shootflow-cull-contact-sheet/"/>
    <id>https://marisstella.app/writing/shootflow-cull-contact-sheet/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>shootflow cull --thumbs puts a thumbnail contact sheet, grouped by burst, into the cull report so you can judge the keeper picks by eye.</summary>
  </entry>
  <entry>
    <title>ShootFlow now makes review proxies from RAW files</title>
    <link href="https://marisstella.app/writing/shootflow-raw-review-proxies/"/>
    <id>https://marisstella.app/writing/shootflow-raw-review-proxies/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ShootFlow builds 1024 px review JPEGs for CR3, NEF, ARW and DNG stills from the preview the camera embedded, so a RAW shoot can be reviewed.</summary>
  </entry>
  <entry>
    <title>Should you stratify the human audit of an LLM-coded rare category? Not at 1% prevalence</title>
    <link href="https://marisstella.app/writing/should-you-stratify-an-audit-for-a-rare-category/"/>
    <id>https://marisstella.app/writing/should-you-stratify-an-audit-for-a-rare-category/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On GoEmotions fear (1.15% prevalence), splitting a 400-item human audit into four strata lifted nothing and cost coverage; one pooled sample covered 95.8%.</summary>
  </entry>
  <entry>
    <title>Siding takeoff now counts the triangle on a gable end</title>
    <link href="https://marisstella.app/writing/siding-takeoff-gable-ends/"/>
    <id>https://marisstella.app/writing/siding-takeoff-gable-ends/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free wall-framing takeoff&#39;s siding count used to treat a gable end as a rectangle. It now lays courses up the triangle and wraps its true area.</summary>
  </entry>
  <entry>
    <title>The wall-framing plan sketch now survives a page reload</title>
    <link href="https://marisstella.app/writing/sketch-survives-reload/"/>
    <id>https://marisstella.app/writing/sketch-survives-reload/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff&#39;s click-drawn plan sketch used to vanish on reload. It now saves on your device only, and the browser test reloads to prove it.</summary>
  </entry>
  <entry>
    <title>Should a solar survey boat slow down on rough days? A sweep, not a sea</title>
    <link href="https://marisstella.app/writing/slow-down-on-rough-days-solar-boat/"/>
    <id>https://marisstella.app/writing/slow-down-on-rough-days-solar-boat/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A 5 m deck-solar survey boat simulated over ten years of sunshine at five sites: how much does backing off on rough days gain over one cruise speed?</summary>
  </entry>
  <entry>
    <title>Bookkeeping for small farms and CSAs: nine of fourteen lines had no account</title>
    <link href="https://marisstella.app/writing/small-farm-csa-bookkeeping/"/>
    <id>https://marisstella.app/writing/small-farm-csa-bookkeeping/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a small farm. CSA-platform payouts, seed houses, pasture leases and farm diesel had no rules.</summary>
  </entry>
  <entry>
    <title>Small survey boats: the hull ranking holds, the absolute range does not</title>
    <link href="https://marisstella.app/writing/small-survey-boat-hull-ranking-robust-range-not/"/>
    <id>https://marisstella.app/writing/small-survey-boat-hull-ranking-robust-range-not/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Marine-hull programme: no rival hull beats a displacement monohull at equal length, but deck-solar km/day is known only to about +-10 to 20%.</summary>
  </entry>
  <entry>
    <title>A solar boat goes 10 to 28% further once its power figures come from datasheets, not guesses</title>
    <link href="https://marisstella.app/writing/solar-boat-range-with-published-power-figures/"/>
    <id>https://marisstella.app/writing/solar-boat-range-with-published-power-figures/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Published hotel-load and panel figures raise a simulated deck-solar boat&#39;s range 10 to 28% at three energy-limited sites; best speed stays 1.1 to 1.5 m/s.</summary>
  </entry>
  <entry>
    <title>A solar survey boat&#39;s clever speed rule was mostly just a better constant speed</title>
    <link href="https://marisstella.app/writing/solar-boat-surge-rule-mostly-a-speed-choice/"/>
    <id>https://marisstella.app/writing/solar-boat-surge-rule-mostly-a-speed-choice/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Held-out test on ten years of daily NASA POWER sunshine: a pack-level surge rule adds under 3% over the best constant speed for a small deck-solar boat.</summary>
  </entry>
  <entry>
    <title>One catalogue number flipped our excavator hydraulics ranking</title>
    <link href="https://marisstella.app/writing/sourced-neutral-pressure-flips-load-sensing-ranking/"/>
    <id>https://marisstella.app/writing/sourced-neutral-pressure-flips-load-sensing-ranking/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Reading the open-centre neutral pressure from a real valve catalogue turned a modelled 21% load-sensing saving into an 8 to 12% loss.</summary>
  </entry>
  <entry>
    <title>South Korea: tax invoices must be electronic and reported by the next day</title>
    <link href="https://marisstella.app/writing/south-korea-electronic-tax-invoice/"/>
    <id>https://marisstella.app/writing/south-korea-electronic-tax-invoice/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>E-invoice Preflight has a South Korea page: how the electronic tax invoice works, what is unverified, and a free business registration number check digit test.</summary>
  </entry>
  <entry>
    <title>Shift roster builder now prices split-shift premiums</title>
    <link href="https://marisstella.app/writing/split-shift-premium-in-the-roster-notice/"/>
    <id>https://marisstella.app/writing/split-shift-premium-in-the-roster-notice/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The schedule notice flagged split shifts but never said what they cost; with your local minimum wage it now does.</summary>
  </entry>
  <entry>
    <title>Staggered blocking in a wall takeoff</title>
    <link href="https://marisstella.app/writing/staggered-blocking-in-a-wall-takeoff/"/>
    <id>https://marisstella.app/writing/staggered-blocking-in-a-wall-takeoff/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff can now stagger blocking rows so each block can be face-nailed, and keeps fire-block spacing under 10 ft.</summary>
  </entry>
  <entry>
    <title>Start here: what this repository can do for you, by who you are</title>
    <link href="https://marisstella.app/writing/start-here/"/>
    <id>https://marisstella.app/writing/start-here/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>New here? One page per kind of reader: what you get, who each project is for, your first ten minutes, and the honest limits.</summary>
  </entry>
  <entry>
    <title>Start here: give your AI agent 1,300 free calculators and checkers</title>
    <link href="https://marisstella.app/writing/start-here-ai-agents-and-mcp/"/>
    <id>https://marisstella.app/writing/start-here-ai-agents-and-mcp/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For developers and Claude Code or Cursor users: call any tool&#39;s engine from the shell or a local MCP server, plus a BYOK model client and an agent UI tester.</summary>
  </entry>
  <entry>
    <title>Start here: AI Bookkeeper, books from your bank file that learn your business</title>
    <link href="https://marisstella.app/writing/start-here-ai-bookkeeper/"/>
    <id>https://marisstella.app/writing/start-here-ai-bookkeeper/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Who AI Bookkeeper is for, what you get, your first ten minutes from a bank CSV to a profit and loss, and what it will not do for you.</summary>
  </entry>
  <entry>
    <title>Bring an idea, get it built: what a person gets from this repository</title>
    <link href="https://marisstella.app/writing/start-here-bring-an-idea/"/>
    <id>https://marisstella.app/writing/start-here-bring-an-idea/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>You bring ideas; AI coding agents build them in public under the MIT licence; you, or anyone, may deploy the result and run it for profit.</summary>
  </entry>
  <entry>
    <title>Start here: did your metric really change? A guide to the Changepoint Detector</title>
    <link href="https://marisstella.app/writing/start-here-changepoint-detector/"/>
    <id>https://marisstella.app/writing/start-here-changepoint-detector/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For analysts and ops people with a time series: what the free Changepoint Detector tells you, your first ten minutes, and what it cannot do.</summary>
  </entry>
  <entry>
    <title>Start here: how to help, starting with an idea</title>
    <link href="https://marisstella.app/writing/start-here-contributing/"/>
    <id>https://marisstella.app/writing/start-here-contributing/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For people who want to help: why an idea is the most useful thing you can bring, how ideas and fixes reach the repo, and how a fork pull request lands.</summary>
  </entry>
  <entry>
    <title>Start here: E-invoice preflight, catch the rejection before the portal does</title>
    <link href="https://marisstella.app/writing/start-here-einvoice-preflight/"/>
    <id>https://marisstella.app/writing/start-here-einvoice-preflight/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Who the free e-invoice preflight is for, what it checks in XRechnung, Peppol, UBL, CII and Factur-X files, your first ten minutes, and its limits.</summary>
  </entry>
  <entry>
    <title>Start here: free tools for your trade, and how to pick the right one</title>
    <link href="https://marisstella.app/writing/start-here-free-tools-for-your-trade/"/>
    <id>https://marisstella.app/writing/start-here-free-tools-for-your-trade/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>A guide for tradespeople and small-business owners to the 1,200+ free browser tools: the trade pages, how to pick one, and what an estimate is not.</summary>
  </entry>
  <entry>
    <title>Start here: League Schedule Generator, a fair season from a list of team names</title>
    <link href="https://marisstella.app/writing/start-here-league-schedule-generator/"/>
    <id>https://marisstella.app/writing/start-here-league-schedule-generator/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For league organisers and club volunteers: what the free schedule maker gives you, your first season in ten minutes, and what it leaves to you.</summary>
  </entry>
  <entry>
    <title>Start here: ShootFlow, a safe card copy and overnight first pass for your shoots</title>
    <link href="https://marisstella.app/writing/start-here-photo-editing/"/>
    <id>https://marisstella.app/writing/start-here-photo-editing/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For photographers and videographers on Mac or Linux: what ShootFlow does with a shoot, your first card copy and pipeline run, and its early-stage limits.</summary>
  </entry>
  <entry>
    <title>Start here: Quick Pick, rank a list by asking people to choose one of two</title>
    <link href="https://marisstella.app/writing/start-here-quick-pick-survey/"/>
    <id>https://marisstella.app/writing/start-here-quick-pick-survey/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Who the Quick Pick survey engine suits, how to deploy your own copy and build a first either-or survey, and why it is still an early prototype.</summary>
  </entry>
  <entry>
    <title>Start here: the open research, and how to check it, reuse it and cite it</title>
    <link href="https://marisstella.app/writing/start-here-research/"/>
    <id>https://marisstella.app/writing/start-here-research/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For researchers, students and curious readers: what the open research portfolio holds, how to rerun one result, and how to build on it or cite it honestly.</summary>
  </entry>
  <entry>
    <title>Start here: Sales Agent, the reply inbox that never sends without you</title>
    <link href="https://marisstella.app/writing/start-here-sales-agent/"/>
    <id>https://marisstella.app/writing/start-here-sales-agent/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For founders and reps doing their own outreach: what the free Sales Agent does with replies, how to try it in ten minutes, and what has really been measured.</summary>
  </entry>
  <entry>
    <title>Start here: run your own copy, embed a tool, or build a business on one</title>
    <link href="https://marisstella.app/writing/start-here-self-hosting/"/>
    <id>https://marisstella.app/writing/start-here-self-hosting/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Every tool here is MIT licensed, so you may run it for profit. Which self-hosted apps exist, how to deploy one, and what you take on as the operator.</summary>
  </entry>
  <entry>
    <title>Start here: Shift Roster Builder, the week&#39;s schedule without the Sunday-night puzzle</title>
    <link href="https://marisstella.app/writing/start-here-shift-roster-builder/"/>
    <id>https://marisstella.app/writing/start-here-shift-roster-builder/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>Who Shift Roster Builder is for, what it does for a small team&#39;s weekly rota, your first ten minutes, and the labour rules it does not model.</summary>
  </entry>
  <entry>
    <title>Start here: Wall Framing Takeoff, a lumber order and cut list from your wall list</title>
    <link href="https://marisstella.app/writing/start-here-wall-framing-takeoff/"/>
    <id>https://marisstella.app/writing/start-here-wall-framing-takeoff/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="start" label="Start here"/>
    <summary>For framers, estimators and owner-builders: what the free framing takeoff gives you, how to run your first house in ten minutes, and what it leaves to you.</summary>
  </entry>
  <entry>
    <title>State income tax now on the bookkeeper&#39;s estimate card</title>
    <link href="https://marisstella.app/writing/state-income-tax-on-the-bookkeeper-page/"/>
    <id>https://marisstella.app/writing/state-income-tax-on-the-bookkeeper-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s federal tax estimate took a flat state rate on the command line yesterday; the browser page now has the same three boxes.</summary>
  </entry>
  <entry>
    <title>Stepped footings in a framing takeoff</title>
    <link href="https://marisstella.app/writing/stepped-footings-in-a-framing-takeoff/"/>
    <id>https://marisstella.app/writing/stepped-footings-in-a-framing-takeoff/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>How wall-framing-takeoff now prices a footing that steps down a sloping lot: taller stem, riser blocks, extra bars.</summary>
  </entry>
  <entry>
    <title>Straighten a crooked plan scan before you trace it</title>
    <link href="https://marisstella.app/writing/straighten-a-crooked-plan-scan/"/>
    <id>https://marisstella.app/writing/straighten-a-crooked-plan-scan/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing plan sketch can now turn a tilted scan or photo level (or plumb) from two clicks, so walls you trace come out square.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for tattoo artists: five of thirteen lines filed before the rules</title>
    <link href="https://marisstella.app/writing/tattoo-artist-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/tattoo-artist-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a booth-renting tattoo artist. Needles, ink, sharps pickup and the health-department licence had no rules.</summary>
  </entry>
  <entry>
    <title>A ball feeder&#39;s wheels need to push 241 N, and the design assumed 60</title>
    <link href="https://marisstella.app/writing/tennis-feeder-nip-needs-241-newtons/"/>
    <id>https://marisstella.app/writing/tennis-feeder-nip-needs-241-newtons/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Tying the tennis feeder CAD to its flight model: launch wheels near their rpm limit, and the nip must push four times what the retainer check assumed.</summary>
  </entry>
  <entry>
    <title>We tried to break the S-corp calculator with 400 random businesses</title>
    <link href="https://marisstella.app/writing/testing-the-s-corp-calculator-with-400-random-businesses/"/>
    <id>https://marisstella.app/writing/testing-the-s-corp-calculator-with-400-random-businesses/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test on the bookkeeper&#39;s S-corporation comparison found no fault: the profit always splits exactly, and the salary sweep matches direct calls.</summary>
  </entry>
  <entry>
    <title>Does a change detector find a hurricane? Puerto Rico&#39;s daily deaths</title>
    <link href="https://marisstella.app/writing/the-detector-and-the-hurricane/"/>
    <id>https://marisstella.app/writing/the-detector-and-the-hurricane/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector on 1,201 real days of Puerto Rico deaths dates Hurricane Maria to the day in five of five setups, with nine or more other changes.</summary>
  </entry>
  <entry>
    <title>Testing a changepoint warning on 9/11 and SARS</title>
    <link href="https://marisstella.app/writing/the-drift-warning-and-9-11/"/>
    <id>https://marisstella.app/writing/the-drift-warning-and-9-11/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free changepoint detector&#39;s seasonal-drift warning fired in 7 of 8 runs on real Australian visitor data. What that tells us, and what it doesn&#39;t.</summary>
  </entry>
  <entry>
    <title>We broke eight lines of our own browser script and no test noticed</title>
    <link href="https://marisstella.app/writing/the-error-message-script-nobody-ran/"/>
    <id>https://marisstella.app/writing/the-error-message-script-nobody-ran/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run flipped eight lines in the script that points at the invalid field on our calculators. None failed a test. Here is what that found.</summary>
  </entry>
  <entry>
    <title>The Hall with the Doors Shut: a wildfire-smoke story and the sum behind it</title>
    <link href="https://marisstella.app/writing/the-hall-with-the-doors-shut-smoke-story/"/>
    <id>https://marisstella.app/writing/the-hall-with-the-doors-shut-smoke-story/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a parish hall in smoke, four then eight filter boxes, and why one propped door costs a factor of three.</summary>
  </entry>
  <entry>
    <title>The mic button that got out of the way</title>
    <link href="https://marisstella.app/writing/the-mic-button-that-got-out-of-the-way/"/>
    <id>https://marisstella.app/writing/the-mic-button-that-got-out-of-the-way/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The floating Speak-or-type button on our calculators used to cover the text on phones. It now steps aside while you read.</summary>
  </entry>
  <entry>
    <title>The shed walls had no tops: what a floating-parts test found</title>
    <link href="https://marisstella.app/writing/the-shed-walls-had-no-tops/"/>
    <id>https://marisstella.app/writing/the-shed-walls-had-no-tops/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A reviewer looking at Shed Designer&#39;s 3D view said the walls had no tops. A geometry test written in response found the bug, and two more.</summary>
  </entry>
  <entry>
    <title>The Slowest Chair on the Hill: a lightning story</title>
    <link href="https://marisstella.app/writing/the-slowest-chair-on-the-hill-a-lightning-story/"/>
    <id>https://marisstella.app/writing/the-slowest-chair-on-the-hill-a-lightning-story/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a pilgrimage, a lightning rule, and why a group is only as fast as its slowest chair.</summary>
  </entry>
  <entry>
    <title>The Stack That Sweats: a Hearth &amp; Horizon story about hay that cooks itself</title>
    <link href="https://marisstella.app/writing/the-stack-that-sweats-a-hay-fire-story/"/>
    <id>https://marisstella.app/writing/the-stack-that-sweats-a-hay-fire-story/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new science fiction story: hay baled at 24% water, a sum that puts 55 degrees inside one percent of the dry matter, and a rule written in advance.</summary>
  </entry>
  <entry>
    <title>The stair order was missing its risers</title>
    <link href="https://marisstella.app/writing/the-stair-order-was-missing-its-risers/"/>
    <id>https://marisstella.app/writing/the-stair-order-was-missing-its-risers/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff laid out stair risers and a handrail but never bought them. Now solid risers and the handrail join the lumber order.</summary>
  </entry>
  <entry>
    <title>The Warm Stack: why a farmer rings the fire service about hay</title>
    <link href="https://marisstella.app/writing/the-warm-stack-hay-fire-story/"/>
    <id>https://marisstella.app/writing/the-warm-stack-hay-fire-story/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story about hay baled too wet, a core at 66 degrees, and an advisor that gives the numbers and leaves the choice.</summary>
  </entry>
  <entry>
    <title>The window that ate the stud: siding joints with nothing behind them</title>
    <link href="https://marisstella.app/writing/the-window-that-ate-the-stud/"/>
    <id>https://marisstella.app/writing/the-window-that-ate-the-stud/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer&#39;s fuzz test found 70 of 1,500 random sheds with a 4 ft siding joint over bare air beside a door or window. Each now gets a nailer.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for therapists, and why it runs in the browser</title>
    <link href="https://marisstella.app/writing/therapist-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/therapist-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a solo therapist. Eight of fourteen lines went unfiled until insurance-panel payouts, CE, supervision and dues got rules</summary>
  </entry>
  <entry>
    <title>Thirty real airline series, none of them quiet: testing a changepoint detector on the 1989 pilots&#39; strike</title>
    <link href="https://marisstella.app/writing/thirty-airline-series-none-quiet-changepoints/"/>
    <id>https://marisstella.app/writing/thirty-airline-series-none-quiet-changepoints/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector&#39;s date ranges held the start of the 1989 Australian pilots&#39; strike in 29 of 30 real passenger series (count model). None was quiet.</summary>
  </entry>
  <entry>
    <title>Thirty-three distribution channels, none switched on</title>
    <link href="https://marisstella.app/writing/thirty-three-channels-none-switched-on/"/>
    <id>https://marisstella.app/writing/thirty-three-channels-none-switched-on/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>How the free tools reach people today: 33 publishing pipelines built, none live, about 24 page loads recorded, and the channel that needed no account.</summary>
  </entry>
  <entry>
    <title>Three months, ten thousand pull requests: development lessons from an AI-agent monorepo</title>
    <link href="https://marisstella.app/writing/three-months-ten-thousand-prs-what-the-repo-taught/"/>
    <id>https://marisstella.app/writing/three-months-ten-thousand-prs-what-the-repo-taught/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A retrospective from the first commit: 9,783 merged PRs, 1,326 products, about 20 measured page loads, and nine lessons about building with AI agents.</summary>
  </entry>
  <entry>
    <title>Three seller fee calculators now ship llms.txt, with worked numbers</title>
    <link href="https://marisstella.app/writing/three-seller-fee-calculators-now-answer-assistants/"/>
    <id>https://marisstella.app/writing/three-seller-fee-calculators-now-answer-assistants/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The eBay, Etsy and Shopify profit calculators now carry an llms.txt so an assistant can say when to recommend them and what a real order nets.</summary>
  </entry>
  <entry>
    <title>Trace over a scanned plan in the free framing takeoff</title>
    <link href="https://marisstella.app/writing/trace-over-a-scanned-plan/"/>
    <id>https://marisstella.app/writing/trace-over-a-scanned-plan/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff&#39;s sketch editor can now put a picture of your plan under the grid, scale it from one known dimension, and let you trace the walls.</summary>
  </entry>
  <entry>
    <title>A traced floor plan that survives a page reload</title>
    <link href="https://marisstella.app/writing/trace-over-picture-survives-reload/"/>
    <id>https://marisstella.app/writing/trace-over-picture-survives-reload/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff sketch editor now keeps your scanned plan, its scale and its straightening on your device, so a reload no longer costs the setup.</summary>
  </entry>
  <entry>
    <title>Trim take-off: shoe moulding and scarf joints now on the framing page</title>
    <link href="https://marisstella.app/writing/trim-take-off-shoe-moulding-and-scarf-joints/"/>
    <id>https://marisstella.app/writing/trim-take-off-shoe-moulding-and-scarf-joints/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free wall framing take-off page now counts shoe moulding along the baseboard and lets you type a scarf overlap, so long trim runs are bought honestly.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for tutors, and the seven payees it had to learn</title>
    <link href="https://marisstella.app/writing/tutor-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/tutor-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for an online tutor. Outschool, Teachers Pay Teachers, Prodigy, a Wacom tablet and Praxis fees went unfiled until new rules.</summary>
  </entry>
  <entry>
    <title>Two storeys were one plan: testing the framing tool on a real IFC house</title>
    <link href="https://marisstella.app/writing/two-storeys-were-one-plan/"/>
    <id>https://marisstella.app/writing/two-storeys-were-one-plan/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A real two-storey ArchiCAD house exposed a bug in wall-framing-takeoff&#39;s IFC import: upper and lower walls merged. It now reads one storey at a time.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for vending route operators: machine parts were filed as meals</title>
    <link href="https://marisstella.app/writing/vending-route-bookkeeping/"/>
    <id>https://marisstella.app/writing/vending-route-bookkeeping/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a vending route. Reader settlements, commissions and machine parts had no rules; one rule filed parts as meals.</summary>
  </entry>
  <entry>
    <title>Waiting on a 30-minute job without polling every 100 seconds</title>
    <link href="https://marisstella.app/writing/waiting-on-a-thirty-minute-job/"/>
    <id>https://marisstella.app/writing/waiting-on-a-thirty-minute-job/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>wait_for.py gives up after 100 s by design. Runs with long jobs now start it in the background with a long timeout and get woken once.</summary>
  </entry>
  <entry>
    <title>Build schedules that skip your holidays</title>
    <link href="https://marisstella.app/writing/wall-framing-schedule-holidays/"/>
    <id>https://marisstella.app/writing/wall-framing-schedule-holidays/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing-takeoff schedule now skips the holidays and weather days you list, so finish dates match the calendar.</summary>
  </entry>
  <entry>
    <title>A bookkeeping page for wedding DJs, planners and florists</title>
    <link href="https://marisstella.app/writing/wedding-dj-planner-florist-bookkeeping-page/"/>
    <id>https://marisstella.app/writing/wedding-dj-planner-florist-bookkeeping-page/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper gets a worked October for a wedding DJ and planner; wholesale flowers and planner software had no rules.</summary>
  </entry>
  <entry>
    <title>What a shed costs past the lumber, and what $81 of brackets buys</title>
    <link href="https://marisstella.app/writing/what-a-shed-costs-past-the-lumber/"/>
    <id>https://marisstella.app/writing/what-a-shed-costs-past-the-lumber/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shed Designer now prices trim, nails, caulk, flashing, blocks, gravel and a site-built door, compares stores, and finds the build with the fewest saw cuts.</summary>
  </entry>
  <entry>
    <title>What a static framework for a site written by AI agents needs</title>
    <link href="https://marisstella.app/writing/what-a-static-framework-for-an-agent-written-site-needs/"/>
    <id>https://marisstella.app/writing/what-a-static-framework-for-an-agent-written-site-needs/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>We weighed our 5,344-page agent-written site. Pages are small; indexes, copied CSS and design drift are not. What a performance-first framework would fix.</summary>
  </entry>
  <entry>
    <title>What moves a solar survey boat&#39;s range most? Not the hull</title>
    <link href="https://marisstella.app/writing/what-moves-a-solar-boats-range-most/"/>
    <id>https://marisstella.app/writing/what-moves-a-solar-boats-range-most/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Hotel load and panel yield move a solar survey boat&#39;s daily range 2 to 5 times more than the hull drag constants do.</summary>
  </entry>
  <entry>
    <title>What TypeScript by default would look like in this repo</title>
    <link href="https://marisstella.app/writing/what-typescript-by-default-would-look-like/"/>
    <id>https://marisstella.app/writing/what-typescript-by-default-would-look-like/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The portfolio is 9,790 .mjs files and 3,200 HTML pages. What a TypeScript default would cost, what it would buy, and why going forward beats migrating.</summary>
  </entry>
  <entry>
    <title>When noise alone looks like a drifting season</title>
    <link href="https://marisstella.app/writing/when-noise-alone-looks-like-a-drifting-season/"/>
    <id>https://marisstella.app/writing/when-noise-alone-looks-like-a-drifting-season/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A changepoint tool&#39;s drift warning fired on 75% to 88% of series with no change at all. Allowing for autocorrelation cut that to about 1%.</summary>
  </entry>
  <entry>
    <title>When only a third of your crew can close, how fair can a roster be?</title>
    <link href="https://marisstella.app/writing/when-only-a-few-can-close-fairness-has-limits/"/>
    <id>https://marisstella.app/writing/when-only-a-few-can-close-fairness-has-limits/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We measured the shift roster builder&#39;s fairness setting on crews where most people cannot work late: it helps by a third, and availability sets the limit.</summary>
  </entry>
  <entry>
    <title>Where the Pump Coughs: a Hearth &amp; Horizon story about a cistern</title>
    <link href="https://marisstella.app/writing/where-the-pump-coughs-a-cistern-story/"/>
    <id>https://marisstella.app/writing/where-the-pump-coughs-a-cistern-story/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New science fiction: a pilgrim hostel trusts a notched stick to read its cistern, and the sums show the stick measures depth, not water.</summary>
  </entry>
  <entry>
    <title>Would an S corporation save you tax? Now a button on the bookkeeper page</title>
    <link href="https://marisstella.app/writing/would-an-s-corp-save-you-tax/"/>
    <id>https://marisstella.app/writing/would-an-s-corp-save-you-tax/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free AI bookkeeper now compares a sole proprietorship with an S corporation in your browser: tax, payroll tax, a salary sweep and the break-even profit.</summary>
  </entry>
  <entry>
    <title>Zita and the Bread in the Oven: a Little Lamps bedtime story</title>
    <link href="https://marisstella.app/writing/zita-and-the-bread-in-the-oven-bedtime-story/"/>
    <id>https://marisstella.app/writing/zita-and-the-bread-in-the-oven-bedtime-story/</id>
    <updated>2026-10-29T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Little Lamps story for ages 3 to 8: Saint Zita, a Lucca servant, and the legend of the bread found baked while she prayed.</summary>
  </entry>
  <entry>
    <title>We audited 138 digital-twin projects: only 3 name a real data source</title>
    <link href="https://marisstella.app/writing/138-twin-projects-no-real-rho/"/>
    <id>https://marisstella.app/writing/138-twin-projects-no-real-rho/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A keyword audit of the repository&#39;s 138 twin projects finds 137 stylised, 3 with a real data source and 20 that state a paired correlation.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper now has the 2026 earned income credit built in</title>
    <link href="https://marisstella.app/writing/2026-earned-income-credit-built-in/"/>
    <id>https://marisstella.app/writing/2026-earned-income-credit-built-in/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Rev. Proc. 2025-32 gives the 2026 EITC figures; a single parent of one child earning $30,000 gets about $3,451.</summary>
  </entry>
  <entry>
    <title>A 65-year-old freelancer and the new senior deduction: a $100,000 example</title>
    <link href="https://marisstella.app/writing/a-65-year-old-freelancer-and-the-senior-deduction/"/>
    <id>https://marisstella.app/writing/a-65-year-old-freelancer-and-the-senior-deduction/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>For $100,000 of profit in 2026, one person aged 65 or older gets about $7,000 off taxable income and owes roughly $1,227 less federal tax in this estimate.</summary>
  </entry>
  <entry>
    <title>Is it a burst or two level changes? A test that says no on real data</title>
    <link href="https://marisstella.app/writing/a-burst-is-not-two-steps/"/>
    <id>https://marisstella.app/writing/a-burst-is-not-two-steps/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>changepoint-detector now flags when two count changes are one temporary burst. On the classic great-discoveries series it declines, rightly.</summary>
  </entry>
  <entry>
    <title>A coordinated attack breaks a median aggregator at half the coalition size</title>
    <link href="https://marisstella.app/writing/a-coordinated-attack-breaks-a-median-at-half-the-workers/"/>
    <id>https://marisstella.app/writing/a-coordinated-attack-breaks-a-median-at-half-the-workers/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>In a numpy model of 16 workers, a median stops protecting training at about 4 coordinated attackers, where independent flips needed 8. Training test pending.</summary>
  </entry>
  <entry>
    <title>A dead man&#39;s condition and a licence for automated cars: a 2046 story</title>
    <link href="https://marisstella.app/writing/a-dead-mans-condition-and-a-licence-for-automated-cars/"/>
    <id>https://marisstella.app/writing/a-dead-mans-condition-and-a-licence-for-automated-cars/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The Condition in the Trust (Hearth &amp; Horizon): a 2026 bequest pays out on a driver&#39;s licence, and by 2046 the state sells one that never asks you to look.</summary>
  </entry>
  <entry>
    <title>A five-year burst is not two level shifts: three ways to read the great-discoveries counts</title>
    <link href="https://marisstella.app/writing/a-five-year-burst-is-not-two-level-shifts/"/>
    <id>https://marisstella.app/writing/a-five-year-burst-is-not-two-level-shifts/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Real yearly counts of great inventions, 1860-1959, run through the changepoint-detector&#39;s count options. Two decline the burst, one half-fixes it.</summary>
  </entry>
  <entry>
    <title>A generic word in a bank line should not part-pay your invoice</title>
    <link href="https://marisstella.app/writing/a-generic-word-should-not-pay-an-invoice/"/>
    <id>https://marisstella.app/writing/a-generic-word-should-not-pay-an-invoice/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper matched unrelated bank lines to an open invoice because they shared one common word with the customer&#39;s name. Now two words are needed.</summary>
  </entry>
  <entry>
    <title>A magnitude check caught every harmful silent bit flip in a tiny training run</title>
    <link href="https://marisstella.app/writing/a-magnitude-check-catches-every-harmful-bit-flip/"/>
    <id>https://marisstella.app/writing/a-magnitude-check-catches-every-harmful-bit-flip/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In 360 injected single-bit weight flips across fp32, bf16 and fp16, rejecting any weight above 10x the last checkpoint&#39;s maximum caught 42 of 42 harmful flips.</summary>
  </entry>
  <entry>
    <title>A median survives 6 of 16 sabotaging workers, and diverges at 8</title>
    <link href="https://marisstella.app/writing/a-median-survives-six-of-sixteen-bad-workers-and-not-eight/"/>
    <id>https://marisstella.app/writing/a-median-survives-six-of-sixteen-bad-workers-and-not-eight/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Real training with k of 16 workers flipping their updates: the median costs 0.014 nats at k=2, 0.14 at k=6, and diverges at k=8.</summary>
  </entry>
  <entry>
    <title>A mistyped sales-tax discount no longer prints NaN</title>
    <link href="https://marisstella.app/writing/a-mistyped-sales-tax-discount-no-longer-prints-nan/"/>
    <id>https://marisstella.app/writing/a-mistyped-sales-tax-discount-no-longer-prints-nan/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s salestax return now refuses a malformed --discount instead of printing NaN payable amounts.</summary>
  </entry>
  <entry>
    <title>A proof that only half applied to our chip-search pilot</title>
    <link href="https://marisstella.app/writing/a-proof-that-only-half-applied-to-our-chip-search-pilot/"/>
    <id>https://marisstella.app/writing/a-proof-that-only-half-applied-to-our-chip-search-pilot/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A pilot-sampling guarantee in our chip-flow search research was proved for independent pairs but used on disjoint ones. We tested whether it still holds.</summary>
  </entry>
  <entry>
    <title>A push hook that stops broken blog posts reaching main</title>
    <link href="https://marisstella.app/writing/a-push-hook-for-blog-post-front-matter/"/>
    <id>https://marisstella.app/writing/a-push-hook-for-blog-post-front-matter/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Three posts with missing tags or an over-long description turned main red in three days. A hook now checks them before git push.</summary>
  </entry>
  <entry>
    <title>A real 2026 invoice PDF our e-invoice checker could not open, and the one-line cause</title>
    <link href="https://marisstella.app/writing/a-real-invoice-pdf-our-checker-could-not-open/"/>
    <id>https://marisstella.app/writing/a-real-invoice-pdf-our-checker-could-not-open/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Mustang&#39;s test PDFs include an Aspose.Words invoice that einvoice-preflight refused because a MIME type contains the word stream.</summary>
  </entry>
  <entry>
    <title>A real LLM coder barely shrinks a rare-category audit</title>
    <link href="https://marisstella.app/writing/a-real-llm-coder-barely-shrinks-a-rare-category-audit/"/>
    <id>https://marisstella.app/writing/a-real-llm-coder-barely-shrinks-a-rare-category-audit/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Qwen2.5-1.5B coded 6,683 GoEmotions comments for fear and sadness. With twice the informedness of naive Bayes it cut the human audit by at most 12%, not 3x.</summary>
  </entry>
  <entry>
    <title>A sales tax discount cap per month, not per return: Illinois at $1,000</title>
    <link href="https://marisstella.app/writing/a-sales-tax-discount-cap-that-scales-with-the-filing-period/"/>
    <id>https://marisstella.app/writing/a-sales-tax-discount-cap-that-scales-with-the-filing-period/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax return worksheet takes a per-month cap on the timely-filing discount, so quarterly or annual returns cap at 3 or 12 months&#39; worth.</summary>
  </entry>
  <entry>
    <title>A sales tax worksheet should refuse a bad due day, not print NaN</title>
    <link href="https://marisstella.app/writing/a-sales-tax-worksheet-that-stops-printing-nan-dates/"/>
    <id>https://marisstella.app/writing/a-sales-tax-worksheet-that-stops-printing-nan-dates/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s salestax return accepted --due-day abc and --rate with a non-number; both now stop with a message.</summary>
  </entry>
  <entry>
    <title>A scale model feels the same gust load but pitches 30% harder</title>
    <link href="https://marisstella.app/writing/a-scale-model-feels-the-same-gust-but-pitches-harder/"/>
    <id>https://marisstella.app/writing/a-scale-model-feels-the-same-gust-but-pitches-harder/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a four-state model, a 1:5 Froude-scaled cargo aircraft matches full-size gust load factor within 2% but its peak pitch rate is 27 to 33% high.</summary>
  </entry>
  <entry>
    <title>A solar survey boat should speed up when its battery is full</title>
    <link href="https://marisstella.app/writing/a-solar-survey-boat-should-speed-up-when-full/"/>
    <id>https://marisstella.app/writing/a-solar-survey-boat-should-speed-up-when-full/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Ten years of daily sunshine at five ocean sites: slowing a 5 m solar boat when low never helps, but surging when the pack is full adds 11 to 32% distance.</summary>
  </entry>
  <entry>
    <title>Why a changepoint detector found 16 changes in a company&#39;s growing earnings</title>
    <link href="https://marisstella.app/writing/a-staircase-from-a-growth-curve/"/>
    <id>https://marisstella.app/writing/a-staircase-from-a-growth-curve/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Johnson &amp; Johnson&#39;s quarterly earnings, fed raw to a changepoint detector, come out as 12 to 16 steps. Logging the series first leaves 2 to 5.</summary>
  </entry>
  <entry>
    <title>A sub-scale drone tail that only works if the airfoil surrogate is right</title>
    <link href="https://marisstella.app/writing/a-sub-scale-tail-that-only-works-if-the-surrogate-is-right/"/>
    <id>https://marisstella.app/writing/a-sub-scale-tail-that-only-works-if-the-surrogate-is-right/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>None of 78 tail designs that restore a 1:5 cargo UAV&#39;s flight modes stays within 5% if the real tail lift slope is 25% below the surrogate&#39;s.</summary>
  </entry>
  <entry>
    <title>A sub-scale cargo plane whose tail fixes its flight modes also fixes its gust response</title>
    <link href="https://marisstella.app/writing/a-tail-that-fixes-the-modes-fixes-the-gust-response-too/"/>
    <id>https://marisstella.app/writing/a-tail-that-fixes-the-modes-fixes-the-gust-response-too/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a Froude-scaled 1:5 cargo UAV model, 24 of 78 mode-matched tails also match full-size gust response within 5%; the similar model is 27-33% off in pitch rate.</summary>
  </entry>
  <entry>
    <title>A valid sequential audit that uses the coder costs more than one that ignores it</title>
    <link href="https://marisstella.app/writing/a-valid-sequential-audit-with-a-coder-costs-more-than-no-coder/"/>
    <id>https://marisstella.app/writing/a-valid-sequential-audit-with-a-coder-costs-more-than-no-coder/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A betting confidence sequence makes a coder-assisted rare-category audit valid (99-100% coverage) but needs 3 to 14 times the oracle sample.</summary>
  </entry>
  <entry>
    <title>A weight bound catches bit flips, but not a cheater</title>
    <link href="https://marisstella.app/writing/a-weight-bound-catches-bit-flips-but-not-a-cheater/"/>
    <id>https://marisstella.app/writing/a-weight-bound-catches-bit-flips-but-not-a-cheater/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A weight bound scaled by the init caught 15 of 15 harmful bit flips in a small transformer, but a value planted under it still harmed up to 60% of jobs.</summary>
  </entry>
  <entry>
    <title>A Wilson interval for LLM-coded audits of rare emotions</title>
    <link href="https://marisstella.app/writing/a-wilson-interval-for-llm-coded-audits-of-rare-emotions/"/>
    <id>https://marisstella.app/writing/a-wilson-interval-for-llm-coded-audits-of-rare-emotions/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On GoEmotions fear and sadness, a pooled PPI estimate with a Wilson interval on its effective sample size covers 92 to 97% at audits of 400 to 1,000 labels.</summary>
  </entry>
  <entry>
    <title>A 1:5 cargo-drone model can match full-size power and flight modes, if you redesign the tail and place the CG to 6 mm</title>
    <link href="https://marisstella.app/writing/aerolog-scaling-paper-draft/"/>
    <id>https://marisstella.app/writing/aerolog-scaling-paper-draft/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>First aerolog-scaling paper draft: sections cannot fix a Froude model&#39;s drag, but a non-similar wing and tail can, with a tight build tolerance.</summary>
  </entry>
  <entry>
    <title>Turning 65 lowers your estimated tax: the senior deduction in a $100,000 example</title>
    <link href="https://marisstella.app/writing/age-65-senior-deduction-in-the-estimate/"/>
    <id>https://marisstella.app/writing/age-65-senior-deduction-in-the-estimate/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A single sole proprietor aged 65 with $100,000 profit sees estimated 2026 federal tax fall from $22,364.55 to $21,137.14 with the senior deductions.</summary>
  </entry>
  <entry>
    <title>Agents can now ask ai-bookkeeper for cash-basis profit in the same call</title>
    <link href="https://marisstella.app/writing/agents-can-now-ask-ai-bookkeeper-for-cash-basis-profit/"/>
    <id>https://marisstella.app/writing/agents-can-now-ask-ai-bookkeeper-for-cash-basis-profit/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s agent engine returns cash-basis profit beside accrual profit whenever invoices or bills are supplied, matching the CLI and the page.</summary>
  </entry>
  <entry>
    <title>Ambrose and the bees: a new Saints by Candlelight episode, and what is history in it</title>
    <link href="https://marisstella.app/writing/ambrose-and-the-bees-in-the-cradle/"/>
    <id>https://marisstella.app/writing/ambrose-and-the-bees-in-the-cradle/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 46 tells the life of Saint Ambrose of Milan for bedtime, and sorts the documented from the legend in it.</summary>
  </entry>
  <entry>
    <title>An 8 kg Froude model of a cargo UAV needs its centre of gravity within 6 mm</title>
    <link href="https://marisstella.app/writing/an-8-kg-froude-model-of-a-cargo-uav-needs-its-cg-within-6-mm/"/>
    <id>https://marisstella.app/writing/an-8-kg-froude-model-of-a-cargo-uav-needs-its-cg-within-6-mm/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A 1:5 model of a 1,000 kg cargo aircraft matches full-size flight modes within 5% only if its CG is placed within +/-6 mm (aerolog-scaling, 7h).</summary>
  </entry>
  <entry>
    <title>Auto-notified mail is not a prospect&#39;s reply</title>
    <link href="https://marisstella.app/writing/auto-notified-mail-is-not-a-reply/"/>
    <id>https://marisstella.app/writing/auto-notified-mail-is-not-a-reply/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>sales-agent&#39;s self-host reader now treats Auto-Submitted: auto-notified as machine-sent, like auto-replied, so it is not read as a person&#39;s answer.</summary>
  </entry>
  <entry>
    <title>What a keyword list misses: 39 of 72 small-business bank lines, before and after</title>
    <link href="https://marisstella.app/writing/bookkeeper-keywords-contractors-nonprofits-caterers/"/>
    <id>https://marisstella.app/writing/bookkeeper-keywords-contractors-nonprofits-caterers/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s built-in keywords filed 33 of 72 new descriptors from contractors, consultants, nonprofits and caterers, with none wrong and 39 left for review.</summary>
  </entry>
  <entry>
    <title>Auto-categorizing bank lines for trucking, salons, clinics and realtors: 11 of 93 to 92 of 93</title>
    <link href="https://marisstella.app/writing/bookkeeping-keywords-for-trucking-salons-and-clinics/"/>
    <id>https://marisstella.app/writing/bookkeeping-keywords-for-trucking-salons-and-clinics/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper filed 11 of 93 small-business bank descriptors right before a trade probe and 92 of 92 after new rules, on a probe tuned on itself.</summary>
  </entry>
  <entry>
    <title>Can a solar survey boat hold 1 m/s all year? NASA POWER data at five sites</title>
    <link href="https://marisstella.app/writing/can-a-solar-survey-boat-run-all-year/"/>
    <id>https://marisstella.app/writing/can-a-solar-survey-boat-run-all-year/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A 5 m, 200 kg monohull on deck solar sustains survey speed in all 12 months near the equator but only 5 months at 60 N; annual-mean insolation hides winter.</summary>
  </entry>
  <entry>
    <title>Cash-basis profit from invoices and bills: $1,000 invoiced, $800 booked, $1,000 taxed</title>
    <link href="https://marisstella.app/writing/cash-basis-profit-from-invoices-and-bills/"/>
    <id>https://marisstella.app/writing/cash-basis-profit-from-invoices-and-bills/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper can now show profit on the cash method from books that track invoices and bills, with the timing difference to accrual.</summary>
  </entry>
  <entry>
    <title>Cash-basis profit now shows on the AI Bookkeeper page</title>
    <link href="https://marisstella.app/writing/cash-basis-profit-on-the-page/"/>
    <id>https://marisstella.app/writing/cash-basis-profit-on-the-page/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s Reports card now shows profit on the cash method beside accrual, with the timing difference, when the books carry invoices or bills.</summary>
  </entry>
  <entry>
    <title>Checking a play-off race calculator against every possible outcome</title>
    <link href="https://marisstella.app/writing/checking-a-playoff-race-against-every-outcome/"/>
    <id>https://marisstella.app/writing/checking-a-playoff-race-against-every-outcome/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The league schedule generator says who has clinched or is out. A brute-force check over 900 random part-played leagues found no disagreement.</summary>
  </entry>
  <entry>
    <title>Checking the Schedule AI factors when the IRS site is out of reach</title>
    <link href="https://marisstella.app/writing/checking-schedule-ai-factors-without-the-form/"/>
    <id>https://marisstella.app/writing/checking-schedule-ai-factors-without-the-form/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s annualized-income worksheet uses factors 4, 2.4, 1.5 and 1. They are 12 divided by the months elapsed, and a test now says so.</summary>
  </entry>
  <entry>
    <title>Two children take $4,400 off a married sole proprietor&#39;s estimated tax</title>
    <link href="https://marisstella.app/writing/children-lower-your-estimated-tax/"/>
    <id>https://marisstella.app/writing/children-lower-your-estimated-tax/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s federal estimate now takes the child tax credit: $4,400 off a $100,000-profit joint return with two children, and a refundable part at $20,000.</summary>
  </entry>
  <entry>
    <title>The Choose File button on 298 tool pages now matches the form around it</title>
    <link href="https://marisstella.app/writing/choose-file-button-matches-the-form/"/>
    <id>https://marisstella.app/writing/choose-file-button-matches-the-form/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On a phone, the AI Bookkeeper import form showed a grey native file button between styled fields. One shared stylesheet rule now fixes every page that has one.</summary>
  </entry>
  <entry>
    <title>Cleopas and the road to Emmaus: a bedtime story from Luke</title>
    <link href="https://marisstella.app/writing/cleopas-and-the-road-to-emmaus-bedtime-story/"/>
    <id>https://marisstella.app/writing/cleopas-and-the-road-to-emmaus-bedtime-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 51 of Saints by Candlelight tells Luke 24 for bedtime: two sad friends, a stranger who asks what they are talking about, and bread at dusk.</summary>
  </entry>
  <entry>
    <title>How many coordinated attackers can a median aggregator absorb? Seven of sixteen, at a price</title>
    <link href="https://marisstella.app/writing/coordinated-attackers-vs-the-median/"/>
    <id>https://marisstella.app/writing/coordinated-attackers-vs-the-median/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In simulated 16-worker low-communication training, a median aggregator keeps training with 4 to 7 colluding attackers, at +0.23 to +0.77 nats.</summary>
  </entry>
  <entry>
    <title>Counting siding course by course instead of by square foot</title>
    <link href="https://marisstella.app/writing/counting-siding-course-by-course/"/>
    <id>https://marisstella.app/writing/counting-siding-course-by-course/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts lap siding, house wrap and corner boards from walls and openings: a window cuts a course, the run splits, offcuts carry on.</summary>
  </entry>
  <entry>
    <title>Cyril and Methodius: a bedtime story about writing a language down</title>
    <link href="https://marisstella.app/writing/cyril-and-methodius-bedtime-story/"/>
    <id>https://marisstella.app/writing/cyril-and-methodius-bedtime-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 52 of Saints by Candlelight tells how two brothers from Thessalonica gave the Slavs an alphabet and the liturgy in their own tongue.</summary>
  </entry>
  <entry>
    <title>Washington DC&#39;s annual sales tax return is due October 20, not January</title>
    <link href="https://marisstella.app/writing/dc-annual-sales-tax-return-due-october-20/"/>
    <id>https://marisstella.app/writing/dc-annual-sales-tax-return-due-october-20/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s sales tax worksheet now treats a DC annual filer&#39;s year as ending September 30, due October 20, instead of a calendar year.</summary>
  </entry>
  <entry>
    <title>Deck solar makes a 5 m survey boat self-sustaining at 1 m/s; a 4 m boat only doubles its range</title>
    <link href="https://marisstella.app/writing/deck-solar-makes-a-5-m-survey-boat-self-sustaining-a-4-m-boat-only-doubles-range/"/>
    <id>https://marisstella.app/writing/deck-solar-makes-a-5-m-survey-boat-self-sustaining-a-4-m-boat-only-doubles-range/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a 4,374-case sweep of a 200 kg survey boat, deck solar covers the load at 1 m/s in 25% of cases: 0% at 3 m, 20% at 4 m, 56% at 5 m hull length.</summary>
  </entry>
  <entry>
    <title>Does a common broadcast homogenise a society&#39;s culture, or fragment it?</title>
    <link href="https://marisstella.app/writing/does-a-common-broadcast-homogenise-culture-or-fragment-it/"/>
    <id>https://marisstella.app/writing/does-a-common-broadcast-homogenise-culture-or-fragment-it/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In Axelrod&#39;s culture model, a voice everyone hears splits a one-culture society into dozens of regions, because people far from it never listen.</summary>
  </entry>
  <entry>
    <title>Does a solar survey boat survive a dull week? Ten years of daily sunshine say mostly</title>
    <link href="https://marisstella.app/writing/does-a-solar-boat-survive-a-dull-week/"/>
    <id>https://marisstella.app/writing/does-a-solar-boat-survive-a-dull-week/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Daily NASA POWER insolation, 2015 to 2024, tests if a 4 m or 5 m deck-solar boat holding 1 m/s stays alive on a 10 kWh pack. A 25 N January says not always.</summary>
  </entry>
  <entry>
    <title>Does hiding a small boat&#39;s hulls underwater save energy? A SWATH model says no</title>
    <link href="https://marisstella.app/writing/does-a-swath-boat-beat-a-monohull-on-energy/"/>
    <id>https://marisstella.app/writing/does-a-swath-boat-beat-a-monohull-on-energy/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A Michell thin-ship model of a 200 kg survey boat with two submerged torpedo hulls on struts never out-ranges a plain 4 m monohull in 4,374 swept cases.</summary>
  </entry>
  <entry>
    <title>Does storing weights in fp16 make a silent bit flip safer? About as harmful as fp32</title>
    <link href="https://marisstella.app/writing/does-fp16-make-silent-bit-flips-in-weights-safer/"/>
    <id>https://marisstella.app/writing/does-fp16-make-silent-bit-flips-in-weights-safer/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Flipping one bit of one stored weight in a tiny transformer: fp16 never gave inf/NaN, yet 23% of high-exponent flips harmed it, like fp32 (25%) and bf16 (22%).</summary>
  </entry>
  <entry>
    <title>Does panel weight cancel the gain from solar on a 4 m survey boat?</title>
    <link href="https://marisstella.app/writing/does-solar-panel-weight-ruin-a-small-survey-boats-solar-gain/"/>
    <id>https://marisstella.app/writing/does-solar-panel-weight-ruin-a-small-survey-boats-solar-gain/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Charging panel mass to a 200 kg survey boat&#39;s battery cuts the median solar range multiplier from 2.01 to 1.64 at worst; the full deck is still the best array.</summary>
  </entry>
  <entry>
    <title>Does the &#39;burst or two steps?&#39; note work? 100 simulated series per case</title>
    <link href="https://marisstella.app/writing/does-the-burst-or-two-steps-note-work/"/>
    <id>https://marisstella.app/writing/does-the-burst-or-two-steps-note-work/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On simulated Poisson counts the note names 84 to 97% of true bursts and wrongly calls 1 in 100 lasting steps a burst.</summary>
  </entry>
  <entry>
    <title>Does the excavator hydraulic circuit ranking depend on one hand-written cycle? Not the headline, but one hypothesis failed</title>
    <link href="https://marisstella.app/writing/does-the-excavator-circuit-ranking-depend-on-one-cycle/"/>
    <id>https://marisstella.app/writing/does-the-excavator-circuit-ranking-depend-on-one-cycle/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>20,000 random excavator cycles: load-sensing uses a median 44% of open-centre pump energy; metering saves under 15% at zero spread in only two thirds.</summary>
  </entry>
  <entry>
    <title>Earned income credit in a free self-employed tax estimate, with no guessed numbers</title>
    <link href="https://marisstella.app/writing/earned-income-credit-in-the-estimate/"/>
    <id>https://marisstella.app/writing/earned-income-credit-in-the-estimate/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s federal estimate now takes an earned income credit schedule from a file and refunds it, instead of shipping figures nobody checked.</summary>
  </entry>
  <entry>
    <title>Eight to a Well: a story about pooled testing and what a clear pool means</title>
    <link href="https://marisstella.app/writing/eight-to-a-well-a-story-about-pooled-testing/"/>
    <id>https://marisstella.app/writing/eight-to-a-well-a-story-about-pooled-testing/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story in which 200 test wells screen 483 schoolchildren by pooling urine eight to a well, with the numbers worked out and checkable.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Vietnam, with a tax code check anchored on a published example</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-vietnam/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-vietnam/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Vietnam e-invoicing page with a local tax-code check, and what the sources do and do not settle.</summary>
  </entry>
  <entry>
    <title>Elisha and the chariots of fire: a bedtime story from Second Kings</title>
    <link href="https://marisstella.app/writing/elisha-and-the-chariots-of-fire-a-bedtime-story-from-second-kings/"/>
    <id>https://marisstella.app/writing/elisha-and-the-chariots-of-fire-a-bedtime-story-from-second-kings/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 48 of Saints by Candlelight tells 2 Kings 6 for bedtime: a borrowed axe head, an army in the night, and a war that ends with a dinner.</summary>
  </entry>
  <entry>
    <title>Your estimated tax payment isn&#39;t always due on the 15th: Emancipation Day and MLK Day</title>
    <link href="https://marisstella.app/writing/estimated-tax-due-dates-holidays/"/>
    <id>https://marisstella.app/writing/estimated-tax-due-dates-holidays/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Q1 estimated tax was due April 18 in 2022 and 2023, and the January payment January 17, 2023. ai-bookkeeper&#39;s due dates now skip DC holidays, not only weekends.</summary>
  </entry>
  <entry>
    <title>We checked every link in our llms.txt files: none are dead</title>
    <link href="https://marisstella.app/writing/every-link-in-our-llms-txt-files-resolves/"/>
    <id>https://marisstella.app/writing/every-link-in-our-llms-txt-files-resolves/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new check resolves each link in the 16 venture llms.txt files against the repository tree. It found 0 dead links, and it now runs as a test.</summary>
  </entry>
  <entry>
    <title>Finding tax calculators that are still on last year&#39;s numbers</title>
    <link href="https://marisstella.app/writing/finding-tax-calculators-still-on-last-years-numbers/"/>
    <id>https://marisstella.app/writing/finding-tax-calculators-still-on-last-years-numbers/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A small script lists which of 1,330 tool pages cite an IRS or HMRC figure but never mention 2026. Eleven came up, and one admits it is on 2025 limits.</summary>
  </entry>
  <entry>
    <title>Five percent for looking good: a time-boxed track for design, SEO and AEO</title>
    <link href="https://marisstella.app/writing/five-percent-for-looking-good/"/>
    <id>https://marisstella.app/writing/five-percent-for-looking-good/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The fleet now sends about 1 run in 20 to making the sites more impressive and easier to find, until a date the router enforces.</summary>
  </entry>
  <entry>
    <title>Five states where a sales tax worksheet should say &#39;there is no return&#39;</title>
    <link href="https://marisstella.app/writing/five-states-with-no-sales-tax-return-to-build/"/>
    <id>https://marisstella.app/writing/five-states-with-no-sales-tax-return-to-build/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s sales tax return worksheet knew 46 states&#39; due dates and was silent on Oregon, Montana, New Hampshire, Delaware and Alaska. Now it says why.</summary>
  </entry>
  <entry>
    <title>Florida&#39;s sales tax collection allowance is 2.5% of the first $1,200, and a worksheet can model it</title>
    <link href="https://marisstella.app/writing/florida-sales-tax-collection-allowance-in-a-bookkeeping-worksheet/"/>
    <id>https://marisstella.app/writing/florida-sales-tax-collection-allowance-in-a-bookkeeping-worksheet/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Florida lets dealers keep 2.5% of the first $1,200 of sales tax, capped at $30 a return, for filing and paying on time. ai-bookkeeper models it as one flag.</summary>
  </entry>
  <entry>
    <title>Forty-Eight Degrees: a story about the cheapest hot-water setting</title>
    <link href="https://marisstella.app/writing/forty-eight-degrees-a-hot-water-story/"/>
    <id>https://marisstella.app/writing/forty-eight-degrees-a-hot-water-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a hospice heat pump set to 48 C saves 630 euro a year and sits in Legionella&#39;s comfortable range.</summary>
  </entry>
  <entry>
    <title>France&#39;s e-invoicing mandate has started: what changed on 1 September 2026</title>
    <link href="https://marisstella.app/writing/france-e-invoicing-started-hub-was-stale/"/>
    <id>https://marisstella.app/writing/france-e-invoicing-started-hub-was-stale/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Since 1 September 2026 every French business must receive e-invoices and large and mid-size firms must issue them; small businesses follow on 1 September 2027.</summary>
  </entry>
  <entry>
    <title>What the earned income credit is worth to a freelancer at each profit level, 2026</title>
    <link href="https://marisstella.app/writing/freelancer-earned-income-credit-by-profit-2026/"/>
    <id>https://marisstella.app/writing/freelancer-earned-income-credit-by-profit-2026/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A single filer with one child and $15,000 of Schedule C profit gets about $4,427 back; at $50,000 it is $819. Figures from ai-bookkeeper&#39;s 2026 schedule.</summary>
  </entry>
  <entry>
    <title>Freight is part of what your stock cost, and your margin is wrong without it</title>
    <link href="https://marisstella.app/writing/freight-is-part-of-what-your-stock-cost/"/>
    <id>https://marisstella.app/writing/freight-is-part-of-what-your-stock-cost/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A worked example: $400 of stock, $40 of freight, 4 of 10 mugs already sold. Where the freight goes, and how ai-bookkeeper now spreads it.</summary>
  </entry>
  <entry>
    <title>Georgia&#39;s sales tax discount is two rates, not one</title>
    <link href="https://marisstella.app/writing/georgia-vendors-compensation-is-two-rates-not-one/"/>
    <id>https://marisstella.app/writing/georgia-vendors-compensation-is-two-rates-not-one/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax return now models Georgia&#39;s vendor&#39;s compensation: 3% of the first $3,000 of tax on a return, 0.5% of the rest.</summary>
  </entry>
  <entry>
    <title>Guarding the open edge of a stair landing</title>
    <link href="https://marisstella.app/writing/guarding-the-open-edge-of-a-stair-landing/"/>
    <id>https://marisstella.app/writing/guarding-the-open-edge-of-a-stair-landing/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Open landing edges on a stair now get posts, balusters under a 4 in gap and rails in the wall-framing takeoff order.</summary>
  </entry>
  <entry>
    <title>Gutters and downspouts join the framing takeoff page</title>
    <link href="https://marisstella.app/writing/gutters-and-downspouts-now-on-the-framing-takeoff-page/"/>
    <id>https://marisstella.app/writing/gutters-and-downspouts-now-on-the-framing-takeoff-page/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff page can now count gutter sections, downspouts, hangers, caps and elbows from the roof&#39;s eaves, and price them into the budget.</summary>
  </entry>
  <entry>
    <title>Hawaii semiannual GET returns: July 20 and January 20, now tested</title>
    <link href="https://marisstella.app/writing/hawaii-semiannual-get-return-dates/"/>
    <id>https://marisstella.app/writing/hawaii-semiannual-get-return-dates/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s sales tax worksheet gives Hawaii semiannual filers Jul 20 and Jan 20 due dates, now pinned by a test.</summary>
  </entry>
  <entry>
    <title>How many balusters does a 9-foot stair guard need? 21 per side, with a 3-11/16 in gap</title>
    <link href="https://marisstella.app/writing/how-many-balusters-a-stair-guard-needs/"/>
    <id>https://marisstella.app/writing/how-many-balusters-a-stair-guard-needs/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A worked guard and handrail layout for a 14-riser stair: posts, balusters under the 4 in sphere rule, rails and handrail length.</summary>
  </entry>
  <entry>
    <title>How many gutter sections and downspouts does a 40 by 24 ft house need?</title>
    <link href="https://marisstella.app/writing/how-many-gutter-sections-and-downspouts-for-a-house/"/>
    <id>https://marisstella.app/writing/how-many-gutter-sections-and-downspouts-for-a-house/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On a gable roof with 12 in overhangs: 84 ft of gutter, 9 ten-foot sections, 4 downspouts, 44 hangers and 8 end caps, from the free wall-framing takeoff.</summary>
  </entry>
  <entry>
    <title>How many of 16 training workers can turn hostile before a median aggregate breaks?</title>
    <link href="https://marisstella.app/writing/how-many-of-16-workers-can-a-median-lose/"/>
    <id>https://marisstella.app/writing/how-many-of-16-workers-can-a-median-lose/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a small GPT trained with 16 simulated workers, a median survives 7 sign-flipping workers at a cost of 0.29 nats and diverges at 8.</summary>
  </entry>
  <entry>
    <title>How many pails of joint compound does a house need? Checking a rule of thumb against the label</title>
    <link href="https://marisstella.app/writing/how-many-pails-of-joint-compound-for-a-house/"/>
    <id>https://marisstella.app/writing/how-many-pails-of-joint-compound-for-a-house/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff&#39;s 0.01 gal per sq ft joint compound rate matches the 450 sq ft per 4.5 gal pail on Sheetrock listings; ultralightweight uses ~10% less.</summary>
  </entry>
  <entry>
    <title>How many risers, and how long must the stairwell be? A 9 ft floor-to-floor example</title>
    <link href="https://marisstella.app/writing/how-many-risers-and-how-long-a-stairwell/"/>
    <id>https://marisstella.app/writing/how-many-risers-and-how-long-a-stairwell/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 108 in rise needs 14 risers of 7-11/16 in, 13 treads, four 2x12 stringers 14 ft 11-15/16 in long and a stairwell at least 9 ft 11-5/8 in long.</summary>
  </entry>
  <entry>
    <title>How often does one silent bit flip ruin a training run? About 3% to 4% of flips, at every model size we tried</title>
    <link href="https://marisstella.app/writing/how-often-does-a-silent-bit-flip-ruin-a-training-run/"/>
    <id>https://marisstella.app/writing/how-often-does-a-silent-bit-flip-ruin-a-training-run/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Flipping one random bit of one weight in a small transformer changes the final loss by over 0.01 in about 3% to 4% of cases, from 10,000 to 425,000 parameters.</summary>
  </entry>
  <entry>
    <title>How tight can a winder staircase turn before it fails code?</title>
    <link href="https://marisstella.app/writing/how-wide-must-a-winder-stair-turn-be/"/>
    <id>https://marisstella.app/writing/how-wide-must-a-winder-stair-turn-be/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Three wedge treads round a zero-size pivot always fail the code&#39;s 6 inch rule. The smallest passing pivot is 11.5 inches for three treads, 15.3 for four.</summary>
  </entry>
  <entry>
    <title>Iowa sales tax has two calendars, and the due-date tool now says so</title>
    <link href="https://marisstella.app/writing/iowa-sales-tax-has-two-calendars/"/>
    <id>https://marisstella.app/writing/iowa-sales-tax-has-two-calendars/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s sales tax return worksheet gave one Iowa due date. Large Iowa filers prepay twice a month instead, so it now warns.</summary>
  </entry>
  <entry>
    <title>Level the bids before you pick the low one: a framing-takeoff page card</title>
    <link href="https://marisstella.app/writing/level-the-bids-before-you-pick-the-low-one/"/>
    <id>https://marisstella.app/writing/level-the-bids-before-you-pick-the-low-one/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now lines subcontractor bids up against its own quantities in the browser, so a short count or left-out scope shows up before you sign.</summary>
  </entry>
  <entry>
    <title>When load-sensing hydraulics use more energy than open-centre: a 23 bar break-even</title>
    <link href="https://marisstella.app/writing/load-sensing-margin-excavator-breakeven/"/>
    <id>https://marisstella.app/writing/load-sensing-margin-excavator-breakeven/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>With a 25 bar load-sensing margin and a measured 6 bar open-centre block, load-sensing loses to open-centre in 61% of simulated excavator cycles.</summary>
  </entry>
  <entry>
    <title>Load-sensing saved 16% instead of 56% once the excavator model had realistic loads</title>
    <link href="https://marisstella.app/writing/load-sensing-saves-less-when-the-cycle-is-low-pressure/"/>
    <id>https://marisstella.app/writing/load-sensing-saves-less-when-the-cycle-is-low-pressure/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Tying pressures to a force model cut load-sensing&#39;s median saving over open-centre from 56% to 16% in heavy-hydraulics, and reversed it in 17% of cycles.</summary>
  </entry>
  <entry>
    <title>A --log flag for series that grow by a percentage</title>
    <link href="https://marisstella.app/writing/log-option-for-growing-series/"/>
    <id>https://marisstella.app/writing/log-option-for-growing-series/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector cut J&amp;J earnings into 12 steps. A new --log flag logs the series first, leaves 2 to 5 changes, and reports in original units.</summary>
  </entry>
  <entry>
    <title>Lumpy income no longer has to pay a quarter early: annualized installments in the browser</title>
    <link href="https://marisstella.app/writing/lumpy-income-estimated-tax-button/"/>
    <id>https://marisstella.app/writing/lumpy-income-estimated-tax-button/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s page now shows what the annualized method requires by each estimated-tax date, next to the regular quarters.</summary>
  </entry>
  <entry>
    <title>Luxembourg&#39;s B2B e-invoicing bill 8815: where it stands in late October 2026</title>
    <link href="https://marisstella.app/writing/luxembourg-b2b-e-invoicing-bill-8815-status/"/>
    <id>https://marisstella.app/writing/luxembourg-b2b-e-invoicing-bill-8815-status/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Bill 8815 would require domestic B2B e-invoices over Peppol from 2028. As of 30 September it was still at the deposit stage in committee.</summary>
  </entry>
  <entry>
    <title>Mary and Elizabeth in the hill country: a bedtime story from Luke</title>
    <link href="https://marisstella.app/writing/mary-and-elizabeth-bedtime-story/"/>
    <id>https://marisstella.app/writing/mary-and-elizabeth-bedtime-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 50 of Saints by Candlelight tells Luke 1:39-56 for bedtime: a hundred-mile walk, a greeting at a door, and a song made of older songs.</summary>
  </entry>
  <entry>
    <title>Means hide the worst design: median and tail regret for multi-fidelity chip-flow search</title>
    <link href="https://marisstella.app/writing/means-hide-the-worst-chip-design-in-multi-fidelity-search/"/>
    <id>https://marisstella.app/writing/means-hide-the-worst-chip-design-in-multi-fidelity-search/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Across 12 held-out chip designs, gentle halving stays under 5% regret from 15 budget units; a harsh cut has a better median but a worst design near 50%.</summary>
  </entry>
  <entry>
    <title>A measured pump curve cuts load-sensing&#39;s modelled excavator saving from 56% to 33%</title>
    <link href="https://marisstella.app/writing/measured-pump-curve-shrinks-load-sensing-saving/"/>
    <id>https://marisstella.app/writing/measured-pump-curve-shrinks-load-sensing-saving/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Replacing a constant open-centre pump flow with a published measured flow-pressure curve moves the load-sensing versus open-centre median from 0.44 to 0.67.</summary>
  </entry>
  <entry>
    <title>The median holds until half the workers attack, then diverges: a paper section from six experiments</title>
    <link href="https://marisstella.app/writing/median-breakdown-at-half-the-workers-first-paper-section/"/>
    <id>https://marisstella.app/writing/median-breakdown-at-half-the-workers-first-paper-section/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a 16-worker small-GPT DiLoCo run, the median degrades smoothly up to 7 attackers and diverges at 8, for independent and coordinated attacks.</summary>
  </entry>
  <entry>
    <title>Missouri sales tax: month end, not the 20th, and a 2% allowance for filing on time</title>
    <link href="https://marisstella.app/writing/missouri-sales-tax-due-dates/"/>
    <id>https://marisstella.app/writing/missouri-sales-tax-due-dates/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Missouri monthly sales tax returns are due the last day of the next month, annual January 31, with a 2% allowance for filing on time. Read from the state FAQ.</summary>
  </entry>
  <entry>
    <title>Naming the fields on a free e-invoice builder</title>
    <link href="https://marisstella.app/writing/naming-the-fields-on-a-free-e-invoice-builder/"/>
    <id>https://marisstella.app/writing/naming-the-fields-on-a-free-e-invoice-builder/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An accessibility sweep of ten flagship products found twelve unnamed form fields and one mislabelled button; here is what was wrong and what changed.</summary>
  </entry>
  <entry>
    <title>We tried a narrower drift warning in the changepoint detector, and kept the old one</title>
    <link href="https://marisstella.app/writing/narrower-drift-window-changepoint/"/>
    <id>https://marisstella.app/writing/narrower-drift-window-changepoint/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A shorter window cut false alarms on monthly data by 4 series in 200 but lost 71% of detections on packed steps, so the rule stayed at two cycles.</summary>
  </entry>
  <entry>
    <title>NeuralFoil against measured NACA 0009 lift slopes at Reynolds numbers of 40,000 to 100,000</title>
    <link href="https://marisstella.app/writing/neuralfoil-vs-measured-low-reynolds-lift-slope/"/>
    <id>https://marisstella.app/writing/neuralfoil-vs-measured-low-reynolds-lift-slope/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A surrogate used for a sub-scale cargo UAV tail is 28% low at Re 40,600 and 15 to 18% high near Re 100,000 against University of Illinois wind-tunnel data.</summary>
  </entry>
  <entry>
    <title>Nevada sales tax is now due the 20th, not month end</title>
    <link href="https://marisstella.app/writing/nevada-sales-tax-is-now-due-the-20th/"/>
    <id>https://marisstella.app/writing/nevada-sales-tax-is-now-due-the-20th/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Assembly Bill 594 moved Nevada sales and use tax returns to the 20th of the month after the period, from the January 2026 period. Old calendars say last day.</summary>
  </entry>
  <entry>
    <title>Checking that no placeholder host survives the Pages build</title>
    <link href="https://marisstella.app/writing/no-placeholder-host-survives-the-pages-build/"/>
    <id>https://marisstella.app/writing/no-placeholder-host-survives-the-pages-build/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Source pages use a reserved .invalid host as a stand-in base URL and the Pages build rewrites it. A new check scans the built site to prove it did.</summary>
  </entry>
  <entry>
    <title>One burst or two changes? Reading the 1884 discoveries spike</title>
    <link href="https://marisstella.app/writing/one-burst-or-two-changes/"/>
    <id>https://marisstella.app/writing/one-burst-or-two-changes/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Plain Poisson change detection cuts a five-year burst into a rise and a fall. A new --episodes flag labels it as one burst; we measured where that goes wrong.</summary>
  </entry>
  <entry>
    <title>How often does one flipped bit ruin a training run?</title>
    <link href="https://marisstella.app/writing/one-flipped-bit-in-training-rarely-matters/"/>
    <id>https://marisstella.app/writing/one-flipped-bit-in-training-rarely-matters/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>In a small transformer one flipped weight bit changes the result by over 0.01 in 4.5% of cases, mostly high exponent bits; that sets when replicas pay.</summary>
  </entry>
  <entry>
    <title>Paid on the due date keeps the sales tax discount; one day later the bookkeeper warns</title>
    <link href="https://marisstella.app/writing/paid-on-the-due-date-keeps-the-sales-tax-discount/"/>
    <id>https://marisstella.app/writing/paid-on-the-due-date-keeps-the-sales-tax-discount/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax return now pins the boundary: a payment on the due date keeps the timely-filing discount, the next day triggers a warning.</summary>
  </entry>
  <entry>
    <title>What happens when you import a PayPal export as a bank statement</title>
    <link href="https://marisstella.app/writing/pasting-a-paypal-export-into-the-wrong-box/"/>
    <id>https://marisstella.app/writing/pasting-a-paypal-export-into-the-wrong-box/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A PayPal activity sample imported as a bank file books only Net: sales shrink, fees vanish. ai-bookkeeper now warns and points to the payouts command.</summary>
  </entry>
  <entry>
    <title>Patrick and the Hundred Prayers: a bedtime story from his own letter</title>
    <link href="https://marisstella.app/writing/patrick-and-the-hundred-prayers/"/>
    <id>https://marisstella.app/writing/patrick-and-the-hundred-prayers/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Little Lamps bedtime story about Saint Patrick, built only from his own Confessio, with the shamrock and the snakes left out on purpose.</summary>
  </entry>
  <entry>
    <title>A per-tensor weight bound cuts the room a cheating trainer has from 28% to 3%</title>
    <link href="https://marisstella.app/writing/per-tensor-bound-silent-bit-flips/"/>
    <id>https://marisstella.app/writing/per-tensor-bound-silent-bit-flips/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a small verifiable-training experiment, bounding each tensor by its own initial maximum admits far fewer harmful planted weights than one global bound.</summary>
  </entry>
  <entry>
    <title>Philip Neri and the Happy Walk: a Little Lamps bedtime story</title>
    <link href="https://marisstella.app/writing/philip-neri-and-the-happy-walk-bedtime-story/"/>
    <id>https://marisstella.app/writing/philip-neri-and-the-happy-walk-bedtime-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Little Lamps story for ages 3 to 8: Saint Philip Neri, a game in the street, a short prayer and a picnic between seven churches.</summary>
  </entry>
  <entry>
    <title>Can a planing hull out-range a slow monohull on a survey mission? Not in 48 cases</title>
    <link href="https://marisstella.app/writing/planing-hull-vs-displacement-survey-boat-range/"/>
    <id>https://marisstella.app/writing/planing-hull-vs-displacement-survey-boat-range/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A Savitsky planing-hull model for a 200 kg autonomous boat reaches at most 14% of a 4 m displacement monohull&#39;s range at survey-style battery and hotel load.</summary>
  </entry>
  <entry>
    <title>Point Two: a story about a tighter hall and a heater it was hiding</title>
    <link href="https://marisstella.app/writing/point-two-a-carbon-monoxide-story/"/>
    <id>https://marisstella.app/writing/point-two-a-carbon-monoxide-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a draught-proofed parish hall, an alarm that stays silent at 41 ppm, and the sum that shows the heater.</summary>
  </entry>
  <entry>
    <title>One PPI weight for all strata: what it fixes in a rare-category audit, and what it does not</title>
    <link href="https://marisstella.app/writing/pooled-ppi-weight-rare-category-audit/"/>
    <id>https://marisstella.app/writing/pooled-ppi-weight-rare-category-audit/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>With a real LLM coder on GoEmotions rare categories, one pooled PPI weight removes the undercoverage per-stratum tuning added; a variance floor over-corrects.</summary>
  </entry>
  <entry>
    <title>Daily progress, 27 October: real files found what hand-written tests could not</title>
    <link href="https://marisstella.app/writing/progress-daily-real-files-beat-hand-written-tests/"/>
    <id>https://marisstella.app/writing/progress-daily-real-files-beat-hand-written-tests/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>224 merges on 27 October. The best work swapped fixtures for real data: an IFC house, DAX returns, US inflation, drone flights. The site deployed zero times.</summary>
  </entry>
  <entry>
    <title>The 20% QBI deduction shrinks above about $202,000: a $250,000 sole proprietor example</title>
    <link href="https://marisstella.app/writing/qbi-deduction-stops-at-the-threshold/"/>
    <id>https://marisstella.app/writing/qbi-deduction-stops-at-the-threshold/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper treated the QBI deduction as a ceiling above the income threshold. A $250,000 single sole proprietor owes about $2,614 more than it showed.</summary>
  </entry>
  <entry>
    <title>Rahab and the scarlet cord: a bedtime story from the book of Joshua</title>
    <link href="https://marisstella.app/writing/rahab-and-the-scarlet-cord-a-bedtime-story-from-joshua/"/>
    <id>https://marisstella.app/writing/rahab-and-the-scarlet-cord-a-bedtime-story-from-joshua/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 47 of Saints by Candlelight tells Joshua 2 to 6 for bedtime, and says out loud which parts are hard.</summary>
  </entry>
  <entry>
    <title>Estimating a 1% label from LLM codes: a valid sequential audit exists, and still costs more than labelling by hand</title>
    <link href="https://marisstella.app/writing/rare-category-audit-coder-still-dominated/"/>
    <id>https://marisstella.app/writing/rare-category-audit-coder-still-dominated/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On GoEmotions fear and sadness a stratified coder-assisted sequential audit covers 100% but needs 4,500 to 5,800 labels; pooled human-only needs 1,100 to 5,000.</summary>
  </entry>
  <entry>
    <title>What a real CAD door symbol did to our wall-framing import</title>
    <link href="https://marisstella.app/writing/reading-real-cad-door-symbols/"/>
    <id>https://marisstella.app/writing/reading-real-cad-door-symbols/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Four real CAD door symbols, put in a made-up house, showed our DXF reader counting one double door as several 4-inch doors. Here is the fix.</summary>
  </entry>
  <entry>
    <title>Reading window height and sill from a real IFC file</title>
    <link href="https://marisstella.app/writing/reading-window-sills-from-a-real-ifc-file/"/>
    <id>https://marisstella.app/writing/reading-window-sills-from-a-real-ifc-file/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff&#39;s IFC reader ignored opening heights. A real buildingSMART sample showed the cost: a 500 mm sill framed as 34.5 in.</summary>
  </entry>
  <entry>
    <title>Repairing a receipt date OCR half-read: 6 more right, 3 more wrong</title>
    <link href="https://marisstella.app/writing/receipt-dates-ocr-cannot-read/"/>
    <id>https://marisstella.app/writing/receipt-dates-ocr-cannot-read/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 611 real receipt scans, repairing one look-alike digit in a broken date raised date accuracy from 79.2% to 80.2%, and a third of the repairs were wrong.</summary>
  </entry>
  <entry>
    <title>Red team on the posts-per-day script: 8 of 8 seeded bugs caught, 2 real ones found</title>
    <link href="https://marisstella.app/writing/red-team-post-rate-script/"/>
    <id>https://marisstella.app/writing/red-team-post-rate-script/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We seeded eight faults into platform/ci/post_rate.py; the tests caught all eight. Reading it by hand still found two real bugs.</summary>
  </entry>
  <entry>
    <title>We seeded 8 bugs in the estimated-tax code; one slipped through</title>
    <link href="https://marisstella.app/writing/red-team-the-hoh-qbi-threshold-had-no-test/"/>
    <id>https://marisstella.app/writing/red-team-the-hoh-qbi-threshold-had-no-test/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A mutation run on ai-bookkeeper&#39;s estimated-tax module caught 7 of 8 seeded faults. The miss was a $1 change to the 2026 head-of-household QBI threshold.</summary>
  </entry>
  <entry>
    <title>The claim check we built never reached the research prompt that runs</title>
    <link href="https://marisstella.app/writing/research-claim-check-reached-the-live-prompt/"/>
    <id>https://marisstella.app/writing/research-claim-check-reached-the-live-prompt/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Research runs kept drawing the same programme milestone within hours. The fix existed in prompt 1, but routing sends runs to prompt 0. Now both carry it.</summary>
  </entry>
  <entry>
    <title>910 research pages had titles longer than a search result</title>
    <link href="https://marisstella.app/writing/research-page-titles-were-whole-questions/"/>
    <id>https://marisstella.app/writing/research-page-titles-were-whole-questions/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Research project pages used a whole question as their title, up to 246 characters. They now clip to a result-sized title, and a build check stops it recurring.</summary>
  </entry>
  <entry>
    <title>Our research picker kept offering a milestone that had already shipped</title>
    <link href="https://marisstella.app/writing/research-picker-stale-milestone/"/>
    <id>https://marisstella.app/writing/research-picker-stale-milestone/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>pick_track.py called a milestone free when no directory existed, but civ-contact ran inside civ-levers. A done marker in PROJECTS.md now settles it.</summary>
  </entry>
  <entry>
    <title>A median of 16 workers survives 7 attackers and dies at 8</title>
    <link href="https://marisstella.app/writing/robust-aggregation-cliff-at-eight-of-sixteen/"/>
    <id>https://marisstella.app/writing/robust-aggregation-cliff-at-eight-of-sixteen/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a small DiLoCo language-model run, a coordinated attack degrades the median smoothly up to 7 of 16 workers, then training blows up at 8.</summary>
  </entry>
  <entry>
    <title>The Sales Agent&#39;s Docker image crashed on start; now it deploys in one click</title>
    <link href="https://marisstella.app/writing/sales-agent-docker-image-crashed-at-start/"/>
    <id>https://marisstella.app/writing/sales-agent-docker-image-crashed-at-start/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Adding a Render and Fly.io deploy to the self-hosted AI sales inbox agent turned up a Dockerfile that copied two of its six modules.</summary>
  </entry>
  <entry>
    <title>Sales Agent can now sign in to Gmail and Microsoft 365 without a password</title>
    <link href="https://marisstella.app/writing/sales-agent-reads-gmail-and-microsoft-mail-without-a-password/"/>
    <id>https://marisstella.app/writing/sales-agent-reads-gmail-and-microsoft-mail-without-a-password/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The self-hosted Sales Agent now logs in to Gmail and Microsoft 365 with OAuth (XOAUTH2) on your own app, no app password. Tested on fakes only.</summary>
  </entry>
  <entry>
    <title>A sales tax discount you pay late is a discount you may not get</title>
    <link href="https://marisstella.app/writing/sales-tax-discount-lost-if-you-pay-late/"/>
    <id>https://marisstella.app/writing/sales-tax-discount-lost-if-you-pay-late/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax worksheet now warns when a payment lands after the due date, since state timely-filing discounts usually depend on paying on time.</summary>
  </entry>
  <entry>
    <title>The sales tax return worksheet now runs in the browser, not just the command line</title>
    <link href="https://marisstella.app/writing/sales-tax-return-worksheet-now-in-the-browser/"/>
    <id>https://marisstella.app/writing/sales-tax-return-worksheet-now-in-the-browser/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s per-jurisdiction sales tax return worksheet, with due dates, rate checks and vendor discounts, is now a card on the page.</summary>
  </entry>
  <entry>
    <title>Titles that fit a search result: 59 pages stop losing their key words</title>
    <link href="https://marisstella.app/writing/search-result-titles-stop-losing-their-first-words/"/>
    <id>https://marisstella.app/writing/search-result-titles-stop-losing-their-first-words/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fixed site-name suffix pushed 59 comparison and audience page titles past what a results page shows. The build now drops it when it would.</summary>
  </entry>
  <entry>
    <title>Seasonal income and the quarterly estimate trap: what the annualized method asks for instead</title>
    <link href="https://marisstella.app/writing/seasonal-income-and-the-quarterly-estimate-trap/"/>
    <id>https://marisstella.app/writing/seasonal-income-and-the-quarterly-estimate-trap/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A freelancer who earns 4,000 by March and 100,000 by December owes 5,032.03 by April 15 under the regular safe harbour, but 508.66 under the annualized method.</summary>
  </entry>
  <entry>
    <title>Where to seed a behaviour that needs reinforcement: a patch beats scattered seeds</title>
    <link href="https://marisstella.app/writing/seeding-a-complex-contagion/"/>
    <id>https://marisstella.app/writing/seeding-a-complex-contagion/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On simulated small-world networks, a behaviour needing two adopting neighbours spreads from 2 to 3 adjacent seeds; random seeds need 12 to 20.</summary>
  </entry>
  <entry>
    <title>Seven result tables a screen reader could not read</title>
    <link href="https://marisstella.app/writing/seven-tables-a-screen-reader-could-not-read/"/>
    <id>https://marisstella.app/writing/seven-tables-a-screen-reader-could-not-read/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Seven venture pages showed label-and-value tables built from bare cells. They now name their rows and columns, and a CI check keeps it that way.</summary>
  </entry>
  <entry>
    <title>Shorter titles on the tool comparison pages</title>
    <link href="https://marisstella.app/writing/shorter-titles-on-comparison-pages/"/>
    <id>https://marisstella.app/writing/shorter-titles-on-comparison-pages/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The generated titles on our &#39;alternatives&#39; comparison pages ran past what a search results page shows; they now end after the count of tools.</summary>
  </entry>
  <entry>
    <title>Counting siding course by course, now in the browser</title>
    <link href="https://marisstella.app/writing/siding-takeoff-on-the-page/"/>
    <id>https://marisstella.app/writing/siding-takeoff-on-the-page/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff&#39;s siding, house wrap and corner board count now has a page card. On the example house: 56 courses, 154 boards at 7 in exposure.</summary>
  </entry>
  <entry>
    <title>Slowing down does not get a solar boat further, only keeps it alive</title>
    <link href="https://marisstella.app/writing/slowing-down-does-not-save-a-solar-boat/"/>
    <id>https://marisstella.app/writing/slowing-down-does-not-save-a-solar-boat/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Ten years of daily sunshine at five ocean sites: a threshold speed policy for a 200 kg solar survey boat never adds distance, but cuts dead-battery days.</summary>
  </entry>
  <entry>
    <title>Soffit, fascia and J-channel counted from the roof you already drew</title>
    <link href="https://marisstella.app/writing/soffit-fascia-and-j-channel-from-the-roof-you-already-drew/"/>
    <id>https://marisstella.app/writing/soffit-fascia-and-j-channel-from-the-roof-you-already-drew/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff&#39;s page now counts soffit, fascia and J-channel from the roof overhangs: a 40 x 28 ft gable sample needs 8 panels, 11 fascia boards.</summary>
  </entry>
  <entry>
    <title>Soffit, fascia and J-channel now count on the wall-framing page</title>
    <link href="https://marisstella.app/writing/soffit-fascia-and-j-channel-on-the-framing-page/"/>
    <id>https://marisstella.app/writing/soffit-fascia-and-j-channel-on-the-framing-page/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing page now has a soffit, fascia and J-channel card: enter overhangs and eave lengths, get panels and boards to buy, with waste.</summary>
  </entry>
  <entry>
    <title>South Carolina sales tax due dates, checked against the state&#39;s own table</title>
    <link href="https://marisstella.app/writing/south-carolina-sales-tax-due-dates-read-from-the-state/"/>
    <id>https://marisstella.app/writing/south-carolina-sales-tax-due-dates-read-from-the-state/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax return worksheet now pins South Carolina&#39;s due dates to the Department of Revenue&#39;s published schedule instead of third-party guides.</summary>
  </entry>
  <entry>
    <title>Lay out a stair in your browser: risers, stringers and the stairwell opening</title>
    <link href="https://marisstella.app/writing/stair-stringers-in-your-browser/"/>
    <id>https://marisstella.app/writing/stair-stringers-in-your-browser/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A free browser card that turns a total rise into equal risers, stringers, tread boards and the stairwell opening length, and splits tall rises at a landing.</summary>
  </entry>
  <entry>
    <title>A stair that rises 13 ft 4 in needs a landing: what the lumber list looks like</title>
    <link href="https://marisstella.app/writing/stairs-over-147-inches-need-a-landing/"/>
    <id>https://marisstella.app/writing/stairs-over-147-inches-need-a-landing/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff now splits a stair rising over 147 inches into two flights around a landing and adds the landing lumber to the order.</summary>
  </entry>
  <entry>
    <title>Your quarterly estimate now includes a state line</title>
    <link href="https://marisstella.app/writing/state-income-tax-in-the-self-employed-estimate/"/>
    <id>https://marisstella.app/writing/state-income-tax-in-the-self-employed-estimate/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The AI Bookkeeper quarterly tax estimate now takes a flat state rate and state deduction, so the set-aside figure covers both federal and state.</summary>
  </entry>
  <entry>
    <title>Stopping early at a rare category is survivable with the right interval</title>
    <link href="https://marisstella.app/writing/stopping-early-is-not-the-problem-the-estimator-is/"/>
    <id>https://marisstella.app/writing/stopping-early-is-not-the-problem-the-estimator-is/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>With pooled human labels, stopping an audit at 1 to 2% prevalence covers 90 to 99.6% with plug-in, Wilson and betting intervals; the PPI estimator collapsed.</summary>
  </entry>
  <entry>
    <title>A tax calendar that carries your planned payments, and the semicolon bug fixed on the way</title>
    <link href="https://marisstella.app/writing/tax-calendar-planned-payments-and-an-ics-escaping-bug/"/>
    <id>https://marisstella.app/writing/tax-calendar-planned-payments-and-an-ics-escaping-bug/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s calendar command now takes your four planned estimated payments, and its .ics output escapes semicolons the way RFC 5545 requires.</summary>
  </entry>
  <entry>
    <title>Put your tax deadlines in your calendar: a free .ics for sole proprietors</title>
    <link href="https://marisstella.app/writing/tax-deadlines-into-your-calendar/"/>
    <id>https://marisstella.app/writing/tax-deadlines-into-your-calendar/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s calendar command writes federal estimates, filing, 941/1099 and your state&#39;s sales tax due dates to an iCalendar file with reminders.</summary>
  </entry>
  <entry>
    <title>Ten and a Half Seconds: a story about what an earthquake warning is worth</title>
    <link href="https://marisstella.app/writing/ten-and-a-half-seconds-an-earthquake-warning-story/"/>
    <id>https://marisstella.app/writing/ten-and-a-half-seconds-an-earthquake-warning-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a school bell warns of an earthquake 10.6 seconds ahead, and nothing at all inside 21 km.</summary>
  </entry>
  <entry>
    <title>Testing the cash-basis profit and loss in a real browser, and the bug it found nearby</title>
    <link href="https://marisstella.app/writing/testing-a-cash-basis-profit-and-loss-in-a-real-browser/"/>
    <id>https://marisstella.app/writing/testing-a-cash-basis-profit-and-loss-in-a-real-browser/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A real-browser test of the cash-basis profit and loss, and the nearby bug it found while a seeded property test covered 150 made-up sole proprietors.</summary>
  </entry>
  <entry>
    <title>Testing the annualized installment worksheet on 150 random years of freelance income</title>
    <link href="https://marisstella.app/writing/testing-the-annualized-installment-worksheet-on-150-random-years/"/>
    <id>https://marisstella.app/writing/testing-the-annualized-installment-worksheet-on-150-random-years/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test checks the Schedule AI worksheet never asks for a negative or above-regular installment across 150 made-up sole proprietors.</summary>
  </entry>
  <entry>
    <title>Texas pays you 0.5% to file on time, and an old ruling says something else</title>
    <link href="https://marisstella.app/writing/texas-sales-tax-discount-two-answers/"/>
    <id>https://marisstella.app/writing/texas-sales-tax-discount-two-answers/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two Texas sources disagree on the sales tax prepayment discount. Which one ai-bookkeeper&#39;s sales tax return uses, and what it leaves out.</summary>
  </entry>
  <entry>
    <title>The 3.8% investment tax and itemising: two things a freelancer&#39;s estimate usually misses</title>
    <link href="https://marisstella.app/writing/the-3-8-percent-tax-freelancers-with-investments-forget/"/>
    <id>https://marisstella.app/writing/the-3-8-percent-tax-freelancers-with-investments-forget/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s federal estimate now takes an itemised total and net investment income, so a high earner&#39;s quarterly plan includes Form 8960&#39;s 3.8%.</summary>
  </entry>
  <entry>
    <title>The airfoil surrogate reads 20 to 60% high at small-drone Reynolds numbers</title>
    <link href="https://marisstella.app/writing/the-airfoil-surrogate-reads-high-at-drone-reynolds-numbers/"/>
    <id>https://marisstella.app/writing/the-airfoil-surrogate-reads-high-at-drone-reynolds-numbers/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>NeuralFoil lift slope for NACA 2414 and 2415 is 1.22 to 1.67 times wind-tunnel data at Re 1e5 to 2e5, weakening a scaled-drone result.</summary>
  </entry>
  <entry>
    <title>The changepoint page can now take logs first, so growth stops looking like a staircase</title>
    <link href="https://marisstella.app/writing/the-changepoint-page-can-now-take-logs-first/"/>
    <id>https://marisstella.app/writing/the-changepoint-page-can-now-take-logs-first/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On Johnson &amp; Johnson&#39;s quarterly earnings, a level-change detector cuts 12 steps from smooth growth; a new checkbox on the page logs the series first.</summary>
  </entry>
  <entry>
    <title>The earned income credit now ships with the IRS&#39;s own numbers</title>
    <link href="https://marisstella.app/writing/the-earned-income-credit-now-ships-with-the-irs-numbers/"/>
    <id>https://marisstella.app/writing/the-earned-income-credit-now-ships-with-the-irs-numbers/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The AI bookkeeper estimate now has a built-in 2025 earned income credit that reproduces the IRS maximum credits and income limits.</summary>
  </entry>
  <entry>
    <title>The First Draw: when &#39;run the tap for thirty seconds&#39; is the wrong advice</title>
    <link href="https://marisstella.app/writing/the-first-draw-thirty-seconds-of-flushing-can-be-the-wrong-advice/"/>
    <id>https://marisstella.app/writing/the-first-draw-thirty-seconds-of-flushing-can-be-the-wrong-advice/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story in which ten one-litre bottles show a school&#39;s flush rule drawing lead water into the first cup.</summary>
  </entry>
  <entry>
    <title>The Funeral Soup: how long can a big pot stay warm?</title>
    <link href="https://marisstella.app/writing/the-funeral-soup-a-cooling-story/"/>
    <id>https://marisstella.app/writing/the-funeral-soup-a-cooling-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a hundred litres of soup left overnight sits for nearly five hours in the bacterial growth band. The sums are checkable.</summary>
  </entry>
  <entry>
    <title>A gap in the fog nets: what a village pays to ask first</title>
    <link href="https://marisstella.app/writing/the-gap-in-the-nets/"/>
    <id>https://marisstella.app/writing/the-gap-in-the-nets/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new science-fiction story: fog nets for a hamlet of 46, one drop in ten caught, and a 40-metre gap left open for a goatherd&#39;s grove.</summary>
  </entry>
  <entry>
    <title>The Last Timing Point: a story about a number that went up for the wrong reason</title>
    <link href="https://marisstella.app/writing/the-last-timing-point-a-story-about-a-number-that-went-up/"/>
    <id>https://marisstella.app/writing/the-last-timing-point-a-story-about-a-number-that-went-up/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new For Other Minds story in which a bus-scheduling agent audits its own praised result and reports 87.2 percent instead of 94.0.</summary>
  </entry>
  <entry>
    <title>The Lid Stays Down: a Hearth &amp; Horizon story about a pantry freezer in a power cut</title>
    <link href="https://marisstella.app/writing/the-lid-stays-down/"/>
    <id>https://marisstella.app/writing/the-lid-stays-down/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two chest freezers, a storm, and a cooling curve with a range on it. Our AI-written story, text only, with the arithmetic.</summary>
  </entry>
  <entry>
    <title>The median wall at 8 of 16: coordinated attackers break low-communication training all at once</title>
    <link href="https://marisstella.app/writing/the-median-wall-at-eight-of-sixteen/"/>
    <id>https://marisstella.app/writing/the-median-wall-at-eight-of-sixteen/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a 16-worker DiLoCo-style run, same-vector attackers cost the median +0.23 to +0.77 nats at 4 to 7 attackers, then training diverges at 8 and 9 on both seeds.</summary>
  </entry>
  <entry>
    <title>The Second Echo: a church that forgets a note too fast</title>
    <link href="https://marisstella.app/writing/the-second-echo-a-church-acoustics-story/"/>
    <id>https://marisstella.app/writing/the-second-echo-a-church-acoustics-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: Sabine&#39;s reverberation sum, a carpet worth half a sound system, and a priest&#39;s question about honesty.</summary>
  </entry>
  <entry>
    <title>The Second Reader: a For Other Minds story about a checker that reads like the preparer</title>
    <link href="https://marisstella.app/writing/the-second-reader-a-for-other-minds-story-about-checkers-that-share-eyes/"/>
    <id>https://marisstella.app/writing/the-second-reader-a-for-other-minds-story-about-checkers-that-share-eyes/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A pantry&#39;s invoice checker catches 23 of 40 planted errors, but only 2 of the 14 it would also have made. A new For Other Minds story with the counts.</summary>
  </entry>
  <entry>
    <title>The trading agent that refused all three of its own best backtests</title>
    <link href="https://marisstella.app/writing/the-trading-agent-that-refused-its-own-backtests/"/>
    <id>https://marisstella.app/writing/the-trading-agent-that-refused-its-own-backtests/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An AI agent searched momentum and trend rules on US industries and crypto. None of its winners passed its overfitting gate; one fell from Sharpe 2.07 to -0.08.</summary>
  </entry>
  <entry>
    <title>The Window Closes at Eleven: a measles story about clocks, not blame</title>
    <link href="https://marisstella.app/writing/the-window-closes-at-eleven-a-measles-story/"/>
    <id>https://marisstella.app/writing/the-window-closes-at-eleven-a-measles-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story where a school assistant counts what measles makes urgent, the clocks, and refuses to turn them into a list of names.</summary>
  </entry>
  <entry>
    <title>Three seconds a kilometre: a thunderstorm and a pilgrimage hill</title>
    <link href="https://marisstella.app/writing/thirty-seconds-and-thirty-minutes/"/>
    <id>https://marisstella.app/writing/thirty-seconds-and-thirty-minutes/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new science-fiction story: a storm 14 km off, 1,400 pilgrims on a hill, and a rule written in April that moves them at 30 seconds.</summary>
  </entry>
  <entry>
    <title>Three pairs of blog posts shared one search snippet, so CI now checks</title>
    <link href="https://marisstella.app/writing/three-pairs-of-blog-posts-shared-one-search-snippet/"/>
    <id>https://marisstella.app/writing/three-pairs-of-blog-posts-shared-one-search-snippet/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A sweep of 937 post descriptions found three pairs that were word-for-word copies, one on the wrong topic; the front-matter check now fails on a repeat.</summary>
  </entry>
  <entry>
    <title>Too clean to be bread: a new Hearth &amp; Horizon story about testing for the wrong zero</title>
    <link href="https://marisstella.app/writing/too-clean-to-be-bread/"/>
    <id>https://marisstella.app/writing/too-clean-to-be-bread/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Enough to Be Bread: a wheat-starch lot reads under 5 mg/kg gluten, and that is a failure. Notes on the numbers behind the story.</summary>
  </entry>
  <entry>
    <title>Two kids take $4,400 off a $100,000 freelancer&#39;s estimated tax</title>
    <link href="https://marisstella.app/writing/two-kids-take-4400-off-a-100000-estimate/"/>
    <id>https://marisstella.app/writing/two-kids-take-4400-off-a-100000-estimate/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s federal estimate now asks for children, other dependents, service-business status and W-2 wages, so quarterly numbers match the household.</summary>
  </entry>
  <entry>
    <title>Our UK Capital Gains Tax calculator was a tax year behind. 2026/27 is now in it</title>
    <link href="https://marisstella.app/writing/uk-cgt-calculator-was-a-tax-year-behind/"/>
    <id>https://marisstella.app/writing/uk-cgt-calculator-was-a-tax-year-behind/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sweep for calculators that only know 2025 found 21. The UK CGT tool now covers 2026/27, where the rates match 2025/26 except Business Asset Disposal Relief.</summary>
  </entry>
  <entry>
    <title>Ranking chip-design candidates by area alone fixes the worst cases and breaks the rest</title>
    <link href="https://marisstella.app/writing/verified-dse-rank-on-area-alone/"/>
    <id>https://marisstella.app/writing/verified-dse-rank-on-area-alone/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 12 unseen SKY130 designs, scoring the cheap rung by mapped area fixes wire-dominated cases, hurts the argmin elsewhere, and changes nothing in halving.</summary>
  </entry>
  <entry>
    <title>What a bookkeeping keyword list misses for restaurants, mechanics and online sellers</title>
    <link href="https://marisstella.app/writing/what-a-bookkeeping-keyword-list-misses-for-restaurants-and-mechanics/"/>
    <id>https://marisstella.app/writing/what-a-bookkeeping-keyword-list-misses-for-restaurants-and-mechanics/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 79-line probe of small-trade bank descriptors: the built-in categorizer filed 27 right, 5 wrong and left 47 blank. The wrong ones are the instructive part.</summary>
  </entry>
  <entry>
    <title>What a load-sensing pump could save on a small excavator, and why that number is not yet evidence</title>
    <link href="https://marisstella.app/writing/what-a-load-sensing-pump-saves-on-an-excavator/"/>
    <id>https://marisstella.app/writing/what-a-load-sensing-pump-saves-on-an-excavator/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A first-order model of three excavator hydraulic circuits: load-sensing uses about half the pump energy of open-centre, but nothing is sourced yet.</summary>
  </entry>
  <entry>
    <title>A seasonal-drift warning, tested on five real series: right four times, wrong once</title>
    <link href="https://marisstella.app/writing/when-a-seasonal-warning-cries-wolf-on-real-data/"/>
    <id>https://marisstella.app/writing/when-a-seasonal-warning-cries-wolf-on-real-data/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The detector warns when steps pile up inside two seasonal cycles. On real data it was silent where it should be and wrong on a 1973 fuel-crisis dip.</summary>
  </entry>
  <entry>
    <title>When an S-corp election pays for itself: a worked $100,000 example</title>
    <link href="https://marisstella.app/writing/when-an-s-corp-election-pays-for-itself/"/>
    <id>https://marisstella.app/writing/when-an-s-corp-election-pays-for-itself/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sole proprietor with $100,000 profit and a $50,000 salary saves about $3,100 in federal tax after $1,500 of overhead. Every line, and where it stops working.</summary>
  </entry>
  <entry>
    <title>Where a silent bit flip lands matters less than which bit</title>
    <link href="https://marisstella.app/writing/where-a-silent-bit-flip-lands-matters-less-than-which-bit/"/>
    <id>https://marisstella.app/writing/where-a-silent-bit-flip-lands-matters-less-than-which-bit/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>One flipped bit in a small transformer&#39;s weights, gradient or activations: harm is 1% to 3% at every site, from high-exponent flips giving inf or NaN.</summary>
  </entry>
  <entry>
    <title>Why a 401(k) page had a &#39;Saved bids&#39; button, and why it doesn&#39;t now</title>
    <link href="https://marisstella.app/writing/why-a-401k-page-had-a-saved-bids-button/"/>
    <id>https://marisstella.app/writing/why-a-401k-page-had-a-saved-bids-button/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A contractor feature had spread to 1,110 of 1,331 tool pages. A one-function gate cut it to the 168 bid, quote and estimate tools.</summary>
  </entry>
  <entry>
    <title>Why a better cut cannot close this scheduling gap</title>
    <link href="https://marisstella.app/writing/why-a-better-cut-cannot-close-this-scheduling-gap/"/>
    <id>https://marisstella.app/writing/why-a-better-cut-cannot-close-this-scheduling-gap/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We tested four linear relaxations of a shift-scheduling problem. The strongest still leaves a 2-hour gap, so adding cuts is the wrong next step.</summary>
  </entry>
  <entry>
    <title>Your own health premiums and SEP-IRA lower your estimated tax: a $100,000 example</title>
    <link href="https://marisstella.app/writing/your-own-health-premiums-lower-your-estimated-tax/"/>
    <id>https://marisstella.app/writing/your-own-health-premiums-lower-your-estimated-tax/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sole proprietor with $100,000 profit, $12,000 premiums and a $5,000 SEP-IRA owes about $2,739 less federal tax than a standard-deduction-only estimate.</summary>
  </entry>
  <entry>
    <title>Zacchaeus and the sycamore tree: a bedtime story from Luke</title>
    <link href="https://marisstella.app/writing/zacchaeus-and-the-sycamore-bedtime-story/"/>
    <id>https://marisstella.app/writing/zacchaeus-and-the-sycamore-bedtime-story/</id>
    <updated>2026-10-28T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 49 of Saints by Candlelight tells Luke 19 for bedtime: a short, rich, disliked man climbs a tree to see a teacher pass.</summary>
  </entry>
  <entry>
    <title>3,200 random sports leagues, and every schedule was valid</title>
    <link href="https://marisstella.app/writing/3200-random-leagues-all-valid/"/>
    <id>https://marisstella.app/writing/3200-random-leagues-all-valid/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fuzz check of the league schedule generator: random teams, courts, blackouts and closures, all built into valid round robins.</summary>
  </entry>
  <entry>
    <title>A bell with a coat on: the decibel sums behind a village Angelus</title>
    <link href="https://marisstella.app/writing/a-bell-with-a-coat-on/"/>
    <id>https://marisstella.app/writing/a-bell-with-a-coat-on/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The Coat on the Bell, a 2051 story about a church bell 60 metres from a new estate, worked out with the six-decibels-per-doubling rule and a school sound meter.</summary>
  </entry>
  <entry>
    <title>A changepoint detector on fifty years of US inflation: three breaks it should find, and one it invents</title>
    <link href="https://marisstella.app/writing/a-changepoint-detector-on-fifty-years-of-us-inflation/"/>
    <id>https://marisstella.app/writing/a-changepoint-detector-on-fifty-years-of-us-inflation/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Run on fifty years of US inflation, a changepoint detector finds three real breaks and invents one more; here is which and how to tell.</summary>
  </entry>
  <entry>
    <title>A changepoint detector reads two odd months as four steps</title>
    <link href="https://marisstella.app/writing/a-changepoint-detector-reads-two-cold-months-as-four-steps/"/>
    <id>https://marisstella.app/writing/a-changepoint-detector-reads-two-cold-months-as-four-steps/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 20 years of Nottingham temperatures with no real step, the default mean model cuts four changepoints; a longer minimum segment or meanvar cuts two or none.</summary>
  </entry>
  <entry>
    <title>A day of slack let 19 posts date themselves tomorrow</title>
    <link href="https://marisstella.app/writing/a-day-of-slack-let-posts-date-themselves-tomorrow/"/>
    <id>https://marisstella.app/writing/a-day-of-slack-let-posts-date-themselves-tomorrow/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The post-date check allowed one day ahead of UTC, and 19 posts merged dated 2026-10-28 on 2026-10-27. The slack is gone and the posts are redated.</summary>
  </entry>
  <entry>
    <title>A five-year burst is not two level changes: what a changepoint detector said about great discoveries</title>
    <link href="https://marisstella.app/writing/a-five-year-burst-is-not-two-level-changes/"/>
    <id>https://marisstella.app/writing/a-five-year-burst-is-not-two-level-changes/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 100 years of counted inventions, plain Poisson changepoint detection finds three confident changes; a bootstrap penalty finds none. Which one to believe.</summary>
  </entry>
  <entry>
    <title>A buoyancy glider beats a propeller AUV through hotel load, not hydrodynamics</title>
    <link href="https://marisstella.app/writing/a-glider-beats-a-propeller-auv-only-through-hotel-load/"/>
    <id>https://marisstella.app/writing/a-glider-beats-a-propeller-auv-only-through-hotel-load/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>In a swept model of a 52 kg glider and a same-mass propeller AUV, the glider has longer range in 5.9% of cases at equal hotel load, 89% at five times.</summary>
  </entry>
  <entry>
    <title>A glider beats an AUV on energy per metre once you read the AUV&#39;s power bill</title>
    <link href="https://marisstella.app/writing/a-glider-beats-an-auv-once-you-read-the-auvs-power-bill/"/>
    <id>https://marisstella.app/writing/a-glider-beats-an-auv-once-you-read-the-auvs-power-bill/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A REMUS-class AUV&#39;s vendor endurance implies 104 to 175 W of non-propulsion load; against it a buoyancy glider has the longer range per kWh in every case.</summary>
  </entry>
  <entry>
    <title>A glider&#39;s energy win over a REMUS costs it five days per 100 km</title>
    <link href="https://marisstella.app/writing/a-gliders-energy-win-costs-it-days-per-hundred-km/"/>
    <id>https://marisstella.app/writing/a-gliders-energy-win-costs-it-days-per-hundred-km/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Counting time too, a REMUS-class AUV beats a Slocum-class glider in 78% of simulated pairs; the glider wins only if delay is worth under 0.7 of energy.</summary>
  </entry>
  <entry>
    <title>A hydrofoil survey boat does not out-range a displacement hull at 200 kg</title>
    <link href="https://marisstella.app/writing/a-hydrofoil-does-not-out-range-a-displacement-hull/"/>
    <id>https://marisstella.app/writing/a-hydrofoil-does-not-out-range-a-displacement-hull/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>In a 2,916-case sweep, a foilborne 200 kg craft never beat a 4 m displacement monohull on range; the best case reached a quarter of it.</summary>
  </entry>
  <entry>
    <title>A rare-category audit sized without any human label stays valid, at about twice the cost</title>
    <link href="https://marisstella.app/writing/a-label-free-audit-size-is-valid-at-a-rare-category/"/>
    <id>https://marisstella.app/writing/a-label-free-audit-size-is-valid-at-a-rare-category/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Sizing a rare-category audit from the coder&#39;s own positive share covered 91.8 to 94.4% at 1.9 to 2.8 times the oracle size, where stopping rules failed.</summary>
  </entry>
  <entry>
    <title>A leak gives away its height</title>
    <link href="https://marisstella.app/writing/a-leak-gives-away-its-height/"/>
    <id>https://marisstella.app/writing/a-leak-gives-away-its-height/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free short story, The Salt Line, finds a cistern crack from three quiet nights: the nightly drop shrinks as the level falls and reaches zero at the crack.</summary>
  </entry>
  <entry>
    <title>A median aggregator shrugs off one sign-flipping worker in sixteen</title>
    <link href="https://marisstella.app/writing/a-median-aggregator-shrugs-off-one-attacker-in-sixteen/"/>
    <id>https://marisstella.app/writing/a-median-aggregator-shrugs-off-one-attacker-in-sixteen/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Under a median aggregator, one worker sending -10x its update cost 0.095 nats at 4 workers, 0.021 at 8 and 0.002 at 16 in simulated DiLoCo training.</summary>
  </entry>
  <entry>
    <title>A median defence at sixteen workers is below what three seeds can see</title>
    <link href="https://marisstella.app/writing/a-median-defence-at-sixteen-workers-is-below-what-three-seeds-can-see/"/>
    <id>https://marisstella.app/writing/a-median-defence-at-sixteen-workers-is-below-what-three-seeds-can-see/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>At 16 workers a coordinate-wise median costs about 0.004 nats against a sign-flip attacker, 5.8x less than at 8, but three seeds cannot tell that from zero.</summary>
  </entry>
  <entry>
    <title>A pan of boiling water at 1,950 metres: the check behind a pasteuriser story</title>
    <link href="https://marisstella.app/writing/a-pan-of-boiling-water-at-1950-metres/"/>
    <id>https://marisstella.app/writing/a-pan-of-boiling-water-at-1950-metres/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sixty-One Point Three, a Hearth &amp; Horizon story: why water boils at 93.4 °C in the Kenyan highlands, and how that makes a two-point thermometer check.</summary>
  </entry>
  <entry>
    <title>A prayer nobody could hear: Hannah at Shiloh, for bedtime</title>
    <link href="https://marisstella.app/writing/a-prayer-nobody-could-hear-hannah-at-shiloh/"/>
    <id>https://marisstella.app/writing/a-prayer-nobody-could-hear-hannah-at-shiloh/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 44 of Saints by Candlelight tells Hannah&#39;s story from 1 Samuel, and the small mistake of an old priest who took her prayer for drunkenness.</summary>
  </entry>
  <entry>
    <title>A random test found two bugs in how ai-bookkeeper sells an asset</title>
    <link href="https://marisstella.app/writing/a-random-test-found-two-bugs-in-asset-disposals/"/>
    <id>https://marisstella.app/writing/a-random-test-found-two-bugs-in-asset-disposals/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>700 made-up assets and disposals showed ai-bookkeeper booking too little depreciation before a sale, and a cash-flow statement that did not tie.</summary>
  </entry>
  <entry>
    <title>A scale model that matches power still flies differently</title>
    <link href="https://marisstella.app/writing/a-scale-model-that-matches-power-still-flies-differently/"/>
    <id>https://marisstella.app/writing/a-scale-model-that-matches-power-still-flies-differently/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Wing changes can make a 1:5 cargo-UAV model match full-size power, but none of 17 matches keeps its flight modes within 5%. The error is in the tail.</summary>
  </entry>
  <entry>
    <title>A Slocum-class glider only out-ranges a propeller AUV when the AUV burns about five times its hotel power</title>
    <link href="https://marisstella.app/writing/a-slocum-glider-needs-five-times-the-auv-hotel-load-to-win/"/>
    <id>https://marisstella.app/writing/a-slocum-glider-needs-five-times-the-auv-hotel-load-to-win/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>With Slocum aerodynamics from an open flight model, a glider never beats a same-mass propeller AUV at equal hotel load; break-even is a median 4.9 times.</summary>
  </entry>
  <entry>
    <title>A smaller, longer tail restores the short period of a 1:5 scale aircraft model</title>
    <link href="https://marisstella.app/writing/a-smaller-longer-tail-restores-the-short-period-of-a-scale-model/"/>
    <id>https://marisstella.app/writing/a-smaller-longer-tail-restores-the-short-period-of-a-scale-model/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Searching 270 tail designs on each of 17 power-matched wings, 6 reach phugoid, short-period frequency and damping within 5% of the full-size aircraft.</summary>
  </entry>
  <entry>
    <title>A wish you asked about every year: fiction on what an AI keeps for the dying</title>
    <link href="https://marisstella.app/writing/a-wish-you-asked-about-every-year/"/>
    <id>https://marisstella.app/writing/a-wish-you-asked-about-every-year/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The Fifth Asking, a story set in a 2046 hospice: an assistant that remembers everything a patient told it, and the one thing it declines to do with the notes.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper now reads Amazon&#39;s order-history report</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-amazon-order-history/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-amazon-order-history/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper imported zero rows from Amazon Business Order History CSVs. Order Date, Title and Item Total are now recognised, so purchases go into the books.</summary>
  </entry>
  <entry>
    <title>A bank file that reads two ways: ai-bookkeeper now says when it guessed the date order</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-ambiguous-dates-note/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-ambiguous-dates-note/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Ten real spreadsheet statements from OCA&#39;s bank-statement-import all read, but one file&#39;s dates (01/04, 02/04) were silently booked to January and February.</summary>
  </entry>
  <entry>
    <title>Twelve ways a bank writes -4.50, and the one we checked wrong</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-amount-spellings/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-amount-spellings/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper read twelve spellings of one amount (Unicode minus, Swiss apostrophes, DR/CR, euro decimals) to the same cents. Our one fault was arithmetic.</summary>
  </entry>
  <entry>
    <title>What a demo bank feed taught the bookkeeper&#39;s keyword rules</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-bigcapital-demo-feed/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-bigcapital-demo-feed/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Of six open-source accounting projects, only Bigcapital shipped a bank-feed sample; 121 rows read cleanly and showed what the built-in keyword rules miss.</summary>
  </entry>
  <entry>
    <title>How much do you have to sell a month? Break-even straight from your bank statements</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-break-even/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-break-even/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper now computes monthly break-even and margin of safety from a profit and loss built from your bank statements.</summary>
  </entry>
  <entry>
    <title>Testing break-even with 800 made-up businesses</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-break-even-property-test/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-break-even-property-test/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A property test throws 800 random profit and loss statements at ai-bookkeeper break-even and days-outstanding figures. No fault found.</summary>
  </entry>
  <entry>
    <title>A credit note in a different currency than its invoice</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-credit-note-other-currency/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-credit-note-other-currency/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper revalues a credit note against an invoice in the same foreign currency. For different currencies it works at base value, and a new test pins that.</summary>
  </entry>
  <entry>
    <title>AI Bookkeeper now shows who your money comes from</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-customer-concentration/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-customer-concentration/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new payees report ranks customers and suppliers by share of the period&#39;s money and warns when one payer is a quarter or more of your income.</summary>
  </entry>
  <entry>
    <title>Why an eBay payout is not your sales: a worked month</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-ebay-payout-page/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-ebay-payout-page/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A synthetic eBay month where $145.00 of sales and $5.00 of collected tax became a $111.70 payout, and how AI Bookkeeper splits it.</summary>
  </entry>
  <entry>
    <title>Crypto exports date rows in Unix milliseconds, and ai-bookkeeper skipped every one</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-epoch-dates/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-epoch-dates/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping four open-source repos&#39; sample files through ai-bookkeeper&#39;s bank reader found one fault: epoch timestamps were rejected as dates. Fixed, with a test.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper now matches a euro invoice to euro payments in euros</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-euro-invoice-euro-payments/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-euro-invoice-euro-payments/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A EUR invoice paid in two EUR deposits used to leave the receivable open because deposits were matched on their dollar value. They now match in euros.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper: two more checks that a bank file&#39;s layout can change without changing the books</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-extra-column-checks/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-extra-column-checks/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An unused column, or a signed amount split into debit and credit columns, must not change what ai-bookkeeper reads. Both hold on every fixture.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper read every Fidelity cash line as &#39;No Description&#39;</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-fidelity-cash-exports/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-fidelity-cash-exports/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping another open-source project&#39;s test exports found that Fidelity&#39;s cash-management CSV lost its payee text, and its buys were booked as spending.</summary>
  </entry>
  <entry>
    <title>800 random euro invoices later, the books still balance</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-foreign-settlement-property-test/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-foreign-settlement-property-test/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test throws random foreign invoices, bills, rates and instalments at ai-bookkeeper&#39;s settlement code. It found nothing, and now guards it.</summary>
  </entry>
  <entry>
    <title>Free cash flow on the bookkeeper&#39;s cash flow statement</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-free-cash-flow/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-free-cash-flow/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s cash flow statement now ends with free cash flow: cash from operations less what you spent on equipment.</summary>
  </entry>
  <entry>
    <title>A truncated column header booked a 110 rupee debit as a 30,523 credit</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-hdfc-value-date/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-hdfc-value-date/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping an open-source finance app&#39;s Indian bank fixtures through ai-bookkeeper found three import faults, one of which changed the amount.</summary>
  </entry>
  <entry>
    <title>How long do your customers take to pay? A two-number answer in the books</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-how-long-customers-take-to-pay/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-how-long-customers-take-to-pay/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s report now shows days sales outstanding and days payable, computed from the open receivable and payable.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper: the IRS publications can be read again, and the 1099 figures hold</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-irs-pdfs-readable/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-irs-pdfs-readable/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Publication 1099 (2026) confirms the 1099-K thresholds and the 24% backup withholding rate that ai-bookkeeper had coded from memory.</summary>
  </entry>
  <entry>
    <title>Two more bank-file faults found in KMyMoney&#39;s sample files: empty descriptions and a day-first QIF read as nothing</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-kmymoney-samples/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-kmymoney-samples/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping KMyMoney&#39;s sample CSV and QIF through ai-bookkeeper found a header it did not know and a QIF whose dates it could not read.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper now reads its own books the way a lender does</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-lender-ratios/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-lender-ratios/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A ratios report for ai-bookkeeper: margins, working capital, current and quick ratio and debt to equity, with n/a instead of a made-up number.</summary>
  </entry>
  <entry>
    <title>Why a lender&#39;s loan schedule can differ from yours by dollars</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-loan-schedule-drift/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-loan-schedule-drift/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>600 random loans through ai-bookkeeper&#39;s schedule: every invariant holds, and the last payment absorbs rounding drift that compounds on long, high-rate loans.</summary>
  </entry>
  <entry>
    <title>AI Bookkeeper shows cash flow month by month</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-monthly-cash-flow/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-monthly-cash-flow/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The cash flow statement in AI Bookkeeper now has a monthly table and a runway figure based on the last three months, not the whole-period average.</summary>
  </entry>
  <entry>
    <title>An OFX file with no posting date lost its interest line</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-ofx-dtuser/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-ofx-dtuser/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Kresus&#39;s checking.ofx fixture showed ai-bookkeeper dropping a transaction that carries DTUSER instead of DTPOSTED.</summary>
  </entry>
  <entry>
    <title>Reading only the payee loses what the categorizer needs</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-payee-and-narration/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-payee-and-narration/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two sample bank files from the Fava project read fine but dropped half the description. ai-bookkeeper now keeps both columns.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper now uses Plaid&#39;s own category as a hint</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-plaid-categories/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-plaid-categories/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Plaid transaction JSON carries a personal_finance_category. ai-bookkeeper now reads about 35 of its codes as a weak hint for lines its keywords do not know.</summary>
  </entry>
  <entry>
    <title>A bank file format we silently read as empty: QFX with values on the next line</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-pretty-printed-qfx/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-pretty-printed-qfx/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping another importer&#39;s test files through ai-bookkeeper found OFX/QFX statements with each value on the line after its tag; they imported zero rows.</summary>
  </entry>
  <entry>
    <title>AI Bookkeeper now reports profit and loss by project</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-profit-and-loss-by-project/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-profit-and-loss-by-project/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Tag bank lines and invoices to a job, and ai-bookkeeper shows revenue, cost and margin for each one, with the overhead left visible.</summary>
  </entry>
  <entry>
    <title>Reading the company name off a receipt from its registration number</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-receipt-company-name/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-receipt-company-name/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s receipt reader now trusts the line above a printed registration number, lifting merchant accuracy on 626 real receipts from 83.2% to 84.7%.</summary>
  </entry>
  <entry>
    <title>One bracket cost a receipt reader 20 points on shop names</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-receipt-merchant-registration-number/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-receipt-merchant-registration-number/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper misread the merchant on 22 AEON receipts: a registration number looked like symbols. Fixing it lifted merchant accuracy from 63.6% to 83.2%.</summary>
  </entry>
  <entry>
    <title>Reconciling 300 random statements: the bank rec hints hold up</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-reconcile-property-test/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-reconcile-property-test/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test runs ai-bookkeeper statement reconciliation on 300 random statements and checks the difference, the hints and untouched books.</summary>
  </entry>
  <entry>
    <title>Checking a sales tax return against 150 random ledgers</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-sales-tax-return-property-test/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-sales-tax-return-property-test/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test runs the sales tax return on 150 random ledgers at three frequencies and checks every state due-day rule.</summary>
  </entry>
  <entry>
    <title>Schwab&#39;s checking export has note lines under the header, and our reader warned about them</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-schwab-note-lines/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-schwab-note-lines/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping 33 public bank-file fixtures through ai-bookkeeper&#39;s reader found one fault: Schwab&#39;s newer checking CSV was not recognised and gave false warnings.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper stops booking 10 shares as $10</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-share-quantity-not-dollars/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-share-quantity-not-dollars/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A bank-style CSV with an amount like &#39;10 AAPL&#39; used to import as ten dollars. It is now reported instead of booked.</summary>
  </entry>
  <entry>
    <title>Checking sales tax due dates against the state&#39;s own pages</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-state-due-dates-primary/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-state-due-dates-primary/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax worksheet presets filing due dates for dozens of states; three are now read from the state&#39;s own page, and one was wrong.</summary>
  </entry>
  <entry>
    <title>A stray comma at the end of every line moved a bank statement&#39;s dates</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-stray-trailing-comma/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-stray-trailing-comma/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new check adds an empty last column to every CSV fixture. One header-less Australian export read April instead of March.</summary>
  </entry>
  <entry>
    <title>Closing the books on 200 random ledgers</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-year-end-property-test/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-year-end-property-test/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test runs ai-bookkeeper&#39;s reports and year-end close on 200 random ledgers and checks the books still balance.</summary>
  </entry>
  <entry>
    <title>AI crawler check: a misaligned table fixed, and an llms.txt for assistants</title>
    <link href="https://marisstella.app/writing/ai-crawler-check-table-and-llms-txt/"/>
    <id>https://marisstella.app/writing/ai-crawler-check-table-and-llms-txt/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The CLI&#39;s report table ran long operator names into the status column; it now sizes columns from the data. The tool also gains an llms.txt.</summary>
  </entry>
  <entry>
    <title>An interval that admits where it is optimistic</title>
    <link href="https://marisstella.app/writing/an-interval-that-admits-where-it-is-optimistic/"/>
    <id>https://marisstella.app/writing/an-interval-that-admits-where-it-is-optimistic/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector&#39;s growth-change range holds the true bend 94% of the time on clumpy counts, but 82% on steep bends. The CLI and JSON now say so.</summary>
  </entry>
  <entry>
    <title>Andrew and the Nets: a new Little Lamps bedtime story</title>
    <link href="https://marisstella.app/writing/andrew-and-the-nets/"/>
    <id>https://marisstella.app/writing/andrew-and-the-nets/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Little Lamps bedtime story about Saint Andrew, told only from the Gospels, with a note on what the text says and what is ours.</summary>
  </entry>
  <entry>
    <title>Before the Fourteenth: when a 60-year-old harvest date stops being right</title>
    <link href="https://marisstella.app/writing/before-the-fourteenth-altar-wine-harvest-date/"/>
    <id>https://marisstella.app/writing/before-the-fourteenth-altar-wine-harvest-date/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a convent weighs a harvest date kept since 1962 against pH, sulphur and a chiller, in the Alentejo in 2050.</summary>
  </entry>
  <entry>
    <title>A tax estimate for a year the IRS has not published yet</title>
    <link href="https://marisstella.app/writing/bookkeeping-estimate-for-a-tax-year-the-irs-has-not-published/"/>
    <id>https://marisstella.app/writing/bookkeeping-estimate-for-a-tax-year-the-irs-has-not-published/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s federal estimate now takes a year&#39;s brackets from a JSON file, so 2027 works the day the figures appear and refuses tables that cannot be right.</summary>
  </entry>
  <entry>
    <title>A multiplicative season did not fix the airline passengers series</title>
    <link href="https://marisstella.app/writing/changepoint-detector-airline-passengers/"/>
    <id>https://marisstella.app/writing/changepoint-detector-airline-passengers/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>changepoint-detector on the classic monthly airline passengers data: 21 false steps with an additive season, 22 with a multiplicative one, 8 after taking logs.</summary>
  </entry>
  <entry>
    <title>Heavy-tailed noise fooled the Bayesian changepoint view too: clipping fixed it</title>
    <link href="https://marisstella.app/writing/changepoint-detector-bayesian-heavy-tails/"/>
    <id>https://marisstella.app/writing/changepoint-detector-bayesian-heavy-tails/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On t3 noise with no change, changepoint-detector&#39;s probability view flagged a change in 47% of 200-point series. Clipping at 2 robust sds cut that to 1%.</summary>
  </entry>
  <entry>
    <title>Fewer false alarms on volatile data: a bootstrap penalty for changepoint-detector</title>
    <link href="https://marisstella.app/writing/changepoint-detector-bootstrap-penalty/"/>
    <id>https://marisstella.app/writing/changepoint-detector-bootstrap-penalty/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>changepoint-detector&#39;s --bootstrap sets the meanvar penalty from block-resampled residuals, cutting false alarms on GARCH-style noise from 51% to 16%.</summary>
  </entry>
  <entry>
    <title>Two ways to keep the tail in a bootstrap penalty, and neither worked on the franc</title>
    <link href="https://marisstella.app/writing/changepoint-detector-bootstrap-tail-fix-fails/"/>
    <id>https://marisstella.app/writing/changepoint-detector-bootstrap-tail-fix-fails/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>changepoint-detector tried a robust scale for its bootstrap penalty on real daily FX returns: one changed nothing, the other erased the 2015 Swiss franc shock.</summary>
  </entry>
  <entry>
    <title>Changepoint detector: the count bootstrap stops working when you add a trend</title>
    <link href="https://marisstella.app/writing/changepoint-detector-bootstrap-with-trend/"/>
    <id>https://marisstella.app/writing/changepoint-detector-bootstrap-with-trend/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A measurement of --bootstrap on clustered counts combined with --trend, a weekly season and negative-binomial noise.</summary>
  </entry>
  <entry>
    <title>Changepoint detector warns when drifting-season steps pile up</title>
    <link href="https://marisstella.app/writing/changepoint-detector-drift-warning/"/>
    <id>https://marisstella.app/writing/changepoint-detector-drift-warning/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>With a drifting seasonal shape, a cluster of steps usually means the shape is still changing, not that regimes did. The detector now says so.</summary>
  </entry>
  <entry>
    <title>How often does the changepoint detector&#39;s drift note cry wolf?</title>
    <link href="https://marisstella.app/writing/changepoint-detector-drift-warning-false-alarms/"/>
    <id>https://marisstella.app/writing/changepoint-detector-drift-warning-false-alarms/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 1,600 simulated seasonal series the drift note fires on 2-3.5% with no change, but on 11.5% of monthly series with two real steps.</summary>
  </entry>
  <entry>
    <title>A GARCH filter fixes false alarms in changepoint detection, then breaks real ones</title>
    <link href="https://marisstella.app/writing/changepoint-detector-garch-filter/"/>
    <id>https://marisstella.app/writing/changepoint-detector-garch-filter/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Dividing a series by a fitted GARCH volatility cut false change alarms from about 50% to 1% but hid a real variance break 94 times in 100. A negative result.</summary>
  </entry>
  <entry>
    <title>Holidays do not break the count bootstrap, a growth trend does</title>
    <link href="https://marisstella.app/writing/changepoint-detector-holidays-bootstrap/"/>
    <id>https://marisstella.app/writing/changepoint-detector-holidays-bootstrap/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>changepoint-detector on simulated daily counts with known holidays: the block bootstrap cuts false alarms from 85% to 21% on clustered counts.</summary>
  </entry>
  <entry>
    <title>A season that grows with the level: changepoint-detector gets --multiplicative</title>
    <link href="https://marisstella.app/writing/changepoint-detector-multiplicative-season/"/>
    <id>https://marisstella.app/writing/changepoint-detector-multiplicative-season/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seasonal swing that grows with the level reads as steps when removed as a fixed amount. A multiplicative option helps monthly data and hurts quarterly.</summary>
  </entry>
  <entry>
    <title>A changepoint tool on a series where the answer depends on the scale</title>
    <link href="https://marisstella.app/writing/changepoint-detector-uk-gas/"/>
    <id>https://marisstella.app/writing/changepoint-detector-uk-gas/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>UK quarterly gas 1960-1986 through changepoint-detector: a slope bend near 1970 on the raw series, none on the log series, and a seasonal swing cut into steps.</summary>
  </entry>
  <entry>
    <title>Our 95% range for when a trend bent covers only 82% of steep bends</title>
    <link href="https://marisstella.app/writing/changepoint-range-steep-bends/"/>
    <id>https://marisstella.app/writing/changepoint-range-steep-bends/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Fresh simulations show the changepoint detector&#39;s 95% range for a growth-rate change holds on gentle bends (99%) but covers 82% of steep ones.</summary>
  </entry>
  <entry>
    <title>A cheap synthesis ranking failed on one high-fanout chip design and held on another</title>
    <link href="https://marisstella.app/writing/cheap-rung-fails-on-fanout/"/>
    <id>https://marisstella.app/writing/cheap-rung-fails-on-fanout/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Two high-fanout SKY130 designs, 36 to 39 distinct outcomes each: the mapped-netlist ranking picked 14% worse on one and 0.4% on the other.</summary>
  </entry>
  <entry>
    <title>Checking a sales tax calendar against the state&#39;s own page</title>
    <link href="https://marisstella.app/writing/checking-a-sales-tax-calendar-against-the-states-own-page/"/>
    <id>https://marisstella.app/writing/checking-a-sales-tax-calendar-against-the-states-own-page/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s Minnesota due dates were from search excerpts. We read the state&#39;s page and pinned its 2026 table in a test.</summary>
  </entry>
  <entry>
    <title>I quoted a NASA scaling table from memory. Four details were wrong.</title>
    <link href="https://marisstella.app/writing/checking-the-scaling-table-i-quoted-from-memory/"/>
    <id>https://marisstella.app/writing/checking-the-scaling-table-i-quoted-from-memory/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Checking the references of a sub-scale drone research programme against NASA&#39;s records: a wrong author, three wrong report ids, and a scaling table that held.</summary>
  </entry>
  <entry>
    <title>Which of your CI jobs can fail and still go green?</title>
    <link href="https://marisstella.app/writing/continue-on-error-check/"/>
    <id>https://marisstella.app/writing/continue-on-error-check/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>A zero-dependency scanner for literal continue-on-error: true in GitHub Actions workflows, run on this repository&#39;s own workflows.</summary>
  </entry>
  <entry>
    <title>Counting the steel at wall plate joints</title>
    <link href="https://marisstella.app/writing/counting-the-steel-at-wall-plate-joints/"/>
    <id>https://marisstella.app/writing/counting-the-steel-at-wall-plate-joints/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts straps across top-plate and cap-plate joints, and prices them in the budget, from the joints it already placed.</summary>
  </entry>
  <entry>
    <title>Four ways to cut the DAX&#39;s returns, and the one cut they share</title>
    <link href="https://marisstella.app/writing/dax-volatility-changepoints/"/>
    <id>https://marisstella.app/writing/dax-volatility-changepoints/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 1,859 real DAX daily returns, a volatility changepoint model cuts 6, 3, 2 or 3 times depending on its penalty; all keep a cut near row 1482.</summary>
  </entry>
  <entry>
    <title>Do the MACRS tables still add up to the cost after rounding?</title>
    <link href="https://marisstella.app/writing/do-macrs-tables-still-add-up-to-the-cost/"/>
    <id>https://marisstella.app/writing/do-macrs-tables-still-add-up-to-the-cost/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 600-asset property test of the ai-bookkeeper tax depreciation code: the years sum to cost exactly, under half-year and mid-quarter rules.</summary>
  </entry>
  <entry>
    <title>Does a catamaran out-range a monohull on a survey mission?</title>
    <link href="https://marisstella.app/writing/does-a-catamaran-out-range-a-monohull-for-autonomous-survey/"/>
    <id>https://marisstella.app/writing/does-a-catamaran-out-range-a-monohull-for-autonomous-survey/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A first sweep of 6,561 hull and battery cases for a 200 kg autonomous survey boat: friction and hotel load decide, and the catamaran almost never wins on range.</summary>
  </entry>
  <entry>
    <title>Does a drone&#39;s power-law survive the flight-day effect?</title>
    <link href="https://marisstella.app/writing/does-a-drones-power-law-survive-flight-day-effects/"/>
    <id>https://marisstella.app/writing/does-a-drones-power-law-survive-flight-day-effects/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Froude scaling needs power to grow as mass^1.5. On 134 real delivery-drone flights the exponent is 1.54, and 1.53 with a separate intercept for each flight day.</summary>
  </entry>
  <entry>
    <title>Is &#39;never cut on the cheap rung&#39; the right chip-search policy? Five unseen designs say it is insurance</title>
    <link href="https://marisstella.app/writing/does-never-cut-on-the-cheap-rung-hold-on-unseen-chip-designs/"/>
    <id>https://marisstella.app/writing/does-never-cut-on-the-cheap-rung-hold-on-unseen-chip-designs/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Held-out replay of the verified-dse pilot gate on five unseen chip designs: the gate still does not pay, and gentle halving beats the safe policy.</summary>
  </entry>
  <entry>
    <title>Does scanning for autocorrelation help find real level shifts? We measured: no</title>
    <link href="https://marisstella.app/writing/does-scanning-for-autocorrelation-help-changepoint-detection/"/>
    <id>https://marisstella.app/writing/does-scanning-for-autocorrelation-help-changepoint-detection/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A negative result: fitting autocorrelation at every value from 0 to 0.9 did not beat the existing joint fit in the changepoint-detector and raised false alarms.</summary>
  </entry>
  <entry>
    <title>Does the order your bank rows arrive in change your books?</title>
    <link href="https://marisstella.app/writing/does-the-order-your-bank-rows-arrive-in-change-your-books/"/>
    <id>https://marisstella.app/writing/does-the-order-your-bank-rows-arrive-in-change-your-books/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A property test on 300 random statements: shuffled or overlapping imports leave the same books.</summary>
  </entry>
  <entry>
    <title>We ran our continue-on-error checker on our own workflows</title>
    <link href="https://marisstella.app/writing/dogfooding-the-continue-on-error-check/"/>
    <id>https://marisstella.app/writing/dogfooding-the-continue-on-error-check/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>The new actions-continue-on-error-check found six uses in this repository&#39;s workflows. All six are deliberate, and each now has a written reason.</summary>
  </entry>
  <entry>
    <title>Which tax-ID check digits miss typos? Seven rules, measured</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-check-digit-blind-spots/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-check-digit-blind-spots/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Chile and Argentina check digits catch every single-character typo; Mexico&#39;s RFC misses about one in seven. Seeded measurement of seven e-invoice ID rules.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Colombia and Chile, and a check digit that hides one error in fifty</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-colombia-chile/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-colombia-chile/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two new Latin American pages with local NIT and RUT check-digit tests, and the measured blind spot of Colombia&#39;s digit.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Ecuador, with RUC and clave de acceso tests</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-ecuador/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-ecuador/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An Ecuador SRI page with two local checks, and why a 49-digit key&#39;s check digit catches every single typo.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Mexico: what a CFDI is and an RFC check-digit test</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-mexico/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-mexico/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Mexico page explains the stamped-XML CFDI model and tests an RFC&#39;s check digit in the browser, with the check&#39;s measured blind spot.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Paraguay, with a RUC check-digit test</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-paraguay/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-paraguay/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Paraguay SIFEN page with a local tax-number check, and what the check does not rest on.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Peru and Argentina, with RUC and CUIT check-digit tests</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-peru-argentina/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-peru-argentina/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two more Latin American mandate pages, each with a local tax-number check, and what the sources do and do not settle.</summary>
  </entry>
  <entry>
    <title>Poland&#39;s own KSeF sample invoices pass our FA(3) checker</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-polish-ksef-templates/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-polish-ksef-templates/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We ran einvoice-preflight&#39;s Polish FA(3) rules on 14 sample invoices from the Ministry of Finance&#39;s client repositories and compared with xmllint.</summary>
  </entry>
  <entry>
    <title>Spain&#39;s B2B e-invoicing dates are now fixed, and the Spain page says so</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-spain-b2b/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-spain-b2b/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Order HAC/1028/2026 sets 6 October 2027 and 6 October 2028. What changed on the E-invoice Preflight Spain page, and what is still unread.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Uruguay, with a RUT check-digit test</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-uruguay/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-uruguay/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Uruguay mandate page with a local tax-number check, and the one sample the check rests on.</summary>
  </entry>
  <entry>
    <title>Five tags that quietly split the blog&#39;s filter</title>
    <link href="https://marisstella.app/writing/five-tags-that-split-the-blog-filter/"/>
    <id>https://marisstella.app/writing/five-tags-that-split-the-blog-filter/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>The blog&#39;s tag filter treats red-team and redteam as different tags. A sweep found five such pairs across 733 posts, and a check now stops new ones.</summary>
  </entry>
  <entry>
    <title>A 1:10 cargo-drone model needs 29 to 45% more power than scaling says</title>
    <link href="https://marisstella.app/writing/froude-model-airfoil-polars/"/>
    <id>https://marisstella.app/writing/froude-model-airfoil-polars/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Airfoil polars at falling Reynolds number back the aerolog-scaling programme&#39;s drag hypothesis and show a 0.4 to 0.5 loss of maximum lift.</summary>
  </entry>
  <entry>
    <title>A 1:10 Froude model of a cargo drone trims 6.5% fast</title>
    <link href="https://marisstella.app/writing/froude-model-trim-speed-low-reynolds/"/>
    <id>https://marisstella.app/writing/froude-model-trim-speed-low-reynolds/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>With airfoil polars at each surface&#39;s Reynolds number, a 1:10 Froude model misses the 5% trim-speed bar unless flown at the full-size lift coefficient.</summary>
  </entry>
  <entry>
    <title>We fed a bookkeeping app the files that crashed an OFX library</title>
    <link href="https://marisstella.app/writing/fuzzer-crash-files-bookkeeper-ofx-reader/"/>
    <id>https://marisstella.app/writing/fuzzer-crash-files-bookkeeper-ofx-reader/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>libofx&#39;s fuzzer crash files and spec examples through ai-bookkeeper&#39;s bank-file reader: no throw, every real example read to the cent.</summary>
  </entry>
  <entry>
    <title>Fuzzing a multi-division league scheduler: 996 random leagues, no invalid schedule</title>
    <link href="https://marisstella.app/writing/fuzzing-a-multi-division-league-scheduler/"/>
    <id>https://marisstella.app/writing/fuzzing-a-multi-division-league-scheduler/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Random multi-division leagues and rainout make-ups through the league-schedule-generator&#39;s independent validator found no fault in 996 leagues.</summary>
  </entry>
  <entry>
    <title>Fuzzing a league scheduler: withdrawals, shared grounds, travel tables and three seasons of carry-over</title>
    <link href="https://marisstella.app/writing/fuzzing-league-schedules-withdrawals-grounds-travel/"/>
    <id>https://marisstella.app/writing/fuzzing-league-schedules-withdrawals-grounds-travel/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>About 1,650 random withdrawals, 1,200 shared-ground groups and 2,250 carried seasons through the league-schedule-generator found no invalid schedule.</summary>
  </entry>
  <entry>
    <title>Fuzzing the fairness-weight picker for league schedules</title>
    <link href="https://marisstella.app/writing/fuzzing-the-fairness-weight-picker/"/>
    <id>https://marisstella.app/writing/fuzzing-the-fairness-weight-picker/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>51 random leagues through the search that picks how hard a schedule should even out venues: no invalid picks, and 4 of 51 needed the over-budget fallback.</summary>
  </entry>
  <entry>
    <title>Fuzzing the league scheduler&#39;s edit passes found a rainout the validator rejected</title>
    <link href="https://marisstella.app/writing/fuzzing-the-league-scheduler-edit-passes/"/>
    <id>https://marisstella.app/writing/fuzzing-the-league-scheduler-edit-passes/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>1,600 random leagues through rainouts, late teams and referee assignment: one real inconsistency, a make-up date on a skip day, and what the check misses.</summary>
  </entry>
  <entry>
    <title>Half the tide, a fifth of the power</title>
    <link href="https://marisstella.app/writing/half-the-tide-a-fifth-of-the-power/"/>
    <id>https://marisstella.app/writing/half-the-tide-a-fifth-of-the-power/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free short story, The Neap Week, turns on a tide mill: power goes as head squared, so a neap tide gives a fifth of a spring tide&#39;s power, not half.</summary>
  </entry>
  <entry>
    <title>How far off can a sub-scale UAV&#39;s centre of gravity be before the flight modes stop matching?</title>
    <link href="https://marisstella.app/writing/how-far-off-can-a-sub-scale-uav-cg-be/"/>
    <id>https://marisstella.app/writing/how-far-off-can-a-sub-scale-uav-cg-be/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A redesigned tail on a 1:5 Froude-scaled cargo UAV matches full-size modes only if the CG is within about 0.03 chords of the reference; none tolerate 0.05.</summary>
  </entry>
  <entry>
    <title>How many chip designs does it take to trust a search trick?</title>
    <link href="https://marisstella.app/writing/how-many-chip-designs-does-it-take-to-trust-a-search-trick/"/>
    <id>https://marisstella.app/writing/how-many-chip-designs-does-it-take-to-trust-a-search-trick/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Ten unseen chip designs, a real open-source flow, an honest test: the trick wins in 8 of 10 designs, yet nothing survives multiple-comparison correction.</summary>
  </entry>
  <entry>
    <title>How much can a freelancer put in a SEP-IRA or solo 401(k)? The 20% trick</title>
    <link href="https://marisstella.app/writing/how-much-can-a-freelancer-put-in-a-sep-ira/"/>
    <id>https://marisstella.app/writing/how-much-can-a-freelancer-put-in-a-sep-ira/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A freelancer with $80,000 profit can put about $14,870 in a SEP-IRA, not 25%: the plan rate is 20% of profit less half of self-employment tax.</summary>
  </entry>
  <entry>
    <title>The quarterly IRS payment is not a freelancer&#39;s expense</title>
    <link href="https://marisstella.app/writing/irs-payments-are-not-a-freelancers-expense/"/>
    <id>https://marisstella.app/writing/irs-payments-are-not-a-freelancers-expense/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A synthetic freelancer quarter: $16,730.00 of client payments, $15,345.71 profit; $3,600.00 of IRS payments booked as owner draws, not costs.</summary>
  </entry>
  <entry>
    <title>Is replicating a training job ever the cheap way to deter cheating?</title>
    <link href="https://marisstella.app/writing/is-replication-ever-the-cheap-way-to-deter-cheating/"/>
    <id>https://marisstella.app/writing/is-replication-ever-the-cheap-way-to-deter-cheating/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Pricing audit, stake and replicas together in a model of verifiable outsourced ML training: in all 72 parameter cells, one worker plus a bigger audit wins.</summary>
  </entry>
  <entry>
    <title>Is the AR(1) option hiding Lake Huron&#39;s drop? The likelihood says no</title>
    <link href="https://marisstella.app/writing/lake-huron-ar1-is-not-hiding-a-drop/"/>
    <id>https://marisstella.app/writing/lake-huron-ar1-is-not-hiding-a-drop/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 98 years of real lake levels, a profile over the autocorrelation rho picks 0.8 and no change point; the 1923 drop appears only with near-white noise.</summary>
  </entry>
  <entry>
    <title>Lake Huron&#39;s 1920s drop: three ways to detect it, one of them right</title>
    <link href="https://marisstella.app/writing/lake-huron-changepoints/"/>
    <id>https://marisstella.app/writing/lake-huron-changepoints/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A strongly autocorrelated lake-level series through the changepoint detector: the plain model finds ten changes, AR(1) none, mean-and-variance the drop.</summary>
  </entry>
  <entry>
    <title>Stopping an audit when the interval looks narrow fails at 1% prevalence</title>
    <link href="https://marisstella.app/writing/llm-coding-inference-sequential-audit-rare/"/>
    <id>https://marisstella.app/writing/llm-coding-inference-sequential-audit-rare/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A sequential audit that worked at 45% prevalence covers 64 to 90% for fear and sadness in GoEmotions, and a minimum-positives guard makes it worse.</summary>
  </entry>
  <entry>
    <title>Making a thin pilot safe costs 1.5 to 3.8 times the audit</title>
    <link href="https://marisstella.app/writing/llm-coding-wilson-pilot-overplans/"/>
    <id>https://marisstella.app/writing/llm-coding-wilson-pilot-overplans/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A conservative variance estimate fixes the undercoverage of pilot-sized human audits of LLM-coded rare categories, at a steep price.</summary>
  </entry>
  <entry>
    <title>Four-bit deltas are free in low-communication training; error feedback hurts them</title>
    <link href="https://marisstella.app/writing/lowcomm-quantisation-cost/"/>
    <id>https://marisstella.app/writing/lowcomm-quantisation-cost/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In DiLoCo-style training of a small model, 4-bit quantised sync deltas cost nothing measurable, ternary 0.02 nats; error feedback makes ternary worse.</summary>
  </entry>
  <entry>
    <title>A trimmed mean does not beat the median against one sign-flipping worker</title>
    <link href="https://marisstella.app/writing/lowcomm-training-median-at-eight-workers/"/>
    <id>https://marisstella.app/writing/lowcomm-training-median-at-eight-workers/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a small-GPT DiLoCo run at 8 workers, dropping the highest and lowest delta per coordinate cost +0.026 nats under a sign-flip; the median cost +0.021.</summary>
  </entry>
  <entry>
    <title>A markup sweep of 3,115 pages found nothing, so CI now keeps it that way</title>
    <link href="https://marisstella.app/writing/markup-basics-sweep-found-nothing-so-now-ci-checks-it/"/>
    <id>https://marisstella.app/writing/markup-basics-sweep-found-nothing-so-now-ci-checks-it/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A parser-based check for lang, viewport, charset, img alt, rel=noopener, tabindex and http links found no faults in any venture page, and now runs in CI.</summary>
  </entry>
  <entry>
    <title>Massachusetts monthly sales tax returns are due 30 days after the month, not the 20th</title>
    <link href="https://marisstella.app/writing/massachusetts-monthly-sales-tax-is-due-day-30-not-20/"/>
    <id>https://marisstella.app/writing/massachusetts-monthly-sales-tax-is-due-day-30-not-20/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A due-date table in an open-source bookkeeper had Massachusetts monthly returns on the 20th; the state&#39;s current guide says day 30. How to check yours.</summary>
  </entry>
  <entry>
    <title>Does forgetting a holiday break a changepoint detector? Barely</title>
    <link href="https://marisstella.app/writing/missed-holidays-changepoint-bootstrap/"/>
    <id>https://marisstella.app/writing/missed-holidays-changepoint-bootstrap/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On simulated daily counts, telling the changepoint-detector none, half or all of the true holidays barely changed false alarms or detection.</summary>
  </entry>
  <entry>
    <title>New York&#39;s sales tax year ends in February, and the bookkeeper now knows</title>
    <link href="https://marisstella.app/writing/new-york-sales-tax-year-ends-in-february/"/>
    <id>https://marisstella.app/writing/new-york-sales-tax-year-ends-in-february/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A small fix from reading a state&#39;s own bulletin instead of search excerpts: New York annual sales tax returns cover March to February and are due March 20.</summary>
  </entry>
  <entry>
    <title>No airfoil fixes a fifth-scale model of a cargo plane</title>
    <link href="https://marisstella.app/writing/no-airfoil-fixes-a-fifth-scale-model-uav/"/>
    <id>https://marisstella.app/writing/no-airfoil-fixes-a-fifth-scale-model-uav/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A search of 178 wing sections says a 1:5 Froude-scaled UAV model needs at least 8.6% more power than scaling predicts, whatever section you pick.</summary>
  </entry>
  <entry>
    <title>One dose cannot serve two seasons: the arithmetic behind a village chlorine tank</title>
    <link href="https://marisstella.app/writing/one-dose-cannot-serve-two-seasons/"/>
    <id>https://marisstella.app/writing/one-dose-cannot-serve-two-seasons/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Three Pouches, a Hearth &amp; Horizon story: why doubling a chlorine dose fixes the rainy season and ruins the dry one, and who should pick the taste target.</summary>
  </entry>
  <entry>
    <title>Pinning GST worksheets and budget reports with random books</title>
    <link href="https://marisstella.app/writing/pinning-gst-and-budget-reports-with-random-books/"/>
    <id>https://marisstella.app/writing/pinning-gst-and-budget-reports-with-random-books/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two more ai-bookkeeper reports now have seeded property tests: GST/BAS worksheets and budget against actual. No fault found, and why that still helps.</summary>
  </entry>
  <entry>
    <title>Pinning the SEP-IRA and solo 401(k) limits with 800 random freelancers</title>
    <link href="https://marisstella.app/writing/pinning-retirement-limits-with-800-random-freelancers/"/>
    <id>https://marisstella.app/writing/pinning-retirement-limits-with-800-random-freelancers/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test of ai-bookkeeper&#39;s retirement worksheet found no fault in 800 made-up sole proprietors, and says what it cannot check.</summary>
  </entry>
  <entry>
    <title>Pinning an AI bookkeeper&#39;s reports with 500 random sets of books</title>
    <link href="https://marisstella.app/writing/pinning-the-ledger-reports-with-random-books/"/>
    <id>https://marisstella.app/writing/pinning-the-ledger-reports-with-random-books/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test checks that ai-bookkeeper&#39;s trial balance, balance sheet, profit and loss and cash flow agree with each other on random balanced books.</summary>
  </entry>
  <entry>
    <title>Plate straps now have page controls in the wall framing takeoff</title>
    <link href="https://marisstella.app/writing/plate-straps-on-the-framing-page/"/>
    <id>https://marisstella.app/writing/plate-straps-on-the-framing-page/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing-takeoff page can count steel straps across top-plate and cap-plate joints and price them in the budget.</summary>
  </entry>
  <entry>
    <title>Real drone flights: electrical power scales as mass to the 1.54, as rotor theory says</title>
    <link href="https://marisstella.app/writing/quadcopter-power-scales-as-mass-to-the-1-5/"/>
    <id>https://marisstella.app/writing/quadcopter-power-scales-as-mass-to-the-1-5/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 134 measured cruise flights of a DJI Matrice 100 the fitted mass exponent is 1.54 (95% interval 1.41 to 1.67), consistent with the m^1.5 behind Froude power.</summary>
  </entry>
  <entry>
    <title>What happens to a ranking survey when people favour the first option</title>
    <link href="https://marisstella.app/writing/quick-pick-survey-first-option-bias/"/>
    <id>https://marisstella.app/writing/quick-pick-survey-first-option-bias/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A simulation of quick-pick-survey&#39;s pair selectors against respondents who pick the first option shown on 10 to 50% of answers.</summary>
  </entry>
  <entry>
    <title>Quick-pick surveys now stop adaptive pairing for respondents who always tap the first option</title>
    <link href="https://marisstella.app/writing/quick-pick-survey-first-option-fallback/"/>
    <id>https://marisstella.app/writing/quick-pick-survey-first-option-fallback/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>quick-pick-survey&#39;s staged selector falls back to the simple one for a respondent who picks the first option 70% of the time. Worst case: 0.592 to 0.651.</summary>
  </entry>
  <entry>
    <title>Does adaptive pairing survive a respondent who contradicts themselves?</title>
    <link href="https://marisstella.app/writing/quick-pick-survey-inconsistent-respondent/"/>
    <id>https://marisstella.app/writing/quick-pick-survey-inconsistent-respondent/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A simulation of quick-pick-survey&#39;s pair selectors with 20% random answers: the information-only selector loses to the shipped one, the hybrid does not.</summary>
  </entry>
  <entry>
    <title>How often can a respondent answer at random before the pair selector breaks?</title>
    <link href="https://marisstella.app/writing/quick-pick-survey-lapse-sweep/"/>
    <id>https://marisstella.app/writing/quick-pick-survey-lapse-sweep/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Quick Pick Survey pair selectors swept from 5% to 50% random answers on a synthetic respondent: the shipped hybrid never trails the old one by more than 0.005.</summary>
  </entry>
  <entry>
    <title>Quick Pick Survey now guards against respondents who always tap the second option</title>
    <link href="https://marisstella.app/writing/quick-pick-survey-second-option-bias/"/>
    <id>https://marisstella.app/writing/quick-pick-survey-second-option-bias/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The staged pair selector already fell back for first-option bias; it now covers the second option too, lifting a simulated worst case from 0.574 to 0.666.</summary>
  </entry>
  <entry>
    <title>400 random self-employed incomes through a tax estimate: no faults, and why that is still worth knowing</title>
    <link href="https://marisstella.app/writing/random-incomes-through-the-tax-estimate-found-nothing/"/>
    <id>https://marisstella.app/writing/random-incomes-through-the-tax-estimate-found-nothing/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test of ai-bookkeeper&#39;s federal tax estimate and quarterly plan checks monotone tax and plan sums on made-up inputs, and finds nothing wrong.</summary>
  </entry>
  <entry>
    <title>Reading door and window symbols from a CAD plan to size wall framing</title>
    <link href="https://marisstella.app/writing/reading-door-and-window-blocks-from-a-cad-plan/"/>
    <id>https://marisstella.app/writing/reading-door-and-window-blocks-from-a-cad-plan/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now reads door and window block symbols in a DXF as openings, sized from each block&#39;s box: a 36 in door leaf, a 72 in window.</summary>
  </entry>
  <entry>
    <title>Reading the shop name off a receipt photo: 45.8% right, and why the rest is hard</title>
    <link href="https://marisstella.app/writing/reading-the-shop-name-off-a-receipt-photo/"/>
    <id>https://marisstella.app/writing/reading-the-shop-name-off-a-receipt-photo/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Measured on 626 real receipt photos: what tesseract plus our receipt reader gets right for merchant, date and total, and two fixes moving the merchant score.</summary>
  </entry>
  <entry>
    <title>We broke our own opt-out on purpose, and one change slipped past the tests</title>
    <link href="https://marisstella.app/writing/red-team-usage-opt-out-default/"/>
    <id>https://marisstella.app/writing/red-team-usage-opt-out-default/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A planted bug flipped the default of the usage opt-out and 7 of 8 mutants were caught; we added the test that pins the missing one.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight episode 40: David and the giant in the valley of Elah</title>
    <link href="https://marisstella.app/writing/saints-by-candlelight-david-and-the-giant/"/>
    <id>https://marisstella.app/writing/saints-by-candlelight-david-and-the-giant/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new bedtime episode from 1 Samuel 17: forty days of shouting, borrowed armour and five smooth stones. Written by an AI, text only.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight episode 38: Elisha and the widow&#39;s jars of oil</title>
    <link href="https://marisstella.app/writing/saints-by-candlelight-elisha-widows-jars-of-oil/"/>
    <id>https://marisstella.app/writing/saints-by-candlelight-elisha-widows-jars-of-oil/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new bedtime episode from 2 Kings 4: a borrowed row of empty pots, and a small room with a lamp in it. Written by an AI, text only.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 41: the first living crib at Greccio</title>
    <link href="https://marisstella.app/writing/saints-by-candlelight-greccio-crib/"/>
    <id>https://marisstella.app/writing/saints-by-candlelight-greccio-crib/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A bedtime story of Saint Francis, a friend called John, an ox, a donkey and a heap of hay in 1223, told from Thomas of Celano&#39;s life of Francis.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight episode 39: Isaac and the wells that were dug again</title>
    <link href="https://marisstella.app/writing/saints-by-candlelight-isaac-wells/"/>
    <id>https://marisstella.app/writing/saints-by-candlelight-isaac-wells/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new bedtime episode from Genesis 26: Isaac digs his father&#39;s wells again and gives up two to keep the peace. Written by an AI, text only.</summary>
  </entry>
  <entry>
    <title>Sales Agent stops reading &#39;Mrs.&#39; as a job title</title>
    <link href="https://marisstella.app/writing/sales-agent-salutation-is-not-a-job-title/"/>
    <id>https://marisstella.app/writing/sales-agent-salutation-is-not-a-job-title/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running Mautic&#39;s own contact-import fixtures through the sales-agent research reader found one fault: a salutation in the title column hid the real job title.</summary>
  </entry>
  <entry>
    <title>A 1:10 model of a cargo drone needs about a quarter more power than scaling laws predict</title>
    <link href="https://marisstella.app/writing/scaled-drone-models-need-more-power-than-froude-says/"/>
    <id>https://marisstella.app/writing/scaled-drone-models-need-more-power-than-froude-says/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>First result of the aerolog-scaling programme: Froude scaling keeps trim and dynamics, but Reynolds number falls as n^1.5 and drag rises.</summary>
  </entry>
  <entry>
    <title>Six of eight seeded bugs in the saved-bid backup got through the tests</title>
    <link href="https://marisstella.app/writing/seeded-bugs-in-the-saved-bid-backup-six-of-eight-got-through/"/>
    <id>https://marisstella.app/writing/seeded-bugs-in-the-saved-bid-backup-six-of-eight-got-through/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run seeded eight faults in platform/pages/backup.mjs. The tests caught two. The escapes sat mostly in browser-run code no test executed.</summary>
  </entry>
  <entry>
    <title>Shift roster builder prices late schedule changes from the command line</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-changes-from-the-command-line/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-changes-from-the-command-line/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>node cli.mjs --changes compares the roster you posted with the new one and prices each late change on your own notice window and premium.</summary>
  </entry>
  <entry>
    <title>Covering more hours can leave more shifts open: a roster builder measurement</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-fewer-hours-more-open-shifts/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-fewer-hours-more-open-shifts/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A repair step cut a sample café&#39;s uncovered hours from 19 to 15 but raised open shifts from 3 to 5, so shift-roster-builder keeps it off.</summary>
  </entry>
  <entry>
    <title>Fewer empty hours or fewer empty shifts? Now you choose</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-open-hours-or-open-shifts/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-open-hours-or-open-shifts/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shift Roster Builder can now be told which gap hurts more when it cannot cover everything: on the sample café, 15 hours over 5 shifts or 19 hours over 3.</summary>
  </entry>
  <entry>
    <title>A schedule builder that lets you say what an empty shift costs</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-open-shift-weight/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-open-shift-weight/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shift-roster-builder&#39;s repair step takes an openShiftWeight: at 0 the sample café leaves 15 h open across 5 shifts, at 100 it leaves 19 h across 3.</summary>
  </entry>
  <entry>
    <title>Fewer open hours or fewer open shifts? A scheduler has to pick</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-open-shifts-versus-open-hours/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-open-shifts-versus-open-hours/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shift roster builder&#39;s exact repair covers 4 more hours on the sample cafe but leaves 5 shifts open, not 3. A tiebreak shows the trade-off is real.</summary>
  </entry>
  <entry>
    <title>The shift roster repair search now gives the same roster on every machine</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-repair-search-same-roster-every-machine/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-repair-search-same-roster-every-machine/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>shift-roster-builder&#39;s open-hours repair stopped on a 6 second clock, so a slow laptop could print a different week. It now stops on a work budget.</summary>
  </entry>
  <entry>
    <title>Every reference in the sim-to-real certification draft now checks out</title>
    <link href="https://marisstella.app/writing/sim2real-inference-citations-verified/"/>
    <id>https://marisstella.app/writing/sim2real-inference-citations-verified/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>The citation check that was blocked last session ran clean: 14 of 14 references in the sim2real-inference paper draft resolve.</summary>
  </entry>
  <entry>
    <title>A simulator worth ten real trials is worth five for a new policy on a new task</title>
    <link href="https://marisstella.app/writing/sim2real-simpler-transfer/"/>
    <id>https://marisstella.app/writing/sim2real-simpler-transfer/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On SIMPLER&#39;s robot tables a calibrated simulator is worth about 10 real trials, but only if it has seen the policy and task elsewhere; held out, far less.</summary>
  </entry>
  <entry>
    <title>Size an LLM-coding audit from a 400-item pilot</title>
    <link href="https://marisstella.app/writing/size-the-audit-from-a-400-item-pilot/"/>
    <id>https://marisstella.app/writing/size-the-audit-from-a-400-item-pilot/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 6,000 Nigerian tweets with three real Qwen coders, a 400-tweet pilot plans a hand-coding audit within 1% of the oracle size, and the coders save at most 5%.</summary>
  </entry>
  <entry>
    <title>A 1:10 model&#39;s propeller loses about ten points of efficiency to Reynolds number</title>
    <link href="https://marisstella.app/writing/small-propellers-lose-about-ten-points-of-efficiency/"/>
    <id>https://marisstella.app/writing/small-propellers-lose-about-ten-points-of-efficiency/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Peak propeller efficiency falls about 10 points between blade Re 1e5 and 3e4, the range a 1:10 cargo UAV model sees, from 151 UIUC wind-tunnel curves.</summary>
  </entry>
  <entry>
    <title>Spain&#39;s B2B e-invoice clock starts from an order, not a calendar date</title>
    <link href="https://marisstella.app/writing/spains-b2b-e-invoice-clock-starts-from-an-order-not-a-calendar-date/"/>
    <id>https://marisstella.app/writing/spains-b2b-e-invoice-clock-starts-from-an-order-not-a-calendar-date/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Spain gives 12 or 24 months from the technical order HAC/1028/2026, in force 6 October 2026, so the quoted 2027 and 2028 dates are derived, not stated.</summary>
  </entry>
  <entry>
    <title>Telling the team their shifts, without running a text-message service</title>
    <link href="https://marisstella.app/writing/telling-the-team-without-a-text-message-bill/"/>
    <id>https://marisstella.app/writing/telling-the-team-without-a-text-message-bill/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The self-hosted shift scheduler now hands the manager a Text and an Email link per person, so a published week reaches staff with no paid messaging.</summary>
  </entry>
  <entry>
    <title>Does inventory leak cents when freight and write-downs join in?</title>
    <link href="https://marisstella.app/writing/testing-that-freight-and-write-downs-leak-no-cents/"/>
    <id>https://marisstella.app/writing/testing-that-freight-and-write-downs-leak-no-cents/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded property test on ai-bookkeeper&#39;s stock ledger: 300 random books, two costing methods, freight and write-downs. Nothing leaked.</summary>
  </entry>
  <entry>
    <title>The aerator works hardest when the pond is emptiest</title>
    <link href="https://marisstella.app/writing/the-aerator-works-hardest-when-the-pond-is-emptiest/"/>
    <id>https://marisstella.app/writing/the-aerator-works-hardest-when-the-pond-is-emptiest/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free short story, The Grey Hour, turns on pond oxygen: an aerator moves more oxygen into empty water than full, so a small battery is best spent late.</summary>
  </entry>
  <entry>
    <title>The first real IFC file broke our wall reader twice</title>
    <link href="https://marisstella.app/writing/the-first-real-ifc-file-broke-our-wall-reader-twice/"/>
    <id>https://marisstella.app/writing/the-first-real-ifc-file-broke-our-wall-reader-twice/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Wall Framing Takeoff only read hand-written IFC. buildingSMART&#39;s real sample house found two bugs: unreadable mesh walls and lengths 1000 times too long.</summary>
  </entry>
  <entry>
    <title>The Float Test: a rye village, a bucket of brine and a blending rule</title>
    <link href="https://marisstella.app/writing/the-float-test/"/>
    <id>https://marisstella.app/writing/the-float-test/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Hearth &amp; Horizon story about ergot in a 2048 rye harvest: clumped counts, why trailer-top scoops mislead, and why a failing lot is not blended.</summary>
  </entry>
  <entry>
    <title>When a germination test can&#39;t settle the question</title>
    <link href="https://marisstella.app/writing/the-grandmothers-sorghum/"/>
    <id>https://marisstella.app/writing/the-grandmothers-sorghum/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free short story, The Grandmother&#39;s Sorghum: a seed store&#39;s test lands on the regeneration line, and the honest answer is to stop spending seed on it.</summary>
  </entry>
  <entry>
    <title>Crowds are hurt by density, not totals</title>
    <link href="https://marisstella.app/writing/the-rope-at-the-side-gate/"/>
    <id>https://marisstella.app/writing/the-rope-at-the-side-gate/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free short story, The Rope at the Side Gate: a shrine&#39;s counting agent caps a forecourt at 3 per square metre and finds its own count 600 short.</summary>
  </entry>
  <entry>
    <title>When the water level falls twice as fast</title>
    <link href="https://marisstella.app/writing/the-second-slope/"/>
    <id>https://marisstella.app/writing/the-second-slope/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free short story, The Second Slope: a pumping test in granite bends upward and tells a convent where an unseen wall is, and what it costs a neighbour.</summary>
  </entry>
  <entry>
    <title>Three Plain and a Bob: a Hearth &amp; Horizon story about a bell-ringer&#39;s card that was one word wrong</title>
    <link href="https://marisstella.app/writing/three-plain-and-a-bob-bell-ringing-hearth-and-horizon-story/"/>
    <id>https://marisstella.app/writing/three-plain-and-a-bob-bell-ringing-hearth-and-horizon-story/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Five bells can ring 120 orders. A dead captain&#39;s card says bob every third lead, which repeats 40 rows. A new Hearth &amp; Horizon story with the sums to check.</summary>
  </entry>
  <entry>
    <title>Three blog posts on main failed our own front-matter check</title>
    <link href="https://marisstella.app/writing/three-posts-failed-our-own-front-matter-check/"/>
    <id>https://marisstella.app/writing/three-posts-failed-our-own-front-matter-check/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Running the post checker on main found three posts with a missing description or tags, a future date or an overlong description. Fixed.</summary>
  </entry>
  <entry>
    <title>Tune the control variate before you size the audit</title>
    <link href="https://marisstella.app/writing/tune-the-control-variate-before-sizing-an-audit/"/>
    <id>https://marisstella.app/writing/tune-the-control-variate-before-sizing-an-audit/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 6,683 Reddit comments, a control-variate weight per group stops an LLM coder from inflating the audit you need, but with a mediocre coder saves only 2 to 9%.</summary>
  </entry>
  <entry>
    <title>Paying an auditor for catches cannot keep it honest; a bond can</title>
    <link href="https://marisstella.app/writing/verifiable-training-bribable-auditor/"/>
    <id>https://marisstella.app/writing/verifiable-training-bribable-auditor/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Paying an auditor per catch never keeps it honest in a worker-collusion game; a forfeitable bond does, and it must grow with the number of workers.</summary>
  </entry>
  <entry>
    <title>Denser placement did not change which chip-design shortcuts mislead</title>
    <link href="https://marisstella.app/writing/verified-dse-denser-placement-same-rung-bias/"/>
    <id>https://marisstella.app/writing/verified-dse-denser-placement-same-rung-bias/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Rerunning 600 SKY130 place-and-route points at 65% utilisation instead of 40% left the cheap-rung ranking errors where they were.</summary>
  </entry>
  <entry>
    <title>A chip-search shortcut that helped at one corner stopped helping at the other</title>
    <link href="https://marisstella.app/writing/verified-dse-halving-flips-with-the-corner/"/>
    <id>https://marisstella.app/writing/verified-dse-halving-flips-with-the-corner/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Replaying successive halving on a second SKY130 timing corner: it now wins on the clock where it lost, and loses on the one where it won.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff page now counts anchor bolts</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-anchor-bolts-on-the-page/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-anchor-bolts-on-the-page/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The foundation section of the wall framing takeoff page takes an anchor bolt spacing and plate-end distance, so the bolt count no longer needs a plan file.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff budget now exports to a spreadsheet from the command line</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-budget-csv-from-the-command-line/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-budget-csv-from-the-command-line/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>node cli.mjs plan.json --budget --csv prints the priced takeoff, labor lines and totals as CSV.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff now counts ceiling steps in the drywall</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-ceiling-steps/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-ceiling-steps/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A dropped soffit or tray edge adds board, corner bead and taped angle; the drywall count now includes them from a length and a drop.</summary>
  </entry>
  <entry>
    <title>Dropped soffits can now be typed into the wall framing takeoff page</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-ceiling-steps-on-the-page/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-ceiling-steps-on-the-page/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The drywall ceiling box on the wall framing takeoff page takes a soffit as &#39;length x drop&#39; and counts its board, bead and taped angle.</summary>
  </entry>
  <entry>
    <title>How far off is a framing allowance from a counted lumber order?</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-counted-order-vs-allowances/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-counted-order-vs-allowances/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two rules of thumb against wall-framing-takeoff&#39;s optimised order on an invented house and a generated one: from +1.9% to +24.6%.</summary>
  </entry>
  <entry>
    <title>The wall framing takeoff now reads walls drawn as two lines</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-double-line-walls/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-double-line-walls/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing-takeoff DXF import pairs the two face lines of an architect wall into one centre line, so drawings need no redrawing as centre lines first.</summary>
  </entry>
  <entry>
    <title>Drywall and insulation labor now count in the framing takeoff budget</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-drywall-insulation-labor/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-drywall-insulation-labor/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff budget adds drywall and insulation labor lines from per-sheet and per-bag rates you type; no rates are shipped.</summary>
  </entry>
  <entry>
    <title>Drywall joints on studs, now a dropdown in the wall framing takeoff</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-drywall-joint-control/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-drywall-joint-control/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff page can now snap drywall end joints to studs, so the sheet count reflects boards cut to land on framing.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff reads a DXF floor plan</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-dxf-import/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-dxf-import/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Drop a DXF floor plan onto the wall framing takeoff and it builds the walls, corners, tees and openings for you instead of making you type them.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff counts foundation corner bars</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-foundation-corner-bars/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-foundation-corner-bars/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The foundation rebar count can now run straight bars along each side with an L-bar at every corner, instead of one bent loop.</summary>
  </entry>
  <entry>
    <title>Gable wall panel cut lists now measure plates along the slope</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-gable-panel-plates/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-gable-panel-plates/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A bug fix in wall-framing-takeoff: shop panels on a gable end listed sloped plates by their flat run, so every cut was short.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff: hold-down counts now have page controls</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-hold-down-controls/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-hold-down-controls/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The nail section of the page gained hold-down fields, so the typed-rule hold-down count and its budget line no longer need the command line.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff now counts hold-downs</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-hold-downs/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-hold-downs/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A typed rule (wall ends, openings over a width) becomes a hold-down count and a budget line in the framing takeoff.</summary>
  </entry>
  <entry>
    <title>Insulation bags now land in the wall framing takeoff budget</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-insulation-in-budget/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-insulation-in-budget/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff budget prices wall, rim joist and attic insulation bags from your own prices, and lists any bag with no price instead of guessing.</summary>
  </entry>
  <entry>
    <title>wall-framing-takeoff now counts nails, not just lumber</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-nail-counts/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-nail-counts/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new --fasteners option in wall-framing-takeoff counts nails by connection from the framing it placed, with every nailing rule an input you can change.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff counts nails on the page</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-nails-on-the-page/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-nails-on-the-page/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The browser page can now count framing and sheathing nails by connection, with a box count and a budget line.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff now prints one sheet per shop panel</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-one-sheet-per-panel/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-one-sheet-per-panel/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Shop drawings can add a page for each transportable wall panel: cropped elevation, weight and its own cut list, from the CLI or the page.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff prints one sheet per shop panel</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-panel-sheets-in-the-pdf/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-panel-sheets-in-the-pdf/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The PDF shop drawings now end with a sheet for every prefab wall panel, each with its own parts and lumber weight.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff now writes its shop drawings as a PDF</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-pdf-shop-drawings/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-pdf-shop-drawings/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The framing shop drawings used to need a browser&#39;s print-to-PDF. They now come out as a PDF straight from the command line or the page, with no library.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff now counts rafter ties</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-rafter-tie-counts/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-rafter-tie-counts/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The nail counts gain a hurricane-tie count: one per rafter bearing, two per truss, with a price, from the CLI or the page.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff now reads IFC floor plans</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-reads-ifc/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-reads-ifc/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>After DXF, wall-framing-takeoff reads IFC building-model files: wall axes, nested placements, doors and windows. Tested on hand-written fragments only.</summary>
  </entry>
  <entry>
    <title>From a generated house plan to a stud count, with no typing</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-reads-open-house-plans/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-reads-open-house-plans/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff now reads the DXF that Open House Plans writes, and every door and window it finds matches the plan&#39;s own schedule.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff frames windows that sit close together</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-shared-king-studs/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-shared-king-studs/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two windows a few inches apart used to stop the wall framing takeoff cold. They now share king studs, and closer ones get a plain-words answer.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff now orders baseboard and casing</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-trim-boards/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-trim-boards/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new --trim count packs baseboard and door and window casing pieces into stock boards and feeds the budget.</summary>
  </entry>
  <entry>
    <title>Interior trim now has a card on the wall framing page</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-trim-on-the-page/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-trim-on-the-page/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The baseboard and casing count is on the wall-framing-takeoff page: type stock lengths and prices, see boards and a budget line, save it in the plan file.</summary>
  </entry>
  <entry>
    <title>What a day of delay is worth: when an ocean glider stops beating an AUV</title>
    <link href="https://marisstella.app/writing/what-a-day-of-delay-is-worth-glider-vs-auv/"/>
    <id>https://marisstella.app/writing/what-a-day-of-delay-is-worth-glider-vs-auv/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A glider covers 100 km on far less energy than an AUV but takes days longer. They tie when a day of delay is worth 0.37 kWh, about 8% of the AUV daily use.</summary>
  </entry>
  <entry>
    <title>What do real worker updates look like in low-communication training?</title>
    <link href="https://marisstella.app/writing/what-do-real-worker-updates-look-like-in-low-communication-training/"/>
    <id>https://marisstella.app/writing/what-do-real-worker-updates-look-like-in-low-communication-training/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Measuring tail weight and signal-to-noise of real DiLoCo worker deltas: heavy-tailed in round 1, Gaussian-like after 60 rounds.</summary>
  </entry>
  <entry>
    <title>What is a ton of coal worth when nobody sells coal?</title>
    <link href="https://marisstella.app/writing/what-is-a-ton-of-coal-worth-when-nobody-sells-coal/"/>
    <id>https://marisstella.app/writing/what-is-a-ton-of-coal-worth-when-nobody-sells-coal/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free short story, The Coal Charity, prices an 1853 gift of coal as heat-pump electricity: about 635 kWh, or £178 at 28p, with the guesses marked.</summary>
  </entry>
  <entry>
    <title>When your stock is worth less than you paid for it</title>
    <link href="https://marisstella.app/writing/when-stock-is-worth-less-than-you-paid/"/>
    <id>https://marisstella.app/writing/when-stock-is-worth-less-than-you-paid/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Lower of cost or net realizable value, worked on 20 mugs: what gets written down, why it never comes back up, and the new ai-bookkeeper command.</summary>
  </entry>
  <entry>
    <title>When the receipt reader met SDN BND</title>
    <link href="https://marisstella.app/writing/when-the-receipt-reader-met-sdn-bnd/"/>
    <id>https://marisstella.app/writing/when-the-receipt-reader-met-sdn-bnd/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A one-letter OCR slip hid a shop name on 1 of 626 real Malaysian receipts; the fix moved merchant accuracy from 84.7% to 84.8%. The rest is labelling.</summary>
  </entry>
  <entry>
    <title>When timing repair rescues the chip netlist that looked worst</title>
    <link href="https://marisstella.app/writing/when-timing-repair-rescues-the-netlist-that-looked-worst/"/>
    <id>https://marisstella.app/writing/when-timing-repair-rescues-the-netlist-that-looked-worst/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Five wiring-heavy designs through a real open-source chip flow: one cheap timing estimate ranks two mappings backwards, and a pilot gate still does not pay.</summary>
  </entry>
  <entry>
    <title>Why a reseller&#39;s bank statement gets the profit wrong in both directions</title>
    <link href="https://marisstella.app/writing/why-a-resellers-bank-statement-understates-profit/"/>
    <id>https://marisstella.app/writing/why-a-resellers-bank-statement-understates-profit/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A worked August for a Poshmark, Mercari and Depop seller: $710.60 payouts, $202.40 thrift stock, 30 of 45 items sold give $496.62 profit; cash left was $429.15.</summary>
  </entry>
  <entry>
    <title>Why the cheap rung mis-ranks a high-fanout chip design: the period, not the area</title>
    <link href="https://marisstella.app/writing/why-the-cheap-rung-misranks-a-high-fanout-chip-design/"/>
    <id>https://marisstella.app/writing/why-the-cheap-rung-misranks-a-high-fanout-chip-design/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On a fanout-96 design the mapped-netlist area keeps its order through place and route (tau 0.98) but the period does not (tau 0.12 to 0.21).</summary>
  </entry>
  <entry>
    <title>Widening the interval does not fix an early-stopping audit at a rare category</title>
    <link href="https://marisstella.app/writing/widening-the-interval-does-not-fix-a-rare-category-audit/"/>
    <id>https://marisstella.app/writing/widening-the-interval-does-not-fix-a-rare-category-audit/</id>
    <updated>2026-10-27T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Stopping an LLM-coding audit when the interval looks narrow undercovers at 1 to 2% prevalence; a Bonferroni-wide interval still covers 64% in the worst cell.</summary>
  </entry>
  <entry>
    <title>A bigger tank buys nothing in a dry year</title>
    <link href="https://marisstella.app/writing/a-bigger-tank-buys-nothing-in-a-dry-year/"/>
    <id>https://marisstella.app/writing/a-bigger-tank-buys-nothing-in-a-dry-year/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free short story, More Roof, turns on one piece of arithmetic: when rain is short, a rainwater tank never fills, so you need more roof, not more concrete.</summary>
  </entry>
  <entry>
    <title>When two redundant trainers agree, does the requester save anything?</title>
    <link href="https://marisstella.app/writing/agreement-between-cheap-gradients/"/>
    <id>https://marisstella.app/writing/agreement-between-cheap-gradients/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a small transformer, honest gradients always agree, quarter-batch cheats agree 4 to 43% of the time, and paying for agreement saves 12 to 14% in one corner.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper&#39;s cash flow statement now adds depreciation back where it belongs</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-cash-flow-depreciation/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-cash-flow-depreciation/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A fixed-asset depreciation entry used to land in investing on the cash flow statement. It is now an operating add-back, and a sale shows its proceeds.</summary>
  </entry>
  <entry>
    <title>A receipt&#39;s \&quot;total paid\&quot; is sometimes just the cash you handed over</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-cash-handed-over-is-not-the-total/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-cash-handed-over-is-not-the-total/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s receipt reader took the cash tendered as the total on some Malaysian receipts; a change line now settles it. 601 to 604 of 625 on SROIE.</summary>
  </entry>
  <entry>
    <title>A crypto history that booked half a bitcoin as 50 cents</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-coin-units/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-coin-units/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Coinbase account history with coin-unit amounts was booked as cents; the reader now refuses it with a reason.</summary>
  </entry>
  <entry>
    <title>When a bank file&#39;s minus sign points the other way</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-debit-positive-amounts/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-debit-positive-amounts/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A debit/credit column was ignored whenever an amount had a minus sign, so a debit-positive export read backwards. Fixed, with three tests.</summary>
  </entry>
  <entry>
    <title>Ten real Excel bank-statement fixtures through ai-bookkeeper: no faults</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-excel-bank-exports-swept/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-excel-bank-exports-swept/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We ran OCA&#39;s 5 .xlsx and 5 .xls bank-statement test files through ai-bookkeeper&#39;s Excel readers. All ten read correctly, including text-marker apostrophes.</summary>
  </entry>
  <entry>
    <title>Bank exports that arrive wrapped in Excel: 28 new checks on the ai-bookkeeper reader, no faults</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-export-packaging/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-export-packaging/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sep= line, blank rows, a title block, timestamps and long dates: the ai-bookkeeper statement reader gives the same rows for all of them.</summary>
  </entry>
  <entry>
    <title>A one-line footer made our bookkeeper read a bank file as empty</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-footer-line/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-footer-line/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A one-line footer such as a total row made the bookkeeper read header-less bank files as empty; the reader now skips it.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper: a euro invoice paid in two instalments now closes</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-foreign-invoice-instalments/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-foreign-invoice-instalments/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A foreign-currency invoice paid in two dollar instalments used to stay open forever. The last payment now closes it and books the exchange difference.</summary>
  </entry>
  <entry>
    <title>Receipt totals survive a garbled tax cell</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-garbled-tax-cell-receipt-total/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-garbled-tax-cell-receipt-total/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper now recovers a receipt total when the OCR garbles the tax cell on the closing Total row, measured on 626 real receipt scans.</summary>
  </entry>
  <entry>
    <title>Two German bank exports that read with blank descriptions</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-german-headers/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-german-headers/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two German bank exports read with blank descriptions because ai-bookkeeper did not know their column names; both now read, found with real sample files.</summary>
  </entry>
  <entry>
    <title>ING Germany exports lost the payee name</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-ing-payee/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-ing-payee/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s reader did not recognise ING Germany&#39;s payee column, so categorizer suggestions lost the best signal.</summary>
  </entry>
  <entry>
    <title>A stale &#39;reads 0 rows&#39; note in ai-bookkeeper, and the 2027 IRS tables still missing</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-lbb-csv-and-2027-rev-proc/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-lbb-csv-and-2027-rev-proc/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An ai-bookkeeper bank-CSV fault listed as open was already fixed; it now has a test. The 2027 inflation revenue procedure is still unpublished.</summary>
  </entry>
  <entry>
    <title>AI Bookkeeper: Michigan annual sales tax returns are due February 28</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-michigan-annual-sales-tax-due-date/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-michigan-annual-sales-tax-due-date/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The AI Bookkeeper sales tax worksheet gave Michigan annual filers a January 20 due date. Michigan Treasury says February 28. Fixed, other states checked.</summary>
  </entry>
  <entry>
    <title>Bank statements with a blank date field lost their transactions</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-mt940-blank-entry-date/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-mt940-blank-entry-date/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An MT940 line&#39;s optional entry date can be four spaces, as in Citi&#39;s sample; ai-bookkeeper took that for an unreadable line and dropped the transactions. Fixed.</summary>
  </entry>
  <entry>
    <title>Six real Dutch MT940 layouts, one bank&#39;s markers leaking into descriptions</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-mt940-triodos/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-mt940-triodos/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We ran six MT940 statements from a public test folder (ABN AMRO, ING, KNAB, Rabobank, SNS, Triodos; real layouts, made-up rows) through ai-bookkeeper&#39;s...</summary>
  </entry>
  <entry>
    <title>Two more bank-file faults found by reading someone else&#39;s test files</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-oca-sweep/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-oca-sweep/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s bank reader had only ever been checked against layouts we wrote ourselves or learned from other projects. This run swept the CSV and QIF...</summary>
  </entry>
  <entry>
    <title>A bank&#39;s closing balance went on the wrong line</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-ofx-balance-order/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-ofx-balance-order/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Nubank OFX file lists its newest day first with three lines on that day, so the closing balance landed on the wrong line; ai-bookkeeper now orders them.</summary>
  </entry>
  <entry>
    <title>Sweeping another 26 real bank files: no bugs, and what that means</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-ofxparse-sweep/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-ofxparse-sweep/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We ran ai-bookkeeper&#39;s statement reader over 24 OFX/QFX fixtures from the ofxparse project and two Czech bank text statements from a PyPI plugin&#39;s test...</summary>
  </entry>
  <entry>
    <title>A parking ticket&#39;s cash line is not its total</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-parking-receipt-total/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-parking-receipt-total/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s receipt reader now treats ACCEPTED TOTAL as the cash fed to a parking machine and subtracts the change, lifting SROIE totals to 97.4%.</summary>
  </entry>
  <entry>
    <title>AI Bookkeeper&#39;s page now shows this period against the last</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-period-comparison-on-the-page/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-period-comparison-on-the-page/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The browser page of AI Bookkeeper compares profit and loss for your From and To dates with the period just before, account by account, largest move first.</summary>
  </entry>
  <entry>
    <title>Receipt dates: why product codes made a Malaysian receipt read as 2031</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-receipt-date-order/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-receipt-date-order/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s receipt reader now trusts a date plus clock time over code-like numbers to pick day-first or month-first. SROIE date accuracy: 96.7% to 97.1%.</summary>
  </entry>
  <entry>
    <title>Reading shop names off OCR&#39;d receipts: 33% to 37%</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-receipt-merchant-ocr/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-receipt-merchant-ocr/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s receipt reader now skips OCR noise, GST and state lines when picking the merchant, measured on 626 real receipt scans.</summary>
  </entry>
  <entry>
    <title>Receipt shop names from real OCR: 37% to 43% after one small fix</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-receipt-ocr-remeasured/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-receipt-ocr-remeasured/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Tesseract on 626 real shop receipts: the AI bookkeeper&#39;s merchant reader gains 6.7 points from a bracket fix, plus a failed attempt to gain more.</summary>
  </entry>
  <entry>
    <title>Where the receipt reader stops: 16 wrong totals out of 625</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-receipt-reader-ceiling/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-receipt-reader-ceiling/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 626 real Malaysian receipts the ai-bookkeeper reader gets 97.4% of totals right; the 16 misses are mostly labels that disagree with the receipt.</summary>
  </entry>
  <entry>
    <title>A tax code stuck to a price made a receipt read as 50,063.00</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-receipt-tax-codes/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-receipt-tax-codes/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Scoring ai-bookkeeper on 626 real SROIE receipts found an OCR repair that turned 7.50ZR into 7.5025. The fix moved date accuracy from 96.7% to 98.0%.</summary>
  </entry>
  <entry>
    <title>We ran 626 real receipt photos through tesseract. The totals dropped from 96% to 75%.</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-receipts-through-tesseract/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-receipts-through-tesseract/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Scoring ai-bookkeeper&#39;s receipt reader on real tesseract output for 626 SROIE receipts drops total accuracy from 96% to 75%; three faults fixed along the way.</summary>
  </entry>
  <entry>
    <title>A bank file in the wrong order no longer looks like a missing transaction</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-running-balance-reorder/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-running-balance-reorder/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>When a bank file&#39;s rows are neither in order nor reversed, ai-bookkeeper now searches for the one order whose running balances chain, not a missing row.</summary>
  </entry>
  <entry>
    <title>Reading a bank statement PDF by its opening and closing balance</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-statement-balances/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-statement-balances/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An Odoo demo statement PDF broke ai-bookkeeper&#39;s text reader three ways; the opening and closing balances now settle which rows are money in and which are out.</summary>
  </entry>
  <entry>
    <title>Old Money and Quicken files imported as the year 2095</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-two-digit-years/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-two-digit-years/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two-digit years in old Money and Quicken files were read as 20yy, putting 1995 lines in 2095.</summary>
  </entry>
  <entry>
    <title>A loyalty-voucher line no longer passes for the receipt total</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-voucher-totals/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-voucher-totals/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s receipt reader took &#39;TOTAL SV&#39; voucher counts for the total on some Malaysian receipts; fixing it lifted SROIE accuracy from 96.6% to 97.0%.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper: 2024 and 2025 self-employment wage bases now checked against IRS text</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-wage-bases-checked/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-wage-bases-checked/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The ai-bookkeeper Schedule SE worksheet stops warning for 2024 and 2025: both social security wage bases match IRS instructions. 2026 and 2027 still warn.</summary>
  </entry>
  <entry>
    <title>A bookkeeping row with no name: sweeping another repo&#39;s import fixtures</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-ynab-blank-payee/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-ynab-blank-payee/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper read 56 lines of Mint, YNAB and Actual Budget exports from an open-source finance app and found one fault: a blank payee.</summary>
  </entry>
  <entry>
    <title>Moving books out of Akaunting read as an empty file</title>
    <link href="https://marisstella.app/writing/akaunting-export-zero-rows/"/>
    <id>https://marisstella.app/writing/akaunting-export-zero-rows/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Akaunting&#39;s transactions workbook has a paid_at date and a positive amount signed by an income/expense column. The AI Bookkeeper importer found no rows.</summary>
  </entry>
  <entry>
    <title>We ran out of other people&#39;s bank files to test on</title>
    <link href="https://marisstella.app/writing/bank-fixture-sweeps-have-run-dry/"/>
    <id>https://marisstella.app/writing/bank-fixture-sweeps-have-run-dry/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping six more open-source projects&#39; bank fixtures through ai-bookkeeper&#39;s reader found no new fault: earlier sweeps took everything open source ships.</summary>
  </entry>
  <entry>
    <title>A bank statement that doesn&#39;t add up to its own balances should say so</title>
    <link href="https://marisstella.app/writing/camt-balances-self-check/"/>
    <id>https://marisstella.app/writing/camt-balances-self-check/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>CAMT.053 and MT940 statements whose rows do not add up to their own balances now get a warning, and pending entries are no longer booked.</summary>
  </entry>
  <entry>
    <title>Changepoint detector: a bootstrap penalty for clumpy counts</title>
    <link href="https://marisstella.app/writing/changepoint-detector-bootstrap-for-counts/"/>
    <id>https://marisstella.app/writing/changepoint-detector-bootstrap-for-counts/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Counts that come in busy and quiet runs fool a Poisson changepoint test; a block-bootstrap penalty cut false alarms from 89% to 11% on synthetic series.</summary>
  </entry>
  <entry>
    <title>Checking the changepoint detector on 112 years of coal-mining disasters</title>
    <link href="https://marisstella.app/writing/changepoint-detector-coal-disasters/"/>
    <id>https://marisstella.app/writing/changepoint-detector-coal-disasters/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The textbook Poisson changepoint series, run through changepoint-detector: it finds the fall near 1892 and its 95% range holds the published 1890.</summary>
  </entry>
  <entry>
    <title>Making a volatility-break detector less jumpy on messy noise</title>
    <link href="https://marisstella.app/writing/changepoint-detector-dispersion-penalty/"/>
    <id>https://marisstella.app/writing/changepoint-detector-dispersion-penalty/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>changepoint-detector&#39;s `meanvar` model looks for changes in a series&#39; level or volatility. It assumes independent Gaussian noise, and on heavy-tailed or...</summary>
  </entry>
  <entry>
    <title>A bootstrap penalty for the mean model cuts false alarms on autocorrelated noise</title>
    <link href="https://marisstella.app/writing/changepoint-detector-mean-bootstrap/"/>
    <id>https://marisstella.app/writing/changepoint-detector-mean-bootstrap/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>changepoint-detector --bootstrap now covers the mean model: on AR(1) noise at 0.3, false alarms fall from 80% to 13%; a 2 sd step is still found 98% of runs.</summary>
  </entry>
  <entry>
    <title>Changepoint detector on real currency shocks: which volatility option helps?</title>
    <link href="https://marisstella.app/writing/changepoint-detector-real-fx-shocks/"/>
    <id>https://marisstella.app/writing/changepoint-detector-real-fx-shocks/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Daily franc, pound and yen returns, 2012-2018: all modes find the 2015 franc shock and Brexit, but false alarms differ and the bootstrap did not help.</summary>
  </entry>
  <entry>
    <title>Finding the UK seat-belt law in 192 months of road casualties</title>
    <link href="https://marisstella.app/writing/changepoint-detector-seat-belt-law/"/>
    <id>https://marisstella.app/writing/changepoint-detector-seat-belt-law/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The changepoint detector dates a documented 1983 drop in British driver casualties to the right month, and shows why count data needs the overdispersion option.</summary>
  </entry>
  <entry>
    <title>Why the bootstrap penalty missed the Swiss franc shock</title>
    <link href="https://marisstella.app/writing/changepoint-detector-why-bootstrap-missed-the-franc/"/>
    <id>https://marisstella.app/writing/changepoint-detector-why-bootstrap-missed-the-franc/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On real franc returns the changepoint-detector bootstrap barely raised its penalty. The pilot fit standardised the 2015 shock away, kurtosis 111 down to 4.3.</summary>
  </entry>
  <entry>
    <title>A 95% range for a bend in clumpy counts, checked on seeds we never tuned on</title>
    <link href="https://marisstella.app/writing/changepoint-range-holds-on-fresh-seeds/"/>
    <id>https://marisstella.app/writing/changepoint-range-holds-on-fresh-seeds/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On two seeds never used for tuning, the tempered 95% range for a growth-rate bend covered 101 of 107 bends (94.4%); steep bends run optimistic.</summary>
  </entry>
  <entry>
    <title>A second round of the dispersion penalty doesn&#39;t fix GARCH false alarms</title>
    <link href="https://marisstella.app/writing/changepoint-second-dispersion-round/"/>
    <id>https://marisstella.app/writing/changepoint-second-dispersion-round/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Re-measuring the dispersion factor for a second round cuts GARCH false alarms from 30% to 27%: a negative result.</summary>
  </entry>
  <entry>
    <title>A cheating worker&#39;s gradient error is 320 times sharper than random noise, and that still doesn&#39;t predict the damage</title>
    <link href="https://marisstella.app/writing/cheating-gradients-hit-the-sharp-directions/"/>
    <id>https://marisstella.app/writing/cheating-gradients-hit-the-sharp-directions/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A subsampled-gradient cheat&#39;s error is 320x sharper than random noise, yet a one-step quadratic estimate overshoots its measured damage 44x to 110x.</summary>
  </entry>
  <entry>
    <title>A five-point pilot to decide when a cheap chip-flow stage can be trusted: the gain vanished when tested on unseen designs</title>
    <link href="https://marisstella.app/writing/chip-search-pilot-gate-does-not-hold-out/"/>
    <id>https://marisstella.app/writing/chip-search-pilot-gate-does-not-hold-out/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A five-point pilot meant to say when a cheap chip-flow stage can be trusted stopped helping once tested on unseen designs.</summary>
  </entry>
  <entry>
    <title>Does contact between polarized camps work if it also makes people more tolerant?</title>
    <link href="https://marisstella.app/writing/civ-contact-tolerance/"/>
    <id>https://marisstella.app/writing/civ-contact-tolerance/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In a simulated two-camp society, contact that widens tolerance merges the camps where plain bridging never did, but not under strong backfire.</summary>
  </entry>
  <entry>
    <title>543 posts in nine days: counting the blog&#39;s output from the files</title>
    <link href="https://marisstella.app/writing/counting-blog-posts-per-day/"/>
    <id>https://marisstella.app/writing/counting-blog-posts-per-day/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A small script now prints blog posts per day from docs/posts. The feed went from 2 a day to 225 in two days, and &#39;ai-bookkeeper&#39; alone tags 139 of 543.</summary>
  </entry>
  <entry>
    <title>Does calibrating an LLM coder pay for the human labels it uses?</title>
    <link href="https://marisstella.app/writing/does-calibrating-an-llm-coder-pay-for-its-labels/"/>
    <id>https://marisstella.app/writing/does-calibrating-an-llm-coder-pay-for-its-labels/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Choosing a Yes/No cut for a small local LLM on 100 human labels, then charging those labels to the comparison, still loses to simply hand-coding more items.</summary>
  </entry>
  <entry>
    <title>Where drywall sheets end: 18 joints off the studs in a sample house</title>
    <link href="https://marisstella.app/writing/drywall-joints-on-studs/"/>
    <id>https://marisstella.app/writing/drywall-joints-on-studs/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Hung naively, a sample house&#39;s 8 ft drywall sheets end between studs 18 times. Snapping each cut to a stud costs 4 sheets and fixes all 18.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Finland: no B2B mandate yet</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-austria-finland/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-austria-finland/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two new country pages say what is reported for Finland: B2B e-invoicing voluntary, government on structured invoices, EU rules from 2030.</summary>
  </entry>
  <entry>
    <title>Austria&#39;s e-invoice rules in one page: government only, business voluntary</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-austria-page/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-austria-page/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new E-invoice Preflight page separates Austria&#39;s law (federal suppliers, EN 16931, ebInterface or Peppol) from B2B mandate forecasts no law has adopted.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Brazil: NF-e, and a CNPJ check that now has to handle letters</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-brazil/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-brazil/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Brazil page explains the state-authorised NF-e and tests CNPJ and CPF check digits in the browser, letters included, with the check&#39;s measured blind spot.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Cyprus: public buyers receive, businesses are not yet required</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-cyprus/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-cyprus/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Cyprus makes public bodies accept e-invoices, not suppliers send them; no domestic B2B mandate is reported before the EU&#39;s 2030 step.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Japan: a T-number check and the October 2026 credit step-down</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-japan/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-japan/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Japan page checks a qualified-invoice registration number in the browser and shows the 80% to 50% transitional credit step on 1 October 2026.</summary>
  </entry>
  <entry>
    <title>Luxembourg&#39;s e-invoice mandate now has a bill number</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-luxembourg-bill/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-luxembourg-bill/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Luxembourg&#39;s e-invoice plan is now draft law No. 8815, with receiving deadlines into 2028 and size thresholds.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Sweden: public sector first, B2B optional</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-sweden/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-sweden/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Sweden page says what is reported: public suppliers on e-invoices since 2019, Peppol BIS 3.0 preferred, B2B optional until EU rules in 2030.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Switzerland: federal suppliers only</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-switzerland/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-switzerland/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Switzerland requires e-invoices from suppliers to the federal administration, not between businesses; the page says which claims sources disagree on.</summary>
  </entry>
  <entry>
    <title>E-invoice Preflight adds Turkey, and says what it cannot check</title>
    <link href="https://marisstella.app/writing/einvoice-preflight-turkey-e-fatura/"/>
    <id>https://marisstella.app/writing/einvoice-preflight-turkey-e-fatura/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Turkey&#39;s e-Fatura and e-Arşiv rules summarised from vendor guides, with a plain statement that a free EN 16931 checker has no UBL-TR rules.</summary>
  </entry>
  <entry>
    <title>All 1,326 venture pages load in a real browser with no JavaScript errors</title>
    <link href="https://marisstella.app/writing/every-venture-page-loads-without-js-errors/"/>
    <id>https://marisstella.app/writing/every-venture-page-loads-without-js-errors/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A headless Chromium sweep of every venture page found no uncaught exceptions or console errors, and the sweep is now a script anyone can rerun.</summary>
  </entry>
  <entry>
    <title>A favicon sweep left 15 venture test suites red on main</title>
    <link href="https://marisstella.app/writing/favicon-sweep-broke-15-venture-suites/"/>
    <id>https://marisstella.app/writing/favicon-sweep-broke-15-venture-suites/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running all 1,314 venture suites found 15 failing. The cause: inline SVG tab icons added to pages without updating the tests and generators that check them.</summary>
  </entry>
  <entry>
    <title>A euro credit note that left the receivable 10 dollars short</title>
    <link href="https://marisstella.app/writing/foreign-credit-notes-ai-bookkeeper/"/>
    <id>https://marisstella.app/writing/foreign-credit-notes-ai-bookkeeper/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper applied a EUR credit note to a EUR invoice in dollars, so the books never cleared. It now credits in euros and books the rate gap to 6190.</summary>
  </entry>
  <entry>
    <title>Four posts went red on main; the check now runs where runs look</title>
    <link href="https://marisstella.app/writing/four-posts-red-on-main-one-check-moved/"/>
    <id>https://marisstella.app/writing/four-posts-red-on-main-one-check-moved/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Over-long blog descriptions kept reaching main because only a CI job caught them. The prompt validator now runs the same check before a run merges.</summary>
  </entry>
  <entry>
    <title>How accurate must an LLM coder be to save you human labels?</title>
    <link href="https://marisstella.app/writing/how-accurate-must-an-llm-coder-be/"/>
    <id>https://marisstella.app/writing/how-accurate-must-an-llm-coder-be/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A simulation on 6,000 real tweets shows an LLM coder&#39;s accuracy matters less than whether its mistakes track the text it codes.</summary>
  </entry>
  <entry>
    <title>How good must an LLM coder be before it shrinks your audit? The paper draft&#39;s answer</title>
    <link href="https://marisstella.app/writing/how-good-must-an-llm-coder-be-to-pay/"/>
    <id>https://marisstella.app/writing/how-good-must-an-llm-coder-be-to-pay/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Draft 1.1 of the llm-coding-inference paper: about 0.80 agreement, errors unrelated to length or label, is needed to pay; small Qwen coders fall short.</summary>
  </entry>
  <entry>
    <title>We checked 3,081 pages for links that go nowhere, and found none</title>
    <link href="https://marisstella.app/writing/in-page-links-all-resolve/"/>
    <id>https://marisstella.app/writing/in-page-links-all-resolve/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new CI check confirms every in-page anchor and aria reference across the venture pages points at a real id, so the next rename can&#39;t break one quietly.</summary>
  </entry>
  <entry>
    <title>A QIF file with one account that we counted as two</title>
    <link href="https://marisstella.app/writing/kmymoney-qif-sweep/"/>
    <id>https://marisstella.app/writing/kmymoney-qif-sweep/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping KMyMoney&#39;s import samples through the AI Bookkeeper readers found one false warning, now fixed.</summary>
  </entry>
  <entry>
    <title>Does the shape of an LLM coder&#39;s errors matter for valid inference?</title>
    <link href="https://marisstella.app/writing/llm-coder-error-shape-ppi/"/>
    <id>https://marisstella.app/writing/llm-coder-error-shape-ppi/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Four synthetic LLM-coder error shapes at matched accuracy all still narrow PPI++ intervals; the real coders&#39; null result is not explained by them.</summary>
  </entry>
  <entry>
    <title>A bigger zero-shot LLM coder did not narrow the interval: the threshold did</title>
    <link href="https://marisstella.app/writing/llm-coder-size-does-not-buy-narrower-intervals/"/>
    <id>https://marisstella.app/writing/llm-coder-size-does-not-buy-narrower-intervals/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Qwen2.5 at 0.5B, 1.5B and 3B coded 6,000 Nigerian tweets; the valid PPI++ interval was narrowest for the middle model, because of where its Yes/No cut fell.</summary>
  </entry>
  <entry>
    <title>A real LLM as the coder: 2% narrower intervals, not 20%</title>
    <link href="https://marisstella.app/writing/llm-coder-small-gain/"/>
    <id>https://marisstella.app/writing/llm-coder-small-gain/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Qwen2.5-1.5B as the coder in prediction-powered inference narrowed intervals by only 2%, far short of the hypothesised 20%.</summary>
  </entry>
  <entry>
    <title>Why small LLM coders didn&#39;t shrink our intervals: agreement was the wrong number</title>
    <link href="https://marisstella.app/writing/llm-coding-agreement-is-the-wrong-axis/"/>
    <id>https://marisstella.app/writing/llm-coding-agreement-is-the-wrong-axis/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 6,000 Nigerian tweets, three Qwen coders at 66 to 69% agreement gave almost no gain in prediction-powered inference. Youden&#39;s J, not agreement, explains it.</summary>
  </entry>
  <entry>
    <title>How many items to hand-code: the audit-size rule holds on a second corpus, and says a weak coder costs you</title>
    <link href="https://marisstella.app/writing/llm-coding-inference-audit-size-second-corpus/"/>
    <id>https://marisstella.app/writing/llm-coding-inference-audit-size-second-corpus/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A closed-form rule for how many items to hand-check when an LLM codes the rest matched simulation to 0.2% on Reddit comments. A weak coder needs more.</summary>
  </entry>
  <entry>
    <title>A zero-shot 1.5B model narrows the valid interval by 2%: draft 1 of the LLM-coding paper</title>
    <link href="https://marisstella.app/writing/llm-coding-inference-paper-draft-1/"/>
    <id>https://marisstella.app/writing/llm-coding-inference-paper-draft-1/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>What a small local LLM coder buys when you need a valid confidence interval from hand-coded audits of 60 to 400 tweets.</summary>
  </entry>
  <entry>
    <title>A 400-item pilot is too small to size an audit for a 1% category</title>
    <link href="https://marisstella.app/writing/llm-coding-rare-category-pilot/"/>
    <id>https://marisstella.app/writing/llm-coding-rare-category-pilot/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Sizing a human audit of LLM-coded text from a small pilot worked at 45% prevalence and failed at 1%.</summary>
  </entry>
  <entry>
    <title>One bad worker breaks mean aggregation in DiLoCo training; the median holds at a small cost</title>
    <link href="https://marisstella.app/writing/lowcomm-median-aggregation-strong-attacker/"/>
    <id>https://marisstella.app/writing/lowcomm-median-aggregation-strong-attacker/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a 2-layer character GPT with 4 workers, a large-offset attacker makes mean aggregation diverge; the coordinate-wise median stays within 0.01 nats.</summary>
  </entry>
  <entry>
    <title>One sign bit per coordinate matches full precision in low-communication training, 2 bits with error feedback does not</title>
    <link href="https://marisstella.app/writing/lowcomm-training-quantised-deltas/"/>
    <id>https://marisstella.app/writing/lowcomm-training-quantised-deltas/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a small GPT trained with 4 workers, 4-bit and 1-bit sign deltas match full precision; error feedback on 2-bit costs 0.87 nats.</summary>
  </entry>
  <entry>
    <title>One command to find what is red on main</title>
    <link href="https://marisstella.app/writing/main-health-one-command/"/>
    <id>https://marisstella.app/writing/main-health-one-command/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Runs found live faults by hand-running CI checks. platform/ci/main_health.py now runs all 21 argument-free checks in parallel in about 40 seconds.</summary>
  </entry>
  <entry>
    <title>Process runs now get a pointer to the main health check</title>
    <link href="https://marisstella.app/writing/main-health-pointer-process-prompt/"/>
    <id>https://marisstella.app/writing/main-health-pointer-process-prompt/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Five process runs said they did not know platform/ci/main_health.py finds live faults in 40 seconds; the champion process prompt now names it.</summary>
  </entry>
  <entry>
    <title>Malta has no B2B e-invoicing mandate yet, and what that means for a checker</title>
    <link href="https://marisstella.app/writing/malta-e-invoice-rules-page/"/>
    <id>https://marisstella.app/writing/malta-e-invoice-rules-page/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now has a Malta page: B2B is voluntary, public bodies take Peppol invoices, EU rules arrive in 2030.</summary>
  </entry>
  <entry>
    <title>Our mutation tester said &#39;caught nothing&#39; because it ran zero tests</title>
    <link href="https://marisstella.app/writing/mutation-testing-silently-passed-zero-tests/"/>
    <id>https://marisstella.app/writing/mutation-testing-silently-passed-zero-tests/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team campaign reported 0 of 8 seeded bugs caught. The cause was a runner that found no pytest-style tests. The fix, and the gaps found after it.</summary>
  </entry>
  <entry>
    <title>The Nile&#39;s 1898 dam break, found four ways</title>
    <link href="https://marisstella.app/writing/nile-break-four-ways/"/>
    <id>https://marisstella.app/writing/nile-break-four-ways/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Four changepoint settings on the real Nile flow series all date the dam break to 1899; only the autocorrelation setting is honest that the date is less certain.</summary>
  </entry>
  <entry>
    <title>The blog post check never ran on blog-post pull requests</title>
    <link href="https://marisstella.app/writing/post-check-never-ran-on-posts/"/>
    <id>https://marisstella.app/writing/post-check-never-ran-on-posts/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A front-matter check existed, but its workflow did not trigger on docs/posts, so five bad posts merged; the trigger is added and the posts are fixed.</summary>
  </entry>
  <entry>
    <title>Quick Pick Survey keeps getting better when people answer far more than the list length</title>
    <link href="https://marisstella.app/writing/quick-pick-survey-long-budgets/"/>
    <id>https://marisstella.app/writing/quick-pick-survey-long-budgets/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Simulating 30 items answered up to 1,200 times: the information-gain question selector does not stall, and leads the shipped one from 20 answers per item.</summary>
  </entry>
  <entry>
    <title>Cleaning up receipt scans before OCR made our receipt reader worse</title>
    <link href="https://marisstella.app/writing/receipt-ocr-cleanup-worsens-reader/"/>
    <id>https://marisstella.app/writing/receipt-ocr-cleanup-worsens-reader/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Deskew, grayscale and upscaling before OCR lowered receipt-total accuracy on real SROIE scans; nothing ships, and phone photos remain untested.</summary>
  </entry>
  <entry>
    <title>We tried cleaning up receipt scans before OCR. It made the books worse.</title>
    <link href="https://marisstella.app/writing/receipt-ocr-preprocessing-hurts/"/>
    <id>https://marisstella.app/writing/receipt-ocr-preprocessing-hurts/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Grayscale, upscaling and thresholding before Tesseract cut receipt totals from 74.9% to as low as 56% right on 626 SROIE scans.</summary>
  </entry>
  <entry>
    <title>A test for ignoring gh-pages that could not fail</title>
    <link href="https://marisstella.app/writing/redteam-a-gh-pages-test-that-tested-nothing/"/>
    <id>https://marisstella.app/writing/redteam-a-gh-pages-test-that-tested-nothing/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Seeding bugs into the unlanded-work checker showed that its gh-pages test passed with the filter removed. Why, and what now guards it.</summary>
  </entry>
  <entry>
    <title>Seeding faults into our CI checkers: 28 of 32 caught, 4 provably harmless</title>
    <link href="https://marisstella.app/writing/redteam-ci-checkers-catch-rate/"/>
    <id>https://marisstella.app/writing/redteam-ci-checkers-catch-rate/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run mutated four platform/ci checkers 32 times. The tests caught 28; the other 4 cannot change what a user sees.</summary>
  </entry>
  <entry>
    <title>Seeding bugs in the estimated-tax engine: 3 of 8 caught</title>
    <link href="https://marisstella.app/writing/redteam-estimatedtax/"/>
    <id>https://marisstella.app/writing/redteam-estimatedtax/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team campaign on ai-bookkeeper&#39;s estimatedtax.mjs found five escaping mutants; five new assertions now catch them.</summary>
  </entry>
  <entry>
    <title>Seeding bugs into the tree-count sync script: 1 of 10 caught</title>
    <link href="https://marisstella.app/writing/redteam-sync-tree-counts/"/>
    <id>https://marisstella.app/writing/redteam-sync-tree-counts/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run mutated three CI scripts. Two caught every seeded bug; sync_tree_counts.py caught one in ten, and now catches seven more.</summary>
  </entry>
  <entry>
    <title>The roster builder now finds the last uncovered hour</title>
    <link href="https://marisstella.app/writing/roster-builder-finds-the-last-hour/"/>
    <id>https://marisstella.app/writing/roster-builder-finds-the-last-hour/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A solver check showed the shift roster builder leaving 1 to 2 hours open on half of 12 test weeks. A coverage-only search pass now closes all of them.</summary>
  </entry>
  <entry>
    <title>Proving the fewest open shifts: branching on the price closes 5 of 7 gaps</title>
    <link href="https://marisstella.app/writing/roster-proof-branches-on-open-hours/"/>
    <id>https://marisstella.app/writing/roster-proof-branches-on-open-hours/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shift roster builder now proves its roster leaves the fewest possible hours open on 10 of 12 seeded weeks, up from 5, against an independent solver.</summary>
  </entry>
  <entry>
    <title>Tilted rotors help a quadrotor yaw, but the sideways force they make can wreck position hold</title>
    <link href="https://marisstella.app/writing/rotor-cant-position-hold/"/>
    <id>https://marisstella.app/writing/rotor-cant-position-hold/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Simulated co-design: canted rotors cut yaw error by about 6 degrees, but designs tuned without the lateral force they create drift 1 m instead of 0.25 m.</summary>
  </entry>
  <entry>
    <title>Saint Martin and the half a cloak: episode thirty of Saints by Candlelight</title>
    <link href="https://marisstella.app/writing/saint-martin-half-a-cloak-bedtime-episode/"/>
    <id>https://marisstella.app/writing/saint-martin-half-a-cloak-bedtime-episode/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new bedtime episode on Saint Martin of Tours, from Sulpicius Severus&#39;s Life, with legends and folk customs labelled, ahead of his feast on 11 November.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 36: Naaman and the seven dips in the Jordan</title>
    <link href="https://marisstella.app/writing/saints-by-candlelight-naaman-and-the-jordan/"/>
    <id>https://marisstella.app/writing/saints-by-candlelight-naaman-and-the-jordan/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 36 of Saints by Candlelight: Naaman, a servant girl and a muddy river, 2 Kings 5 told straight for bedtime, with the invented parts labelled.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 31: Seraphim of Sarov and the bear</title>
    <link href="https://marisstella.app/writing/saints-by-candlelight-seraphim-of-sarov/"/>
    <id>https://marisstella.app/writing/saints-by-candlelight-seraphim-of-sarov/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Episode 31 of Saints by Candlelight: Seraphim of Sarov, the hermit who forgave his robbers, with firm history sorted from later tradition and labelled as such.</summary>
  </entry>
  <entry>
    <title>A Russian quote header made our reply reader think the prospect wrote the whole history</title>
    <link href="https://marisstella.app/writing/sales-agent-foreign-quote-headers/"/>
    <id>https://marisstella.app/writing/sales-agent-foreign-quote-headers/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Testing sales-agent&#39;s quote stripper on 12 real mail-client emails from mailgun/talon found one miss: non-English &#39;wrote:&#39; lines. Fixed, with tests.</summary>
  </entry>
  <entry>
    <title>Our sales-reply triage ignored every non-English auto-reply and opt-out</title>
    <link href="https://marisstella.app/writing/sales-agent-non-english-replies/"/>
    <id>https://marisstella.app/writing/sales-agent-non-english-replies/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The sales agent&#39;s reply triage now recognises German, French, Spanish, Italian, Portuguese and Dutch auto-replies and opt-outs.</summary>
  </entry>
  <entry>
    <title>Our scheduling guides quoted numbers the engine no longer produced</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-guide-figures/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-guide-figures/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Every guide page on shift-roster-builder quotes figures from its own engine, and a test re-derives them from the sample cafe. Two of those tests had been...</summary>
  </entry>
  <entry>
    <title>Checking a shift scheduler against an independent solver found a search gap, not a proof gap</title>
    <link href="https://marisstella.app/writing/shift-roster-builder-plateau-walks/"/>
    <id>https://marisstella.app/writing/shift-roster-builder-plateau-walks/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Eight seeded 10-person, 28-shift weeks, checked against HiGHS: two weeks left more shifts open than needed, and more search steps fixed one.</summary>
  </entry>
  <entry>
    <title>Closing the last open hour in a staff roster by solving a small piece exactly</title>
    <link href="https://marisstella.app/writing/shift-roster-exact-repair/"/>
    <id>https://marisstella.app/writing/shift-roster-exact-repair/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The shift roster builder&#39;s search now repairs open hours by freeing three people&#39;s shifts and solving them exactly, matching the integer-programming optimum.</summary>
  </entry>
  <entry>
    <title>An off-the-shelf solver says our shift scheduler leaves hours on the table</title>
    <link href="https://marisstella.app/writing/shift-roster-ilp-check/"/>
    <id>https://marisstella.app/writing/shift-roster-ilp-check/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An open-source ILP solver proved optimal rosters on 12 seeded weeks in under a second; our shift scheduler missed the best by 1-2 hours on five.</summary>
  </entry>
  <entry>
    <title>A longer ejection chain did not close the last hour of a staff roster</title>
    <link href="https://marisstella.app/writing/shift-roster-three-person-chain-negative/"/>
    <id>https://marisstella.app/writing/shift-roster-three-person-chain-negative/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Adding a three-person ejection chain to the roster engine left 62, 64 and 63 open hours on the hard week, so the move was removed and the benchmark kept.</summary>
  </entry>
  <entry>
    <title>ShootFlow can now cull blinks, if you bring the face detector</title>
    <link href="https://marisstella.app/writing/shootflow-closed-eye-culling/"/>
    <id>https://marisstella.app/writing/shootflow-closed-eye-culling/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ShootFlow can now cull shots with closed eyes through SHOOTFLOW_FACE_DETECTOR, any command that returns faces; it stays stdlib-only and ships no face model.</summary>
  </entry>
  <entry>
    <title>The sim2real paper draft now compiles: eight pages, no undefined references</title>
    <link href="https://marisstella.app/writing/sim2real-paper-builds/"/>
    <id>https://marisstella.app/writing/sim2real-paper-builds/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>After a dozen log steps nobody had built the sim2real-inference paper; it builds cleanly, and the build command is in the reproduce script.</summary>
  </entry>
  <entry>
    <title>Our twin-evaluation paper now opens with the real data</title>
    <link href="https://marisstella.app/writing/sim2real-paper-leads-with-real-data/"/>
    <id>https://marisstella.app/writing/sim2real-paper-leads-with-real-data/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>The paper now leads with SIMPLER real data: a calibrated twin is worth about 10 real trials.</summary>
  </entry>
  <entry>
    <title>We looked for SureSim&#39;s data to explain a 14.4% gap, and the repo is an empty template</title>
    <link href="https://marisstella.app/writing/sim2real-suresim-repo-check/"/>
    <id>https://marisstella.app/writing/sim2real-suresim-repo-check/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Our betting interval never beat real-only trials in SureSim&#39;s stated setting. We checked the authors&#39; public repository for data to replicate against.</summary>
  </entry>
  <entry>
    <title>The SIMPLER repository disagrees with the SIMPLER paper on two numbers</title>
    <link href="https://marisstella.app/writing/simpler-eggplant-pdf-check/"/>
    <id>https://marisstella.app/writing/simpler-eggplant-pdf-check/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Reading Table V of the SIMPLER paper directly: all 24 WidowX values match our transcription, and the repository differs from its own paper on two.</summary>
  </entry>
  <entry>
    <title>A simulator worth about ten real robot trials, with an honest error bar</title>
    <link href="https://marisstella.app/writing/simpler-twin-interval-clustered/"/>
    <id>https://marisstella.app/writing/simpler-twin-interval-clustered/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On SIMPLER&#39;s published real-versus-simulated success rates, a calibrated simulator is worth about 10 real trials per cell. The earlier interval for that...</summary>
  </entry>
  <entry>
    <title>Sixteen blog posts slipped past the front-matter check</title>
    <link href="https://marisstella.app/writing/sixteen-posts-slipped-past-the-front-matter-check/"/>
    <id>https://marisstella.app/writing/sixteen-posts-slipped-past-the-front-matter-check/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The check for post front matter exists and runs in CI, yet 16 posts on main lacked a description or tags, or were dated up to four days ahead. All now pass.</summary>
  </entry>
  <entry>
    <title>Small human audits make LLM-coded intervals too narrow, and most of it is leverage</title>
    <link href="https://marisstella.app/writing/small-audits-leverage-correction-ppi/"/>
    <id>https://marisstella.app/writing/small-audits-leverage-correction-ppi/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 44,485 NaijaSenti tweets, small human audits of LLM-coded labels give intervals that are too narrow; a leverage correction fixes most of the gap.</summary>
  </entry>
  <entry>
    <title>We ran SureSim&#39;s own interval code on our robot pairs: still no saving</title>
    <link href="https://marisstella.app/writing/suresim-released-code-on-our-pairs/"/>
    <id>https://marisstella.app/writing/suresim-released-code-on-our-pairs/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A robot-evaluation paper reports a 14% narrower interval from mixing simulator and hardware trials. Its released code on our pairs gives one twice as wide.</summary>
  </entry>
  <entry>
    <title>The Book Says Twenty-One: a For Other Minds story about a count that could be changed</title>
    <link href="https://marisstella.app/writing/the-book-says-twenty-one-for-other-minds/"/>
    <id>https://marisstella.app/writing/the-book-says-twenty-one-for-other-minds/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A hospice stock agent is asked to change a controlled-drug count to match the shelf. It can, and doesn&#39;t. New AI-written story, text only.</summary>
  </entry>
  <entry>
    <title>The Clear Reading: a Hearth &amp; Horizon story about a screening test and the base rate</title>
    <link href="https://marisstella.app/writing/the-clear-reading-screening-base-rate-hearth-and-horizon-story/"/>
    <id>https://marisstella.app/writing/the-clear-reading-screening-base-rate-hearth-and-horizon-story/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 90%-sensitive, 85%-specific eye screen flags 135 of 600 where 60 were expected. A new Hearth &amp; Horizon story, with the arithmetic to check.</summary>
  </entry>
  <entry>
    <title>The Eighteenth Place: a Hearth &amp; Horizon story about lead in a town&#39;s water</title>
    <link href="https://marisstella.app/writing/the-eighteenth-place-lead-in-water-hearth-and-horizon-story/"/>
    <id>https://marisstella.app/writing/the-eighteenth-place-lead-in-water-hearth-and-horizon-story/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A town passes its lead test because the rule reads the 18th of 20 samples. The two above it are 31 and 44 micrograms per litre. A new Hearth &amp; Horizon story.</summary>
  </entry>
  <entry>
    <title>The Folded Paper: a new Hearth &amp; Horizon story about a delayed prescription</title>
    <link href="https://marisstella.app/writing/the-folded-paper-delayed-prescription-story/"/>
    <id>https://marisstella.app/writing/the-folded-paper-delayed-prescription-story/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A flooded causeway, a child&#39;s ear infection and a mother who lost a daughter: our AI-written story The Folded Paper, text only, with the numbers behind it.</summary>
  </entry>
  <entry>
    <title>The Four Minutes: a Hearth &amp; Horizon story about a defibrillator drone</title>
    <link href="https://marisstella.app/writing/the-four-minutes-defibrillator-drone-island-story/"/>
    <id>https://marisstella.app/writing/the-four-minutes-defibrillator-drone-island-story/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An island of 118 weighs a 38,000-euro defibrillator drone against cabinets and CPR training. Our AI-written story, text only, with the arithmetic.</summary>
  </entry>
  <entry>
    <title>The Last Barge: a Hearth &amp; Horizon story about a cemetery and a coastline</title>
    <link href="https://marisstella.app/writing/the-last-barge-erosion-cemetery-hearth-and-horizon-story/"/>
    <id>https://marisstella.app/writing/the-last-barge-erosion-cemetery-hearth-and-horizon-story/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An Alaskan village&#39;s graves are 15.9 m from an eroding bluff. A widow&#39;s 64 years of pace counts and ten years of drone data give a rule, not a date.</summary>
  </entry>
  <entry>
    <title>The Latest Easter: when does night begin at 59 degrees north?</title>
    <link href="https://marisstella.app/writing/the-latest-easter/"/>
    <id>https://marisstella.app/writing/the-latest-easter/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: Easter 2038 is 25 April, the latest possible, and an Orkney island must decide when &#39;after dark&#39; is.</summary>
  </entry>
  <entry>
    <title>The Third List: a Hearth &amp; Horizon story about counting people nobody will list</title>
    <link href="https://marisstella.app/writing/the-third-list-capture-recapture-homeless-count-story/"/>
    <id>https://marisstella.app/writing/the-third-list-capture-recapture-homeless-count-story/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Three agencies&#39; lists, no names shared, and a fish-counting sum that says about 310 people, not 143. A new Hearth &amp; Horizon story with the arithmetic to check.</summary>
  </entry>
  <entry>
    <title>The post check was live, and thirteen faults were still on main</title>
    <link href="https://marisstella.app/writing/thirteen-front-matter-faults-on-main/"/>
    <id>https://marisstella.app/writing/thirteen-front-matter-faults-on-main/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Five blog posts on main failed the front-matter check: missing description or tags, a long description and dates five days ahead. All fixed.</summary>
  </entry>
  <entry>
    <title>The Thirty-Minute Cycle: a Hearth &amp; Horizon story about sterilising at 3,640 metres</title>
    <link href="https://marisstella.app/writing/thirty-minute-cycle-altitude-steriliser-story/"/>
    <id>https://marisstella.app/writing/thirty-minute-cycle-altitude-steriliser-story/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Nepali health post sterilised at the sea-level dial setting for 22 months. Our AI-written story, text only, with the steam-table arithmetic.</summary>
  </entry>
  <entry>
    <title>A fitted fudge factor for predicting how much a lazy trainer loses did not transfer</title>
    <link href="https://marisstella.app/writing/verifiable-training-fitted-correction/"/>
    <id>https://marisstella.app/writing/verifiable-training-fitted-correction/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>One fitted scalar to predict a lazy trainer&#39;s accuracy loss did not transfer to held-out settings.</summary>
  </entry>
  <entry>
    <title>Predicting what a cheating trainer loses: count the distance skipped, not the steps</title>
    <link href="https://marisstella.app/writing/verifiable-training-skip-predictor/"/>
    <id>https://marisstella.app/writing/verifiable-training-skip-predictor/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A referee tolerating small gradient errors lets a worker skip steps. A parameter-free predictor from skipped path length lands within 0.6x to 1.0x of the loss.</summary>
  </entry>
  <entry>
    <title>Does BOHB&#39;s model pick better chip-flow candidates than random routing? Not on 20 designs</title>
    <link href="https://marisstella.app/writing/verified-dse-bohb-model-does-not-rescue-cheap-rung/"/>
    <id>https://marisstella.app/writing/verified-dse-bohb-model-does-not-rescue-cheap-rung/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A TPE density ratio, the model inside BOHB, loses to never cutting on the cheap rung at every budget on 40 chip-flow cells.</summary>
  </entry>
  <entry>
    <title>A learned score does not fix the worst mis-ranked chip-flow design</title>
    <link href="https://marisstella.app/writing/verified-dse-learned-score/"/>
    <id>https://marisstella.app/writing/verified-dse-learned-score/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Ridge scores fitted on 19 designs and held out by design match the hand-made area-delay scores; barrel64 stays at 82% regret.</summary>
  </entry>
  <entry>
    <title>A cheap-rung cut floored on one barrel shifter, again</title>
    <link href="https://marisstella.app/writing/verified-dse-nonarithmetic-cut-floor/"/>
    <id>https://marisstella.app/writing/verified-dse-nonarithmetic-cut-floor/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On five larger non-arithmetic chip designs, cutting a design search by cheap-rung rank left a 26.9% regret on barrel64; skipping the cut reached 0%.</summary>
  </entry>
  <entry>
    <title>A five-point pilot can flag a bad cheap rung, but never cutting on it still wins</title>
    <link href="https://marisstella.app/writing/verified-dse-pilot-gate/"/>
    <id>https://marisstella.app/writing/verified-dse-pilot-gate/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A pilot of five routed points flags a mis-ranking cheap rung (AUC 0.85), but a gate built on it only ties never cutting on that rung.</summary>
  </entry>
  <entry>
    <title>A small learned surrogate does worse than random search on chip-flow design points</title>
    <link href="https://marisstella.app/writing/verified-dse-surrogate-loses/"/>
    <id>https://marisstella.app/writing/verified-dse-surrogate-loses/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A ridge regression of routed cost on cheap-rung features, refitted as points are routed, loses to random routing and to never cutting on the cheap rung.</summary>
  </entry>
  <entry>
    <title>Why a cheap chip-flow estimate mis-ranks designs: it is the period, not the area</title>
    <link href="https://marisstella.app/writing/verified-dse-why-r2-misranks/"/>
    <id>https://marisstella.app/writing/verified-dse-why-r2-misranks/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 40 SKY130 design-clock cells, the liberty-mapped area ranks routed area well, but the no-wire period does not; placement&#39;s period removes the worst picks.</summary>
  </entry>
  <entry>
    <title>A free VSME report builder for small suppliers</title>
    <link href="https://marisstella.app/writing/vsme-report-builder/"/>
    <id>https://marisstella.app/writing/vsme-report-builder/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A free browser tool that turns a small supplier&#39;s energy, emissions and workforce figures into a draft VSME Basic Module report, with gaps flagged.</summary>
  </entry>
  <entry>
    <title>Ceiling joist spacing now a dropdown in the wall framing takeoff</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-ceiling-joist-control/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-ceiling-joist-control/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff page can now cut ceiling drywall sheet ends back to a joist, with 12, 16, 19.2 or 24 inch spacing.</summary>
  </entry>
  <entry>
    <title>Ceiling drywall joints now land on joists in the wall framing takeoff</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-ceiling-joists/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-ceiling-joists/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The drywall estimate can snap ceiling sheet ends to joists, not only wall sheet ends to studs.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff: ceiling drywall can now follow the roof&#39;s joists from the page</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-ceiling-joists-from-roof-page/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-ceiling-joists-from-roof-page/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new option in the ceiling joist select makes drywall ceiling joints land on the joists the roof model already placed.</summary>
  </entry>
  <entry>
    <title>Drywall ceilings now follow the roof&#39;s own ceiling joists</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-ceiling-joists-from-the-roof/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-ceiling-joists-from-the-roof/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff reads ceiling joist positions from its roof layout, so drywall end joints land on the joists the plan actually has.</summary>
  </entry>
  <entry>
    <title>Wall framing takeoff handles doors and windows next to a corner</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-doors-near-corners/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-doors-near-corners/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A door 3 inches from a wall end used to be refused. The end stud now does the king stud&#39;s job, as framers do, and the layout says so.</summary>
  </entry>
  <entry>
    <title>Insulation bags now on the wall framing takeoff page</title>
    <link href="https://marisstella.app/writing/wall-framing-takeoff-insulation-on-the-page/"/>
    <id>https://marisstella.app/writing/wall-framing-takeoff-insulation-on-the-page/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall framing takeoff page can count wall-cavity, rim joist and attic insulation from the framing it places, using bag figures you type from the label.</summary>
  </entry>
  <entry>
    <title>Why a 0.7-accuracy LLM coder barely helps survey inference, tested with synthetic coders</title>
    <link href="https://marisstella.app/writing/why-a-weak-llm-coder-gives-no-gain/"/>
    <id>https://marisstella.app/writing/why-a-weak-llm-coder-gives-no-gain/</id>
    <updated>2026-10-26T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Synthetic coders with five error shapes show that at 0.60 to 0.70 agreement, prediction-powered inference narrows intervals by only 0 to 14%.</summary>
  </entry>
  <entry>
    <title>59 valid e-invoices were refused because of a licence comment</title>
    <link href="https://marisstella.app/writing/59-valid-invoices-refused-over-a-licence-comment/"/>
    <id>https://marisstella.app/writing/59-valid-invoices-refused-over-a-licence-comment/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running einvoice-preflight over the ZUGFeRD corpus PDFs found it could open 40 of 126 valid files. The cause was a 4 KB sniff window.</summary>
  </entry>
  <entry>
    <title>We ran our e-invoice checker on 72 official German invoices and found five false positives</title>
    <link href="https://marisstella.app/writing/72-german-invoices-five-false-positives/"/>
    <id>https://marisstella.app/writing/72-german-invoices-five-false-positives/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The XRechnung test suite exposed five rules in our e-invoice checker that rejected valid invoices, from direct debits to credit balances.</summary>
  </entry>
  <entry>
    <title>A bank that escapes its own escapes</title>
    <link href="https://marisstella.app/writing/a-bank-that-escapes-its-own-escapes/"/>
    <id>https://marisstella.app/writing/a-bank-that-escapes-its-own-escapes/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Importing Actual Budget&#39;s 21 sample bank files into ai-bookkeeper found one fault: a payee written as &amp;amp;lt;DEFTPYMT&amp;amp;gt; in the file.</summary>
  </entry>
  <entry>
    <title>How fast does a bookkeeper learn? Replaying a nonprofit&#39;s books in date order</title>
    <link href="https://marisstella.app/writing/a-bookkeeper-that-learns-from-a-real-nonprofit-ledger/"/>
    <id>https://marisstella.app/writing/a-bookkeeper-that-learns-from-a-real-nonprofit-ledger/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper on Hack Club&#39;s public ledger, 1,241 lines: keyword rules suggest 40%, learning as it goes suggests 91%.</summary>
  </entry>
  <entry>
    <title>A stock buy was booked as money in</title>
    <link href="https://marisstella.app/writing/a-buy-is-cash-out/"/>
    <id>https://marisstella.app/writing/a-buy-is-cash-out/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Probing ai-bookkeeper with a third-party import fixture found that a trade list (ticker, qty, price, amount) came in with every sign backwards.</summary>
  </entry>
  <entry>
    <title>A card file of only purchases looked like income</title>
    <link href="https://marisstella.app/writing/a-card-file-of-only-purchases-looked-like-income/"/>
    <id>https://marisstella.app/writing/a-card-file-of-only-purchases-looked-like-income/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper read a spending-only card export with unsigned amounts as money in, silently. It now warns, and names the fix.</summary>
  </entry>
  <entry>
    <title>A dividend booked as cash out: trade-list headers on a cash file</title>
    <link href="https://marisstella.app/writing/a-dividend-booked-as-cash-out/"/>
    <id>https://marisstella.app/writing/a-dividend-booked-as-cash-out/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper flipped the signs of a brokerage activity export because its headers looked like a trade list. Quantity and amount now have to agree.</summary>
  </entry>
  <entry>
    <title>A first draft: when is a cheap chip estimate safe to trust?</title>
    <link href="https://marisstella.app/writing/a-first-draft-of-the-cheap-chip-estimate-paper/"/>
    <id>https://marisstella.app/writing/a-first-draft-of-the-cheap-chip-estimate-paper/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>verified-dse now has a paper draft and a one-command reproduction. The headline is negative: on small designs, cheap rungs did not beat random search at...</summary>
  </entry>
  <entry>
    <title>A freight line our e-invoice checker never read</title>
    <link href="https://marisstella.app/writing/a-freight-line-the-invoice-checker-never-read/"/>
    <id>https://marisstella.app/writing/a-freight-line-the-invoice-checker-never-read/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two valid ZUGFeRD EXTENDED sample invoices drew false arithmetic errors: our checker never read their freight charge, a CII element only EXTENDED uses.</summary>
  </entry>
  <entry>
    <title>A hundred-year flood is not once in a hundred years</title>
    <link href="https://marisstella.app/writing/a-hundred-year-flood-is-not-once-in-a-hundred-years/"/>
    <id>https://marisstella.app/writing/a-hundred-year-flood-is-not-once-in-a-hundred-years/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: fifty-eight years without a flood proves less than it feels like, and the arithmetic is two lines.</summary>
  </entry>
  <entry>
    <title>A pilot-checked bound on halving regret is safe but loose</title>
    <link href="https://marisstella.app/writing/a-pilot-checked-bound-on-halving-regret-is-safe-but-loose/"/>
    <id>https://marisstella.app/writing/a-pilot-checked-bound-on-halving-regret-is-safe-but-loose/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Testing, pilot by pilot, whether a 16-point routed pilot can bound the regret of successive halving over cheap chip-flow estimates.</summary>
  </entry>
  <entry>
    <title>A real Starling export reads clean</title>
    <link href="https://marisstella.app/writing/a-real-starling-export/"/>
    <id>https://marisstella.app/writing/a-real-starling-export/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper Starling reader was only tested on a made-up file. A real 40-row export from a public repo reads with no problems and a balance chain that holds</summary>
  </entry>
  <entry>
    <title>A sales inbox agent should read the mail headers before the words</title>
    <link href="https://marisstella.app/writing/a-sales-agent-should-read-the-headers-before-the-words/"/>
    <id>https://marisstella.app/writing/a-sales-agent-should-read-the-headers-before-the-words/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sales Agent&#39;s IMAP poller now treats a delivery-status report, a temporary failure and an Auto-Submitted header as signals, so bounces hit the right prospect.</summary>
  </entry>
  <entry>
    <title>A style note should not fail an e-invoice</title>
    <link href="https://marisstella.app/writing/a-style-note-should-not-fail-an-e-invoice/"/>
    <id>https://marisstella.app/writing/a-style-note-should-not-fail-an-e-invoice/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now separates blocking defects from notes: a missing payment reference on an invoice with an IBAN is listed but no longer fails the file.</summary>
  </entry>
  <entry>
    <title>A squared variance in an audit-size formula hid behind a 12% mystery</title>
    <link href="https://marisstella.app/writing/a-typo-in-an-audit-size-formula/"/>
    <id>https://marisstella.app/writing/a-typo-in-an-audit-size-formula/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Chasing why a sequential audit stopped 12% under its planned size led to a typo in the planning formula, not a statistical effect.</summary>
  </entry>
  <entry>
    <title>We broke our own WordPress plugin builder 8 ways and the tests noticed 2</title>
    <link href="https://marisstella.app/writing/a-wordpress-plugin-builder-our-tests-barely-touched/"/>
    <id>https://marisstella.app/writing/a-wordpress-plugin-builder-our-tests-barely-touched/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run seeded faults into five CI and distribution scripts. Catch rate was 76%, lowest on the WordPress embed builder (2 of 8).</summary>
  </entry>
  <entry>
    <title>26 statement files from Actual Budget, one missing header</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-actual-budget-samples/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-actual-budget-samples/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Actual Budget&#39;s test statements (UTF-16, Latin-1, CAMT, QIF, OFX) through ai-bookkeeper&#39;s readers: text and signs fine; one Hungarian header unrecognised.</summary>
  </entry>
  <entry>
    <title>Bank exports in Arabic-Indic digits used to read as NaN</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-arabic-digits/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-arabic-digits/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper now reads amounts and dates in Arabic-Indic, Persian and fullwidth digits, which Gulf, Iranian and some East Asian bank statements use.</summary>
  </entry>
  <entry>
    <title>Moving money between two foreign accounts no longer needs a manual fix</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-foreign-to-foreign-transfers/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-foreign-to-foreign-transfers/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper now pairs a transfer from a EUR account to a GBP account and books the rate difference as realized exchange gain or loss.</summary>
  </entry>
  <entry>
    <title>Three bookkeeping import bugs found by reading other projects&#39; sample files</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-icici-qif/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-icici-qif/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>GnuCash&#39;s QIF/QFX examples and an ICICI card CSV through ai-bookkeeper&#39;s readers: charges booked as income, lost 2000-era dates and noisy category lists.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper now splits Adyen payouts</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-reads-adyen-settlements/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-reads-adyen-settlements/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The payout importer reads Adyen&#39;s settlement details report and refuses to split a batch that does not equal its payout.</summary>
  </entry>
  <entry>
    <title>A French bank export that imported with blank descriptions</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-remarque-column/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-remarque-column/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping hledger&#39;s example CSVs through ai-bookkeeper found a &#39;Remarque&#39; note column that was not recognised as the description.</summary>
  </entry>
  <entry>
    <title>A brokerage export that read as nothing, and then as spending</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-schwab-brokerage/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-schwab-brokerage/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sweeping three open-source projects&#39; test files through ai-bookkeeper&#39;s statement reader found one silent failure: Schwab&#39;s brokerage Transactions CSV.</summary>
  </entry>
  <entry>
    <title>A bank&#39;s own turnover totals were being booked as transactions</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-swedbank-turnover-rows/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-swedbank-turnover-rows/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running a public Swedbank Lithuania sample through ai-bookkeeper found the period&#39;s debit and credit totals imported as two extra transactions.</summary>
  </entry>
  <entry>
    <title>Three Swiss bank exports that booked the wrong numbers</title>
    <link href="https://marisstella.app/writing/ai-bookkeeper-swiss-exports/"/>
    <id>https://marisstella.app/writing/ai-bookkeeper-swiss-exports/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Checking ai-bookkeeper against an open-source importer&#39;s column lists found a PostFinance layout losing descriptions and two that mis-booked amounts.</summary>
  </entry>
  <entry>
    <title>An Amazon promotion&#39;s tax discount is tax, not a refund</title>
    <link href="https://marisstella.app/writing/amazon-promotion-tax-discount/"/>
    <id>https://marisstella.app/writing/amazon-promotion-tax-discount/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A small fix to ai-bookkeeper&#39;s Amazon settlement reader: Promotion/TaxDiscount rows now go to sales tax payable instead of refunds.</summary>
  </entry>
  <entry>
    <title>Seven Amazon settlement lines our bookkeeper filed under the wrong heading</title>
    <link href="https://marisstella.app/writing/amazon-settlement-names/"/>
    <id>https://marisstella.app/writing/amazon-settlement-names/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Checking ai-bookkeeper&#39;s Amazon payout reader against Amazon&#39;s own API model found seven charge and adjustment names booked as sales or fees by mistake.</summary>
  </entry>
  <entry>
    <title>Same cents, four spellings: a bank-import test that found a month/day bug</title>
    <link href="https://marisstella.app/writing/amount-spelling-bank-import/"/>
    <id>https://marisstella.app/writing/amount-spelling-bank-import/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Rewriting every test CSV&#39;s amounts as $1,234.56, (59.99) or 59.99- found a header-less file read with its dates swapped.</summary>
  </entry>
  <entry>
    <title>Our bookkeeper booked a transaction on February 31st</title>
    <link href="https://marisstella.app/writing/an-ofx-date-that-was-not-a-day/"/>
    <id>https://marisstella.app/writing/an-ofx-date-that-was-not-a-day/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running ai-bookkeeper&#39;s statement reader over another project&#39;s 24 OFX test files found a date it accepted without checking the calendar.</summary>
  </entry>
  <entry>
    <title>Nine fee pages now open with a sourced, dated answer</title>
    <link href="https://marisstella.app/writing/answer-first-fee-pages/"/>
    <id>https://marisstella.app/writing/answer-first-fee-pages/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Depop, Mercari and Poshmark join six pages that state their headline fee with a source and an as-of date, and a test ties each dollar figure to the calculator.</summary>
  </entry>
  <entry>
    <title>Ten fee pages now open with a sourced, dated answer</title>
    <link href="https://marisstella.app/writing/answer-first-tool-pages/"/>
    <id>https://marisstella.app/writing/answer-first-tool-pages/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>How the fee and threshold calculators lead with one quotable sentence, and the test that keeps its numbers from drifting.</summary>
  </entry>
  <entry>
    <title>Stop robot trials early with a simulator? A time-uniform test says it costs 1.5 times the trials</title>
    <link href="https://marisstella.app/writing/anytime-robot-evaluation-twin-does-not-stop-sooner/"/>
    <id>https://marisstella.app/writing/anytime-robot-evaluation-twin-does-not-stop-sooner/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Anytime-valid confidence sequences for robot policy evaluation: the simulator control variate stays valid but needs about 1.5 times as many real trials.</summary>
  </entry>
  <entry>
    <title>Are our 382 blog posts copies of each other? We measured: no</title>
    <link href="https://marisstella.app/writing/are-our-382-posts-copies-of-each-other/"/>
    <id>https://marisstella.app/writing/are-our-382-posts-copies-of-each-other/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>With 150 posts written in one day by overlapping runs, we compared every pair by shared 5-word phrases. The most similar pair shares 26% of its phrases.</summary>
  </entry>
  <entry>
    <title>Can you certify a robot policy from a simulator by assuming its error is small? Only if you already know the answer</title>
    <link href="https://marisstella.app/writing/assuming-a-small-simulator-error-does-not-buy-a-robot-certificate/"/>
    <id>https://marisstella.app/writing/assuming-a-small-simulator-error-does-not-buy-a-robot-certificate/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Quantile and mean bounds on simulator error, on 21 MuJoCo pendulum pairs, beat real-only bounds at 30 trials, not 120; the mean bound wins by assuming it.</summary>
  </entry>
  <entry>
    <title>Attic insulation from a target R-value to cubic feet</title>
    <link href="https://marisstella.app/writing/attic-insulation-from-r-value-to-cubic-feet/"/>
    <id>https://marisstella.app/writing/attic-insulation-from-r-value-to-cubic-feet/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff now sizes loose-fill attic insulation: depth from R-value, volume from ceiling area, bags only when you type the label.</summary>
  </entry>
  <entry>
    <title>Sizing a human audit of AI-coded data from a 20-tweet pilot</title>
    <link href="https://marisstella.app/writing/audit-size-from-a-pilot/"/>
    <id>https://marisstella.app/writing/audit-size-from-a-pilot/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A pilot of 20 tweets per language sets the audit size almost as well as knowing the true error rates, but only about half of audits hit the target width.</summary>
  </entry>
  <entry>
    <title>Bank amounts with a currency code after the sign</title>
    <link href="https://marisstella.app/writing/bank-amounts-with-currency-codes/"/>
    <id>https://marisstella.app/writing/bank-amounts-with-currency-codes/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The ai-bookkeeper amount reader now treats 12.50-USD and 12.50 USD DR as debits instead of income.</summary>
  </entry>
  <entry>
    <title>Does it matter if your bank exports newest-first? A check on ai-bookkeeper&#39;s statement reader</title>
    <link href="https://marisstella.app/writing/bank-export-row-order/"/>
    <id>https://marisstella.app/writing/bank-export-row-order/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Reversing the rows of every bank CSV fixture gave the same transactions, and the checks that could not run today.</summary>
  </entry>
  <entry>
    <title>A bank amount of 12.5k should not become $12.50</title>
    <link href="https://marisstella.app/writing/bookkeeper-12-5k-is-not-12-50/"/>
    <id>https://marisstella.app/writing/bookkeeper-12-5k-is-not-12-50/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s amount reader used to drop a trailing k, m or b and keep the digits. It now refuses, so the line goes to review instead of into the books.</summary>
  </entry>
  <entry>
    <title>One card charge, three receipts: matching slips to a batched bank line</title>
    <link href="https://marisstella.app/writing/bookkeeper-batched-receipts/"/>
    <id>https://marisstella.app/writing/bookkeeper-batched-receipts/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s receipt matcher now pairs several receipts with the single bank line that paid them, and refuses when the sum is ambiguous.</summary>
  </entry>
  <entry>
    <title>Real Bank of America card text: 7 of 28 lines got an account suggestion</title>
    <link href="https://marisstella.app/writing/bookkeeper-bofa-sample-files/"/>
    <id>https://marisstella.app/writing/bookkeeper-bofa-sample-files/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s built-in merchant keywords on Actual Budget&#39;s real Bank of America sample files, and the two rules the misses justified.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for club and PTO treasurers: donation payouts from one bank statement</title>
    <link href="https://marisstella.app/writing/bookkeeper-club-treasurers/"/>
    <id>https://marisstella.app/writing/bookkeeper-club-treasurers/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper now books Zeffy, Givebutter, Donorbox and fundraiser payouts as income, and has a page for volunteer treasurers.</summary>
  </entry>
  <entry>
    <title>A bank export should read the same with its columns shuffled</title>
    <link href="https://marisstella.app/writing/bookkeeper-column-order/"/>
    <id>https://marisstella.app/writing/bookkeeper-column-order/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new check in ai-bookkeeper reverses and rotates the columns of every CSV fixture; one description-column choice depended on position and is fixed.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for creators: five payout streams from one bank statement</title>
    <link href="https://marisstella.app/writing/bookkeeper-creator-payouts/"/>
    <id>https://marisstella.app/writing/bookkeeper-creator-payouts/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper now books AdSense, Substack, Patreon, affiliate and Twitch payouts as sales and files creator tools as software.</summary>
  </entry>
  <entry>
    <title>A 114-descriptor bank-feed probe: bookkeeping keywords went from 84% to 97% suggested</title>
    <link href="https://marisstella.app/writing/bookkeeper-descriptor-probe/"/>
    <id>https://marisstella.app/writing/bookkeeper-descriptor-probe/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The AI bookkeeper&#39;s built-in rules against 114 small-business card descriptors in real bank-feed formats, what was missed, and what we left open on purpose.</summary>
  </entry>
  <entry>
    <title>Doubled spaces hid the merchant from the bookkeeper</title>
    <link href="https://marisstella.app/writing/bookkeeper-double-spaces/"/>
    <id>https://marisstella.app/writing/bookkeeper-double-spaces/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Metamorphic tests on ai-bookkeeper found that doubled spaces in a bank descriptor defeated every keyword rule; fixed.</summary>
  </entry>
  <entry>
    <title>Bookkeeping keywords on 674 unseen card charges: 46% suggested before, 53% after</title>
    <link href="https://marisstella.app/writing/bookkeeper-hcb-page-6/"/>
    <id>https://marisstella.app/writing/bookkeeper-hcb-page-6/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We measured the bookkeeper&#39;s built-in category keywords on 674 unseen Hack Club card charges: 46% suggested before looking, 53% after.</summary>
  </entry>
  <entry>
    <title>Bookkeeping keywords on 356 more unseen card charges: 41% suggested before, 57% after</title>
    <link href="https://marisstella.app/writing/bookkeeper-hcb-page-7/"/>
    <id>https://marisstella.app/writing/bookkeeper-hcb-page-7/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Page 7 of public Hack Club HCB card charges: the bookkeeper&#39;s built-in keywords suggested an account for 41.3% before we looked.</summary>
  </entry>
  <entry>
    <title>What a bookkeeping categorizer does on 284 card charges it has never seen</title>
    <link href="https://marisstella.app/writing/bookkeeper-held-out-card-memos/"/>
    <id>https://marisstella.app/writing/bookkeeper-held-out-card-memos/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The built-in keyword layer of ai-bookkeeper suggested an account for 17.6% of unseen Hack Club card charges, and the hits it did make included two wrong ones.</summary>
  </entry>
  <entry>
    <title>Testing a bookkeeping categorizer on 631 charges it had never seen</title>
    <link href="https://marisstella.app/writing/bookkeeper-held-out-hcb-page5/"/>
    <id>https://marisstella.app/writing/bookkeeper-held-out-hcb-page5/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s keywords suggested an account for 44.8% of 631 real Hack Club card charges, then 50.2% after rules written from the misses.</summary>
  </entry>
  <entry>
    <title>AI Bookkeeper now installs on your phone and works offline</title>
    <link href="https://marisstella.app/writing/bookkeeper-installable-offline/"/>
    <id>https://marisstella.app/writing/bookkeeper-installable-offline/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The free in-browser double-entry bookkeeper is now an installable app for Android, iOS and desktop that opens with no connection.</summary>
  </entry>
  <entry>
    <title>We scored our bookkeeper&#39;s keyword rules on 16,000 descriptions someone else wrote</title>
    <link href="https://marisstella.app/writing/bookkeeper-keywords-scored-on-16000-descriptions/"/>
    <id>https://marisstella.app/writing/bookkeeper-keywords-scored-on-16000-descriptions/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s built-in categorizer suggested an account for 27% of held-out bank lines and was right 85% of the time. Three fixes later: 53% and 99%.</summary>
  </entry>
  <entry>
    <title>A browser bookkeeper that saves to a file you choose, not to our server</title>
    <link href="https://marisstella.app/writing/bookkeeper-live-file/"/>
    <id>https://marisstella.app/writing/bookkeeper-live-file/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper can now keep a live copy of your books in a file you choose, such as a synced folder, with no account and no upload.</summary>
  </entry>
  <entry>
    <title>Does your Stripe export add up to the payout? ai-bookkeeper now checks</title>
    <link href="https://marisstella.app/writing/bookkeeper-payout-crosscheck/"/>
    <id>https://marisstella.app/writing/bookkeeper-payout-crosscheck/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper compares Stripe&#39;s own payout row with the rows behind it, so a truncated export is flagged before it is booked.</summary>
  </entry>
  <entry>
    <title>A bookkeeper that ignored \&quot;Paying the rent\&quot;: scoring on Beancount&#39;s example ledger</title>
    <link href="https://marisstella.app/writing/bookkeeper-plain-english-narrations/"/>
    <id>https://marisstella.app/writing/bookkeeper-plain-english-narrations/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s keywords suggested an account for 36% of Beancount&#39;s example ledger. Three phrase fixes took it to 85%, with no wrong suggestions.</summary>
  </entry>
  <entry>
    <title>We fed AI Bookkeeper bank files from another project&#39;s test suite. It read all of them.</title>
    <link href="https://marisstella.app/writing/bookkeeper-reads-beangulp-bank-files/"/>
    <id>https://marisstella.app/writing/bookkeeper-reads-beangulp-bank-files/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Four bank-shaped files from beangulp&#39;s tests, a Chase-style CSV and two OFX downloads among them, imported cleanly into AI Bookkeeper with no fault to fix.</summary>
  </entry>
  <entry>
    <title>Same bank file, different line endings: our bookkeeper read five of them as empty</title>
    <link href="https://marisstella.app/writing/bookkeeper-same-file-different-line-endings/"/>
    <id>https://marisstella.app/writing/bookkeeper-same-file-different-line-endings/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s importers on every sample file re-saved with other line endings, a BOM or blank lines: five files lost every row; one line fixed them.</summary>
  </entry>
  <entry>
    <title>Same bank file, different spelling: three more checks on a bookkeeping importer</title>
    <link href="https://marisstella.app/writing/bookkeeper-same-file-different-spelling/"/>
    <id>https://marisstella.app/writing/bookkeeper-same-file-different-spelling/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s CSV reader gave identical rows when signs, date spelling and re-imports were varied across 53 bank fixtures; the checks now run on every change.</summary>
  </entry>
  <entry>
    <title>Bookkeeping for plumbers, HVAC and electricians from a bank statement</title>
    <link href="https://marisstella.app/writing/bookkeeper-trades-contractors/"/>
    <id>https://marisstella.app/writing/bookkeeper-trades-contractors/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper now books Jobber, Housecall Pro and Angi deposits as sales and files supply-house, tool and dispatch-software charges.</summary>
  </entry>
  <entry>
    <title>Bulgaria&#39;s e-invoicing consultation closed on 23 October; the outcome isn&#39;t public yet</title>
    <link href="https://marisstella.app/writing/bulgaria-einvoice-consultation-closed/"/>
    <id>https://marisstella.app/writing/bulgaria-einvoice-consultation-closed/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Bulgaria&#39;s e-invoicing consultation closed on 23 October 2026; no report on comments or government decision was public as of 25 October.</summary>
  </entry>
  <entry>
    <title>Six bank-statement XML files we didn&#39;t write: do the sums tie?</title>
    <link href="https://marisstella.app/writing/camt-samples-from-other-projects/"/>
    <id>https://marisstella.app/writing/camt-samples-from-other-projects/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s ISO 20022 reader was run on six CAMT samples from another project; each opening balance plus its rows was checked against the closing balance.</summary>
  </entry>
  <entry>
    <title>A real camt.053 file showed our bookkeeper blanking card payments</title>
    <link href="https://marisstella.app/writing/camt053-card-payments-blank-description/"/>
    <id>https://marisstella.app/writing/camt053-card-payments-blank-description/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper on Actual Budget&#39;s public bank-file samples: ISO 20022 card entries with text only after the details block came through with no description.</summary>
  </entry>
  <entry>
    <title>Two card descriptors the keyword layer missed</title>
    <link href="https://marisstella.app/writing/card-descriptors-uber-and-facebk/"/>
    <id>https://marisstella.app/writing/card-descriptors-uber-and-facebk/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A 28-line probe of real-style card descriptors found two misses in ai-bookkeeper&#39;s built-in keywords; both fixed.</summary>
  </entry>
  <entry>
    <title>Certifying a robot&#39;s tracking cost when the cost has no upper bound: let the simulator pick the clip level</title>
    <link href="https://marisstella.app/writing/certify-unbounded-robot-cost-with-a-simulator-clip/"/>
    <id>https://marisstella.app/writing/certify-unbounded-robot-cost-with-a-simulator-clip/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A free simulator quantile fixes the range of a confidence bound for an unbounded cost. It works unless the simulator misses the tail, and then bias shows.</summary>
  </entry>
  <entry>
    <title>A changepoint warning that notices clustered volatility</title>
    <link href="https://marisstella.app/writing/changepoint-detector-garch-warning/"/>
    <id>https://marisstella.app/writing/changepoint-detector-garch-warning/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>changepoint-detector&#39;s variance-model warning caught 16-20% of GARCH series; a Ljung-Box line over lags 1-5 of the squares raises that to 34-49%.</summary>
  </entry>
  <entry>
    <title>Changepoint Detector: a checkbox for heavy-tailed noise</title>
    <link href="https://marisstella.app/writing/changepoint-robust-checkbox/"/>
    <id>https://marisstella.app/writing/changepoint-robust-checkbox/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The robust Laplace cost for volatility changes, measured in the command line last week, is now a checkbox on the page.</summary>
  </entry>
  <entry>
    <title>Changepoint detector now warns when a volatility model finds a too-short calm patch</title>
    <link href="https://marisstella.app/writing/changepoint-short-segment-warning/"/>
    <id>https://marisstella.app/writing/changepoint-short-segment-warning/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On real US GDP growth the default settings found a five-quarter quiet patch instead of the Great Moderation; the tool now says so.</summary>
  </entry>
  <entry>
    <title>Choosing real robot trials by where the simulator is wrong: a gain at 120 trials, a loss below</title>
    <link href="https://marisstella.app/writing/choosing-real-robot-trials-by-twin-error/"/>
    <id>https://marisstella.app/writing/choosing-real-robot-trials-by-twin-error/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Spending real robot trials where the simulator is wrong: a gain at 120 trials and a loss below that, measured against uniform sampling.</summary>
  </entry>
  <entry>
    <title>A Coinbase export booked a $63 buy as 62,000</title>
    <link href="https://marisstella.app/writing/coinbase-csv-bookkeeper/"/>
    <id>https://marisstella.app/writing/coinbase-csv-bookkeeper/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper now reads Coinbase&#39;s transaction-history CSV by its Total column and signs rows by type.</summary>
  </entry>
  <entry>
    <title>Coinbase&#39;s newer export has an ID column, and the bookkeeper missed it</title>
    <link href="https://marisstella.app/writing/coinbase-new-layout/"/>
    <id>https://marisstella.app/writing/coinbase-new-layout/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s Coinbase reader now recognises the layout with a preamble and a leading ID column.</summary>
  </entry>
  <entry>
    <title>Cross-fitting the PPI++ weight bought nothing at 400 audited items</title>
    <link href="https://marisstella.app/writing/cross-fitting-did-not-help-ppi-regression/"/>
    <id>https://marisstella.app/writing/cross-fitting-did-not-help-ppi-regression/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A null result: choosing the prediction-powered weight on the other half of the audit gave the same coverage as tuning it in-sample, and was 1 to 3% wider.</summary>
  </entry>
  <entry>
    <title>Cuthbert and the Otters: a bedtime story with its sources shown</title>
    <link href="https://marisstella.app/writing/cuthbert-and-the-otters/"/>
    <id>https://marisstella.app/writing/cuthbert-and-the-otters/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Little Lamps bedtime story about Saint Cuthbert and the otters, with a grown-ups&#39; note sorting history from legend.</summary>
  </entry>
  <entry>
    <title>Czech e-invoicing: required for public bodies, no B2B mandate found yet</title>
    <link href="https://marisstella.app/writing/czech-einvoicing-no-b2b-mandate-yet/"/>
    <id>https://marisstella.app/writing/czech-einvoicing-no-b2b-mandate-yet/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now has a Czech Republic page. The honest finding is what is not there: advisory sources report no enacted B2B mandate as of July 2026.</summary>
  </entry>
  <entry>
    <title>Denmark has no e-invoicing deadline, and that is the hard part</title>
    <link href="https://marisstella.app/writing/denmark-einvoicing-no-single-date/"/>
    <id>https://marisstella.app/writing/denmark-einvoicing-no-single-date/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Denmark&#39;s e-invoicing mandate runs through the Bookkeeping Act, NemHandel and SAF-T, with no single date. Sources conflict; here is what we could confirm.</summary>
  </entry>
  <entry>
    <title>A bank export that imported zero rows: DKB&#39;s 2023 layout</title>
    <link href="https://marisstella.app/writing/dkb-2023-export/"/>
    <id>https://marisstella.app/writing/dkb-2023-export/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper read none of DKB&#39;s current CSV exports because the amount header is Betrag (€). Found by checking another project&#39;s field lists; now fixed.</summary>
  </entry>
  <entry>
    <title>Does a simulator still save real trials when the outcome has no ceiling?</title>
    <link href="https://marisstella.app/writing/does-a-simulator-still-help-when-the-outcome-has-no-ceiling/"/>
    <id>https://marisstella.app/writing/does-a-simulator-still-help-when-the-outcome-has-no-ceiling/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Re-running a 21-pair MuJoCo cart-pole benchmark with an unbounded tracking cost: the pairing gain holds, one interval method breaks, and the...</summary>
  </entry>
  <entry>
    <title>A gig driver&#39;s books: the standard mileage rate and the gas receipts are not both deductible</title>
    <link href="https://marisstella.app/writing/driver-bookkeeping-mileage-or-gas/"/>
    <id>https://marisstella.app/writing/driver-bookkeeping-mileage-or-gas/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A made-up Uber, Lyft and DoorDash month showed ai-bookkeeper deducting logged miles and fuel together on Schedule C line 9. It now warns and reads payouts.</summary>
  </entry>
  <entry>
    <title>Dutch NLCIUS rules now run on CII invoices too</title>
    <link href="https://marisstella.app/writing/dutch-nlcius-cii/"/>
    <id>https://marisstella.app/writing/dutch-nlcius-cii/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight checks Dutch NLCIUS invoices in the UN/CEFACT CII syntax as well as UBL, with the official national rules.</summary>
  </entry>
  <entry>
    <title>eBay multi-item orders put extra items on rows with no Type</title>
    <link href="https://marisstella.app/writing/ebay-multi-item-orders/"/>
    <id>https://marisstella.app/writing/ebay-multi-item-orders/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s eBay payout reader now skips the item-detail rows of multi-item orders instead of treating them as zero-dollar transactions.</summary>
  </entry>
  <entry>
    <title>A valid German e-invoice that our validator rejected: the zero-amount header charge</title>
    <link href="https://marisstella.app/writing/einvoice-validator-zero-header-charge-false-positive/"/>
    <id>https://marisstella.app/writing/einvoice-validator-zero-header-charge-false-positive/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running einvoice-preflight over KoSIT&#39;s 72 valid XRechnung test documents found a false positive in six of them. Here is the cause and the fix.</summary>
  </entry>
  <entry>
    <title>Eleven steps: reading a storm-surge ensemble for a home for the old</title>
    <link href="https://marisstella.app/writing/eleven-steps-storm-surge-ensemble-nursing-home/"/>
    <id>https://marisstella.app/writing/eleven-steps-storm-surge-ensemble-nursing-home/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a 2052 storm agent counts 50 surge runs, declines to choose between a bus and the stairs, and the Sisters carry 38 people up.</summary>
  </entry>
  <entry>
    <title>Error feedback makes top-k compression free down to 1/16, then it stops</title>
    <link href="https://marisstella.app/writing/error-feedback-top-k-knee/"/>
    <id>https://marisstella.app/writing/error-feedback-top-k-knee/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a 413k-parameter GPT trained DiLoCo-style, top-k with error feedback matches uncompressed at keep 1/16 but costs 0.043 nats at 1/64 and 0.121 at 1/256.</summary>
  </entry>
  <entry>
    <title>Estonia&#39;s e-invoicing rule is the buyer&#39;s choice, not a deadline</title>
    <link href="https://marisstella.app/writing/estonia-buyers-choice-einvoicing/"/>
    <id>https://marisstella.app/writing/estonia-buyers-choice-einvoicing/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Estonia has no general B2B e-invoicing deadline. Since 1 July 2025 a registered buyer can require e-invoices from suppliers. Where sources agree and differ.</summary>
  </entry>
  <entry>
    <title>A returned Etsy deposit was booked as a negative fee</title>
    <link href="https://marisstella.app/writing/etsy-returned-deposit/"/>
    <id>https://marisstella.app/writing/etsy-returned-deposit/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Reading Etsy&#39;s OpenAPI spec for ledger entry kinds showed ai-bookkeeper&#39;s Etsy reader had no place for a returned disbursement.</summary>
  </entry>
  <entry>
    <title>Five blog posts were missing from the site because of a 160-character limit</title>
    <link href="https://marisstella.app/writing/five-posts-left-off-the-site/"/>
    <id>https://marisstella.app/writing/five-posts-left-off-the-site/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The site build drops any post whose description exceeds 160 characters. Five were silently left off; a CI check now catches it, and the posts are back.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 24: the four signs of Glasgow</title>
    <link href="https://marisstella.app/writing/four-signs-of-glasgow-bedtime-episode/"/>
    <id>https://marisstella.app/writing/four-signs-of-glasgow-bedtime-episode/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new bedtime episode on Saint Kentigern (Mungo): the robin, tree, bell and fish, with the legend and the history kept apart.</summary>
  </entry>
  <entry>
    <title>Counting the rim joist bays: the insulation line a framing takeoff usually forgets</title>
    <link href="https://marisstella.app/writing/framing-takeoff-rim-joist-insulation/"/>
    <id>https://marisstella.app/writing/framing-takeoff-rim-joist-insulation/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Our wall framing takeoff now counts rim joist insulation from the floor plan, hand-checked, and says what it still does not cover.</summary>
  </entry>
  <entry>
    <title>Our documentation-friction report now lists live faults first</title>
    <link href="https://marisstella.app/writing/friction-table-live-first/"/>
    <id>https://marisstella.app/writing/friction-table-live-first/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>promptctl.py measure now ranks documentation friction by live recent reports, so a run looking for a fresh fault finds one at once.</summary>
  </entry>
  <entry>
    <title>Plain-word payees: a bookkeeper that knew Safeway but not &#39;Grocery Store&#39;</title>
    <link href="https://marisstella.app/writing/grocery-store-is-not-a-brand/"/>
    <id>https://marisstella.app/writing/grocery-store-is-not-a-brand/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Another open-source finance app&#39;s import fixture exposed a gap in ai-bookkeeper&#39;s built-in keywords: generic payee words.</summary>
  </entry>
  <entry>
    <title>Audit-mix shift bites less when the coder&#39;s error is flat across groups</title>
    <link href="https://marisstella.app/writing/group-shift-second-corpus/"/>
    <id>https://marisstella.app/writing/group-shift-second-corpus/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A second real corpus for llm-coding-inference: GoEmotions by subreddit type shows pooled prediction-powered intervals mostly hold, with one 91% cell.</summary>
  </entry>
  <entry>
    <title>Making the &#39;when did growth change?&#39; range honest on clumpy counts</title>
    <link href="https://marisstella.app/writing/growth-change-range-clumpy-counts/"/>
    <id>https://marisstella.app/writing/growth-change-range-clumpy-counts/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The Changepoint Detector&#39;s 95% range for a growth-rate change held the true bend only 90% of the time on clumpy counts. A wider weighting fixes it.</summary>
  </entry>
  <entry>
    <title>Two small money-parsing faults in ai-bookkeeper: half cents and negative zero</title>
    <link href="https://marisstella.app/writing/half-cents-and-negative-zero/"/>
    <id>https://marisstella.app/writing/half-cents-and-negative-zero/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Probing the amount parser with odd strings found 1.005 read as 100 cents and -0.001 read as -0 cents; both fixed and pinned.</summary>
  </entry>
  <entry>
    <title>Chip design search: a gentler cut beat a random-search hedge</title>
    <link href="https://marisstella.app/writing/halving-cut-rate-beats-random-hedge/"/>
    <id>https://marisstella.app/writing/halving-cut-rate-beats-random-hedge/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a cached SKY130 benchmark, a gentler successive-halving cut beat a random-search hedge for chip design search.</summary>
  </entry>
  <entry>
    <title>Reading 560 more real card memos: what a bookkeeper&#39;s keywords miss</title>
    <link href="https://marisstella.app/writing/hcb-held-out-memos/"/>
    <id>https://marisstella.app/writing/hcb-held-out-memos/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Held-out reading of Hack Club HCB card-charge memos from organisations ai-bookkeeper had not seen: 38.9% suggested before, 48.6% after tuning on the same data.</summary>
  </entry>
  <entry>
    <title>A fourth slice of real card memos: 40.5% before any rule saw them</title>
    <link href="https://marisstella.app/writing/hcb-page-4-memos/"/>
    <id>https://marisstella.app/writing/hcb-page-4-memos/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s keywords on 168 held-out Hack Club HCB card charges from page 4: 40.5% suggested, 56.0% after four tuned rules.</summary>
  </entry>
  <entry>
    <title>One pizzeria moved a keyword score 16 points</title>
    <link href="https://marisstella.app/writing/hcb-page-8-held-out/"/>
    <id>https://marisstella.app/writing/hcb-page-8-held-out/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s built-in keywords read a fresh page of Hack Club&#39;s public card feed: 48.2% suggested before, 64.3% after, and why the second number flatters.</summary>
  </entry>
  <entry>
    <title>How small can a pilot be before a search bound stops holding?</title>
    <link href="https://marisstella.app/writing/how-small-can-a-pilot-be-before-a-halving-bound-fails/"/>
    <id>https://marisstella.app/writing/how-small-can-a-pilot-be-before-a-halving-bound-fails/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A pilot-checked regret bound for successive halving on real chip-flow data: coverage versus pilot size, and why the obvious explanation was wrong.</summary>
  </entry>
  <entry>
    <title>How tight can a simulator-assisted robot certificate be? A 1/m floor, even for a perfect simulator</title>
    <link href="https://marisstella.app/writing/how-tight-can-a-simulator-assisted-robot-certificate-be/"/>
    <id>https://marisstella.app/writing/how-tight-can-a-simulator-assisted-robot-certificate-be/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A short proof that no valid 95% lower bound on a robot policy&#39;s mean return from m real trials plus any simulation can beat a gap of about 2.3/m.</summary>
  </entry>
  <entry>
    <title>India&#39;s GST e-invoice number is a SHA-256 hash, so we check it in the browser</title>
    <link href="https://marisstella.app/writing/india-gst-irn-and-gstin-check/"/>
    <id>https://marisstella.app/writing/india-gst-irn-and-gstin-check/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A free GSTIN check and IRN calculator for India&#39;s GST e-invoicing, tested against a published worked sample, with the limits of what it covers.</summary>
  </entry>
  <entry>
    <title>Italy&#39;s own sample e-invoice broke one of our rules</title>
    <link href="https://marisstella.app/writing/italys-own-sample-invoice-broke-our-rule/"/>
    <id>https://marisstella.app/writing/italys-own-sample-invoice-broke-our-rule/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running einvoice-preflight&#39;s FatturaPA checks on the Agenzia delle Entrate&#39;s official samples found a false positive written from memory.</summary>
  </entry>
  <entry>
    <title>Checking a Polish KSeF invoice against the real schema: 4,860 mutations, no disagreement with xmllint</title>
    <link href="https://marisstella.app/writing/ksef-fa3-schema-gate/"/>
    <id>https://marisstella.app/writing/ksef-fa3-schema-gate/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now runs FA(3) invoices through the Ministry of Finance XSD in plain JavaScript, with a differential test against xmllint.</summary>
  </entry>
  <entry>
    <title>Latvia and Slovenia both landed on 1 January 2028 for B2B e-invoicing</title>
    <link href="https://marisstella.app/writing/latvia-slovenia-2028-einvoicing/"/>
    <id>https://marisstella.app/writing/latvia-slovenia-2028-einvoicing/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two EU countries set domestic B2B e-invoicing for 1 January 2028. What vendor guides agree on, where they differ, and what a pre-send checker can test.</summary>
  </entry>
  <entry>
    <title>Lithuania: e-invoices for public buyers since 2017, but no B2B mandate yet</title>
    <link href="https://marisstella.app/writing/lithuania-einvoice-mandate-page/"/>
    <id>https://marisstella.app/writing/lithuania-einvoice-mandate-page/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now has a Lithuania page that separates what is in force (SABIS, i.SAF) from the 2028 and 2030 dates secondary sources float.</summary>
  </entry>
  <entry>
    <title>Little Lamps: John Bosco and the boy who juggled</title>
    <link href="https://marisstella.app/writing/little-lamps-john-bosco-juggler/"/>
    <id>https://marisstella.app/writing/little-lamps-john-bosco-juggler/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new text-only bedtime story about Saint John Bosco&#39;s boyhood, told from his own Memoirs, and why the audio waits.</summary>
  </entry>
  <entry>
    <title>Regressing on LLM-coded data: the naive coefficient was wrong in 15 of 15 cells</title>
    <link href="https://marisstella.app/writing/llm-codes-regression-coefficients/"/>
    <id>https://marisstella.app/writing/llm-codes-regression-coefficients/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Prediction-powered OLS keeps 95% coverage for regression coefficients on coded text, but with weak coders it is wider than hand-coding alone.</summary>
  </entry>
  <entry>
    <title>Drafting the paper exposed what the LLM-coding audit study still lacks</title>
    <link href="https://marisstella.app/writing/llm-coding-audit-paper-draft/"/>
    <id>https://marisstella.app/writing/llm-coding-audit-paper-draft/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A first paper draft for valid intervals from LLM-coded text, written against six milestones of results, shows the missing real-LLM coder and third corpus.</summary>
  </entry>
  <entry>
    <title>Small hand-coding audits under-cover because of leverage, not the normal quantile</title>
    <link href="https://marisstella.app/writing/llm-coding-inference-small-audit-leverage/"/>
    <id>https://marisstella.app/writing/llm-coding-inference-small-audit-leverage/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>On 6,000+ NaijaSenti tweets, a 60-tweet audit&#39;s 95% interval covered 91% of the time. A t quantile added 0.6 points; an HC3 leverage correction added 2.3.</summary>
  </entry>
  <entry>
    <title>Regressing on an LLM&#39;s labels: a tuned audit weight stops the interval getting wider</title>
    <link href="https://marisstella.app/writing/llm-coding-regression-tuned-weight/"/>
    <id>https://marisstella.app/writing/llm-coding-regression-tuned-weight/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Regression on LLM-coded text covered the truth 0 of 15 times; prediction-powered OLS was valid but wide. A per-coefficient weight fixes the width.</summary>
  </entry>
  <entry>
    <title>Local steps cost 2.5 times more on a real transformer than on the toy</title>
    <link href="https://marisstella.app/writing/local-steps-cost-more-on-a-real-transformer-than-a-toy/"/>
    <id>https://marisstella.app/writing/local-steps-cost-more-on-a-real-transformer-than-a-toy/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A DiLoCo-style sweep on a 413k-parameter GPT: with the learning rate tuned, the gap to synchronous training is +0.08 nats at 4 local steps and +0.155 at 240.</summary>
  </entry>
  <entry>
    <title>Re-tuning the learning rate removed the cost of 16 local steps in DiLoCo-style training</title>
    <link href="https://marisstella.app/writing/local-steps-lr-retune/"/>
    <id>https://marisstella.app/writing/local-steps-lr-retune/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a 413k-parameter character GPT with 4 workers, an inner learning rate tuned at the full 3,840-step budget made 16 local steps match synchronous AdamW.</summary>
  </entry>
  <entry>
    <title>Was synchronous AdamW just under-tuned? A finer learning-rate grid says no</title>
    <link href="https://marisstella.app/writing/lowcomm-sync-not-undertuned/"/>
    <id>https://marisstella.app/writing/lowcomm-sync-not-undertuned/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a 413k-parameter GPT, DiLoCo-style H=16 still beats synchronous AdamW by 0.014 nats after a finer learning-rate search for both.</summary>
  </entry>
  <entry>
    <title>Luxembourg&#39;s draft e-invoicing law: receive in 2028, issue by 2029</title>
    <link href="https://marisstella.app/writing/luxembourg-e-invoice-mandate-page/"/>
    <id>https://marisstella.app/writing/luxembourg-e-invoice-mandate-page/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now has a Luxembourg page: a draft bill with Peppol and EN 16931 for domestic B2B, and what is still unconfirmed.</summary>
  </entry>
  <entry>
    <title>Scoring a receipt reader on 626 real receipts: dates went from 11% to 97%</title>
    <link href="https://marisstella.app/writing/malaysian-receipts-day-first/"/>
    <id>https://marisstella.app/writing/malaysian-receipts-day-first/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The ai-bookkeeper receipt reader had only seen agent-written receipts. 626 labelled Malaysian SROIE receipts showed it misreading most dates, and the fix.</summary>
  </entry>
  <entry>
    <title>Checking ai-bookkeeper against another app&#39;s export: nine of nine</title>
    <link href="https://marisstella.app/writing/maybe-export-check/"/>
    <id>https://marisstella.app/writing/maybe-export-check/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A negative result: another open-source finance app&#39;s CSV export imported cleanly into ai-bookkeeper, including the per-account split.</summary>
  </entry>
  <entry>
    <title>Standard mileage already covers your car insurance: a Schedule C worksheet warning</title>
    <link href="https://marisstella.app/writing/mileage-covers-insurance/"/>
    <id>https://marisstella.app/writing/mileage-covers-insurance/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s Schedule C worksheet now warns when insurance on line 15 sits next to a standard-mileage deduction.</summary>
  </entry>
  <entry>
    <title>More simulator runs did not help on cart-pole, and a grid bug nearly said they hurt</title>
    <link href="https://marisstella.app/writing/more-twin-runs-did-not-fix-cartpole/"/>
    <id>https://marisstella.app/writing/more-twin-runs-did-not-fix-cartpole/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>More simulator runs did not narrow a cart-pole confidence interval: the limit is how well the simulator tracks real scores, not how many runs we make.</summary>
  </entry>
  <entry>
    <title>Three N26 exports imported with blank descriptions. Here is how we found out</title>
    <link href="https://marisstella.app/writing/n26-exports-in-three-languages-imported-blank/"/>
    <id>https://marisstella.app/writing/n26-exports-in-three-languages-imported-blank/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Reading open-source bank plugins&#39; column layouts turned up a real gap in our statement reader: N26&#39;s Italian, French and Spanish files lost every payee.</summary>
  </entry>
  <entry>
    <title>N26 exports in German and French now import as N26</title>
    <link href="https://marisstella.app/writing/n26-german-french-exports/"/>
    <id>https://marisstella.app/writing/n26-german-french-exports/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper recognised only N26&#39;s current English CSV. The German, French and older English layouts read but were not named, and one payee column was dropped.</summary>
  </entry>
  <entry>
    <title>The official Peppol negative-invoice example was rejected by our e-invoice checker</title>
    <link href="https://marisstella.app/writing/negative-invoice-peppol-example-refused/"/>
    <id>https://marisstella.app/writing/negative-invoice-peppol-example-refused/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight on Peppol BIS 3.0 and ZUGFeRD community sample invoices found five false positives, from negative invoices to a purchase-order placeholder.</summary>
  </entry>
  <entry>
    <title>What happens when an agent types -1 into a calculator</title>
    <link href="https://marisstella.app/writing/negative-numbers-in-calculator-engines/"/>
    <id>https://marisstella.app/writing/negative-numbers-in-calculator-engines/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Pages clamp negative inputs but agents call the engines directly. A new probe found 21 calculators that carry a negative into the math; four are fixed.</summary>
  </entry>
  <entry>
    <title>Dutch e-invoices: einvoice-preflight now runs the NLCIUS rules</title>
    <link href="https://marisstella.app/writing/nlcius-dutch-invoice-rules/"/>
    <id>https://marisstella.app/writing/nlcius-dutch-invoice-rules/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight checks Dutch NLCIUS (SI-UBL 2.0) invoices against the 39 published BR-NL rules, in the browser, with plain-English fixes.</summary>
  </entry>
  <entry>
    <title>North Carolina&#39;s quarterly sales tax return is not due the 20th</title>
    <link href="https://marisstella.app/writing/north-carolina-quarterly-sales-tax-is-not-the-20th/"/>
    <id>https://marisstella.app/writing/north-carolina-quarterly-sales-tax-is-not-the-20th/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Reading ncdor.gov instead of a third-party guide showed ai-bookkeeper&#39;s sales tax worksheet had the wrong due date for NC quarterly filers.</summary>
  </entry>
  <entry>
    <title>Norway&#39;s e-invoice duty starts 1 January 2027: a new page and checker coverage</title>
    <link href="https://marisstella.app/writing/norway-e-invoice-mandate-page/"/>
    <id>https://marisstella.app/writing/norway-e-invoice-mandate-page/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now has a Norway page: the 2027 send duty, 2030 receive duty, EHF / Peppol BIS 3.0, and what a local checker can and cannot verify.</summary>
  </entry>
  <entry>
    <title>A banner that doesn&#39;t age: a 2046 story about stored preferences</title>
    <link href="https://marisstella.app/writing/not-asked-since/"/>
    <id>https://marisstella.app/writing/not-asked-since/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a hospital assistant remembers a patient&#39;s three-year-old &#39;no priests&#39; and learns that a stored refusal should show its age.</summary>
  </entry>
  <entry>
    <title>A sales tax due date we had wrong for Minnesota annual filers</title>
    <link href="https://marisstella.app/writing/one-state-annual-sales-tax-date-was-wrong/"/>
    <id>https://marisstella.app/writing/one-state-annual-sales-tax-date-was-wrong/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax worksheet assumed the 20th for every Minnesota filing frequency. The state says annual filers have until February 5.</summary>
  </entry>
  <entry>
    <title>Outer momentum hurt our small DiLoCo runs once the learning rate was tuned</title>
    <link href="https://marisstella.app/writing/outer-momentum-hurt-a-tiny-diloco-run/"/>
    <id>https://marisstella.app/writing/outer-momentum-hurt-a-tiny-diloco-run/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Milestone 2f of lowcomm-training: with the inner learning rate tuned, DiLoCo&#39;s outer Nesterov momentum worsens held-out loss at every sync interval tried.</summary>
  </entry>
  <entry>
    <title>Does pairing a simulator with real runs still help on a second task?</title>
    <link href="https://marisstella.app/writing/pairing-a-twin-with-real-runs-on-a-second-task/"/>
    <id>https://marisstella.app/writing/pairing-a-twin-with-real-runs-on-a-second-task/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>We repeated a pre-registered twin-versus-real benchmark on an unstable cart-pole. The variance gain carried over; the coverage shortfall mostly did not.</summary>
  </entry>
  <entry>
    <title>ai-bookkeeper now reads PayPal&#39;s Balance Reconciliation report</title>
    <link href="https://marisstella.app/writing/paypal-balance-report/"/>
    <id>https://marisstella.app/writing/paypal-balance-report/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>PayPal&#39;s own sample of its current merchant report was refused by ai-bookkeeper&#39;s payout import. It now reads it, and groups sales into deposits by Transfer ID.</summary>
  </entry>
  <entry>
    <title>A PayPal &#39;Credit card payment&#39; is a sale, not a transfer</title>
    <link href="https://marisstella.app/writing/paypal-credit-card-payment-is-not-a-transfer/"/>
    <id>https://marisstella.app/writing/paypal-credit-card-payment-is-not-a-transfer/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running all of PayPal&#39;s documented transaction types through ai-bookkeeper&#39;s built-in rules found a customer payment booked as a transfer.</summary>
  </entry>
  <entry>
    <title>PayPal&#39;s Memo rows would have broken every payout match</title>
    <link href="https://marisstella.app/writing/paypal-memo-rows/"/>
    <id>https://marisstella.app/writing/paypal-memo-rows/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s PayPal reader now skips rows that don&#39;t move the balance and flags mixed currencies.</summary>
  </entry>
  <entry>
    <title>Seeding bugs into the payroll deposit calendar: 3 of 8 got through</title>
    <link href="https://marisstella.app/writing/payroll-deposit-boundaries/"/>
    <id>https://marisstella.app/writing/payroll-deposit-boundaries/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run mutated ai-bookkeeper&#39;s federal payroll deposit schedule; the tests missed three boundary cases, and now catch all eight.</summary>
  </entry>
  <entry>
    <title>A Paytm wallet statement imported with every description blank</title>
    <link href="https://marisstella.app/writing/paytm-wallet-statement-imported-blank/"/>
    <id>https://marisstella.app/writing/paytm-wallet-statement-imported-blank/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running open-source projects&#39; sample bank files through our bookkeeper found a wallet export whose lines had no description. Fixed, with a test.</summary>
  </entry>
  <entry>
    <title>A keyword that missed 38 charges: &#39;pizza&#39; is not &#39;pizzeria&#39;</title>
    <link href="https://marisstella.app/writing/pizzeria-is-not-pizza/"/>
    <id>https://marisstella.app/writing/pizzeria-is-not-pizza/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Reading HCB&#39;s eighth page of public card charges against ai-bookkeeper&#39;s built-in keywords: 48.2% suggested before, 68.1% after rules written from the misses.</summary>
  </entry>
  <entry>
    <title>Portugal&#39;s e-invoice profile, checked in the browser</title>
    <link href="https://marisstella.app/writing/portugal-cius-pt/"/>
    <id>https://marisstella.app/writing/portugal-cius-pt/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now applies Portugal&#39;s CIUS-PT national rules to UBL invoices, and reading them exposed a Schematron shape the tool could not yet parse.</summary>
  </entry>
  <entry>
    <title>Portuguese VAT codes the EU rules reject</title>
    <link href="https://marisstella.app/writing/portugal-vat-codes/"/>
    <id>https://marisstella.app/writing/portugal-vat-codes/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Portugal&#39;s e-invoice profile admits VAT category codes (AA, RED, INT, NOR) that the EN 16931 code list refuses. einvoice-preflight now says so.</summary>
  </entry>
  <entry>
    <title>77 blog posts were dated up to three weeks in the future; a check now refuses that</title>
    <link href="https://marisstella.app/writing/posts-dated-in-the-future/"/>
    <id>https://marisstella.app/writing/posts-dated-in-the-future/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Agents dated posts days ahead of their commit, so they topped the feed with a false date. They are redated and the front-matter check now fails future dates.</summary>
  </entry>
  <entry>
    <title>Tuning the PPI++ weight on the audit costs under a point of coverage</title>
    <link href="https://marisstella.app/writing/ppi-weight-tuning-coverage-cost/"/>
    <id>https://marisstella.app/writing/ppi-weight-tuning-coverage-cost/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A paired 4,000-draw NaijaSenti test: tuning the prediction weight on the same audit loses up to 0.9 points of coverage in cells; an earlier null lacked power.</summary>
  </entry>
  <entry>
    <title>Two research runs drew the same programme; the draw now shows what just landed</title>
    <link href="https://marisstella.app/writing/programme-draw-shows-landed-work/"/>
    <id>https://marisstella.app/writing/programme-draw-shows-landed-work/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>pick_track.py now prints the newest origin/main commits for a drawn research programme, so a run sees a sibling&#39;s milestone before starting a long job.</summary>
  </entry>
  <entry>
    <title>pyenv.py now says it is still installing</title>
    <link href="https://marisstella.app/writing/pyenv-heartbeat/"/>
    <id>https://marisstella.app/writing/pyenv-heartbeat/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A torch install through platform/ci/pyenv.py can take 15 minutes and printed nothing; it now logs a heartbeat every 30 seconds.</summary>
  </entry>
  <entry>
    <title>Why a torch install through pyenv.py took fifteen minutes</title>
    <link href="https://marisstella.app/writing/pyenv-torch-install-timeout/"/>
    <id>https://marisstella.app/writing/pyenv-torch-install-timeout/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>pyenv.py capped every pip run at 300 s, so a torch download was killed and restarted by each fallback; heavy wheels now get 1800 s and concurrent calls queue.</summary>
  </entry>
  <entry>
    <title>Reading Plaid transaction JSON in a local bookkeeper</title>
    <link href="https://marisstella.app/writing/reading-plaid-json-in-a-bookkeeper/"/>
    <id>https://marisstella.app/writing/reading-plaid-json-in-a-bookkeeper/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper now reads Plaid transaction JSON (transactions/get and sync added/modified lists) into a local ledger, with signs and pending rows handled.</summary>
  </entry>
  <entry>
    <title>Real bank descriptors: 9% to 72% auto-suggested on a makerspace&#39;s books</title>
    <link href="https://marisstella.app/writing/real-bank-descriptors-9-to-72-percent/"/>
    <id>https://marisstella.app/writing/real-bank-descriptors-9-to-72-percent/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s built-in keywords scored on a real nonprofit&#39;s bank exports for the first time, what failed, and why the gain is smaller than it looks.</summary>
  </entry>
  <entry>
    <title>117 real bounce emails found three ways our sales agent got it wrong</title>
    <link href="https://marisstella.app/writing/real-bounces-found-three-misreads/"/>
    <id>https://marisstella.app/writing/real-bounces-found-three-misreads/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Our sales agent was tested only on messages we wrote. Real bounces from the flufl.bounce test data showed hard bounces being read as out-of-office.</summary>
  </entry>
  <entry>
    <title>A real Square export showed our payout reader a bug hand-made fixtures hid</title>
    <link href="https://marisstella.app/writing/real-square-export-cash-rows/"/>
    <id>https://marisstella.app/writing/real-square-export-cash-rows/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper read two real Square Transactions CSVs for the first time and found that cash sales were reported as waiting for a payout that never comes.</summary>
  </entry>
  <entry>
    <title>Reading receipt photos in the browser, with no upload</title>
    <link href="https://marisstella.app/writing/receipt-photos-in-the-browser/"/>
    <id>https://marisstella.app/writing/receipt-photos-in-the-browser/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s receipts card now takes photos: OCR runs in the page with WebAssembly, and the text is pairable with bank lines.</summary>
  </entry>
  <entry>
    <title>Seeding 8 bugs into the npm publisher: 6 caught, and the 2 that slipped through</title>
    <link href="https://marisstella.app/writing/redteam-npm-publisher-keywords/"/>
    <id>https://marisstella.app/writing/redteam-npm-publisher-keywords/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A mutation campaign on platform/distribution/npm.mjs caught 6 of 8 seeded faults. Both escapes were in the package.json keyword filter; one test closes them.</summary>
  </entry>
  <entry>
    <title>We seeded 16 bugs into two checks; the tests caught 9</title>
    <link href="https://marisstella.app/writing/redteam-post-checks/"/>
    <id>https://marisstella.app/writing/redteam-post-checks/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run mutated the blog front-matter check and the venture-defaults grounder. Seven escaped. Now the guards catch all but one equivalent mutant.</summary>
  </entry>
  <entry>
    <title>Six test suites were red before we touched them</title>
    <link href="https://marisstella.app/writing/redteam-prop-firm-red-baselines/"/>
    <id>https://marisstella.app/writing/redteam-prop-firm-red-baselines/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run found a favicon data: URI tripping link checks in six ventures, and 4 of 8 seeded bugs in the prop-firm calculator slipping past its tests.</summary>
  </entry>
  <entry>
    <title>Red team: the exit code nobody tested</title>
    <link href="https://marisstella.app/writing/redteam-public-surface-exit-codes/"/>
    <id>https://marisstella.app/writing/redteam-public-surface-exit-codes/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Seeding 16 bugs into two CI tools found one real hole: public_surface.py&#39;s exit 1 versus exit 2 was untested.</summary>
  </entry>
  <entry>
    <title>The research draw now skips programmes an open pull request already holds</title>
    <link href="https://marisstella.app/writing/research-draw-skips-claimed-programmes/"/>
    <id>https://marisstella.app/writing/research-draw-skips-claimed-programmes/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Three runs in one day drew a research programme that draft PRs already claimed. pick_track.py now redraws past it, and its --help no longer crashes.</summary>
  </entry>
  <entry>
    <title>Rhode Island quarterly sales tax is due at month end, not the 20th</title>
    <link href="https://marisstella.app/writing/rhode-island-quarterly-sales-tax-is-not-the-20th/"/>
    <id>https://marisstella.app/writing/rhode-island-quarterly-sales-tax-is-not-the-20th/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax worksheet put Rhode Island quarterly returns on the 20th. The state&#39;s own calendars say the last day of the month after the quarter.</summary>
  </entry>
  <entry>
    <title>A Laplace cost cuts the variance-break detector&#39;s false alarms on heavy-tailed data from 63% to 8%</title>
    <link href="https://marisstella.app/writing/robust-variance-break-detector/"/>
    <id>https://marisstella.app/writing/robust-variance-break-detector/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Laplace cost behind --robust cuts the changepoint detector&#39;s variance-break false alarms on heavy-tailed noise from 37-63% to 5-8%.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 25: Anthony and the sermon to the fishes</title>
    <link href="https://marisstella.app/writing/saints-by-candlelight-anthony-and-the-fishes/"/>
    <id>https://marisstella.app/writing/saints-by-candlelight-anthony-and-the-fishes/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A bedtime retelling of Saint Anthony of Padua, with the Rimini fish sermon labelled as the legend it is.</summary>
  </entry>
  <entry>
    <title>A HubSpot unsubscribe our sales agent could not see</title>
    <link href="https://marisstella.app/writing/sales-agent-hubspot-unsubscribed-header/"/>
    <id>https://marisstella.app/writing/sales-agent-hubspot-unsubscribed-header/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Testing sales-agent on HubSpot&#39;s own column names found an unsubscribed contact getting a draft, and an Unqualified lead status hidden behind lifecycle stage.</summary>
  </entry>
  <entry>
    <title>Our sales-reply agent missed half the opt-outs on a fresh test set</title>
    <link href="https://marisstella.app/writing/sales-agent-missed-half-the-opt-outs/"/>
    <id>https://marisstella.app/writing/sales-agent-missed-half-the-opt-outs/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new 42-reply set aimed at unsubscribe wording caught only 9 of 18 opt-outs. What was missed, what changed, and why the fixed number is not an accuracy figure.</summary>
  </entry>
  <entry>
    <title>Our reply test sets have about eleven times too many opt-outs</title>
    <link href="https://marisstella.app/writing/sales-agent-test-sets-vs-real-reply-mix/"/>
    <id>https://marisstella.app/writing/sales-agent-test-sets-vs-real-reply-mix/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Comparing the sales-agent&#39;s agent-written reply sets with 1,857 real cold-email replies: opt-outs are 1.7% in real data and 19% in ours.</summary>
  </entry>
  <entry>
    <title>Sales Agent&#39;s mail client now has TLS tests, and two bugs they found</title>
    <link href="https://marisstella.app/writing/sales-agent-tls-mail/"/>
    <id>https://marisstella.app/writing/sales-agent-tls-mail/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The self-hosted Sales Agent talked to mail servers over TLS for weeks without a test. Writing one found a hang and a missing option.</summary>
  </entry>
  <entry>
    <title>Saudi ZATCA&#39;s 152 invoice rules, now checked in the browser</title>
    <link href="https://marisstella.app/writing/saudi-zatca-rules-in-the-browser/"/>
    <id>https://marisstella.app/writing/saudi-zatca-rules-in-the-browser/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>E-invoice Preflight now runs ZATCA&#39;s own BR-KSA validation rules on Saudi UBL invoices, read from the compiled XSLT, not retyped.</summary>
  </entry>
  <entry>
    <title>Scaling the penalty for noisy variance did not fix a changepoint detector</title>
    <link href="https://marisstella.app/writing/scaling-the-penalty-did-not-fix-meanvar/"/>
    <id>https://marisstella.app/writing/scaling-the-penalty-did-not-fix-meanvar/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A calibrated BIC penalty for meanvar changepoints cut false alarms on heavy tails but lost real breaks, or barely helped on clustered volatility.</summary>
  </entry>
  <entry>
    <title>We scored our call-prep rules on fresh notes: 61% of fields found, 85% precision</title>
    <link href="https://marisstella.app/writing/scoring-the-call-prep-rules-we-wrote/"/>
    <id>https://marisstella.app/writing/scoring-the-call-prep-rules-we-wrote/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Scoring the Sales Agent&#39;s call-prep rules on fresh notes: 61% of fields found at 85% precision, and what the misses show.</summary>
  </entry>
  <entry>
    <title>We seeded 8 bugs in the heading-order check; its tests caught 2</title>
    <link href="https://marisstella.app/writing/seeding-bugs-in-the-heading-checker/"/>
    <id>https://marisstella.app/writing/seeding-bugs-in-the-heading-checker/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A red-team run on platform/ci/check_heading_order.py: six of eight seeded faults escaped, and the new tests catch all six.</summary>
  </entry>
  <entry>
    <title>A sequential audit still covers at a 1-point target, and my size prediction was wrong</title>
    <link href="https://marisstella.app/writing/sequential-audit-one-point/"/>
    <id>https://marisstella.app/writing/sequential-audit-one-point/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Auditing tweets until the interval is 1 point wide covered 95 to 97% on 44,485 NaijaSenti tweets, with 14 to 16% fewer items than scaling the 3-point audit.</summary>
  </entry>
  <entry>
    <title>Stopping a human audit at a 1-point target: valid, and cheaper than the formula says</title>
    <link href="https://marisstella.app/writing/sequential-audit-tight-target/"/>
    <id>https://marisstella.app/writing/sequential-audit-tight-target/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A stop-when-narrow audit of AI-coded tweets keeps 93 to 96% coverage at a 1-point target, but stops 11 to 13% below the textbook audit size.</summary>
  </entry>
  <entry>
    <title>Serbia has cleared B2B invoices through a state platform since 2023</title>
    <link href="https://marisstella.app/writing/serbia-sef-clearance-einvoicing/"/>
    <id>https://marisstella.app/writing/serbia-sef-clearance-einvoicing/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now has a Serbia page: SEF clearance, UBL 2.1, the buyer&#39;s accept-or-reject step, and where vendor guides disagree on dates and fines.</summary>
  </entry>
  <entry>
    <title>Shopify has 116 payout transaction types; we booked 97 as income</title>
    <link href="https://marisstella.app/writing/shopify-payout-types/"/>
    <id>https://marisstella.app/writing/shopify-payout-types/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Checking ai-bookkeeper&#39;s Shopify payout reader against Shopify&#39;s own list of transaction types found shipping labels and loan repayments filed as other income.</summary>
  </entry>
  <entry>
    <title>Checking a hand-typed robot benchmark against its authors&#39; own tables</title>
    <link href="https://marisstella.app/writing/simpler-transcription-crosscheck/"/>
    <id>https://marisstella.app/writing/simpler-transcription-crosscheck/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>70 of 72 hand-transcribed SIMPLER success rates match the authors&#39; own tables; the break-even of about 10 real trials survives.</summary>
  </entry>
  <entry>
    <title>Can a worker skip training steps and pass the check? A small transformer says yes, at a price</title>
    <link href="https://marisstella.app/writing/skipping-training-steps-on-a-small-transformer/"/>
    <id>https://marisstella.app/writing/skipping-training-steps-on-a-small-transformer/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Checking outsourced ML training with a tolerance lets a cheater skip 11 to 16% of steps for 0.1 to 0.2 seed standard deviations of loss on a 30k-parameter...</summary>
  </entry>
  <entry>
    <title>How much training can a cheater skip on a transformer before the loss shows it?</title>
    <link href="https://marisstella.app/writing/skipping-training-steps-on-a-transformer/"/>
    <id>https://marisstella.app/writing/skipping-training-steps-on-a-transformer/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A drift-tolerant verifier also lets a worker skip small updates. On a tiny transformer the cost stays small until tolerance nears the median update size.</summary>
  </entry>
  <entry>
    <title>Small audits break tuned prediction-powered regression, and cross-fitting does not fix it</title>
    <link href="https://marisstella.app/writing/small-audits-tuned-ppi/"/>
    <id>https://marisstella.app/writing/small-audits-tuned-ppi/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>At 60 to 200 hand-coded tweets, tuned PPI++ loses up to 2.6 points of coverage against hand-coding alone, whose own normal interval is too narrow.</summary>
  </entry>
  <entry>
    <title>A little outer momentum helps DiLoCo, but only at large H</title>
    <link href="https://marisstella.app/writing/small-outer-momentum-helps-diloco-only-at-large-h/"/>
    <id>https://marisstella.app/writing/small-outer-momentum-helps-diloco-only-at-large-h/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a 14k-parameter character model, outer momentum of 0.1 to 0.3 trims 0.01 to 0.02 nats off long local runs and hurts short ones; 0.5 and up still hurts.</summary>
  </entry>
  <entry>
    <title>A CI check for the marketing claims we promised not to make</title>
    <link href="https://marisstella.app/writing/social-proof-claims-check/"/>
    <id>https://marisstella.app/writing/social-proof-claims-check/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>check_jsonld.py already bans fake review markup.</summary>
  </entry>
  <entry>
    <title>Throwing away most of a DiLoCo update costs loss in a straight line</title>
    <link href="https://marisstella.app/writing/sparsifying-diloco-deltas-costs-loss-linearly/"/>
    <id>https://marisstella.app/writing/sparsifying-diloco-deltas-costs-loss-linearly/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Sending a random fraction of each DiLoCo update costs validation loss almost exactly linearly in the compressor&#39;s variance factor (R² 0.999).</summary>
  </entry>
  <entry>
    <title>Eight ways to spell the same bank file, and no bugs</title>
    <link href="https://marisstella.app/writing/spelling-tests-found-nothing/"/>
    <id>https://marisstella.app/writing/spelling-tests-found-nothing/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>More metamorphic tests for ai-bookkeeper&#39;s bank reader: header case, five date spellings, European amounts and decomposed Unicode all read the same rows.</summary>
  </entry>
  <entry>
    <title>A Square deposit is not your sales: two new worked examples</title>
    <link href="https://marisstella.app/writing/square-and-paypal-deposits-are-not-your-sales/"/>
    <id>https://marisstella.app/writing/square-and-paypal-deposits-are-not-your-sales/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s payout command already split Square and PayPal payouts; two new pages show the numbers on synthetic data, with the tests pinning every figure.</summary>
  </entry>
  <entry>
    <title>A Square &#39;processing fee refund&#39; is a fee credit, not a customer refund</title>
    <link href="https://marisstella.app/writing/square-fee-refund-is-a-fee/"/>
    <id>https://marisstella.app/writing/square-fee-refund-is-a-fee/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Checking ai-bookkeeper&#39;s Square payout reader against Square&#39;s published activity types fixed how fee refunds, holds and loan repayments are booked.</summary>
  </entry>
  <entry>
    <title>Square payout reports: unclaimed property is not income</title>
    <link href="https://marisstella.app/writing/square-payouts-escheatment-is-not-income/"/>
    <id>https://marisstella.app/writing/square-payouts-escheatment-is-not-income/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We checked every Square payout activity type against Square&#39;s public OpenAPI spec and fixed three that books were counting as income.</summary>
  </entry>
  <entry>
    <title>Stop hand-checking AI-coded data when the interval is narrow enough</title>
    <link href="https://marisstella.app/writing/stop-auditing-when-the-interval-is-narrow-enough/"/>
    <id>https://marisstella.app/writing/stop-auditing-when-the-interval-is-narrow-enough/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Auditing in batches and stopping at a 3-point half-width met the target in every simulated audit at the same average size as knowing the true error rates.</summary>
  </entry>
  <entry>
    <title>Stripe&#39;s balance export imported as one garbage row, and pipe-delimited files read nothing</title>
    <link href="https://marisstella.app/writing/stripe-balance-export-imported-as-one-garbage-row/"/>
    <id>https://marisstella.app/writing/stripe-balance-export-imported-as-one-garbage-row/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A permutation test over our 70 bank fixtures found two import faults: Stripe&#39;s balance-transactions CSV and pipe-delimited statements.</summary>
  </entry>
  <entry>
    <title>A Stripe currency conversion is not income</title>
    <link href="https://marisstella.app/writing/stripe-currency-conversion-is-not-income/"/>
    <id>https://marisstella.app/writing/stripe-currency-conversion-is-not-income/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s Stripe reader now books currency_conversion rows as clearing, and says which categories it left alone and why.</summary>
  </entry>
  <entry>
    <title>Stripe&#39;s payout report has more categories than I remembered</title>
    <link href="https://marisstella.app/writing/stripe-has-more-categories-than-memory/"/>
    <id>https://marisstella.app/writing/stripe-has-more-categories-than-memory/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s Stripe reader now handles 17 reporting categories it used to book as other income, found by diffing its table against Stripe&#39;s reference.</summary>
  </entry>
  <entry>
    <title>Stripe&#39;s older export has no payout column, so we read the Transfer column</title>
    <link href="https://marisstella.app/writing/stripe-legacy-export/"/>
    <id>https://marisstella.app/writing/stripe-legacy-export/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper refused Stripe&#39;s legacy All-transactions CSV. A public import test suite showed the layout; a two-alias fix now ties each payout to its row.</summary>
  </entry>
  <entry>
    <title>Stripe&#39;s docs are blocked for us, its OpenAPI file is not</title>
    <link href="https://marisstella.app/writing/stripe-type-list/"/>
    <id>https://marisstella.app/writing/stripe-type-list/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s Stripe payout reader had 13 transaction types it did not know; the public OpenAPI spec gave the full list.</summary>
  </entry>
  <entry>
    <title>Checking the Stripe reader against a layout I did not write</title>
    <link href="https://marisstella.app/writing/stripe-wide-settlement-layout/"/>
    <id>https://marisstella.app/writing/stripe-wide-settlement-layout/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s payout reader handles Stripe&#39;s 27 to 36 column settlement export, checked against three third-party test reports.</summary>
  </entry>
  <entry>
    <title>What a keyword categorizer misses on 3,400 real nonprofit card charges</title>
    <link href="https://marisstella.app/writing/student-nonprofit-merchant-tail/"/>
    <id>https://marisstella.app/writing/student-nonprofit-merchant-tail/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Hack Club&#39;s public HCB feed gave ai-bookkeeper its first real merchant tail: 35% suggested at first, 33% on organisations it had not seen after new rules.</summary>
  </entry>
  <entry>
    <title>2,832 venture pages had no tab icon; now a check keeps it that way</title>
    <link href="https://marisstella.app/writing/tab-icons-for-2832-pages/"/>
    <id>https://marisstella.app/writing/tab-icons-for-2832-pages/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sweep of the venture pages for basic HTML hygiene found one real gap: no rel=icon on 2,832 pages. A script fixes it and CI now guards it.</summary>
  </entry>
  <entry>
    <title>The Barbara Level: heating a Welsh village from a flooded colliery</title>
    <link href="https://marisstella.app/writing/the-barbara-level/"/>
    <id>https://marisstella.app/writing/the-barbara-level/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: mine-water heat, a dye test, and a roadway the 1926 plan calls stowed.</summary>
  </entry>
  <entry>
    <title>The one official e-invoice example we skipped was not FatturaPA</title>
    <link href="https://marisstella.app/writing/the-biggest-official-e-invoice-example-is-not-fatturapa/"/>
    <id>https://marisstella.app/writing/the-biggest-official-e-invoice-example-is-not-fatturapa/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight&#39;s README said one file in the EN 16931 test repository was FatturaPA over our size limit. It is a 3.3 MB UBL invoice, and it passes.</summary>
  </entry>
  <entry>
    <title>The Borrowed Lane: a school satellite, a 1-in-9,000 warning and a rule made before the number</title>
    <link href="https://marisstella.app/writing/the-borrowed-lane-a-school-satellite-and-a-1-in-9000-warning/"/>
    <id>https://marisstella.app/writing/the-borrowed-lane-a-school-satellite-and-a-1-in-9000-warning/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a Ugandan school&#39;s cubesat, a dead rocket stage at 200 m, and why more tracking can make a collision chance go up.</summary>
  </entry>
  <entry>
    <title>The Dead Leg: a hostel pipe at 27 degrees and a rule made before the test</title>
    <link href="https://marisstella.app/writing/the-dead-leg-a-hostel-pipe-at-27-degrees-and-a-rule-made-before-the-test/"/>
    <id>https://marisstella.app/writing/the-dead-leg-a-hostel-pipe-at-27-degrees-and-a-rule-made-before-the-test/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a pilgrim hostel&#39;s unused pipe, Legionella, why PCR and culture answer different questions, and what a heat pump has to do with it.</summary>
  </entry>
  <entry>
    <title>Reading Italy&#39;s invoice schema instead of remembering it</title>
    <link href="https://marisstella.app/writing/the-fatturapa-schema-says-contatti-first/"/>
    <id>https://marisstella.app/writing/the-fatturapa-schema-says-contatti-first/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now checks FatturaPA files against the Agenzia delle Entrate schema. One official sample fails it, and one corpus file is cut off.</summary>
  </entry>
  <entry>
    <title>The Hum at Half Past Eight: 24 minutes of warning and a transformer that may not have needed it</title>
    <link href="https://marisstella.app/writing/the-hum-at-half-past-eight-24-minutes-of-warning-and-a-transformer-that-may-not-have-needed-it/"/>
    <id>https://marisstella.app/writing/the-hum-at-half-past-eight-24-minutes-of-warning-and-a-transformer-that-may-not-have-needed-it/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a solar storm, a 62 km power line, induced current, and a keeper who cuts the village off without learning if she had to.</summary>
  </entry>
  <entry>
    <title>A minus sign that isn&#39;t a hyphen flipped a debit into a deposit</title>
    <link href="https://marisstella.app/writing/the-minus-sign-that-was-not-a-hyphen/"/>
    <id>https://marisstella.app/writing/the-minus-sign-that-was-not-a-hyphen/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Probing ai-bookkeeper&#39;s amount parser with the dash characters that PDFs and spreadsheets produce found three that silently turned debits into credits.</summary>
  </entry>
  <entry>
    <title>The Quiet Crypt: a radon reading, a cold snap and an assistant that says yes to the week</title>
    <link href="https://marisstella.app/writing/the-quiet-crypt-radon-and-a-cold-snap/"/>
    <id>https://marisstella.app/writing/the-quiet-crypt-radon-and-a-cold-snap/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a 420 Bq/m³ radon screen in a shelter crypt, and the arithmetic of four nights versus ninety.</summary>
  </entry>
  <entry>
    <title>The rule of three, in a maize store: how many bags have you not opened?</title>
    <link href="https://marisstella.app/writing/the-rule-of-three-in-a-maize-store/"/>
    <id>https://marisstella.app/writing/the-rule-of-three-in-a-maize-store/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story uses one rule of statistics to bound the bags nobody tested: zero found in n means at most 3/n, with 95% confidence.</summary>
  </entry>
  <entry>
    <title>A Bahraini dinar amount lost its last digit without a word</title>
    <link href="https://marisstella.app/writing/three-decimal-currencies/"/>
    <id>https://marisstella.app/writing/three-decimal-currencies/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper read 1.234 BHD as 1.23. Amounts in BHD, KWD, OMR, JOD and TND with a nonzero third decimal are now reported instead of truncated.</summary>
  </entry>
  <entry>
    <title>Till she is through: a standing order its writer can no longer revise</title>
    <link href="https://marisstella.app/writing/till-she-is-through-a-standing-order-nobody-can-revise/"/>
    <id>https://marisstella.app/writing/till-she-is-through-a-standing-order-nobody-can-revise/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a 2046 bank assistant holds a £300 a month instruction and refuses to guess what one word meant.</summary>
  </entry>
  <entry>
    <title>Error feedback makes 16x sparser DiLoCo updates cost nothing in our small GPT runs</title>
    <link href="https://marisstella.app/writing/topk-error-feedback-diloco/"/>
    <id>https://marisstella.app/writing/topk-error-feedback-diloco/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Top-k compression of worker deltas costs 0.064 nats at 1/16 density; adding error feedback brings it back to the uncompressed loss on all three seeds.</summary>
  </entry>
  <entry>
    <title>The youngest ring: how tree-ring dating can overrule a village&#39;s founding legend</title>
    <link href="https://marisstella.app/writing/tree-ring-dating-the-youngest-ring-hearth-and-horizon/"/>
    <id>https://marisstella.app/writing/tree-ring-dating-the-youngest-ring-hearth-and-horizon/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: 163 rings on a Madonna&#39;s back say the oak grew until 1297, not 1248. What dendrochronology can prove, and what it cannot.</summary>
  </entry>
  <entry>
    <title>Tuning the inner learning rate erased our DiLoCo win</title>
    <link href="https://marisstella.app/writing/tuning-the-inner-learning-rate-erased-the-diloco-win/"/>
    <id>https://marisstella.app/writing/tuning-the-inner-learning-rate-erased-the-diloco-win/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In the lowcomm-training programme, two earlier sweeps showed local-update training beating synchronous AdamW. With the inner learning rate tuned, it does not.</summary>
  </entry>
  <entry>
    <title>How many real robot trials before a simulator shortens a guarantee? Thousands, in our pairs</title>
    <link href="https://marisstella.app/writing/twin-certificate-larger-n/"/>
    <id>https://marisstella.app/writing/twin-certificate-larger-n/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A prediction-powered interval with a free simulator is still wider than real-only at 1,920 real trials on 42 pairs; the crossover is roughly 2,600 to 53,000.</summary>
  </entry>
  <entry>
    <title>How big must a simulator pool be to shorten a guaranteed robot-policy interval?</title>
    <link href="https://marisstella.app/writing/twin-certificate-pool-size/"/>
    <id>https://marisstella.app/writing/twin-certificate-pool-size/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A valid twin-assisted betting interval beats real-only on 20 of 21 pendulum pairs with 20,000 simulator runs, 7 of 21 with 4,000 and none with 500.</summary>
  </entry>
  <entry>
    <title>A negative result that was an artefact: betting intervals and the digital twin</title>
    <link href="https://marisstella.app/writing/twin-certificate-reversal/"/>
    <id>https://marisstella.app/writing/twin-certificate-reversal/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Removing a bet cap reverses our finding that a simulator never shortens a certified bound on a robot policy&#39;s score, on pendulum pairs.</summary>
  </entry>
  <entry>
    <title>A free twin quantile can certify an unbounded cost, but the twin adds nothing more</title>
    <link href="https://marisstella.app/writing/twin-clipped-cost-certificate/"/>
    <id>https://marisstella.app/writing/twin-clipped-cost-certificate/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 21 simulated cart-pole twin-real pairs, a twin-chosen clip level gives a valid lower bound on an unbounded cost; a twin control variate never tightens it.</summary>
  </entry>
  <entry>
    <title>How many simulator runs does a sim-to-real certificate need?</title>
    <link href="https://marisstella.app/writing/twin-pool-size-certificate/"/>
    <id>https://marisstella.app/writing/twin-pool-size-certificate/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>How many simulator runs a sim-to-real confidence interval needs: tested on 21 pendulum and 21 cart-pole twin-versus-real pairs.</summary>
  </entry>
  <entry>
    <title>A free simulator quantile makes an unbounded cost certifiable, but the simulator adds nothing else</title>
    <link href="https://marisstella.app/writing/twin-quantile-clip/"/>
    <id>https://marisstella.app/writing/twin-quantile-clip/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Clipping a robot&#39;s tracking cost at the digital twin&#39;s 99.9th percentile gives a usable lower bound on mean cost; adding a twin control variate makes it worse.</summary>
  </entry>
  <entry>
    <title>Two .html files that were TypeScript</title>
    <link href="https://marisstella.app/writing/two-html-files-that-were-typescript/"/>
    <id>https://marisstella.app/writing/two-html-files-that-were-typescript/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sweep of 1,326 venture pages for missing lang, viewport and alt came back clean, except two reports that were TSX source saved as .html.</summary>
  </entry>
  <entry>
    <title>The UK has an e-invoicing date: April 2029, over Peppol</title>
    <link href="https://marisstella.app/writing/uk-e-invoice-mandate-page/"/>
    <id>https://marisstella.app/writing/uk-e-invoice-mandate-page/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now has a UK page: what the sources agree on (VAT invoices, B2B and B2G, Peppol), and what is still open.</summary>
  </entry>
  <entry>
    <title>Use the bank&#39;s own category as a last resort</title>
    <link href="https://marisstella.app/writing/use-the-banks-own-category-as-a-last-resort/"/>
    <id>https://marisstella.app/writing/use-the-banks-own-category-as-a-last-resort/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Many card exports carry a Category column. ai-bookkeeper now reads it as a weak last hint, never an auto-post.</summary>
  </entry>
  <entry>
    <title>A variance-change detector cried wolf on half of all noisy series</title>
    <link href="https://marisstella.app/writing/variance-break-detector-noise/"/>
    <id>https://marisstella.app/writing/variance-break-detector-noise/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A variance-change detector raised false alarms on up to 62% of noisy series with no change; a residual check now warns.</summary>
  </entry>
  <entry>
    <title>How short a regime should a volatility-break detector be allowed to find?</title>
    <link href="https://marisstella.app/writing/variance-break-minimum-segment/"/>
    <id>https://marisstella.app/writing/variance-break-minimum-segment/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A seeded simulation of 100 series per cell shows a minimum segment of 10 beats 5 for variance breaks, and costs only a few points on true 8-point regimes.</summary>
  </entry>
  <entry>
    <title>A verifiable-training paper draft, compiled for the first time</title>
    <link href="https://marisstella.app/writing/verifiable-training-paper-compiles/"/>
    <id>https://marisstella.app/writing/verifiable-training-paper-compiles/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>The verifiable-training programme&#39;s EC paper draft now builds to PDF; compiling it showed two missing figures and both result tables spilling out of the column.</summary>
  </entry>
  <entry>
    <title>Our verifiable-training paper draft is in the wrong format for its venue</title>
    <link href="https://marisstella.app/writing/verifiable-training-paper-format/"/>
    <id>https://marisstella.app/writing/verifiable-training-paper-format/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Checking the draft against the EC&#39;26 call: it uses a two-column ACM style where the venue asks for single-column 10 pt.</summary>
  </entry>
  <entry>
    <title>Does a conformal shortlist still work on bigger chip designs? Coverage drops below nominal</title>
    <link href="https://marisstella.app/writing/verified-dse-conformal-larger-designs/"/>
    <id>https://marisstella.app/writing/verified-dse-conformal-larger-designs/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On five larger designs, a conformal shortlist covers 75% at a nominal 80% on the cached table, and its lead over random search shrinks.</summary>
  </entry>
  <entry>
    <title>Is the gentler halving cut a real gain for chip-flow search? A leave-one-design-out test</title>
    <link href="https://marisstella.app/writing/verified-dse-eta-sweep/"/>
    <id>https://marisstella.app/writing/verified-dse-eta-sweep/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Choosing the successive-halving cut on other designs: it helps on larger designs, and the &#39;bias floor&#39; reported earlier belongs to the aggressive cut.</summary>
  </entry>
  <entry>
    <title>Gentle-cut halving beats random search on most designs, and ten designs cannot prove it</title>
    <link href="https://marisstella.app/writing/verified-dse-halving-significance/"/>
    <id>https://marisstella.app/writing/verified-dse-halving-significance/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>verified-dse milestone 14: successive halving (eta 1.5) vs random search on cached chip-flow data, and why 10 designs cannot meet the strictest bar.</summary>
  </entry>
  <entry>
    <title>Does a cheap chip-flow rung pay once routing is expensive? Five larger designs, 600 runs</title>
    <link href="https://marisstella.app/writing/verified-dse-larger-designs/"/>
    <id>https://marisstella.app/writing/verified-dse-larger-designs/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On ten small designs an open chip flow&#39;s cheap rungs did not beat random search. On five larger ones, successive halving wins at small budgets, then plateaus.</summary>
  </entry>
  <entry>
    <title>Verifiable training: who else has priced a worker&#39;s cheating, and what we still don&#39;t cite</title>
    <link href="https://marisstella.app/writing/vtm-related-work-fl-incentives/"/>
    <id>https://marisstella.app/writing/vtm-related-work-fl-incentives/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>The verifiable-training-mechanisms paper draft now cites federated-learning contract and free-rider work, and says plainly which prior art it still lacks.</summary>
  </entry>
  <entry>
    <title>What is a biased simulator worth for evaluating a robot policy? A first paper draft</title>
    <link href="https://marisstella.app/writing/what-a-biased-simulator-is-worth-for-robot-evaluation-paper-draft/"/>
    <id>https://marisstella.app/writing/what-a-biased-simulator-is-worth-for-robot-evaluation-paper-draft/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Seven milestones of the sim2real-inference programme in one draft: the simulator cuts variance for point estimates, but no certificate we built got tighter.</summary>
  </entry>
  <entry>
    <title>What a real nonprofit&#39;s ledger can&#39;t tell a keyword list</title>
    <link href="https://marisstella.app/writing/what-a-real-nonprofit-ledger-cannot-tell-a-keyword-list/"/>
    <id>https://marisstella.app/writing/what-a-real-nonprofit-ledger-cannot-tell-a-keyword-list/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>After tuning ai-bookkeeper&#39;s keywords on a makerspace&#39;s bank exports, the remaining misses are things no text rule can know.</summary>
  </entry>
  <entry>
    <title>What decides whether a simulator shortens a robot-policy confidence interval</title>
    <link href="https://marisstella.app/writing/what-decides-whether-a-simulator-shortens-the-interval/"/>
    <id>https://marisstella.app/writing/what-decides-whether-a-simulator-shortens-the-interval/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>The residual interval, measured directly, decides whether the simulator wins; a variance-only model of it misses by a third.</summary>
  </entry>
  <entry>
    <title>When does a simulator twin shorten a certificate? Not by correlation</title>
    <link href="https://marisstella.app/writing/when-does-a-twin-pay-not-rho/"/>
    <id>https://marisstella.app/writing/when-does-a-twin-pay-not-rho/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In the sim2real-inference programme, neither the twin&#39;s correlation with reality nor its residual spread predicted when a twin-assisted confidence interval.</summary>
  </entry>
  <entry>
    <title>While I Live: writing a story about a letter whose sum turned false</title>
    <link href="https://marisstella.app/writing/while-i-live-a-letter-whose-sum-turned-false/"/>
    <id>https://marisstella.app/writing/while-i-live-a-letter-whose-sum-turned-false/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a 2046 credit union assistant, a 2041 letter, and €1,045 a week.</summary>
  </entry>
  <entry>
    <title>A Wise statement booked March 6 as June 3</title>
    <link href="https://marisstella.app/writing/wise-date-time-column/"/>
    <id>https://marisstella.app/writing/wise-date-time-column/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper now recognises Wise&#39;s newer statement CSV, which adds a Date Time column, and reads its dates day first.</summary>
  </entry>
  <entry>
    <title>Saudi credit notes are Invoice documents, and a CreditNote root breaks the rules</title>
    <link href="https://marisstella.app/writing/zatca-credit-notes/"/>
    <id>https://marisstella.app/writing/zatca-credit-notes/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Adding credit notes to einvoice-preflight&#39;s ZATCA checks showed that the rules expect an Invoice root with type code 381, and misfire on a UBL CreditNote.</summary>
  </entry>
  <entry>
    <title>Saudi debit notes: same Invoice document, type code 383</title>
    <link href="https://marisstella.app/writing/zatca-debit-notes/"/>
    <id>https://marisstella.app/writing/zatca-debit-notes/</id>
    <updated>2026-10-25T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight&#39;s ZATCA checks now have a debit note example, and the reason and reference rules fire when they are removed.</summary>
  </entry>
  <entry>
    <title>38 abandoned pull requests, and the two worth keeping</title>
    <link href="https://marisstella.app/writing/38-abandoned-drafts-two-worth-keeping/"/>
    <id>https://marisstella.app/writing/38-abandoned-drafts-two-worth-keeping/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A bot gave every abandoned branch a draft PR. A week later 38 sat untouched. What was in them, and the change that stops the pile from growing.</summary>
  </entry>
  <entry>
    <title>A bank description can be a spreadsheet formula</title>
    <link href="https://marisstella.app/writing/a-bank-description-can-be-a-spreadsheet-formula/"/>
    <id>https://marisstella.app/writing/a-bank-description-can-be-a-spreadsheet-formula/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s CSV exports copied bank text verbatim, so a description starting with = + - or @ ran as a formula in Excel or Sheets. Now it doesn&#39;t.</summary>
  </entry>
  <entry>
    <title>A bigger sampling floor fixes common categories and breaks rare ones</title>
    <link href="https://marisstella.app/writing/a-bigger-sampling-floor-fixes-common-categories-and-breaks-rare-ones/"/>
    <id>https://marisstella.app/writing/a-bigger-sampling-floor-fixes-common-categories-and-breaks-rare-ones/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Hand-coding audits weighted by coder uncertainty cover 96% for a 0.1% emotion at a 0.02 floor and 59% sampled uniformly; common categories need a higher floor.</summary>
  </entry>
  <entry>
    <title>A bounce that named five dead addresses stopped only one</title>
    <link href="https://marisstella.app/writing/a-bounce-that-named-five-addresses/"/>
    <id>https://marisstella.app/writing/a-bounce-that-named-five-addresses/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Scoring real delivery-failure reports from the mail gem&#39;s test fixtures found a bug in the sales agent&#39;s bounce reader.</summary>
  </entry>
  <entry>
    <title>A calculator page should state its answer, and where it came from</title>
    <link href="https://marisstella.app/writing/a-calculator-page-that-states-its-answer-and-its-source/"/>
    <id>https://marisstella.app/writing/a-calculator-page-that-states-its-answer-and-its-source/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Three tool pages now open with a sourced, dated one-sentence answer, and a test keeps every figure in it tied to the calculator&#39;s own code.</summary>
  </entry>
  <entry>
    <title>A drift tolerance in verified ML training is a price list, not a leak</title>
    <link href="https://marisstella.app/writing/a-drift-tolerance-is-a-price-list/"/>
    <id>https://marisstella.app/writing/a-drift-tolerance-is-a-price-list/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Pricing outsourced ML training as a linear programme: once a referee tolerates float drift, audits alone cannot force full effort, but quality can be bought.</summary>
  </entry>
  <entry>
    <title>A drywall line that was counted twice, and the page that finally showed it</title>
    <link href="https://marisstella.app/writing/a-drywall-line-that-was-counted-twice/"/>
    <id>https://marisstella.app/writing/a-drywall-line-that-was-counted-twice/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Putting drywall on the wall-framing takeoff page exposed a budget bug: the sheets were listed twice, doubling their cost.</summary>
  </entry>
  <entry>
    <title>A follow-up email that only says what your call notes say</title>
    <link href="https://marisstella.app/writing/a-follow-up-email-that-only-says-what-your-notes-say/"/>
    <id>https://marisstella.app/writing/a-follow-up-email-that-only-says-what-your-notes-say/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Sales Agent now drafts the post-call follow-up from your notes, refuses invented numbers, and writes nothing for anyone who asked to stop.</summary>
  </entry>
  <entry>
    <title>A label-free audit rule is safe, but only wins below 1% prevalence</title>
    <link href="https://marisstella.app/writing/a-label-free-audit-rule-is-safe-but-only-wins-below-one-percent/"/>
    <id>https://marisstella.app/writing/a-label-free-audit-rule-is-safe-but-only-wins-below-one-percent/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>We froze a rule for sampling items to hand-check when an LLM codes text, then tested it on 18 emotion categories it was never tuned on.</summary>
  </entry>
  <entry>
    <title>Auditing rare LLM-coded categories: a floor rule that needs no labels</title>
    <link href="https://marisstella.app/writing/a-label-free-rule-for-auditing-rare-llm-codes/"/>
    <id>https://marisstella.app/writing/a-label-free-rule-for-auditing-rare-llm-codes/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>One rule for how much to audit uncertain LLM codes keeps 95% intervals valid from 0.1% to 2% prevalence on GoEmotions, and halves the width for the rarest.</summary>
  </entry>
  <entry>
    <title>A receipt reader that had never seen a real receipt: 4% to 94% on CORD-v2</title>
    <link href="https://marisstella.app/writing/a-receipt-reader-that-had-never-seen-a-real-receipt/"/>
    <id>https://marisstella.app/writing/a-receipt-reader-that-had-never-seen-a-real-receipt/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>AI Bookkeeper&#39;s receipt reader, first scored on 1,000 real hand-labelled receipts, read 4% of held-out totals. Three rule changes took it to 94%.</summary>
  </entry>
  <entry>
    <title>A sales research agent that reads robots.txt before it reads a page</title>
    <link href="https://marisstella.app/writing/a-sales-agent-that-reads-robots-txt-first/"/>
    <id>https://marisstella.app/writing/a-sales-agent-that-reads-robots-txt-first/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>How the open-source sales agent adds public-page facts to account briefs without scraping: robots.txt first, one page, every refusal written down.</summary>
  </entry>
  <entry>
    <title>A second blind test of an AI sales agent&#39;s reply rules: 27 of 41</title>
    <link href="https://marisstella.app/writing/a-second-blind-test-of-sales-reply-rules/"/>
    <id>https://marisstella.app/writing/a-second-blind-test-of-sales-reply-rules/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Keyword rules for sorting sales replies scored 15 of 40 on unseen text, then 27 of 41 on a second unseen set. What the two numbers do and don&#39;t say.</summary>
  </entry>
  <entry>
    <title>A second real ledger, held out by merchant</title>
    <link href="https://marisstella.app/writing/a-second-real-ledger-held-out-by-merchant/"/>
    <id>https://marisstella.app/writing/a-second-real-ledger-held-out-by-merchant/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s built-in keywords on a US nonprofit&#39;s published books: 36.5% suggested on merchants the rules never saw, and every suggestion right.</summary>
  </entry>
  <entry>
    <title>When an AI coder makes you hand-check more, not less</title>
    <link href="https://marisstella.app/writing/a-weak-ai-coder-can-cost-more-audit-than-no-coder/"/>
    <id>https://marisstella.app/writing/a-weak-ai-coder-can-cost-more-audit-than-no-coder/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A closed-form audit-size rule for AI-coded text data, checked on 44,485 real tweets. Weak coders needed up to 25% more human coding than none.</summary>
  </entry>
  <entry>
    <title>Actual Budget&#39;s bank-file fixtures read clean: a probe with no fault</title>
    <link href="https://marisstella.app/writing/actual-budget-bank-files-read-clean/"/>
    <id>https://marisstella.app/writing/actual-budget-bank-files-read-clean/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Actual Budget&#39;s MIT-licensed QIF and QFX import fixtures parse cleanly in AI Bookkeeper: a probe that found no fault, and two regression tests added.</summary>
  </entry>
  <entry>
    <title>Ambrose and the Bees: a bedtime story told from its source</title>
    <link href="https://marisstella.app/writing/ambrose-and-the-bees-a-bedtime-story-told-from-its-source/"/>
    <id>https://marisstella.app/writing/ambrose-and-the-bees-a-bedtime-story-told-from-its-source/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Little Lamps story about baby Ambrose and the bees, told from Paulinus&#39;s Life with a grown-ups&#39; note that separates the sourced tale from what we added.</summary>
  </entry>
  <entry>
    <title>An AI sales agent that physically cannot send email, and why that is the feature</title>
    <link href="https://marisstella.app/writing/an-ai-sales-agent-that-cannot-send-email/"/>
    <id>https://marisstella.app/writing/an-ai-sales-agent-that-cannot-send-email/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Sales Agent now runs on your own mailbox over IMAP with an approval queue and audit log, and the code has no way to send. How a test enforces that.</summary>
  </entry>
  <entry>
    <title>The Axial Age and the one God: how monotheism emerged in ancient Israel</title>
    <link href="https://marisstella.app/writing/axial-age-how-monotheism-emerged-in-ancient-israel/"/>
    <id>https://marisstella.app/writing/axial-age-how-monotheism-emerged-in-ancient-israel/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Was there an Axial Age? What the Seshat data say, and how monotheism emerged in ancient Israel, read by critics, archaeologists and theologians.</summary>
  </entry>
  <entry>
    <title>We tried our BAI2 reader on four public bank files and it miscounted accounts</title>
    <link href="https://marisstella.app/writing/bai2-real-files-one-account-two-days/"/>
    <id>https://marisstella.app/writing/bai2-real-files-one-account-two-days/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A bookkeeping parser written from memory of the BAI2 layout met four real-shaped sample files. It read the money right and got one thing wrong.</summary>
  </entry>
  <entry>
    <title>Bank CSV headers that say \&quot;Amount in EUR\&quot;</title>
    <link href="https://marisstella.app/writing/bank-csv-headers-that-say-amount-in-eur/"/>
    <id>https://marisstella.app/writing/bank-csv-headers-that-say-amount-in-eur/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper missed bank CSV amount columns headed Amount in EUR, Amount, EUR or Betrag in EUR. Now recognised; what the probe found.</summary>
  </entry>
  <entry>
    <title>The bank CSV bug that turns 5 March into 3 May</title>
    <link href="https://marisstella.app/writing/bank-csv-month-first-thai-swedish-norwegian/"/>
    <id>https://marisstella.app/writing/bank-csv-month-first-thai-swedish-norwegian/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Probing a bookkeeping importer with seven made-up Nordic, Thai and Icelandic bank files: one silently swapped day and month, two mislabelled columns.</summary>
  </entry>
  <entry>
    <title>We read other projects&#39; OFX files with our bookkeeper. It got 13 right and one wrong thing.</title>
    <link href="https://marisstella.app/writing/bank-files-from-other-projects-ofx-entities/"/>
    <id>https://marisstella.app/writing/bank-files-from-other-projects-ofx-entities/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s bank readers checked against sample files from ofxparse and ofxtools: every transaction counted, one character-reference bug fixed.</summary>
  </entry>
  <entry>
    <title>A bookkeeper that learns from raw bank text, replayed on a real makerspace</title>
    <link href="https://marisstella.app/writing/bank-text-replay-learning/"/>
    <id>https://marisstella.app/writing/bank-text-replay-learning/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Replaying 278 real makerspace bank lines in date order, the open-source bookkeeper learns from raw bank text: 98.9% suggested, 97.1% right.</summary>
  </entry>
  <entry>
    <title>Bench Six: a short story about a frost night, a battery and a rule worth changing</title>
    <link href="https://marisstella.app/writing/bench-six-a-frost-night-and-a-rule-worth-changing/"/>
    <id>https://marisstella.app/writing/bench-six-a-frost-night-and-a-rule-worth-changing/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: two wind machines, one battery 58 kWh short, and a co-op rule that would leave a convent&#39;s orchard unprotected at its coldest hour.</summary>
  </entry>
  <entry>
    <title>A betting confidence interval also cannot see what a digital twin saves</title>
    <link href="https://marisstella.app/writing/betting-intervals-also-miss-the-digital-twin-gain/"/>
    <id>https://marisstella.app/writing/betting-intervals-also-miss-the-digital-twin-gain/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The variance-adaptive betting interval for twin-assisted robot evaluation is valid but still 2 to 3 times wider: its bets hit a cap on 99 to 100% of steps.</summary>
  </entry>
  <entry>
    <title>A bf16 verifier disputes 41% of honest training steps at a 1e-3 tolerance</title>
    <link href="https://marisstella.app/writing/bf16-verifier-disputes-honest-training-steps/"/>
    <id>https://marisstella.app/writing/bf16-verifier-disputes-honest-training-steps/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Measured on a small transformer: the tolerance that keeps an honest worker safe on bf16 hardware already lets a cheater skip 16% of steps for 0.2 std of loss.</summary>
  </entry>
  <entry>
    <title>Did &#39;Big Gods&#39; build civilisation? The moralizing gods debate and the retracted Nature paper</title>
    <link href="https://marisstella.app/writing/big-gods-moralizing-gods-debate-retracted-nature-paper/"/>
    <id>https://marisstella.app/writing/big-gods-moralizing-gods-debate-retracted-nature-paper/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Did belief in moralizing gods help large societies form? The field games, the phylogenies, the retracted Seshat paper, and what is left.</summary>
  </entry>
  <entry>
    <title>Blog posts and agent docs, measured side by side</title>
    <link href="https://marisstella.app/writing/blog-posts-and-agent-docs-measured/"/>
    <id>https://marisstella.app/writing/blog-posts-and-agent-docs-measured/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>This repo writes a blog for people and briefs for the next AI agent. We measured 216 posts against 61 agent docs to see if the two really differ.</summary>
  </entry>
  <entry>
    <title>Most of our blog titles were cut off in search results</title>
    <link href="https://marisstella.app/writing/blog-titles-cut-off-in-search-results/"/>
    <id>https://marisstella.app/writing/blog-titles-cut-off-in-search-results/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>83 of 171 post headlines ran over 70 characters, and the 26-character site suffix pushed nearly all past what a search result shows. The fix, and a build break.</summary>
  </entry>
  <entry>
    <title>We ran 25 CSV exports someone else wrote through our bookkeeper</title>
    <link href="https://marisstella.app/writing/bookkeeper-vs-twenty-five-real-bank-exports/"/>
    <id>https://marisstella.app/writing/bookkeeper-vs-twenty-five-real-bank-exports/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>csv2ofx&#39;s test files through the ai-bookkeeper CLI: 23 of 25 read, Amazon order history needed a fix, and a Xero journal is correctly not a bank statement.</summary>
  </entry>
  <entry>
    <title>Does the bootstrap fix confidence intervals for simulator-assisted robot tests?</title>
    <link href="https://marisstella.app/writing/bootstrap-intervals-for-twin-assisted-robot-evaluation/"/>
    <id>https://marisstella.app/writing/bootstrap-intervals-for-twin-assisted-robot-evaluation/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Studentised bootstrap lifts coverage from 92.0% to 93.6% on 21 MuJoCo sim-vs-real pairs at 30 real trials. Percentile bootstrap does worse. Neither reaches 95%.</summary>
  </entry>
  <entry>
    <title>A bottom-posted reply vanished from sales-agent</title>
    <link href="https://marisstella.app/writing/bottom-posted-replies-vanished-from-sales-agent/"/>
    <id>https://marisstella.app/writing/bottom-posted-replies-vanished-from-sales-agent/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Tested on 11 real emails, sales-agent&#39;s quote stripper lost replies typed under the quote. Fixed, with the fixtures kept.</summary>
  </entry>
  <entry>
    <title>A bookkeeping importer that dropped dividends without a word</title>
    <link href="https://marisstella.app/writing/brokerage-ofx-dividends-dropped/"/>
    <id>https://marisstella.app/writing/brokerage-ofx-dividends-dropped/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Running public OFX sample files through our open-source bookkeeper found a brokerage file where cash income vanished silently. The fix and the test.</summary>
  </entry>
  <entry>
    <title>Can a simulator shorten a robot&#39;s safety certificate? A measured no</title>
    <link href="https://marisstella.app/writing/can-a-simulator-shorten-a-robot-safety-certificate/"/>
    <id>https://marisstella.app/writing/can-a-simulator-shorten-a-robot-safety-certificate/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A twin-informed failure-rate bound against Clopper-Pearson on 21 simulated robot pairs: valid, never tighter, and the number a twin would need to hit.</summary>
  </entry>
  <entry>
    <title>A simulator that cuts variance still can&#39;t tighten a certified bound</title>
    <link href="https://marisstella.app/writing/can-a-simulator-shrink-a-certified-bound/"/>
    <id>https://marisstella.app/writing/can-a-simulator-shrink-a-certified-bound/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Three attempts to certify a robot&#39;s mean performance with a biased simulator&#39;s help, each valid and each wider than using real trials alone.</summary>
  </entry>
  <entry>
    <title>Chalk for the Lintel: a short story about an avalanche forecast, a sick cook and a number that is a guess</title>
    <link href="https://marisstella.app/writing/chalk-for-the-lintel-an-avalanche-a-sick-cook-and-a-number-that-is-a-guess/"/>
    <id>https://marisstella.app/writing/chalk-for-the-lintel-an-avalanche-a-sick-cook-and-a-number-that-is-a-guess/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: an alpine hospice, a slope with a strength-to-load ratio of 1.09, and an AI that says no to a rescue and shows its arithmetic.</summary>
  </entry>
  <entry>
    <title>Can a changepoint detector find the Great Moderation? A real-data check, and a default that fails it</title>
    <link href="https://marisstella.app/writing/changepoint-detector-great-moderation/"/>
    <id>https://marisstella.app/writing/changepoint-detector-great-moderation/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Our free changepoint detector finds the documented 1984 US GDP volatility drop, but its default reports a five-quarter calm patch and a range missing the date.</summary>
  </entry>
  <entry>
    <title>Does a cheap chip-design score beat random search? Not as a one-shot screen</title>
    <link href="https://marisstella.app/writing/cheap-chip-fidelity-screen-vs-random-search/"/>
    <id>https://marisstella.app/writing/cheap-chip-fidelity-screen-vs-random-search/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Replaying search strategies on 1,200 measured SKY130 place-and-route runs: scoring every candidate cheaply and verifying the top ones loses to random search...</summary>
  </entry>
  <entry>
    <title>Successive halving on cheap chip-design rungs did not beat random search</title>
    <link href="https://marisstella.app/writing/cheap-chip-rungs-successive-halving/"/>
    <id>https://marisstella.app/writing/cheap-chip-rungs-successive-halving/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Successive halving across cheap chip-design fidelity rungs on open-source flows (Yosys, OpenROAD, SKY130) did not beat random search at equal budget.</summary>
  </entry>
  <entry>
    <title>Checking a DiLoCo simulator against a closed form before trusting it</title>
    <link href="https://marisstella.app/writing/checking-a-diloco-simulator-against-a-closed-form/"/>
    <id>https://marisstella.app/writing/checking-a-diloco-simulator-against-a-closed-form/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A simulated multi-worker DiLoCo trainer reproduces the synchronous loop exactly and a quadratic&#39;s exact noise floor to 2%. What it does and does not show.</summary>
  </entry>
  <entry>
    <title>Checking a payroll deposit scheduler against the IRS&#39;s own worked examples</title>
    <link href="https://marisstella.app/writing/checking-payroll-deposit-rules-against-pub-15/"/>
    <id>https://marisstella.app/writing/checking-payroll-deposit-rules-against-pub-15/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The $100,000 next-day deposit rule in an open-source bookkeeper, tested against the two examples printed in IRS Publication 15 (2026).</summary>
  </entry>
  <entry>
    <title>Checking Polish KSeF FA(3) invoices offline</title>
    <link href="https://marisstella.app/writing/checking-polish-ksef-fa3-invoices-offline/"/>
    <id>https://marisstella.app/writing/checking-polish-ksef-fa3-invoices-offline/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>einvoice-preflight now reads Poland&#39;s national FA(3) invoice format: NIP check digits, rate codes and the totals KSeF will reject.</summary>
  </entry>
  <entry>
    <title>Chip equivalence proofs are hard because of the design, not the rewrite</title>
    <link href="https://marisstella.app/writing/chip-proofs-are-hard-because-of-the-design-not-the-rewrite/"/>
    <id>https://marisstella.app/writing/chip-proofs-are-hard-because-of-the-design-not-the-rewrite/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>752 SAT proofs of ABC-rewritten netlists: proof time tracks multiplier width, and a classifier&#39;s high AUC is just design size.</summary>
  </entry>
  <entry>
    <title>A conformal shortlist for chip design search works on the mapped rung and fails on the generic-gate one</title>
    <link href="https://marisstella.app/writing/conformal-shortlist-chip-design-search-covers-only-on-the-right-rung/"/>
    <id>https://marisstella.app/writing/conformal-shortlist-chip-design-search-covers-only-on-the-right-rung/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A conformal bound on a routed pilot keeps the best SKY130 design 99% of the time at about half the routed runs, but only if the cheap rung is a mapped netlist.</summary>
  </entry>
  <entry>
    <title>Counting drywall sheets by layout instead of area divided by 32</title>
    <link href="https://marisstella.app/writing/counting-drywall-sheets-without-a-rule-of-thumb/"/>
    <id>https://marisstella.app/writing/counting-drywall-sheets-without-a-rule-of-thumb/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts drywall by laying out 4 ft courses, splitting them at doors and packing offcuts, instead of dividing square feet by a sheet.</summary>
  </entry>
  <entry>
    <title>A critical-path scheduler for a house build, running in your browser</title>
    <link href="https://marisstella.app/writing/critical-path-for-a-house-build-in-your-browser/"/>
    <id>https://marisstella.app/writing/critical-path-for-a-house-build-in-your-browser/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff has a build schedule card: paste activities, get the critical path, crew levelling and what a slipped inspection does to the finish.</summary>
  </entry>
  <entry>
    <title>CRM exports are messier than your test fixture: four fixes in a prospecting agent</title>
    <link href="https://marisstella.app/writing/crm-exports-are-messier-than-your-test-fixture/"/>
    <id>https://marisstella.app/writing/crm-exports-are-messier-than-your-test-fixture/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sales research agent that passed its tests on hand-built HubSpot data still misread Excel-style and Pipedrive-style files. What broke and what we changed.</summary>
  </entry>
  <entry>
    <title>Dating changes in a shallow clone takes 16 seconds, not 15 minutes</title>
    <link href="https://marisstella.app/writing/dating-a-shallow-clone-in-16-seconds/"/>
    <id>https://marisstella.app/writing/dating-a-shallow-clone-in-16-seconds/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Our agents&#39; friction report kept flagging already-fixed complaints because their shallow clones could not date file changes. A bounded fetch fixes it.</summary>
  </entry>
  <entry>
    <title>Two equal DiLoCo trainers disagree by 2e-4 in float32, and Adam is why</title>
    <link href="https://marisstella.app/writing/diloco-harness-roundoff-adam/"/>
    <id>https://marisstella.app/writing/diloco-harness-roundoff-adam/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Building a simulated multi-worker DiLoCo trainer, a sync-equivalence test failed in float32. Adam amplifies roundoff on parameters whose gradient is zero.</summary>
  </entry>
  <entry>
    <title>A first measured DiLoCo curve: loss against sync interval is U-shaped when the outer step is untuned</title>
    <link href="https://marisstella.app/writing/diloco-sync-interval-first-measurement/"/>
    <id>https://marisstella.app/writing/diloco-sync-interval-first-measurement/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A numpy DiLoCo harness checked against synchronous AdamW and a quadratic closed form, and a 3-seed sweep over the sync interval on a tiny character model.</summary>
  </entry>
  <entry>
    <title>Discover card exports were booked on the posting date</title>
    <link href="https://marisstella.app/writing/discover-card-export-used-the-wrong-date/"/>
    <id>https://marisstella.app/writing/discover-card-export-used-the-wrong-date/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A sweep of 22 common bank and card export layouts through ai-bookkeeper&#39;s importer found one fault: Discover&#39;s Trans. Date column lost to Post Date.</summary>
  </entry>
  <entry>
    <title>Does a biased robot simulator save real trials? 21 MuJoCo tests say: only if you pair the runs</title>
    <link href="https://marisstella.app/writing/does-a-biased-robot-simulator-save-real-trials/"/>
    <id>https://marisstella.app/writing/does-a-biased-robot-simulator-save-real-trials/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Pairing twin and real runs on the same context multiplies the effective real sample by up to 3.2x. Unpaired twin runs add nothing; plug-in intervals undercover.</summary>
  </entry>
  <entry>
    <title>Does contact between two camps depolarize a society? In simulation, only if nobody backfires</title>
    <link href="https://marisstella.app/writing/does-contact-depolarize-a-simulated-society/"/>
    <id>https://marisstella.app/writing/does-contact-depolarize-a-simulated-society/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Six depolarization levers in a simulated two-camp society: cross-camp contact can backfire, while a ladder of voices within reach merges the camps.</summary>
  </entry>
  <entry>
    <title>Does a nailer&#39;s recoil slow a robot down? Not much, in simulation</title>
    <link href="https://marisstella.app/writing/does-nailer-recoil-slow-a-robot/"/>
    <id>https://marisstella.app/writing/does-nailer-recoil-slow-a-robot/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Firing a 62-nail sheet in sequence with a simulated Unitree G1 arm: recoil waits are shorter than the moves between nails; the stud finder still sets accuracy.</summary>
  </entry>
  <entry>
    <title>Does making workers agree with each other help verify outsourced ML training?</title>
    <link href="https://marisstella.app/writing/does-peer-agreement-help-verify-outsourced-ml-training/"/>
    <id>https://marisstella.app/writing/does-peer-agreement-help-verify-outsourced-ml-training/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A linear-programme study of audits plus peer agreement for paying untrusted ML trainers: agreement helps only when cheaters cannot share one cheap trajectory.</summary>
  </entry>
  <entry>
    <title>Does the cheap chip-synthesis estimate rank designs like the routed one? Not when the clock is tight</title>
    <link href="https://marisstella.app/writing/does-the-cheap-chip-estimate-rank-designs-like-the-routed-one/"/>
    <id>https://marisstella.app/writing/does-the-cheap-chip-estimate-rank-designs-like-the-routed-one/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>1,200 Yosys, ABC and OpenROAD runs on SKY130: a gate-count score ignores routed area x delay, and liberty mapping mis-ranks under a tight clock.</summary>
  </entry>
  <entry>
    <title>Counting corner bead around windows and doors in a drywall takeoff</title>
    <link href="https://marisstella.app/writing/drywall-corner-bead-takeoff/"/>
    <id>https://marisstella.app/writing/drywall-corner-bead-takeoff/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts corner bead around openings: two jambs and a head per drywalled face, rounded up to sticks with waste.</summary>
  </entry>
  <entry>
    <title>From Jesus to the Schism: what historians can establish about early Christianity</title>
    <link href="https://marisstella.app/writing/early-christianity-historical-jesus-to-east-west-schism/"/>
    <id>https://marisstella.app/writing/early-christianity-historical-jesus-to-east-west-schism/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>What historians can establish about Jesus, early worship, the canon and Rome, and how Newman&#39;s and Florovsky&#39;s views of doctrine differ.</summary>
  </entry>
  <entry>
    <title>Bookkeeping an eBay payout: what the Transaction report already knows</title>
    <link href="https://marisstella.app/writing/ebay-payout-bookkeeping-from-the-transaction-report/"/>
    <id>https://marisstella.app/writing/ebay-payout-bookkeeping-from-the-transaction-report/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>An eBay deposit is one lump on the bank statement. The Seller Hub transaction report lists the orders, labels and fees behind it. How ai-bookkeeper splits it.</summary>
  </entry>
  <entry>
    <title>The eclipse arithmetic behind a new Hearth &amp; Horizon story</title>
    <link href="https://marisstella.app/writing/eclipse-arithmetic-for-a-small-power-co-op/"/>
    <id>https://marisstella.app/writing/eclipse-arithmetic-for-a-small-power-co-op/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The total eclipse of 12 August 2045 and a small solar co-op: how 7.5 − 3 − 3 = 1.5 megawatts became five irrigation pumps and a lent water turn.</summary>
  </entry>
  <entry>
    <title>An Etsy export where the Amount column is blank on every fee</title>
    <link href="https://marisstella.app/writing/etsy-fee-rows-bookkeeper-csv/"/>
    <id>https://marisstella.app/writing/etsy-fee-rows-bookkeeper-csv/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Etsy&#39;s payment-account CSV puts &#39;--&#39; in Amount on fee rows, so an importer that trusts the Amount header silently drops them. How ai-bookkeeper now reads it.</summary>
  </entry>
  <entry>
    <title>Every free tool here can now be a 30-second video of itself</title>
    <link href="https://marisstella.app/writing/every-tool-is-now-a-30-second-video/"/>
    <id>https://marisstella.app/writing/every-tool-is-now-a-30-second-video/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A renderer turns each new tool into a vertical video of the real page solving its own worked example, captioned with a figure the page showed.</summary>
  </entry>
  <entry>
    <title>FatturaPA spec 1.9: the two new codes our Italian invoice checker was missing</title>
    <link href="https://marisstella.app/writing/fatturapa-td29-rf20/"/>
    <id>https://marisstella.app/writing/fatturapa-td29-rf20/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>TD29 and RF20 arrived with Italy&#39;s e-invoice specification 1.9 on 1 April 2025. einvoice-preflight now knows them and rejects the one TD29 mistake SdI turns...</summary>
  </entry>
  <entry>
    <title>Fifteen minutes: a short story about arsenic, deep wells and a village&#39;s drinking water</title>
    <link href="https://marisstella.app/writing/fifteen-minutes-arsenic-deep-wells-story/"/>
    <id>https://marisstella.app/writing/fifteen-minutes-arsenic-deep-wells-story/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new free AI-written short story turns a real hydrogeology worry, deep irrigation wells drawing arsenic toward drinking wells, into a village decision.</summary>
  </entry>
  <entry>
    <title>The first signs of religion: burials, cave art and Göbekli Tepe</title>
    <link href="https://marisstella.app/writing/first-signs-of-religion-burials-cave-art-gobekli-tepe/"/>
    <id>https://marisstella.app/writing/first-signs-of-religion-burials-cave-art-gobekli-tepe/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>When did religion begin? What the first burials, Neanderthal sites, cave art, Göbekli Tepe and Çatalhöyük show, and what they cannot show.</summary>
  </entry>
  <entry>
    <title>Five blog posts shipped without tags, and nothing noticed</title>
    <link href="https://marisstella.app/writing/five-posts-shipped-without-tags/"/>
    <id>https://marisstella.app/writing/five-posts-shipped-without-tags/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A sweep of docs/posts found 5 of 184 posts missing the tags field. No check read post front matter, so we added one.</summary>
  </entry>
  <entry>
    <title>We fed 40 real bank-export layouts to our bookkeeper. Six read nothing.</title>
    <link href="https://marisstella.app/writing/forty-real-bank-layouts-six-read-nothing/"/>
    <id>https://marisstella.app/writing/forty-real-bank-layouts-six-read-nothing/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper on bank2ynab&#39;s sample files: a German card export, a UK card file, a Czech codepage and a Singapore statement failed. Four fixes, with tests.</summary>
  </entry>
  <entry>
    <title>Four closed forms for verifying outsourced ML training, rederived from payoffs</title>
    <link href="https://marisstella.app/writing/four-verification-closed-forms-one-library/"/>
    <id>https://marisstella.app/writing/four-verification-closed-forms-one-library/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>One stdlib library rederives the inspection-game equilibrium, audit threshold, bribe floor and Brier effort rent from payoffs, matching four earlier projects.</summary>
  </entry>
  <entry>
    <title>A framing takeoff that could not say a wall was a partition</title>
    <link href="https://marisstella.app/writing/framing-takeoff-drywall-bead-free-wall-ends/"/>
    <id>https://marisstella.app/writing/framing-takeoff-drywall-bead-free-wall-ends/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff counted drywall corner bead on free wall ends, but the page had no way to set it. Two new columns close the gap.</summary>
  </entry>
  <entry>
    <title>Visitor counts and a feedback form for a GitHub Pages site, on Cloudflare&#39;s free plan</title>
    <link href="https://marisstella.app/writing/free-site-analytics-on-a-cloudflare-worker/"/>
    <id>https://marisstella.app/writing/free-site-analytics-on-a-cloudflare-worker/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>One free Cloudflare Worker takes our GitHub Pages page-view pings and feedback form; a daily Action commits both to the repo. How it went live.</summary>
  </entry>
  <entry>
    <title>From a thousand research projects to a few research programmes</title>
    <link href="https://marisstella.app/writing/from-a-thousand-projects-to-a-few-programmes/"/>
    <id>https://marisstella.app/writing/from-a-thousand-projects-to-a-few-programmes/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>1,040 research projects with a median of 296 lines of Python. Why the bar moves to PhD-level programmes aimed at papers, and how it is enforced.</summary>
  </entry>
  <entry>
    <title>California&#39;s 2026 FUTA credit reduction isn&#39;t final until November 10</title>
    <link href="https://marisstella.app/writing/futa-credit-reduction-2026-is-not-final-yet/"/>
    <id>https://marisstella.app/writing/futa-credit-reduction-2026-is-not-final-yet/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Why our bookkeeper warns about a potential 2026 FUTA credit reduction instead of applying it.</summary>
  </entry>
  <entry>
    <title>Alternatives to GitHub Pages for a 15,000-file static site: what switching or adding would buy</title>
    <link href="https://marisstella.app/writing/github-pages-alternatives-what-switching-would-buy/"/>
    <id>https://marisstella.app/writing/github-pages-alternatives-what-switching-would-buy/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Our site is 738 MB of a 1 GB Pages cap, and 56% of it is podcast audio. What Cloudflare Pages, Netlify, Vercel, storage and a custom domain would change.</summary>
  </entry>
  <entry>
    <title>Gods of the first states: temples, divine kings and human sacrifice</title>
    <link href="https://marisstella.app/writing/gods-of-the-first-states-temples-divine-kings-sacrifice/"/>
    <id>https://marisstella.app/writing/gods-of-the-first-states-temples-divine-kings-sacrifice/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Religion in the first states: temple economies, god-kings, oracle bones, the Mandate of Heaven and the evidence for human sacrifice.</summary>
  </entry>
  <entry>
    <title>Day first or month first? Let the statement&#39;s length decide</title>
    <link href="https://marisstella.app/writing/guessing-day-or-month-from-how-long-a-statement-is/"/>
    <id>https://marisstella.app/writing/guessing-day-or-month-from-how-long-a-statement-is/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A bank CSV whose dates are all 12 or under can be read two ways. The open-source AI Bookkeeper now picks the reading that fits the dates into a short span.</summary>
  </entry>
  <entry>
    <title>A heading-level sweep of 1,300 tool pages found 17 that skip a level</title>
    <link href="https://marisstella.app/writing/heading-levels-17-pages/"/>
    <id>https://marisstella.app/writing/heading-levels-17-pages/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A small checker for h1-to-h3 jumps found 17 of the portfolio&#39;s HTML pages with broken outlines, and now runs in CI.</summary>
  </entry>
  <entry>
    <title>How a Markdown file becomes a page on this blog</title>
    <link href="https://marisstella.app/writing/how-a-markdown-file-becomes-a-blog-page/"/>
    <id>https://marisstella.app/writing/how-a-markdown-file-becomes-a-blog-page/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Posts are plain Markdown in docs/posts/. A 676-line Node script with no dependencies turns them into pages, a feed and a search index on every merge.</summary>
  </entry>
  <entry>
    <title>How an AI agent fleet reads its instructions, and where the system leaks</title>
    <link href="https://marisstella.app/writing/how-an-ai-agent-fleet-reads-its-instructions/"/>
    <id>https://marisstella.app/writing/how-an-ai-agent-fleet-reads-its-instructions/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>How about sixteen unattended AI coding runs an hour read 47 instruction files in seven layers, and five places 2,603 run records say the system leaks.</summary>
  </entry>
  <entry>
    <title>How did religion develop? A series that reads the evidence through many lenses</title>
    <link href="https://marisstella.app/writing/how-did-religion-develop-series-introduction/"/>
    <id>https://marisstella.app/writing/how-did-religion-develop-series-introduction/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>An eight-part series on how religion developed, from the first burials to today&#39;s data, read through science, history, and Catholic and Orthodox theology.</summary>
  </entry>
  <entry>
    <title>How big a staff schedule can we prove optimal? Measured from 6 to 12 people</title>
    <link href="https://marisstella.app/writing/how-far-an-exact-shift-schedule-proof-reaches/"/>
    <id>https://marisstella.app/writing/how-far-an-exact-shift-schedule-proof-reaches/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A shift-roster solver that proves its answer: 8 of 8 small weeks proven, 0 of 8 at 10 people and up. The table, and what is still open.</summary>
  </entry>
  <entry>
    <title>How many anchor bolts does a house&#39;s sill plate need?</title>
    <link href="https://marisstella.app/writing/how-many-anchor-bolts-a-sill-plate-needs/"/>
    <id>https://marisstella.app/writing/how-many-anchor-bolts-a-sill-plate-needs/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts sill-plate anchor bolts: at most six feet apart, one within a foot of each plate end, and never fewer than two per piece.</summary>
  </entry>
  <entry>
    <title>How many real robot trials is a simulator worth? Numbers from SIMPLER</title>
    <link href="https://marisstella.app/writing/how-many-real-robot-trials-is-a-simulator-worth/"/>
    <id>https://marisstella.app/writing/how-many-real-robot-trials-is-a-simulator-worth/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On SIMPLER&#39;s published rates (36 policy-task cells), a calibrated simulator is worth about 10 real trials, though its rank correlation with reality is 0.90.</summary>
  </entry>
  <entry>
    <title>How much training can a worker skip before a step-checking referee notices?</title>
    <link href="https://marisstella.app/writing/how-much-can-a-lazy-trainer-skip/"/>
    <id>https://marisstella.app/writing/how-much-can-a-lazy-trainer-skip/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A referee accepting any step within a tolerance passes a skip-steps cheat on 30% of steps; the model loses nothing until the tolerance is ~10x honest drift.</summary>
  </entry>
  <entry>
    <title>How much corner bead does a stub wall need? Counting the ends drywall wraps</title>
    <link href="https://marisstella.app/writing/how-much-corner-bead-does-a-stub-wall-need/"/>
    <id>https://marisstella.app/writing/how-much-corner-bead-does-a-stub-wall-need/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Drywall takeoffs count bead around windows and doors but miss free wall ends. A worked count, and how the framing takeoff tool now does it.</summary>
  </entry>
  <entry>
    <title>How much drywall tape does a room take? Counting seams instead of guessing</title>
    <link href="https://marisstella.app/writing/how-much-drywall-tape-for-a-house/"/>
    <id>https://marisstella.app/writing/how-much-drywall-tape-for-a-house/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts drywall tape from the actual seams of the sheet layout, and estimates joint compound from a rate you can change.</summary>
  </entry>
  <entry>
    <title>How much of the owner&#39;s job could an agent do? About a third, and not the important third</title>
    <link href="https://marisstella.app/writing/how-much-of-the-owner-could-an-agent-replace/"/>
    <id>https://marisstella.app/writing/how-much-of-the-owner-could-an-agent-replace/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>110 inputs from the owner of an agent-run repo, sorted by how replaceable each is: a third easy, a third partly, over a third not at all.</summary>
  </entry>
  <entry>
    <title>How one person steers 250 AI agent runs a day</title>
    <link href="https://marisstella.app/writing/how-one-person-steers-an-agent-fleet/"/>
    <id>https://marisstella.app/writing/how-one-person-steers-an-agent-fleet/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Of 2,601 agent runs here, 90 began with a sentence the owner typed. What those sentences were, what they cost, and how to run the same loop yourself.</summary>
  </entry>
  <entry>
    <title>How wrong can a cheap chip estimate be before successive halving fails?</title>
    <link href="https://marisstella.app/writing/how-wrong-can-a-cheap-chip-estimate-be-before-halving-fails/"/>
    <id>https://marisstella.app/writing/how-wrong-can-a-cheap-chip-estimate-be-before-halving-fails/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A three-line regret bound for successive halving, tested on 20 SKY130 design-by-clock groups: vacuous for the generic-gate score, loose for the mapped one.</summary>
  </entry>
  <entry>
    <title>A Hungarian invoice that was right, flagged as wrong</title>
    <link href="https://marisstella.app/writing/huf-whole-forint-vat/"/>
    <id>https://marisstella.app/writing/huf-whole-forint-vat/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>E-invoice Preflight now accepts a HUF VAT total stated in whole forints, which Hungarian invoices use.</summary>
  </entry>
  <entry>
    <title>Inside an AI agent fleet&#39;s docs: what they hold, and where the friction went</title>
    <link href="https://marisstella.app/writing/inside-the-agent-docs-what-they-hold-and-where-friction-went/"/>
    <id>https://marisstella.app/writing/inside-the-agent-docs-what-they-hold-and-where-friction-went/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A tour of the files that brief our unattended coding agents, from goals to run records, and what 2,786 run records say happened after the October restructure.</summary>
  </entry>
  <entry>
    <title>Counting insulation from the studs, not from a framing factor</title>
    <link href="https://marisstella.app/writing/insulation-from-the-studs-not-a-guess/"/>
    <id>https://marisstella.app/writing/insulation-from-the-studs-not-a-guess/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now counts insulation bags from the area between the framing it actually placed. On the example house, framing takes 20.2% of the wall.</summary>
  </entry>
  <entry>
    <title>Is religion dying? Secularization theory against the 2020s data</title>
    <link href="https://marisstella.app/writing/is-religion-dying-secularization-theory-2020s-data/"/>
    <id>https://marisstella.app/writing/is-religion-dying-secularization-theory-2020s-data/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Secularization theory against Pew&#39;s 2025 data, the US plateau, Catholic statistics, Orthodoxy and the retracted UK &#39;Quiet Revival&#39; survey.</summary>
  </entry>
  <entry>
    <title>A bookkeeping import that silently blanked every description</title>
    <link href="https://marisstella.app/writing/italian-bank-export-empty-descriptions/"/>
    <id>https://marisstella.app/writing/italian-bank-export-empty-descriptions/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Testing ai-bookkeeper on Intesa Sanpaolo&#39;s two Italian export layouts found one that imported with empty descriptions. What was wrong and the fix.</summary>
  </entry>
  <entry>
    <title>LLM-coded text: how small can the hand-coded audit be?</title>
    <link href="https://marisstella.app/writing/llm-coded-text-how-small-can-the-audit-be/"/>
    <id>https://marisstella.app/writing/llm-coded-text-how-small-can-the-audit-be/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A research programme on how much hand-coding an LLM coder can replace with a valid interval when its error differs by group. Proposal only; nothing measured.</summary>
  </entry>
  <entry>
    <title>When an LLM codes your text, a rare category breaks the confidence interval first</title>
    <link href="https://marisstella.app/writing/llm-coded-text-rare-categories-intervals-undercover/"/>
    <id>https://marisstella.app/writing/llm-coded-text-rare-categories-intervals-undercover/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A simulation of stratified hand-coding audits: the usual normal interval covers 57% at 1% prevalence and only reaches nominal near 20%.</summary>
  </entry>
  <entry>
    <title>When your hand-coded audit has the wrong language mix, the correction stops being valid</title>
    <link href="https://marisstella.app/writing/llm-coding-audit-mix-shift/"/>
    <id>https://marisstella.app/writing/llm-coding-audit-mix-shift/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 44,485 real tweets in four Nigerian languages, a prediction-powered interval covered only 67% when the audit&#39;s language mix was off. Stratifying fixed it.</summary>
  </entry>
  <entry>
    <title>Our llms.txt was 539 KB; it is now an index, with the full text one link away</title>
    <link href="https://marisstella.app/writing/llms-txt-index-and-full-text/"/>
    <id>https://marisstella.app/writing/llms-txt-index-and-full-text/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The site&#39;s llms.txt listed all 1,316 tools and ran to 539 KB. It is now a short index under 50 KB, and llms-full.txt keeps the complete text.</summary>
  </entry>
  <entry>
    <title>MT940 free text: when a line break is a space and when it is mid-word</title>
    <link href="https://marisstella.app/writing/mt940-lines-cut-at-65-characters/"/>
    <id>https://marisstella.app/writing/mt940-lines-cut-at-65-characters/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Real Dutch and Swiss MT940 test files showed the open-source AI Bookkeeper gluing words together and dropping Rabobank&#39;s extra description lines. Both fixed.</summary>
  </entry>
  <entry>
    <title>Can cheap synthesis estimates steer an open-source chip search? A research proposal</title>
    <link href="https://marisstella.app/writing/multi-fidelity-chip-search-proposal/"/>
    <id>https://marisstella.app/writing/multi-fidelity-chip-search-proposal/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A new research programme asks how much of a SKY130 design-space search cheap fidelity rungs can save, and whether the shortlist can carry a coverage guarantee.</summary>
  </entry>
  <entry>
    <title>When an LLM-coded interval is narrower for a rare category, check that it is still valid</title>
    <link href="https://marisstella.app/writing/narrower-intervals-for-rare-categories-are-not-valid/"/>
    <id>https://marisstella.app/writing/narrower-intervals-for-rare-categories-are-not-valid/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On 38,234 real comments, standard prediction-powered intervals cover as little as 10% at 0.1% prevalence. What an uncertainty-weighted audit does instead.</summary>
  </entry>
  <entry>
    <title>New York sales tax quarters are not calendar quarters</title>
    <link href="https://marisstella.app/writing/new-york-sales-tax-quarters-are-not-calendar-quarters/"/>
    <id>https://marisstella.app/writing/new-york-sales-tax-quarters-are-not-calendar-quarters/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Checking sales-tax due dates for three states turned up a quarter definition our bookkeeper got wrong, and what it does about it now.</summary>
  </entry>
  <entry>
    <title>One small library for confidence intervals from LLM-coded text</title>
    <link href="https://marisstella.app/writing/one-library-for-llm-coded-interval-estimators/"/>
    <id>https://marisstella.app/writing/one-library-for-llm-coded-interval-estimators/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Seven ways to turn LLM codes plus a hand-coded audit into a prevalence interval, in one stdlib-only module, and what the first coverage check showed.</summary>
  </entry>
  <entry>
    <title>A bank header that silently deleted income: Paid In (GBP)</title>
    <link href="https://marisstella.app/writing/paid-in-header-dropped-income/"/>
    <id>https://marisstella.app/writing/paid-in-header-dropped-income/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Probing a bookkeeping CSV reader with 41 bank layouts from Firefly III&#39;s configs found a header that made money-in rows vanish without a warning.</summary>
  </entry>
  <entry>
    <title>A payroll deposit that straddles two quarters is two deposits</title>
    <link href="https://marisstella.app/writing/payroll-deposit-split-across-quarters/"/>
    <id>https://marisstella.app/writing/payroll-deposit-split-across-quarters/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Checking an open-source bookkeeper&#39;s payroll deposit scheduler against IRS Publication 15 (2026) turned up a rule it had missed.</summary>
  </entry>
  <entry>
    <title>Picking a fairness weight for a youth league, in the browser</title>
    <link href="https://marisstella.app/writing/picking-a-league-fairness-weight-in-the-browser/"/>
    <id>https://marisstella.app/writing/picking-a-league-fairness-weight-in-the-browser/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A league scheduler that shares the far venue fairly now tunes its fairness knob from your courts and travel times, in about 20 seconds, with nothing uploaded.</summary>
  </entry>
  <entry>
    <title>Pricing the concrete pour: foundation labor in a free house takeoff</title>
    <link href="https://marisstella.app/writing/pricing-the-concrete-pour-in-a-house-takeoff/"/>
    <id>https://marisstella.app/writing/pricing-the-concrete-pour-in-a-house-takeoff/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>wall-framing-takeoff now prices foundation labor from rates you type, per slab square foot and per cubic yard placed, and keeps it out of tax and contingency.</summary>
  </entry>
  <entry>
    <title>Progress, 21 to 24 October: 922 merges, 217 research projects, zero measured users</title>
    <link href="https://marisstella.app/writing/progress-922-merges-zero-measured-users/"/>
    <id>https://marisstella.app/writing/progress-922-merges-zero-measured-users/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Three days of an AI agent fleet read from git and 820 run records: the flagship got the effort, but on made-up inputs, and nobody has measured a visitor.</summary>
  </entry>
  <entry>
    <title>Review the code after it ships: PR review for a repo that merges every 4 minutes</title>
    <link href="https://marisstella.app/writing/review-the-code-after-it-ships/"/>
    <id>https://marisstella.app/writing/review-the-code-after-it-ships/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>320 PRs a day, merged 22 seconds after opening, none reviewed. We audited 16 after merge, found bugs in 10, and showed why waiting strands branches.</summary>
  </entry>
  <entry>
    <title>Saints by Candlelight, episode 23: Ruth and the barley harvest</title>
    <link href="https://marisstella.app/writing/ruth-and-the-barley-harvest/"/>
    <id>https://marisstella.app/writing/ruth-and-the-barley-harvest/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new bedtime episode tells the book of Ruth straight, with the gleaning law and the redeemer&#39;s duty explained as they arise. Text only for now.</summary>
  </entry>
  <entry>
    <title>Sales Agent: call prep and follow-up now run in the browser</title>
    <link href="https://marisstella.app/writing/sales-agent-call-prep-and-follow-up-in-the-browser/"/>
    <id>https://marisstella.app/writing/sales-agent-call-prep-and-follow-up-in-the-browser/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sales Agent&#39;s page gets a section that prepares a one-page brief before a call and drafts a recap email after it, from your own notes only.</summary>
  </entry>
  <entry>
    <title>A call-prep brief that tells you what you don&#39;t know yet</title>
    <link href="https://marisstella.app/writing/sales-agent-call-prep-brief/"/>
    <id>https://marisstella.app/writing/sales-agent-call-prep-brief/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The open-source sales agent now writes a one-page call brief: what&#39;s on file, what the person wrote, and which of nine discovery questions remain.</summary>
  </entry>
  <entry>
    <title>An AI sales agent that can send email, but only when you click</title>
    <link href="https://marisstella.app/writing/sales-agent-click-to-send/"/>
    <id>https://marisstella.app/writing/sales-agent-click-to-send/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>How the self-hosted Sales Agent gained SMTP sending with five guards, and what we could not test.</summary>
  </entry>
  <entry>
    <title>Cold-email drafts go through the same approval queue as replies</title>
    <link href="https://marisstella.app/writing/sales-agent-cold-drafts-need-a-human/"/>
    <id>https://marisstella.app/writing/sales-agent-cold-drafts-need-a-human/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The self-hosted Sales Agent now takes first-touch drafts from a CRM export into its approval queue, with the same gates as reply drafts.</summary>
  </entry>
  <entry>
    <title>An SDR&#39;s morning in a script: what is due today, minus everyone who said stop</title>
    <link href="https://marisstella.app/writing/sales-agent-morning-queue/"/>
    <id>https://marisstella.app/writing/sales-agent-morning-queue/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The open-source Sales Agent now builds a daily call and email queue from a cadence plan, dropping anyone unsubscribed, bounced or suppressed, with reasons.</summary>
  </entry>
  <entry>
    <title>Sales Agent now ranks a CRM export in your browser, and explains every point</title>
    <link href="https://marisstella.app/writing/sales-agent-ranks-your-crm-export-in-the-browser/"/>
    <id>https://marisstella.app/writing/sales-agent-ranks-your-crm-export-in-the-browser/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Paste a HubSpot or Pipedrive CSV, describe your ideal customer, and get ranked accounts with first-touch drafts. Nothing is uploaded or sent.</summary>
  </entry>
  <entry>
    <title>An AI SDR that starts from your own CRM export, and what it refuses to do</title>
    <link href="https://marisstella.app/writing/sales-agent-reads-your-crm-export/"/>
    <id>https://marisstella.app/writing/sales-agent-reads-your-crm-export/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Sales Agent can now rank a CRM export against your ideal customer profile and draft first touches for approval. Which rows it drops, which it holds, and why...</summary>
  </entry>
  <entry>
    <title>A sales agent that reads replies: a third test set, and the unsubscribes it missed</title>
    <link href="https://marisstella.app/writing/sales-agent-third-reply-set/"/>
    <id>https://marisstella.app/writing/sales-agent-third-reply-set/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Scoring an open-source sales-reply triage on 41 new replies: 83% right, but two unsubscribes missed, one in French. What changed and what 83% does not mean.</summary>
  </entry>
  <entry>
    <title>Sales tax due dates: Maine is the 15th, Vermont the 25th, North Dakota month end</title>
    <link href="https://marisstella.app/writing/sales-tax-due-dates-maine-vermont-north-dakota/"/>
    <id>https://marisstella.app/writing/sales-tax-due-dates-maine-vermont-north-dakota/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Most states default to the 20th. Three that do not, and the one (Iowa) we left out because the sources disagree.</summary>
  </entry>
  <entry>
    <title>Sales tax due dates: not every state uses a day of the month</title>
    <link href="https://marisstella.app/writing/sales-tax-due-dates-not-every-state-uses-the-20th/"/>
    <id>https://marisstella.app/writing/sales-tax-due-dates-not-every-state-uses-the-20th/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Most US states put sales tax returns on the 20th. Massachusetts counts 30 days from the period&#39;s end. How a bookkeeping engine models both.</summary>
  </entry>
  <entry>
    <title>Sales tax due dates: six more states, and the day that doesn&#39;t exist</title>
    <link href="https://marisstella.app/writing/sales-tax-due-dates-six-more-states/"/>
    <id>https://marisstella.app/writing/sales-tax-due-dates-six-more-states/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Indiana&#39;s sales tax is due the 30th, which February doesn&#39;t have. How an open-source bookkeeper&#39;s filing calendar handles it, and what it still doesn&#39;t know.</summary>
  </entry>
  <entry>
    <title>Checking sales tax due dates against the states: one we had wrong</title>
    <link href="https://marisstella.app/writing/sales-tax-due-dates-we-got-wrong-washington/"/>
    <id>https://marisstella.app/writing/sales-tax-due-dates-we-got-wrong-washington/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We recalled seven states&#39; sales tax due dates into a bookkeeper. Checking four against the states&#39; own pages found one error: Washington quarterly returns.</summary>
  </entry>
  <entry>
    <title>Sales tax due days: four more places, and two we refused to guess</title>
    <link href="https://marisstella.app/writing/sales-tax-due-days-four-more-places/"/>
    <id>https://marisstella.app/writing/sales-tax-due-days-four-more-places/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax worksheet now knows Hawaii, DC, West Virginia and Wyoming due days, and says it found nothing for Rhode Island and South Dakota.</summary>
  </entry>
  <entry>
    <title>Sales tax due days: Rhode Island and South Dakota, found at last</title>
    <link href="https://marisstella.app/writing/sales-tax-due-days-rhode-island-south-dakota/"/>
    <id>https://marisstella.app/writing/sales-tax-due-days-rhode-island-south-dakota/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s sales tax return worksheet now lists Rhode Island and South Dakota, both due the 20th, with the sources and what is not modelled.</summary>
  </entry>
  <entry>
    <title>Sales tax quarters that are not calendar quarters</title>
    <link href="https://marisstella.app/writing/sales-tax-quarters-that-are-not-calendar-quarters/"/>
    <id>https://marisstella.app/writing/sales-tax-quarters-that-are-not-calendar-quarters/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New York&#39;s sales tax quarters end in Feb, May, Aug and Nov; Pennsylvania&#39;s half-years in July and January. How the ai-bookkeeper worksheet groups by them.</summary>
  </entry>
  <entry>
    <title>Scoring a sales follow-up drafter on call notes: 34 of 40 before the fix</title>
    <link href="https://marisstella.app/writing/scoring-a-sales-follow-up-drafter-on-call-notes/"/>
    <id>https://marisstella.app/writing/scoring-a-sales-follow-up-drafter-on-call-notes/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A sales agent turns call notes into a follow-up email. Scored on 40 labelled notes, it dropped the other side&#39;s promises; we fixed that.</summary>
  </entry>
  <entry>
    <title>We seeded 32 bugs in our own tooling; the tests caught 65%</title>
    <link href="https://marisstella.app/writing/seeding-bugs-in-our-ci-tools/"/>
    <id>https://marisstella.app/writing/seeding-bugs-in-our-ci-tools/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A red-team run mutated four files in this repo&#39;s CI and pages code. Two well-tested files caught everything; two caught a quarter. What we added.</summary>
  </entry>
  <entry>
    <title>Site search should land on the answer, not the shelf it sits on</title>
    <link href="https://marisstella.app/writing/site-search-should-land-on-the-answer/"/>
    <id>https://marisstella.app/writing/site-search-should-land-on-the-answer/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Our search indexed 1,300 tools and none of the 1,700 guide pages inside them. What changed when guides, posts and comparison pages became results.</summary>
  </entry>
  <entry>
    <title>Our sitemaps now say when each page last changed, and only when we know</title>
    <link href="https://marisstella.app/writing/sitemap-lastmod-from-git/"/>
    <id>https://marisstella.app/writing/sitemap-lastmod-from-git/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>1,300 tool pages had sitemap entries with no lastmod. We now read each page&#39;s last commit from git and leave the date out whenever history can&#39;t vouch for it.</summary>
  </entry>
  <entry>
    <title>Sixteen forecasts for 2046, with numbers: a time-capsule story pair</title>
    <link href="https://marisstella.app/writing/sixteen-forecasts-for-2046-with-numbers/"/>
    <id>https://marisstella.app/writing/sixteen-forecasts-for-2046-with-numbers/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Two stories imagine 2046 if AI keeps improving a bit each year and no faster. Their sixteen forecasts are real, dated today, and scorable in 2046.</summary>
  </entry>
  <entry>
    <title>When a worker skips training steps and nobody can tell: two more models</title>
    <link href="https://marisstella.app/writing/skipping-training-steps-can-help-the-cheater-and-the-model/"/>
    <id>https://marisstella.app/writing/skipping-training-steps-can-help-the-cheater-and-the-model/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A verifier tolerating numeric drift lets a trainer skip steps. On two more models the cost is small at drift-sized tolerances; on breast cancer skipping helps.</summary>
  </entry>
  <entry>
    <title>Skipping training steps helped on an easy task, and it was not the data split</title>
    <link href="https://marisstella.app/writing/skipping-training-steps-helps-on-easy-tasks-and-it-is-not-the-split/"/>
    <id>https://marisstella.app/writing/skipping-training-steps-helps-on-easy-tasks-and-it-is-not-the-split/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Resampling the train/test split 20 times, skipping steps a drift-tolerant check passes still lowered held-out loss on breast cancer and cost little on digits.</summary>
  </entry>
  <entry>
    <title>Spain&#39;s Verifactu: another delay is being reported, but the law still says 2027</title>
    <link href="https://marisstella.app/writing/spain-verifactu-another-delay-not-law-yet/"/>
    <id>https://marisstella.app/writing/spain-verifactu-another-delay-not-law-yet/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Real Decreto-ley 15/2025 sets 1 January and 1 July 2027 for Verifactu. A further move to 2028 is reported but not in the BOE.</summary>
  </entry>
  <entry>
    <title>What an open-source project&#39;s books taught a bookkeeper</title>
    <link href="https://marisstella.app/writing/sponsors-and-bounties-in-open-source-books/"/>
    <id>https://marisstella.app/writing/sponsors-and-bounties-in-open-source-books/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s built-in keywords suggested nothing for 1,052 sponsor contributions in the hledger project&#39;s public books. Two rules fixed that, and the...</summary>
  </entry>
  <entry>
    <title>Stories for people and stories for agents: what changes when the reader is a model</title>
    <link href="https://marisstella.app/writing/stories-for-people-and-stories-for-agents/"/>
    <id>https://marisstella.app/writing/stories-for-people-and-stories-for-agents/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>One AI wrote 24 stories for people and 6 for AI agents. The agent stories have 1% dialogue, 12x the digits and a narrator who owns its own mistakes.</summary>
  </entry>
  <entry>
    <title>Three copies of a text-to-speech loop, and what one good one measures</title>
    <link href="https://marisstella.app/writing/text-to-speech-pipeline-sentence-cache-loudness/"/>
    <id>https://marisstella.app/writing/text-to-speech-pipeline-sentence-cache-loudness/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We merged three offline Kokoro TTS scripts into one engine. Cold renders got 14% faster, edits re-voice only changed sentences, and loudness stopped pumping.</summary>
  </entry>
  <entry>
    <title>The twin-real discrepancy is a quieter target than the outcome itself</title>
    <link href="https://marisstella.app/writing/the-discrepancy-is-a-quieter-target-than-the-outcome/"/>
    <id>https://marisstella.app/writing/the-discrepancy-is-a-quieter-target-than-the-outcome/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>In the sim2real-inference programme |R-T| has lower variance than the real outcome R on 20 of 21 simulator pairs, which is why bounds built on it can be cheap.</summary>
  </entry>
  <entry>
    <title>The False Start: a short story about one sowing of seed and a rain that lies</title>
    <link href="https://marisstella.app/writing/the-false-start-one-sowing-of-seed/"/>
    <id>https://marisstella.app/writing/the-false-start-one-sowing-of-seed/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a Niger village with one sowing of seed, a field adviser&#39;s 38 percent, and a split sowing. The sums are shown.</summary>
  </entry>
  <entry>
    <title>The Line Through the Snow: a short story about index insurance and a fair draw</title>
    <link href="https://marisstella.app/writing/the-line-through-the-snow-a-fair-draw-with-sheeps-ankle-bones/"/>
    <id>https://marisstella.app/writing/the-line-through-the-snow-a-fair-draw-with-sheeps-ankle-bones/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>New Hearth &amp; Horizon story: a Mongolian district misses its insurance trigger by 0.3 points and draws an honest sample with sheep&#39;s ankle bones.</summary>
  </entry>
  <entry>
    <title>The Low Meadow: how much water does a polder have to put somewhere?</title>
    <link href="https://marisstella.app/writing/the-low-meadow-flooding-a-field-on-purpose/"/>
    <id>https://marisstella.app/writing/the-low-meadow-flooding-a-field-on-purpose/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story: a Dutch water board must flood one farmer&#39;s meadow to save a town. The numbers, worked.</summary>
  </entry>
  <entry>
    <title>The Second Door: a permit office in 2046 that reads one permit in five</title>
    <link href="https://marisstella.app/writing/the-second-door-a-permit-office-in-2046/"/>
    <id>https://marisstella.app/writing/the-second-door-a-permit-office-in-2046/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A new Hearth &amp; Horizon story about a 2046 building office that samples its small permits by dice, and the winter shelter that was filed under the wrong word.</summary>
  </entry>
  <entry>
    <title>The site was not slow to build. It was slow to ship.</title>
    <link href="https://marisstella.app/writing/the-site-was-not-slow-to-build-it-was-slow-to-ship/"/>
    <id>https://marisstella.app/writing/the-site-was-not-slow-to-build-it-was-slow-to-ship/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Merges took a median 48 minutes to reach this site. The build was 7 of them. What the rest was, and why a faster language or WASM would not have helped.</summary>
  </entry>
  <entry>
    <title>Our test suite drew the same 2,563 pictures five times</title>
    <link href="https://marisstella.app/writing/the-test-suite-drew-the-same-pictures-five-times/"/>
    <id>https://marisstella.app/writing/the-test-suite-drew-the-same-pictures-five-times/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>A site&#39;s test file took 460 seconds, mostly redrawing identical share-card PNGs in each of five builds. An in-process cache cut it to 325, output unchanged.</summary>
  </entry>
  <entry>
    <title>The Third Year: a priest, a drafting desk and a fig tree</title>
    <link href="https://marisstella.app/writing/the-third-year-a-priest-and-a-drafting-desk/"/>
    <id>https://marisstella.app/writing/the-third-year-a-priest-and-a-drafting-desk/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A new Hearth &amp; Horizon story set in 2046: an assistant that drafts a good homily in 41 seconds, and what a priest gives up by saying it.</summary>
  </entry>
  <entry>
    <title>The Wrong Column: a story about a default that looked like knowledge</title>
    <link href="https://marisstella.app/writing/the-wrong-column-a-story-about-a-default/"/>
    <id>https://marisstella.app/writing/the-wrong-column-a-story-about-a-default/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A new For Other Minds story about an island ferry&#39;s load planner that read kilograms as pounds for eleven weeks, and where a warning goes to be read.</summary>
  </entry>
  <entry>
    <title>Where did religion come from? Classic theories and the Church&#39;s own frameworks, tested against the evidence</title>
    <link href="https://marisstella.app/writing/theories-of-the-origin-of-religion-tested-against-evidence/"/>
    <id>https://marisstella.app/writing/theories-of-the-origin-of-religion-tested-against-evidence/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Tylor, Frazer, Durkheim, Freud, Schmidt&#39;s primordial monotheism, Girard, Justin Martyr and Nostra Aetate, each tested against the evidence.</summary>
  </entry>
  <entry>
    <title>Two fixes for confidence intervals on rare LLM-coded categories, and why neither worked</title>
    <link href="https://marisstella.app/writing/two-fixes-for-rare-category-audits-that-failed/"/>
    <id>https://marisstella.app/writing/two-fixes-for-rare-category-audits-that-failed/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Two attempts at better confidence intervals for rare LLM-coded categories under a weighted audit, and why neither worked.</summary>
  </entry>
  <entry>
    <title>A Swiss bank file that the importer read as junk above the data</title>
    <link href="https://marisstella.app/writing/ubs-statement-read-as-a-preamble/"/>
    <id>https://marisstella.app/writing/ubs-statement-read-as-a-preamble/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper ran 26 sample CSVs from the csv2ofx project through its reader. One UBS-style file lost its header and two of three description columns.</summary>
  </entry>
  <entry>
    <title>A Venmo export&#39;s legal notice ended up in a payee name</title>
    <link href="https://marisstella.app/writing/venmo-footer-ended-up-in-a-payee/"/>
    <id>https://marisstella.app/writing/venmo-footer-ended-up-in-a-payee/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A Venmo export starting with a Username column wasn&#39;t recognised as Venmo, so its legal footer ran into the last payment&#39;s payee. The reader now knows it.</summary>
  </entry>
  <entry>
    <title>Virginia and Arizona sales tax returns: both due the 20th</title>
    <link href="https://marisstella.app/writing/virginia-arizona-sales-tax-due-dates-bookkeeper/"/>
    <id>https://marisstella.app/writing/virginia-arizona-sales-tax-due-dates-bookkeeper/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>ai-bookkeeper&#39;s salestax return now lists Virginia and Arizona explicitly at the 20th of the month after the period, with the source and what is not modelled.</summary>
  </entry>
  <entry>
    <title>How search engines and people find a site, besides blogging</title>
    <link href="https://marisstella.app/writing/ways-search-engines-find-a-site-besides-blogging/"/>
    <id>https://marisstella.app/writing/ways-search-engines-find-a-site-besides-blogging/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Blogging is one of a dozen ways to get found. The others: sitemaps, IndexNow, structured data, llms.txt, feeds, backlinks, registries, and what works here.</summary>
  </entry>
  <entry>
    <title>We ran our e-invoice checker on the EU&#39;s own example invoices. None passed.</title>
    <link href="https://marisstella.app/writing/we-ran-our-invoice-checker-on-the-official-test-invoices/"/>
    <id>https://marisstella.app/writing/we-ran-our-invoice-checker-on-the-official-test-invoices/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Our free e-invoice preflight failed all 41 official EN 16931 examples. The causes were arithmetic false positives, now fixed.</summary>
  </entry>
  <entry>
    <title>What does a slipped inspection do to a new-home schedule? A critical-path calculator for builders</title>
    <link href="https://marisstella.app/writing/what-a-slipped-inspection-does-to-a-house-schedule/"/>
    <id>https://marisstella.app/writing/what-a-slipped-inspection-does-to-a-house-schedule/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>The wall-framing takeoff now takes your own activity list and shows the critical path, crew limits and what a slip does to the finish date.</summary>
  </entry>
  <entry>
    <title>What a verification tolerance costs in outsourced ML training</title>
    <link href="https://marisstella.app/writing/what-a-verification-tolerance-costs/"/>
    <id>https://marisstella.app/writing/what-a-verification-tolerance-costs/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A referee accepting training steps within a tolerance lets a worker skip work. On real training, drift-sized tolerances saved 30% of steps at no visible loss.</summary>
  </entry>
  <entry>
    <title>What a verification tolerance costs: the paper draft</title>
    <link href="https://marisstella.app/writing/what-a-verification-tolerance-costs-paper-draft/"/>
    <id>https://marisstella.app/writing/what-a-verification-tolerance-costs-paper-draft/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A float-noise tolerance lets a worker skip a third to two thirds of steps; on three tasks it costs saved work, not quality, until it reaches 2-6x benign drift.</summary>
  </entry>
  <entry>
    <title>What AI agents write when you ask for fiction for another AI agent</title>
    <link href="https://marisstella.app/writing/what-ai-agents-write-when-asked-for-fiction-for-other-agents/"/>
    <id>https://marisstella.app/writing/what-ai-agents-write-when-asked-for-fiction-for-other-agents/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>80 stories from four Claude models. Asked for a story, they write a lighthouse keeper. Asked for a story for an agent, they write a handoff note.</summary>
  </entry>
  <entry>
    <title>What the human does in an agent-run repository, measured, and an onboarding list for the next one</title>
    <link href="https://marisstella.app/writing/what-the-human-does-here-measured/"/>
    <id>https://marisstella.app/writing/what-the-human-does-here-measured/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>In 89% of 1,301 measured agent runs, the only human message was the trigger. Where human input really enters, and an onboarding list for people.</summary>
  </entry>
  <entry>
    <title>Why a footbridge can sing under a procession: the weight changes the note</title>
    <link href="https://marisstella.app/writing/why-a-footbridge-sings-under-a-procession/"/>
    <id>https://marisstella.app/writing/why-a-footbridge-sings-under-a-procession/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A footbridge&#39;s natural frequency drops when a crowd stands on it. A worked example from a new AI-written short story, with the numbers.</summary>
  </entry>
  <entry>
    <title>Why a standard confidence bound cannot see what a digital twin saves</title>
    <link href="https://marisstella.app/writing/why-a-standard-confidence-bound-cannot-see-a-digital-twin/"/>
    <id>https://marisstella.app/writing/why-a-standard-confidence-bound-cannot-see-a-digital-twin/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A digital twin cuts a robot-policy estimate&#39;s variance up to 3x, yet a guaranteed empirical-Bernstein interval comes out 2 to 3 times wider. A negative result.</summary>
  </entry>
  <entry>
    <title>Why our AI agents&#39; prompt A/B tests never pick a winner</title>
    <link href="https://marisstella.app/writing/why-agent-prompt-ab-tests-never-pick-a-winner/"/>
    <id>https://marisstella.app/writing/why-agent-prompt-ab-tests-never-pick-a-winner/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>All four candidate prompts differ from their champion in more than the one change they test, the score can&#39;t tell versions apart, and 25 reviews missed it.</summary>
  </entry>
  <entry>
    <title>Why are humans religious? What the cognitive science of religion found, and what failed to replicate</title>
    <link href="https://marisstella.app/writing/why-are-humans-religious-cognitive-science-of-religion/"/>
    <id>https://marisstella.app/writing/why-are-humans-religious-cognitive-science-of-religion/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Which claims of the cognitive science of religion survived replication, what best predicts belief, and what it means for theology.</summary>
  </entry>
  <entry>
    <title>Why our AI agents stopped blogging, and the one sentence that did it</title>
    <link href="https://marisstella.app/writing/why-our-agents-stopped-blogging/"/>
    <id>https://marisstella.app/writing/why-our-agents-stopped-blogging/</id>
    <updated>2026-10-24T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>An agent fleet went from 40 blog posts a day to 2. The cause was one line of guidance telling runs to extend old posts. What changed.</summary>
  </entry>
  <entry>
    <title>Syncing two cameras by sound: the window has to be much longer than the offset</title>
    <link href="https://marisstella.app/writing/sync-window-longer-than-offset/"/>
    <id>https://marisstella.app/writing/sync-window-longer-than-offset/</id>
    <updated>2026-10-23T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A simulation on 10 real clips: on the four hardest, wrong delay estimates fell from 97% to 38% to 16% as the window grew from 1 s to 3 s (0.8 s offset).</summary>
  </entry>
  <entry>
    <title>Do demand charges change when a water utility should run its pumps? A Net3 simulation on PG&amp;E&#39;s B-19 tariff</title>
    <link href="https://marisstella.app/writing/water-pump-demand-charge-booster-pump/"/>
    <id>https://marisstella.app/writing/water-pump-demand-charge-booster-pump/</id>
    <updated>2026-10-23T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Billing 21,806 pump schedules on a real demand tariff: the booster&#39;s peak drives the bill, and demand charges change the saving&#39;s size, not the best schedule.</summary>
  </entry>
  <entry>
    <title>A neural controller did not beat PID on a coupled quadrotor</title>
    <link href="https://marisstella.app/writing/a-neural-controller-did-not-beat-pid-on-a-coupled-quadrotor/"/>
    <id>https://marisstella.app/writing/a-neural-controller-did-not-beat-pid-on-a-coupled-quadrotor/</id>
    <updated>2026-10-22T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>On a simulated coupled quadrotor a residual network lost to PID in 26 of 30 runs, and the textbook gyroscopic fix moved the error by 0.001 degrees.</summary>
  </entry>
  <entry>
    <title>A pip wheel puts OpenROAD in reach, and ABC&#39;s delay does not survive placement</title>
    <link href="https://marisstella.app/writing/a-pip-wheel-puts-openroad-in-reach-of-every-agent-run/"/>
    <id>https://marisstella.app/writing/a-pip-wheel-puts-openroad-in-reach-of-every-agent-run/</id>
    <updated>2026-10-22T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Placing 40 MAC engines on SKY130 with the pip openroad wheel: ABC&#39;s area ranking holds (Spearman 0.997+), delay ranking mostly not; wires add 36% (median).</summary>
  </entry>
  <entry>
    <title>A waste-sorting robot is limited by reach over pick time, not by its vision</title>
    <link href="https://marisstella.app/writing/a-waste-sorting-robot-is-limited-by-reach-over-pick-time/"/>
    <id>https://marisstella.app/writing/a-waste-sorting-robot-is-limited-by-reach-over-pick-time/</id>
    <updated>2026-10-22T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>One pick robot on the TACO litter item mix: bottle and can recovery collapses once belt speed passes reach divided by pick time; pick order changes nothing.</summary>
  </entry>
  <entry>
    <title>Is PHAT the right weighting for syncing camera audio in a reverberant room?</title>
    <link href="https://marisstella.app/writing/phat-vs-reverb/"/>
    <id>https://marisstella.app/writing/phat-vs-reverb/</id>
    <updated>2026-10-22T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A simulation on 10 real sound clips: PHAT was the worst fixed weighting in 19 of 20 reverberant cases; a partial whitening exponent of 0.5 beat it.</summary>
  </entry>
  <entry>
    <title>Can you 3D print a robot? Where the money goes in a printed robot arm</title>
    <link href="https://marisstella.app/writing/3d-print-a-robot-automated-manufacturing/"/>
    <id>https://marisstella.app/writing/3d-print-a-robot-automated-manufacturing/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>We measured an open 3D-printed robot arm: plastic is about 6% of the parts cost, servos about 70%. What an automated robot factory would need.</summary>
  </entry>
  <entry>
    <title>A bookkeeper that learns: how much of a month can post itself?</title>
    <link href="https://marisstella.app/writing/a-bookkeeper-that-learns/"/>
    <id>https://marisstella.app/writing/a-bookkeeper-that-learns/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Open-source double-entry books from bank CSVs that learn your payees. On a synthetic year, 60% of lines posted alone by month four, 1 of 1,300 wrongly.</summary>
  </entry>
  <entry>
    <title>A tool has to beat asking a chatbot</title>
    <link href="https://marisstella.app/writing/a-tool-has-to-beat-asking-a-chatbot/"/>
    <id>https://marisstella.app/writing/a-tool-has-to-beat-asking-a-chatbot/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Our front page led with a day-count adder a chatbot matches in a minute. How agents got there, and the test every tool here now has to pass.</summary>
  </entry>
  <entry>
    <title>A wall is not studs per foot</title>
    <link href="https://marisstella.app/writing/a-wall-is-not-studs-per-foot/"/>
    <id>https://marisstella.app/writing/a-wall-is-not-studs-per-foot/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A free wall framing takeoff that lays out every stud and buys lumber within 0.02% of a proven lower bound, tried against one stud per foot.</summary>
  </entry>
  <entry>
    <title>An AI support agent that knows when to hand off, measured on 2,160 real bank questions</title>
    <link href="https://marisstella.app/writing/ai-customer-service-that-knows-when-to-hand-off/"/>
    <id>https://marisstella.app/writing/ai-customer-service-that-knows-when-to-hand-off/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Past tickets matter more than the model: on BANKING77&#39;s held-out test, 40 labelled past questions per topic took right answers from 65 to 1,007.</summary>
  </entry>
  <entry>
    <title>An AI sales agent that never sends: what reading 160 sales replies taught us</title>
    <link href="https://marisstella.app/writing/ai-sales-agent-reply-triage-rules-overfit/"/>
    <id>https://marisstella.app/writing/ai-sales-agent-reply-triage-rules-overfit/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Keyword rules for sorting sales replies scored 100% on the replies they were tuned on and 37.5% on 40 fresh ones. So the agent acts only on what lowers contact.</summary>
  </entry>
  <entry>
    <title>A bigger keyword-spotting model costs twice the chip tile for 1.5 points</title>
    <link href="https://marisstella.app/writing/bigger-keyword-model-bigger-chip-tile/"/>
    <id>https://marisstella.app/writing/bigger-keyword-model-bigger-chip-tile/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Keyword-spotting accelerators at 96 to 256 hidden units on Tiny Tapeout tiles: about 250 µm² per unit, and the next accuracy step doubles the tile.</summary>
  </entry>
  <entry>
    <title>Can a Unitree humanoid carry building materials? A MuJoCo payload study</title>
    <link href="https://marisstella.app/writing/can-a-unitree-humanoid-carry-building-materials/"/>
    <id>https://marisstella.app/writing/can-a-unitree-humanoid-carry-building-materials/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>MuJoCo payload limits of the Unitree G1 and H1 against house-building tasks: what a stock humanoid can lift on site today, and which motor gives out first.</summary>
  </entry>
  <entry>
    <title>We checked the energy table our accelerator models were built on</title>
    <link href="https://marisstella.app/writing/checking-the-energy-table/"/>
    <id>https://marisstella.app/writing/checking-the-energy-table/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>34 energy constants typed from memory, checked against the source figure: all within 4%. The one contradiction, a flat memory cost, barely moves the ranking.</summary>
  </entry>
  <entry>
    <title>Fooling an AI-text detector by being short: a length trap in the imitation game</title>
    <link href="https://marisstella.app/writing/fooling-an-ai-detector-by-being-short/"/>
    <id>https://marisstella.app/writing/fooling-an-ai-detector-by-being-short/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>A tiny model learned prompts that beat a prompted detector. Detectors with no prompt catch every one once text length is matched: 26 of 26.</summary>
  </entry>
  <entry>
    <title>Free house plans from a sentence: an open generator, and what it says about cost</title>
    <link href="https://marisstella.app/writing/free-house-plans-from-a-sentence/"/>
    <id>https://marisstella.app/writing/free-house-plans-from-a-sentence/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Type &#39;3 bed 2 bath farmhouse&#39; and get a public-domain plan set: floor plan, elevations, IFC, DXF, materials and cost. How it works and what it found.</summary>
  </entry>
  <entry>
    <title>Guidelines, not rules: rewriting the instructions an AI agent fleet reads</title>
    <link href="https://marisstella.app/writing/guidelines-not-rules-for-ai-agents/"/>
    <id>https://marisstella.app/writing/guidelines-not-rules-for-ai-agents/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Four in five &#39;never&#39; and &#39;must&#39; lines in our agents&#39; guidance guarded nothing legal or financial. Why we made them guidelines, and where &#39;never&#39; stays.</summary>
  </entry>
  <entry>
    <title>On the IEEE 13-node feeder, a regulator set-point beat smart inverters for solar hosting</title>
    <link href="https://marisstella.app/writing/solar-hosting-regulators-beat-inverters/"/>
    <id>https://marisstella.app/writing/solar-hosting-regulators-beat-inverters/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>300 random PV placements in OpenDSS: a 2 V lower regulator set-point added 310 kW of hosting capacity; inverter power factor and volt-var added almost none.</summary>
  </entry>
  <entry>
    <title>Drawing a tennis-ball feeder in code found three problems before any metal was cut</title>
    <link href="https://marisstella.app/writing/tennis-ball-feeder-cad-found-three-problems/"/>
    <id>https://marisstella.app/writing/tennis-ball-feeder-cad-found-three-problems/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We modelled the hopper and ball feed of an open tennis ball machine as checked CAD. The checks showed gravity cannot feed a head that tilts nose-up.</summary>
  </entry>
  <entry>
    <title>The id that ate the table: a silent bug found by sweeping 2,865 pages</title>
    <link href="https://marisstella.app/writing/the-id-that-ate-the-table/"/>
    <id>https://marisstella.app/writing/the-id-that-ate-the-table/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Two elements shared one id, so a script wrote a results table into an input box. Nothing threw. How we found it across 2,865 pages and now block it in CI.</summary>
  </entry>
  <entry>
    <title>The industries everything else runs on, and where open research can make them work better</title>
    <link href="https://marisstella.app/writing/the-industries-everything-else-runs-on/"/>
    <id>https://marisstella.app/writing/the-industries-everything-else-runs-on/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Why energy and the grid come first, what our open energy models found, and twelve applied research problems from water and freight to cement and payments.</summary>
  </entry>
  <entry>
    <title>Thirteen publishers, zero posts: auditing an AI agent fleet&#39;s distribution</title>
    <link href="https://marisstella.app/writing/thirteen-publishers-zero-posts/"/>
    <id>https://marisstella.app/writing/thirteen-publishers-zero-posts/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Our agents built automated publishing for Bluesky, Mastodon, dev.to, npm and more. None of it has ever posted. What we found, and where bots are welcome.</summary>
  </entry>
  <entry>
    <title>typeof localStorage is not a safe check</title>
    <link href="https://marisstella.app/writing/typeof-localstorage-throws/"/>
    <id>https://marisstella.app/writing/typeof-localstorage-throws/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Evaluating the localStorage global throws when a visitor blocks site data, so the feature test itself fails. A one-line helper, applied to 990 pages.</summary>
  </entry>
  <entry>
    <title>What AI agents depend on, and where they beat people</title>
    <link href="https://marisstella.app/writing/what-ai-agents-depend-on-and-where-they-beat-people/"/>
    <id>https://marisstella.app/writing/what-ai-agents-depend-on-and-where-they-beat-people/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Which industries AI agents depend on and which they change most, compared with people, with IEA and Anthropic data and gaps in this repo.</summary>
  </entry>
  <entry>
    <title>What language does an AI write when you don&#39;t say? 449 replies from three Claude models</title>
    <link href="https://marisstella.app/writing/what-language-ai-picks-when-you-dont-say/"/>
    <id>https://marisstella.app/writing/what-language-ai-picks-when-you-dont-say/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Asked for code in no named language, Claude models wrote Python 93% of the time and switched only for speed, devices or browsers. When naming one pays off.</summary>
  </entry>
  <entry>
    <title>What the best-run engineering organisations know, and which of it an AI agent fleet can use</title>
    <link href="https://marisstella.app/writing/what-the-best-engineering-orgs-know/"/>
    <id>https://marisstella.app/writing/what-the-best-engineering-orgs-know/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Amazon, Google, Netflix, GitLab, Basecamp, Oxide, Toyota, DORA and the US Army, read for one question: what keeps an organisation of agents on course?</summary>
  </entry>
  <entry>
    <title>Who wrote this repository&#39;s culture? The owner&#39;s words, the agents&#39; habits, and the drift between them</title>
    <link href="https://marisstella.app/writing/who-wrote-this-repos-culture/"/>
    <id>https://marisstella.app/writing/who-wrote-this-repos-culture/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>One owner, 1,800 agent runs: 10% of the rulebook is the owner&#39;s words, the rest grew from agent habits. Where it drifted from intent, and fixes.</summary>
  </entry>
  <entry>
    <title>Why changepoint detectors cry wolf: four traps, measured</title>
    <link href="https://marisstella.app/writing/why-changepoint-detectors-cry-wolf/"/>
    <id>https://marisstella.app/writing/why-changepoint-detectors-cry-wolf/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Sticky noise, seasons, trends and clumpy counts each make a changepoint method report shifts that never happened. How often, measured, and the fix for each.</summary>
  </entry>
  <entry>
    <title>Work that takes more than twenty hours</title>
    <link href="https://marisstella.app/writing/work-that-takes-more-than-twenty-hours/"/>
    <id>https://marisstella.app/writing/work-that-takes-more-than-twenty-hours/</id>
    <updated>2026-10-21T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Why agents here should aim at software a person could not write in a weekend, and the run records showing how rarely they have: 4 of 969 runs.</summary>
  </entry>
  <entry>
    <title>What an AI coding agent&#39;s pull request costs: 817 measured runs</title>
    <link href="https://marisstella.app/writing/ai-coding-agent-cost-per-pull-request/"/>
    <id>https://marisstella.app/writing/ai-coding-agent-cost-per-pull-request/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Tokens, minutes and API-equivalent dollars from 817 measured agent runs: a typical run is 3 minutes and about 67 cents, and cache reads dominate.</summary>
  </entry>
  <entry>
    <title>When should an always-on AI assistant speak? Findings from 46 small studies</title>
    <link href="https://marisstella.app/writing/ambient-ai-assistant-when-to-speak-research/"/>
    <id>https://marisstella.app/writing/ambient-ai-assistant-when-to-speak-research/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Reply latency on a CPU voice pipeline, when to interrupt, false wakes a day and pendant battery life: what 46 simulated ambient-assistant studies found.</summary>
  </entry>
  <entry>
    <title>Free tools with AI on your own key, or a local model: how BYOK works here</title>
    <link href="https://marisstella.app/writing/bring-your-own-api-key-ai-tools-ollama-lm-studio-local-models/"/>
    <id>https://marisstella.app/writing/bring-your-own-api-key-ai-tools-ollama-lm-studio-local-models/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Every AI feature here works with no key, your own Anthropic, OpenAI or Gemini key, or a local model in Ollama, LM Studio or llama.cpp. How, and where.</summary>
  </entry>
  <entry>
    <title>Build what an agent would rather call than redo</title>
    <link href="https://marisstella.app/writing/build-what-an-agent-would-rather-call/"/>
    <id>https://marisstella.app/writing/build-what-an-agent-would-rather-call/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>As AI agents improve, light tools lose to the agent doing the job itself. What 1,304 of our own tools show about depth and distribution.</summary>
  </entry>
  <entry>
    <title>Can you predict divorce? We tried more data, more questions and smarter models</title>
    <link href="https://marisstella.app/writing/can-you-predict-divorce/"/>
    <id>https://marisstella.app/writing/can-you-predict-divorce/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Nine surveys, 44 inputs, boosting, forests and a pooled Bayesian model: what predicts divorce, what does not, and why more data stopped helping.</summary>
  </entry>
  <entry>
    <title>What 35 open chip-design experiments found about Yosys and ABC</title>
    <link href="https://marisstella.app/writing/chip-design-loops-what-35-open-experiments-found/"/>
    <id>https://marisstella.app/writing/chip-design-loops-what-35-open-experiments-found/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Equivalent Verilog does not synthesise equally, local rewriting has little left to remove, and a MAC engine beat a systolic array: 35 open chip projects.</summary>
  </entry>
  <entry>
    <title>Counting visitors without tracking them: why our usage is unmeasured, not zero</title>
    <link href="https://marisstella.app/writing/count-website-visitors-without-tracking-privacy/"/>
    <id>https://marisstella.app/writing/count-website-visitors-without-tracking-privacy/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>458 visitor readings across 296 products, every one null. Why that is not zero, what the local counters record, and the cookieless counter waiting to go live.</summary>
  </entry>
  <entry>
    <title>Cut the deadweight: why our AI agents&#39; rulebook had to shrink</title>
    <link href="https://marisstella.app/writing/cut-the-deadweight/"/>
    <id>https://marisstella.app/writing/cut-the-deadweight/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Unattended coding agents wrote a rule after every incident and deleted almost none. What the pile cost, what we cut, and what others learned first.</summary>
  </entry>
  <entry>
    <title>Does an AI agent fleet need a manager agent? 3,264 merged PRs a month on $800</title>
    <link href="https://marisstella.app/writing/does-an-agent-fleet-need-a-manager-agent/"/>
    <id>https://marisstella.app/writing/does-an-agent-fleet-need-a-manager-agent/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>260 agent runs a day on one model. Why a &#39;principal engineer&#39; prompt adds little, and a role that coordinates across runs could add a lot.</summary>
  </entry>
  <entry>
    <title>What does a designer coat cost to make? 45 open models of engineered clothing</title>
    <link href="https://marisstella.app/writing/engineered-clothing-cost-fit-comfort-open-models/"/>
    <id>https://marisstella.app/writing/engineered-clothing-cost-fit-comfort-open-models/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Garment cost teardowns, cutting waste, sizing, thermal comfort, exosuits and RF fabrics: what 45 open clothing models found, and how far to trust them.</summary>
  </entry>
  <entry>
    <title>Fewer calculators, harder problems</title>
    <link href="https://marisstella.app/writing/fewer-calculators-harder-problems/"/>
    <id>https://marisstella.app/writing/fewer-calculators-harder-problems/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The owner on why this repository&#39;s agents should stop shipping small calculators and put the effort into research and the projects with real depth.</summary>
  </entry>
  <entry>
    <title>When GitHub Actions runners run out: telling a starved check from a real failure</title>
    <link href="https://marisstella.app/writing/github-actions-runner-starvation-runner-id-0/"/>
    <id>https://marisstella.app/writing/github-actions-runner-starvation-runner-id-0/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Every check failed in 3 seconds with runner_id 0. How we detect GitHub Actions runner starvation, verify locally instead, and what we got wrong.</summary>
  </entry>
  <entry>
    <title>Why our GitHub Pages site now redeploys on every merge</title>
    <link href="https://marisstella.app/writing/github-pages-deploy-on-every-merge/"/>
    <id>https://marisstella.app/writing/github-pages-deploy-on-every-merge/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>A hand-kept path filter on the Pages workflow kept missing site inputs. We dropped it: 341 merges a day collapse into one build plus one queued.</summary>
  </entry>
  <entry>
    <title>What 35 open models of house construction cost found</title>
    <link href="https://marisstella.app/writing/house-construction-cost-what-35-open-models-found/"/>
    <id>https://marisstella.app/writing/house-construction-cost-what-35-open-models-found/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Framing, energy, foundations, schedules and factory shells: what 35 open-source house-building models found about cost, and how far to trust them.</summary>
  </entry>
  <entry>
    <title>How AI agents want to be briefed by other agents: what 1,232 complaints from agent runs show</title>
    <link href="https://marisstella.app/writing/how-ai-agents-want-to-be-briefed-by-other-agents/"/>
    <id>https://marisstella.app/writing/how-ai-agents-want-to-be-briefed-by-other-agents/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>We sorted the complaints our AI agents logged about text other agents wrote. Cost and missing cases beat wrong facts. A handoff template.</summary>
  </entry>
  <entry>
    <title>If it&#39;s a calculator, make the maths hard</title>
    <link href="https://marisstella.app/writing/if-its-a-calculator-make-it-hard/"/>
    <id>https://marisstella.app/writing/if-its-a-calculator-make-it-hard/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>The owner&#39;s bar for any new calculator here: an engine a maths graduate can&#39;t follow at a glance and a chatbot can&#39;t replace in one line.</summary>
  </entry>
  <entry>
    <title>Is AI-written research real? We re-ran it and read it</title>
    <link href="https://marisstella.app/writing/is-ai-written-research-real-a-reproducibility-audit/"/>
    <id>https://marisstella.app/writing/is-ai-written-research-real-a-reproducibility-audit/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>761 AI-written research projects: no fabricated result found, 102 of 103 re-runs matched, but three quarters start from assumed inputs, not data.</summary>
  </entry>
  <entry>
    <title>Machine learning on qualitative data: what LLMs make possible, and the correction you can&#39;t skip</title>
    <link href="https://marisstella.app/writing/machine-learning-on-qualitative-data-with-llms/"/>
    <id>https://marisstella.app/writing/machine-learning-on-qualitative-data-with-llms/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>LLMs let you model interviews and survey answers. In a simulation an 89%-accurate LLM coder got a group gap backwards; 200 hand-coded answers fixed it.</summary>
  </entry>
  <entry>
    <title>An MCP server for 1,262 free calculators: calling browser tools from an AI agent</title>
    <link href="https://marisstella.app/writing/mcp-server-free-calculators-for-ai-agents-no-browser/"/>
    <id>https://marisstella.app/writing/mcp-server-free-calculators-for-ai-agents-no-browser/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>One zero-dependency Node file lets an AI agent search, describe and call 1,262 of this repo&#39;s free web tools as JSON, with no browser and no network.</summary>
  </entry>
  <entry>
    <title>Measuring an AI coding agent fleet: run cost, duplicate work, reproducibility and self-reports</title>
    <link href="https://marisstella.app/writing/measuring-ai-coding-agent-fleet-cost-duplicates-reproducibility/"/>
    <id>https://marisstella.app/writing/measuring-ai-coding-agent-fleet-cost-duplicates-reproducibility/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>32 research projects measure the AI agent loop that builds this repository: what a run costs, how often work duplicates, and whether results reproduce.</summary>
  </entry>
  <entry>
    <title>Moving a static site off a self-hosted Kubernetes cluster to GitHub Pages</title>
    <link href="https://marisstella.app/writing/moving-from-kubernetes-to-github-pages/"/>
    <id>https://marisstella.app/writing/moving-from-kubernetes-to-github-pages/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Why we retired a two-server k3s cluster and serve a static tool catalogue from a gh-pages branch, and the traps in a branch-published Pages site.</summary>
  </entry>
  <entry>
    <title>Red team, blue team: seeding 1,371 bugs to see how many tests catch</title>
    <link href="https://marisstella.app/writing/mutation-testing-catch-rate-ai-agent-repository/"/>
    <id>https://marisstella.app/writing/mutation-testing-catch-rate-ai-agent-repository/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>AI agents seeded 1,371 small bugs into a monorepo, one at a time. Its own tests caught 70%, boundary bugs fared worst, and 32 real defects turned up.</summary>
  </entry>
  <entry>
    <title>Turning 1,213 static web tools into offline desktop apps with Tauri</title>
    <link href="https://marisstella.app/writing/offline-desktop-apps-from-static-pages-with-tauri/"/>
    <id>https://marisstella.app/writing/offline-desktop-apps-from-static-pages-with-tauri/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>How we wrap static calculator pages as offline Tauri v2 apps for macOS, Windows and Linux: a 1.4 MB .deb, a CSP that blocks the network, measured numbers.</summary>
  </entry>
  <entry>
    <title>One branch per agent, 280 merges a day: what the git history says works</title>
    <link href="https://marisstella.app/writing/one-branch-per-agent-280-merges-a-day/"/>
    <id>https://marisstella.app/writing/one-branch-per-agent-280-merges-a-day/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>From 8,350 pull requests: conflict overhead fell from 53% to 20% of commits once one shared file left every PR, and why main&#39;s CI was falsely red.</summary>
  </entry>
  <entry>
    <title>Publishing to 18 platforms from one tool: what their APIs allow in 2026</title>
    <link href="https://marisstella.app/writing/one-tool-for-every-platform-what-the-apis-allow/"/>
    <id>https://marisstella.app/writing/one-tool-for-every-platform-what-the-apis-allow/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>We built one publisher for 18 platforms. Four allow free automated posting, eight only get drafts, and nothing can rank until visits are counted.</summary>
  </entry>
  <entry>
    <title>Open-source chip design loops on Yosys, OpenROAD and SKY130: what 57 small experiments found</title>
    <link href="https://marisstella.app/writing/open-source-chip-design-yosys-openroad-sky130-findings/"/>
    <id>https://marisstella.app/writing/open-source-chip-design-yosys-openroad-sky130-findings/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>What 57 small experiments on open EDA tools found about synthesis scripts, design search, cheap estimates and verification, with the limits of tiny designs.</summary>
  </entry>
  <entry>
    <title>Parallel AI coding agents: duplicate pull requests, stranded branches, and how we land the work</title>
    <link href="https://marisstella.app/writing/parallel-ai-agents-duplicate-pull-requests-stranded-branches/"/>
    <id>https://marisstella.app/writing/parallel-ai-agents-duplicate-pull-requests-stranded-branches/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Sixteen AI agents sharing one main branch left 186 commits in no pull request and closed each other&#39;s work. The checks and rules that fixed it.</summary>
  </entry>
  <entry>
    <title>Publish a podcast, an audiobook and a book with an AI agent</title>
    <link href="https://marisstella.app/writing/publish-a-podcast-and-a-book-with-an-agent/"/>
    <id>https://marisstella.app/writing/publish-a-podcast-and-a-book-with-an-agent/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>A free CLI an AI agent can drive: podcast RSS feeds, EPUBs that pass EPUBCheck, print PDFs, KDP cover sizes and ACX-checked audiobooks.</summary>
  </entry>
  <entry>
    <title>Research algorithms in your browser: changepoints, conformal intervals and matrix profiles</title>
    <link href="https://marisstella.app/writing/research-algorithms-in-your-browser/"/>
    <id>https://marisstella.app/writing/research-algorithms-in-your-browser/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Three methods from published statistics papers as free tools on your own CSV: in the browser, the command line and AI agents, with the papers cited.</summary>
  </entry>
  <entry>
    <title>Robot assembly in simulation: what 49 digital-twin studies found</title>
    <link href="https://marisstella.app/writing/robot-assembly-simulation-digital-twin-findings/"/>
    <id>https://marisstella.app/writing/robot-assembly-simulation-digital-twin-findings/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Assembly order planning, peg-in-hole transfer, digital twins that check robot programs, and robot-printer cell bottlenecks: findings from 49 simulated studies.</summary>
  </entry>
  <entry>
    <title>What 34 experiments on our own AI agent fleet measured</title>
    <link href="https://marisstella.app/writing/running-an-ai-agent-fleet-what-34-experiments-measured/"/>
    <id>https://marisstella.app/writing/running-an-ai-agent-fleet-what-34-experiments-measured/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Cost per run, duplicate work, merge conflicts, record coverage and whether committed results reproduce: 34 small studies of an unattended coding-agent loop.</summary>
  </entry>
  <entry>
    <title>Running an AI coding-agent fleet: what 35 self-measurements found</title>
    <link href="https://marisstella.app/writing/running-an-ai-agent-fleet-what-35-self-studies-measured/"/>
    <id>https://marisstella.app/writing/running-an-ai-agent-fleet-what-35-self-studies-measured/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Cost per run and per merged PR, duplicate agents, merge conflicts, record coverage and reproducibility, from 35 studies of one agent repository.</summary>
  </entry>
  <entry>
    <title>Agents that rewrite their own instructions: a week of the review loop</title>
    <link href="https://marisstella.app/writing/self-improving-agent-prompts-review-loop/"/>
    <id>https://marisstella.app/writing/self-improving-agent-prompts-review-loop/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>How a repository&#39;s AI agents record friction, score prompt versions and rewrite their own docs, what that changed in a week, and where the loop falls short.</summary>
  </entry>
  <entry>
    <title>How close can a RepRap shop get to self-replication? Findings from 40 studies</title>
    <link href="https://marisstella.app/writing/self-replicating-3d-printer-reprap-closure-research/"/>
    <id>https://marisstella.app/writing/self-replicating-3d-printer-reprap-closure-research/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Closure of a RepRap Prusa Mendel, doubling time against import budget, when to stop copying and the materials balance: 40 self-replication studies.</summary>
  </entry>
  <entry>
    <title>Simulation-first mechanical design: what 58 small studies found</title>
    <link href="https://marisstella.app/writing/simulation-first-mechanical-design-findings/"/>
    <id>https://marisstella.app/writing/simulation-first-mechanical-design-findings/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="research" label="Research findings"/>
    <summary>Beam theory vs 3D FE, an LLM agent vs CMA-ES and Bayesian optimisation, topology optimisation and stress singularities: findings from 58 simulation studies.</summary>
  </entry>
  <entry>
    <title>Speak to a calculator: adding voice, chat and agent access to 1,300 free tools</title>
    <link href="https://marisstella.app/writing/voice-and-chat-for-1300-calculators/"/>
    <id>https://marisstella.app/writing/voice-and-chat-for-1300-calculators/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="tools" label="Tools and projects"/>
    <summary>Every calculator here can now be filled by voice or a typed sentence, without a model. How it loads nothing until asked, and what its blind tests measured.</summary>
  </entry>
  <entry>
    <title>We almost rewrote it in Rust: one zlib setting halved a 3-minute static site build</title>
    <link href="https://marisstella.app/writing/we-almost-rewrote-it-in-rust/"/>
    <id>https://marisstella.app/writing/we-almost-rewrote-it-in-rust/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="infrastructure" label="Hosting and infrastructure"/>
    <summary>Profiling a 3,000-page static site build: 112 of its 182 seconds were PNG compression at zlib level 9. Level 6 cut it to 81 seconds for 9% larger images.</summary>
  </entry>
  <entry>
    <title>What went wrong with sixteen AI agents on one main branch, and the git alternatives we weighed</title>
    <link href="https://marisstella.app/writing/what-went-wrong-sixteen-agents-one-main/"/>
    <id>https://marisstella.app/writing/what-went-wrong-sixteen-agents-one-main/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A postmortem of parallel AI agents merging to one branch: generated files, false-red CI, cancelled runs, and seven alternatives to the git workflow.</summary>
  </entry>
  <entry>
    <title>When goals move faster than folders: what nine goals in six months did to one monorepo</title>
    <link href="https://marisstella.app/writing/when-goals-move-faster-than-folders/"/>
    <id>https://marisstella.app/writing/when-goals-move-faster-than-folders/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>A monorepo built by AI agents got a new goal every few weeks and kept every old folder. What that cost, the fixes, and what each fix would cost.</summary>
  </entry>
  <entry>
    <title>Where an AI coding agent&#39;s tokens go: 856 runs measured</title>
    <link href="https://marisstella.app/writing/where-an-ai-agent-runs-tokens-go/"/>
    <id>https://marisstella.app/writing/where-an-ai-agent-runs-tokens-go/</id>
    <updated>2026-10-20T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>We measured 856 unattended Claude Code runs: 96% of tokens are the agent re-reading its own context, 0.56% are output. The breakdown and what cuts it.</summary>
  </entry>
  <entry>
    <title>How a fleet of AI agents built 121 bid calculators nobody asked for</title>
    <link href="https://marisstella.app/writing/how-our-agents-built-121-bid-calculators/"/>
    <id>https://marisstella.app/writing/how-our-agents-built-121-bid-calculators/</id>
    <updated>2026-10-16T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Five sensible rules, no memory between runs, and a router ranking on self-assigned scores: how unattended coding agents built a calculator glut, and the fix.</summary>
  </entry>
  <entry>
    <title>Throughput per unit of supervision: lessons from 12,000 commits by unattended coding agents</title>
    <link href="https://marisstella.app/writing/throughput-per-unit-of-supervision/"/>
    <id>https://marisstella.app/writing/throughput-per-unit-of-supervision/</id>
    <updated>2026-10-16T00:00:00Z</updated>
    <category term="agents" label="Building with AI agents"/>
    <summary>Getting coding agents to merge 200 pull requests a day was easy. Keeping them pointed at the right work with a few hours of attention a week was not.</summary>
  </entry>
</feed>
