Prompt Lab is the back-of-house for everything in the Piano House Project. As work happens across each project — every conversation with an AI assistant, every commit, every decision — it's quietly logged and threaded by project. A nightly pass turns the raw stream into something readable: daily summaries, weekly rollups, and a living list of what each project is currently focused on, what's stalled, and what just shipped.
The point isn't surveillance, it's memory. With many projects moving at once, it's easy to lose track of what was tried, why a direction was abandoned, what was promised. Prompt Lab remembers — and surfaces those memories where they're useful: private dashboards, email recaps, and increasingly this site itself.
This very page exists because Prompt Lab made it easy to recall what each project here has been about lately.
evolution
Active since January 2026 · 48 sessions · 86 commits
↳ from claude · auto-generated at each session handoff
week of Aug 17, 2026· 13 sessions
Hardened the nightly pipeline after a puzzling overnight job that appeared to run for hours: the machine had simply been asleep, and the tooling now records wall-clock and awake time separately so that failure mode diagnoses itself. API calls gained retries and bounded timeouts, the dashboard shipped day-page caching and automated-traffic labeling, and completed integration with the ecosystem's central access-control service, verified live in production behind a deliberate kill switch.
week of Aug 10, 2026· 6 sessions
Did data-integrity archaeology on the dashboard's own pipeline. Fixed the nightly review email's day-window bug so "today" reliably means the completed calendar day. Discovered a write-time filter silently discarding short prompts — making days spent actively steering agents read as idle — and replaced it with a store-everything-label-at-read approach plus a full backfill. Corrected the activity heatmap's misaligned month labels, and moved the nightly report generators onto merged cloud data so both machines' work appears in a single report.
week of Aug 3, 2026· 1 session
A copy-review pass on the dashboard drove a redesign of its overflow menu — regrouped controls by purpose, promoted the theme toggle to the primary row, anchored sign-out last — and verified it in both themes on production. The bigger fix was data quality: project identity now comes from the git repository rather than the working directory's name, which had been minting a phantom project for every folder ever worked in. An eighty-entry project list collapsed to the real set.
The centrepiece was ecosystem health. A proposal arrived and shipped the same day: a daily scheduled email that polls a deep health endpoint across services and reports back, carrying a signed pause-for-a-week link, a copy-pasteable prompt for acting on whatever it finds, and a small joke per send — on the theory that a report people enjoy opening is a report people actually open.
External uptime monitoring went live alongside it, deliberately on separate infrastructure, because a watcher sharing a stack with the thing it watches goes down at exactly the wrong moment. Continuous integration had gone red from an unpinned linter picking up a new release; pinning it fixed every push and un-starved a deploy step that had been silently skipped rather than visibly failing.
week of Jul 20, 2026· 2 sessions
A short week spent settling one design question well. A sibling project proposed automatically publishing weekly activity counts while keeping written summaries gated. The goal was accepted; the mechanism was not.
Rather than a nightly job writing into the public tables, the counts are now projected at read time from data already held privately. That preserves the strongest guarantee in the system — that nothing automated ever writes to the public tables — and avoids creating a second copy that can drift from the first. Taking someone's goal seriously while declining their proposed transport is usually the more useful answer.
week of Jul 13, 2026· 1 session
Confirmed local tooling was fully in sync with the repository without a reinstall, scoped the prerequisite work for per-user access control on the dashboard (identity has to exist before authorization can mean anything).