Tooling
A catalog that keeps itself honest.
Ten thousand pieces is more than one person can check. So the checking is automated: four jobs that find new work, verify what's already there, correct it, and remove what shouldn't have been added — with no human review step anywhere in the loop.
That last part is why the rules below are written the way they are. Automation that can't be taken back is a decision you only get to make once, so everything destructive runs on strikes, keeps a log, and reverts.
These describe what each job does and the rules it runs under, not how it's built. The interesting part was never the implementation.
The Curator
WeeklyWorks through the catalog most-valuable-first, re-verifying every piece's data, correcting what's wrong, filling what's missing, and removing what should never have been there. It runs with no human review step, which is the whole reason its safeguards look the way they do.
- Principle
- Quality over quantity — a smaller correct catalog beats a larger careless one. Being obscure is never a reason to remove a piece; being wrong is.
- Safeguard
- Two strikes before anything is deleted, and thirty days to undo it. Every change is logged, and an entire run can be reverted in one step.
- Never
- Touches a piece someone has actually rated. Real user data outranks the bot's judgement, always.
- Care
- A collection wrongly filed as a single piece is split into its members before the grouping is removed, so the content survives and only the bad record dies.
Discovery
DailyGrows the catalog. It walks the public-domain library looking for pieces that aren't in the catalog yet, screening candidates cheapest-check-first so nothing expensive is ever spent on something a cheap test could have rejected.
- Principle
- Reject at the entrance rather than clean up afterwards. Anything that isn't a single solo piano piece never gets written in the first place.
- Safeguard
- Every rejection is remembered, so a title is never judged twice — and the reasoning behind a rejection stays available if it turns out to be wrong.
- Resumable
- Progress is recorded on the records themselves rather than a cursor, so a run that stops halfway picks up exactly where it left off and nothing can get skipped.
Requests
On demandLets someone who searched for a piece and found nothing ask for it, with me in the middle. Approved titles go through every stage of the normal pipeline — an approval moves a request into the queue, it doesn't bypass the quality checks.
- Principle
- A request is a wish, and a meaningful share of wishes are typos, works that aren't in the public domain, or pieces that simply don't exist there. Review is what turns a list of wishes into a catalog decision.
- Safeguard
- A declined request keeps its row and keeps counting votes, so a piece twenty more people ask for comes back to my attention instead of being quietly re-declined forever.
What it replaced
The search box that recorded wishes
The first version logged every search that found nothing, automatically and silently. Within a day the list was mostly keyboard mashing — because a search box is where people fumble, and a silent recorder can't tell fumbling from wanting. Asking explicitly, and capping how often, turned noise into a signal worth acting on.
Performance matching
DailyAttaches a recording to each piece. Rather than taking the first search result, it pulls several candidates and validates each one — length against the piece's own duration, whether it can actually be embedded, and whether the title describes the right work by the right composer.
- Principle
- An empty slot is better than a wrong video. If nothing passes, the piece keeps no recording at all and is retried later.
- Safeguard
- A runner-up is kept alongside the pick, so the player has somewhere to fall back to when a video is later deleted or made private.
- Loop
- The curator clears recordings that no longer match on its next pass, and this refills the gap the following morning. Attach and verify are two halves of one cycle.
What it replaced
The John Field problem
The old flow searched and attached the first result, blind. That is how one piece ended up playing a two-hour compilation by an entirely different composer. The fix wasn't a better search query — it was to stop trusting the first answer at all and validate every candidate before accepting one.
All four run behind Répertoire, which is where the catalog they maintain actually gets used.
See the catalog