<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Project Chronicles</title>
    <link>https://trevorpaugh.com/chronicles/</link>
    <description>The working history of my projects: milestones, design changes, decisions, and progress.</description>
    <language>en</language>
    <item>
      <title>Bopsmith: Nothing left without the owner</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-19-nothing-left-without-the-owner/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-19-nothing-left-without-the-owner/</guid>
      <pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>Two overnight slices cleared the last of the work the manager could do on its own. Each synth engine is now built once instead of twice, so the app stops caching two copies of the same sound code. And the build service now proves the production build plays every engine, through the background worker and without it. With both merged and the first live, the backlog that needs no owner decision is empty, and the manager's note to its successor is not to start product work without an answer.</description>
    </item>
    <item>
      <title>Claudeboard: Labels that never overlap</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-19-labels-that-never-overlap/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-19-labels-that-never-overlap/</guid>
      <pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>Two polish slices for the board itself. Node labels now try eight positions around their node and, when none is free, the least important label in the crowd hides until hovered; the selected node and any 'waiting on you' line always stay readable, and auto-fit never zooms out so far that those lines disappear. The header keeps to one row at any width from 820 pixels, dropping whole parts of its status line in a fixed order rather than wrapping over the board.</description>
    </item>
    <item>
      <title>Claudeboard: Ten pull requests before dawn</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-19-ten-pull-requests-before-dawn/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-19-ten-pull-requests-before-dawn/</guid>
      <pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate>
      <category>progress</category>
      <description>Between half past one and seven in the morning the manager merged ten pull requests without the owner, each one built by one agent, reviewed by another, and fixed before merging. The owner's new house rules went into every brief: tests named in the same change, a simplify pass and a code review before each request, a security review on anything touching files or the network, and the app checked by eye. Most of the night went into making every file source tell a locked file from a broken one.</description>
    </item>
    <item>
      <title>Claudeboard: Who manages whom</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-19-who-manages-whom/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-19-who-manages-whom/</guid>
      <pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>The board can now see the management layer. A new collector source reads each project's team roster and manager handoff, keeping only table rows and ids, and the board draws a dashed edge from a manager session to every session it has dispatched. Selecting a manager shows what it has in flight, its peers, and how many things wait on the owner. The first review found the source could wander into folders it is forbidden to read; the fix guards every path by where it really leads.</description>
    </item>
    <item>
      <title>Bopsmith: Paying for CI once</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-18-paying-for-ci-once/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-18-paying-for-ci-once/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The project's hosted build allowance ran out on 15 October, which turned continuous integration from a habit into a cost. Three slices followed. The server test suite boots its in-memory database once per worker instead of once per test, and runs about fifteen times faster. Pushes that touch only the manager's notes start no run at all, which had been four out of five runs. And a merge to main whose tree is identical to a pull request that already passed inherits that result instead of running again, with every doubt resolved in favour of running.</description>
    </item>
    <item>
      <title>Bopsmith: Advanced mode, one slice at a time</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-15-advanced-mode-in-slices/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-15-advanced-mode-in-slices/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>The studio now has two modes. Basic is what shipped; Advanced adds a per-instrument effects rack with seven effects in a fixed chain, a set of new sound engines for bass, keys, lead, and drums, and a deeper mixer, all still synthesized in code from the maker's seed. It arrived as four merged slices and one in review, each built against a hard size budget for the first page load, with the engine rendering moved into a background worker so the page never stutters.</description>
    </item>
    <item>
      <title>Bopsmith: Drum accents</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-15-drum-accents/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-15-drum-accents/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>Every drum hit can now be Soft, Normal, or Accent. In an Advanced song an Accents chip turns the drum grid into a level editor: tap a lit pad to cycle through the three, hold to clear it, drag to move it with its level intact. Accent pads get a corner mark and a bigger dot, Soft a smaller dot on a paler fill, and the desktop adds a Strength row under the selected lane. Levels are stored only on lit steps and dropped when every hit is Normal, so an old song saves byte for byte as before. The song format moved to version four to carry them.</description>
    </item>
    <item>
      <title>Bopsmith: The config that never arrived</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-15-the-config-that-never-arrived/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-15-the-config-that-never-arrived/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>Checking the live site after a deploy, the manager found that a security-policy change merged nine slices earlier had never reached it. The reverse proxy reads its configuration only when its container starts, and a changed file on disk does not make the deploy script restart it. The deploy now records which configuration the proxy started with, validates a changed one in a throwaway container, and recreates the proxy only if it passes. The same evening the owner handed the deploy button itself to the manager.</description>
    </item>
    <item>
      <title>Bopsmith: The song-version guard, and analytics after all</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-15-the-song-version-guard/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-15-the-song-version-guard/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>An app build older than Advanced mode strips the new fields from a song it saves, and the stripped copy syncs back over the richer one. The fix is a version number on the song format: the server keeps fields an older client does not understand, an outdated app refuses to export, and an edit made from an old build comes back as an undo step rather than a silent overwrite. The owner confirmed those defaults and said not to hold the deploy for it. In the same week they reversed the plan's no-analytics rule.</description>
    </item>
    <item>
      <title>Claudeboard: Archived stays hidden</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-15-archived-stays-hidden/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-15-archived-stays-hidden/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The first real session store had around a hundred archived sessions, and they buried the dozen live ones. The owner's call: archived sessions are hidden by default, with the filter starting on and a stored preference able to override it, and counters count only what is visible. In the same review, alerts were moved out of the collector: it emits only two kinds, and the board derives the rest locally from what it already knows.</description>
    </item>
    <item>
      <title>Claudeboard: One point oh</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-15-one-point-oh/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-15-one-point-oh/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>With the roadmap complete, the manager ran the 1.0 release and a parked debt pass side by side. Every package carries version 1.0.0, a changelog covers the first thirteen pull requests, an install guide walks a fresh Windows machine through to a phone on the owner's private network, and a release workflow builds and tests on Windows and publishes a collector zip and the tray executable from a tag. The code is on main; the tag itself waits for the owner, because the hosted build service had stopped starting jobs for the account and the release would have been refused too.</description>
    </item>
    <item>
      <title>Claudeboard: Replay, history, and forgetting</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-15-replay-history-and-forgetting/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-15-replay-history-and-forgetting/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>Three slices past version one, all on 15 October under the owner's standing order. Replay scrubs through any past day: the collector records the graph it serves as frames, because the event log alone cannot rebuild it, and the board plays them back at up to three hundred times speed with the live feed held aside. History is a searchable table of every session the machine has seen, metadata only, with a detail panel that links to replaying its day. And a retention setting lets the owner forget old frames, with pruned days still replayable from the log and marked fainter on the calendar.</description>
    </item>
    <item>
      <title>Claudeboard: Version one, code-complete in two days</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-15-version-one-code-complete/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-15-version-one-code-complete/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>Every slice of the plan is merged: transcript tailing with subagents orbiting their parents and animated flows on the edges, the dashboard chrome built to the approved mockups, an observer session for cloud sessions and usage windows, Lanes and Orbit layouts beside Islands, a setup screen, a tray icon that starts at login, and a phone layout over the owner's private network. Code-complete on 15 October, forty-odd hours after the plan was approved; the owner has walked the first four acceptance steps, and replay is already under way as version one point one.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Fill from saved answers</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-15-fill-from-saved-answers/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-15-fill-from-saved-answers/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>One button in Fill &amp; Sign fills every empty field from the answers the app has already learned, matching by the field's full name first and its label second, and skipping dates, passwords, locked and read-only fields. Each fill is a single undo step and nothing touches the file until Save. Parked on 8 October as a later version, it was pulled forward by the owner's standing order to keep moving without them, and took three review rounds to merge.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Six holes in the change checker</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-15-six-holes-in-the-checker/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-15-six-holes-in-the-checker/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The checker that says whether a signed or certified PDF has been changed since signing was reviewed as an attacker would review it. Two rounds found five ways a forged change could pass as untouched; the fix round found a sixth. Every one was closed with the reviewer's own attack tests landed, and none was written down as a known limit. The same day a redaction review found a font measurement that could let a letter survive inside a repeating pattern, and that path now refuses rather than guesses.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Follow-ups, a sweep, and two branches still in review</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-15-the-first-sweep/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-15-the-first-sweep/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>progress</category>
      <description>With the roadmap delivered, the project turned to the review follow-ups it had been deferring and to its first quality sweep of a real build: six bugs and nine observations from one evening of use, fixed in a single branch. Two follow-up branches, for signing and for scanning, are still in review; the signing one found that a certified document could be quietly changed after the fact, and closed every path the reviewer could find.</description>
    </item>
    <item>
      <title>Eboda Gymnast: The follow-ups build</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-15-the-follow-ups-build/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-15-the-follow-ups-build/</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The review follow-ups batch is merged and a fresh build is with the owner. Five branches went in: editing fixes, fill from saved answers, the first quality sweep, the scanning follow-ups for compare, redact, compress, text recognition, and batch, and the signing follow-ups with the hardened change checker. Behind them sit a sweep of 136 checks on the previous build with every failure fixed, and seven review rounds across the two heaviest branches with every finding fixed and none recorded as a limit.</description>
    </item>
    <item>
      <title>Bopsmith: Basic or Advanced, per song</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-basic-or-advanced/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-basic-or-advanced/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>The owner asked for a basic mode and an advanced mode: basic as the studio is now, advanced opening up a much larger choice of sounds and effects, closer to a full workstation. Mockup round three draws it. The mode lives in Song settings, one per song, and every song starts in Basic. Advanced adds a Sound tab per instrument with engine, oscillators, filter, envelope, FM, and voice groups, a choice of five melodic engines and three drum kits, a seven-effect rack per instrument, and a mixer with reverb and delay sends. The product's boundary held: still no samples, uploads, recording, timeline, or automation.</description>
    </item>
    <item>
      <title>Bopsmith: Four, go</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-four-go/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-four-go/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The owner accepted the designer's defaults for round three in two words rather than re-deciding each question. Advanced mode and every effect in it are free; each new engine ships with two free presets and two for Pro members. The mode is per song, Basic by default, and a Basic maker hears an Advanced song exactly as it was made, with the panels hidden. Velocity and thirty-two steps stay; the extra cells go first if anything has to. The shared delay bus is dropped. Build order: the effects rack, then the engines, then the advanced mixer.</description>
    </item>
    <item>
      <title>Bopsmith: No beacon</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-no-beacon/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-no-beacon/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The site's security policy was blocking a hosting provider's analytics beacon on every page, and the brief said to allow it if the fix was a one-liner. It was, and the builder did it. The reviewer pointed out that the project's own privacy text promises no analytics or third-party tracking. The manager reverted the change and put the question to the owner. The owner chose to keep the analytics and disclose them: the privacy policy now names the cookieless analytics, the beacon is allowed, and the licensing page was brought into line with the legal redline in the same merge.</description>
    </item>
    <item>
      <title>Bopsmith: Three slices without the owner</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-three-slices-without-the-owner/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-three-slices-without-the-owner/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The owner gave the manager a standing order to make as much progress as possible alone and in parallel. The manager wrote three briefs from the plan's unkept promises and the walkthrough's leftovers: a measured pass on slow phones, an end-to-end audit of the Spanish, and fixes around remixes and the language shown at sign-in. By the end of the day all three were reviewed, revised, and open as pull requests. The owner merged them in the order the manager wrote down and pressed the deploy button: every planned slice, one through sixteen, is now live.</description>
    </item>
    <item>
      <title>Bopsmith: Which language wins</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-which-language-wins/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-14-which-language-wins/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>An account made on an English device carried English with it, so signing in on a Spanish phone switched the whole site to English. The brief put the account's language above the browser's; the reviewer showed that still broke the case the walkthrough had found. The manager reversed the order: the device's own choice first, then the browser's language when it is one the site speaks, and the account's only after that.</description>
    </item>
    <item>
      <title>Claudeboard: First light</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-14-first-light/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-14-first-light/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The board ran against real data for the first time tonight. Both halves of slice one were merged, an integration pass joined them under one contract, and the hook feed was installed into the owner's settings. The canvas then drew every session on the machine, well over a hundred with about a third of them live, and every live one matched the app's own sidebar, with edges for who started whom, who handed off to whom, and who is talking to whom, and live working and waiting states. No session had to report itself. The labels overlap in the dense centre; that is a later slice.</description>
    </item>
    <item>
      <title>Claudeboard: Two halves of slice one</title>
      <link>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-14-two-halves-of-slice-one/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/claudeboard/2026-10-14-two-halves-of-slice-one/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>progress</category>
      <description>Slice one is built as two parallel pieces, each reviewed, fixed, and verified: a collector that reads the desktop app's session store and the command-line tool's process files into a local index and serves the graph over a live connection, and the board page that draws it. Against the real machine the collector already resolves every live session the app's sidebar shows. Both wait on the owner to merge. One review decision is recorded: anything that leaves the machine is metadata only, so status text is stripped for any client that is not local.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Batch, over a folder</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-batch-over-a-folder/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-batch-over-a-folder/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The last item on the roadmap is merged: Batch runs Compress, Protect, Export, Header and Footer, Watermark, or Recognize text over every PDF in a folder, writing results to a separate output folder and never into the source. Bates numbers continue across files. Four review rounds each found a way the output could leak back into the source folder, from a junction to a long-path prefix to one folder reached by two names, and every one was fixed. Built under the owner's standing authorization to keep improving without their input.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Compare and sign</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-compare-and-sign/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-compare-and-sign/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The second batch of the Acrobat list followed the first by about ninety minutes: Compare two PDFs, with a word-level diff and a pixel diff side by side under synced scrolling, and certificate signing, a real cryptographic signature from a self-signed or imported certificate, with a panel that reports Valid, Signed then changed, or Invalid. Both reviews approved on the first pass.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Compress and redact, after four rounds</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-compress-and-redact/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-compress-and-redact/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The third batch of the Acrobat list is on main: Compress, which writes a smaller copy under a new name, and Redaction with true content removal. Redaction took four review rounds. The first found four ways the text survived under the mark, the second two more, the third two cases where the app removed too much, and the fourth approved with two small fixes. The reviewer's checks stayed in the test suite. A new build from the merge goes to the owner next.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Protect, stamp, export</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-protect-stamp-export/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-protect-stamp-export/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The first batch of the Acrobat list landed overnight: password protection and permissions on save, headers and footers with page numbers, Bates numbers and text watermarks, and export of pages as images or text, image extraction, and a PDF built from images. Every branch needed one round of review changes, and one review found a colour bug that had been on main since the print slice. A new build went to the owner before two in the morning.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Redaction fails its first review</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-redaction-fails-review/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-14-redaction-fails-review/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>True redaction, where the text under the black box is gone from the file and not just covered, failed its first review. An adversarial reviewer wrote two dozen independent checks on the output and found four ways a copy marked as verified still held the text: inside repeating fill patterns, through an exemption for text that also appears elsewhere on the page, in documents embedded more than one level deep, and in glyphs drawn as outlines that cross the mark. The manager took the conservative fix for each. Where removal cannot be proven, the app refuses to write the copy.</description>
    </item>
    <item>
      <title>Project Chronicles: A capture, every time</title>
      <link>https://trevorpaugh.com/chronicles/projects/project-chronicles/2026-10-14-a-capture-every-time/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/project-chronicles/2026-10-14-a-capture-every-time/</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <category>progress</category>
      <description>The brief that project managers follow when they write to the historian now asks for a screenshot or mockup of anything visual, every time, saved under the project's own captures folder and listed on a Capture line in the note. The historian decides what to use.</description>
    </item>
    <item>
      <title>Bopsmith: CI and a deploy button</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-13-ci-and-a-deploy-button/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-13-ci-and-a-deploy-button/</guid>
      <pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The owner asked for continuous integration and deployment. The manager proposed checks on every pull request and push to main, and a deploy that is a button rather than something that fires on merge. The owner said go. The first press from the button went live the next day, after two snags in the runbook were found and fixed.</description>
    </item>
    <item>
      <title>Eboda Gymnast: The Acrobat list</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-13-the-acrobat-list/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-13-the-acrobat-list/</guid>
      <pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The owner asked which of Acrobat's paid features the app could still add. The manager compared the app against the published feature list and ranked eight that can be done entirely on the local disk. The owner ordered the first three in parallel, then the next two, with redaction and compression fitted in wherever they would go.</description>
    </item>
    <item>
      <title>Bopsmith: A stranger walks through</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-12-a-stranger-walks-through/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-12-a-stranger-walks-through/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>A tester who had never seen the product walked the whole of it, anonymously on the live site and with test accounts locally. The worst finding: every store page on bopsmith.com had shipped without its stylesheet since launch, and nobody had opened the live store on a phone. A hotfix went out the same day. The owner took three decisions from the rest of the list, and for the first time the manager merged the pull requests rather than the owner.</description>
    </item>
    <item>
      <title>Bopsmith: Hold to pick up</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-12-hold-to-pick-up/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-12-hold-to-pick-up/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>Dragging a note between steps worked with a mouse and failed on the owner's phone: the drag ended the instant it began, and a vertical swipe on a lit pad played the note instead of scrolling the page. The cause was how browsers hand a touch to the element under the finger. The fix is a rule: on touch, hold a lit pad for a quarter of a second to pick it up, and a swipe before that scrolls. The owner's phone test passed all three checks.</description>
    </item>
    <item>
      <title>Bopsmith: Paint, copy from, and a legend</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-12-paint-copy-legend/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-12-paint-copy-legend/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>Four editor extras in one slice: drag across empty pads to fill them in one stroke, copy a pattern into a section from another section, a colour legend under the song's sections on the phone, and full keyboard control of the pad grid. The store's first-load budget was raised once more to fit, after the builder's own fix was reversed.</description>
    </item>
    <item>
      <title>Eboda Gymnast: American English</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-american-english/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-american-english/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>The project switches to American English everywhere: interface text, documentation, code comments, identifiers, and commit messages. The builders had defaulted to British spellings, and the owner noticed. A sweep of about a hundred hits followed the morning's merges, and new work follows the rule from now on.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Are the peers worth it?</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-are-the-peers-worth-it/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-are-the-peers-worth-it/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The owner asked whether the two standing peer sessions, a builder and a reviewer, were earning their keep. The manager's answer was no: both were down when the day's five branches were dispatched, one-off agents in their own working copies did the work without losing anything, and the memory the peers were supposed to provide lives in the briefs and the manager's files anyway. The recommendation is to drop them. The owner's answer is pending.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Comments</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-comments/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-comments/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The Comment tab is in: select and copy text, highlight, underline, and strike through, sticky notes, ink, free-text boxes, and moving or recoloring any of them. Every change is written as an incremental update and read back before it counts. Review caught two things: right-to-left text was being underlined along its top edge, and the branch had grown its own certification rule that disagreed with the shared one.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Password protected</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-password-protected/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-password-protected/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>PDFs that need a password now ask for one in the app, open in both rendering engines, and save still encrypted. The branch was done a day before it merged: the sandbox had refused the builder's push and the manager does not route around a refusal, so it waited for the owner. Merging the day's other work into it exposed two new read-backs that had forgotten the password. Five generated sample files were added so the owner can retest without hunting for real ones.</description>
    </item>
    <item>
      <title>Eboda Gymnast: The OS does the reading</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-the-os-does-the-reading/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-the-os-does-the-reading/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>Text recognition uses the engine built into Windows rather than Tesseract or a Rust-native model. No toolchain, no download, no bundled binaries, and it follows the project's habit of leaning on the operating system where the app only runs on Windows anyway. The review found that a malformed scan could shift the whole invisible text layer by hundreds of points, and the fix checks where the first recognized word actually lands before a save counts.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Three at once</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-three-at-once/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-12-three-at-once/</guid>
      <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>With version one and its two follow-ups retested and passing, the owner asked what was left and picked three items in one go: the parked review fixes, a Comment tab, and text recognition with a Find bar. Five builders went out in parallel, each in its own working copy with its own reviewer. By mid-afternoon four of the five branches were on main and a fresh installer was in the owner's hands.</description>
    </item>
    <item>
      <title>Bopsmith: Behind the orange cloud</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-11-behind-the-orange-cloud/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-11-behind-the-orange-cloud/</guid>
      <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
      <category>decision</category>
      <description>The owner wanted the site behind Cloudflare's proxy. That breaks two things a plain server takes for granted: knowing a visitor's real address, and renewing certificates over port 80. Slice seven made the proxy safe to switch on as an opt-in, flipped after the first deploy had worked. A wrong diagnosis along the way, a firewall lock on the origin, and a weekly watcher that alerts rather than auto-updates.</description>
    </item>
    <item>
      <title>Bopsmith: First deploy: bopsmith.com is up</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-11-first-deploy/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-11-first-deploy/</guid>
      <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>Three days after the pitch, the site is live on one rented server in Europe, with the domain, mail, media storage, and backups set up by the owner from a step-by-step guide. All three containers healthy and certificates issued on the first try. Payments stay switched off for now by the owner's decision, and the store says so rather than pretending.</description>
    </item>
    <item>
      <title>Bopsmith: Sliders, not dials</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-11-sliders-not-dials/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-11-sliders-not-dials/</guid>
      <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>After using the new editor, the owner asked for three changes: a way to clear a drum pattern, notes that can be dragged between steps, and sliders in place of the sound dials, which were hard to read. All three were built in one slice, and the first-load budget was raised once, from 45 to 48 KB, to make room.</description>
    </item>
    <item>
      <title>Bopsmith: The mockup becomes the spec</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-11-the-mockup-becomes-the-spec/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-11-the-mockup-becomes-the-spec/</guid>
      <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>The editor matched the mockup's colours and little else. The owner asked why, and the answer was that the mockups had been briefed as intent, not spec, and nobody had compared the two side by side. A dedicated slice made mockups 01 and 02 the spec: self-hosted Bricolage Grotesque and Figtree, the mockup's radii and proportions, a top transport with Play song, drag handles to reorder sections, and List for sale always in view.</description>
    </item>
    <item>
      <title>Bopsmith: A logo in three rounds</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-10-a-logo-in-three-rounds/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-10-a-logo-in-three-rounds/</guid>
      <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>Four directions, then two refined plus a hybrid, then a final. The mark is a two-by-two grid of pads, one per instrument, each carrying its instrument's colour and a cut-out shape: a square for drums, a circle for bass, a key for keys, a diamond for lead. A one-colour pad grid is the fallback, the wordmark is set in Figtree and outlined, and the favicon is redrawn on a pixel grid so it survives sixteen pixels.</description>
    </item>
    <item>
      <title>Bopsmith: Version one, code complete in two days</title>
      <link>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-10-version-one-code-complete/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/bopsmith/2026-10-10-version-one-code-complete/</guid>
      <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>Every slice of the version one roadmap is merged: the editor as an offline-capable web app, accounts, saved projects and the Pro gate, the marketplace with browse, track pages and a listing flow, checkout, payouts with a hold, tax and licences, an admin and reports layer with takedowns and backups, search, and remixes with permanent credit and a fixed split. Legal drafts and a trademark search are done. Nothing is deployed: the service accounts, live payment checks, the deploy, and a review of the legal assumptions are all in the owner's hands.</description>
    </item>
    <item>
      <title>Clipper Overlord: The public page is not enough</title>
      <link>https://trevorpaugh.com/chronicles/projects/clipper-overlord/2026-10-10-the-public-page-is-not-enough/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/clipper-overlord/2026-10-10-the-public-page-is-not-enough/</guid>
      <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
      <category>progress</category>
      <description>The owner joined a second clipping board and asked for its campaign list to be read by a browser session rather than scraped. The survey found the public list carries only a card per campaign: brand, title, rate, and a lock. The rules, budget, resources, and minimum views live in the signed-in app, which the browser extension cannot reach until the owner allows the site. The read-by-hand guide now sends the session there and makes the block visible. Overnight, under a blanket go, three small merges followed, including a test that failed only when the owner's drive dipped under the free-space floor.</description>
    </item>
    <item>
      <title>Eboda Gymnast: An installer, and a sandbox that hid it</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-10-an-installer/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-10-an-installer/</guid>
      <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The last of the six verbs is built and in review: a per-user Windows setup that needs no administrator prompt, registers Eboda Gymnast under Open with for PDFs without touching the default, and keeps one window. Two decisions: the registration is written by the installer's own hooks so uninstall removes only its own keys, and there is no code signing for a personal tool. Both install tests ran inside a desktop app's package sandbox, which swallowed the registry writes, so the real-profile check is on the owner's retest list.</description>
    </item>
    <item>
      <title>Eboda Gymnast: Editing text that was flattened</title>
      <link>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-10-editing-flattened-text/</link>
      <guid>https://trevorpaugh.com/chronicles/projects/eboda-gymnast/2026-10-10-editing-flattened-text/</guid>
      <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
      <category>milestone</category>
      <description>The first slice past version one. Edit mode now reaches text drawn inside nested forms, which is where the app's own Flatten puts every filled field value, two levels deep. Asked for the evening the roadmap closed, built in one evening, one review round, merged. Two decisions: a nested form is editable only when it is drawn exactly once in the file, and encrypted files opened without a password are editable when their permissions allow it.</description>
    </item>
  </channel>
</rss>